Schlagwort: Home Assistant

Trådfri befreien

Na ja, ein rei­ße­ri­scher Titel muß schon sein, gell?

Man kann sein Smart Home bei IKEA furcht­bar güns­tig begin­nen: Man kauft eine Lam­pe im Set mit einer Fern­be­die­nung. Da ist die Fern­be­die­nung schon mit der Lam­pe gekop­pelt, man schraubt die Lam­pe ein­fach in den Sockel, gibt Strom drauf — und schon kann man die Lam­pe mit der Fern­be­die­nung schal­ten. 15 Euro oder so. Das war mei­ne ers­te Lam­pe. Dann kam im Wind­fang eine Lam­pe nicht mit Fern­be­die­nung, son­dern mit Bewe­gungs­mel­der hin­zu.

Das ist jetzt das The­ma.

Am Bewe­gungs­mel­der kann man hin­ten zwei Din­ge ein­stel­len: Leucht­dau­er und ob der nur im Dun­keln oder immer schal­ten soll. Selbst­ver­ständ­lich soll er nicht schal­ten, wenn es tags­über hell ist — das wäre ja Schwach­sinn.. Nur: er funk­tio­niert ver­läß­lich nur in der Stel­lung always on. Das ist natür­lich nicht wei­ter tra­gisch; den zusätz­li­chen Ener­gie­ver­brauch kann man ver­nach­läs­si­gen. Aber schön ist das eben doch nicht.

Und jetzt kommt die rich­ti­ge™ Home Auto­ma­ti­sie­rung ins Spiel: Was wäre, wenn man die Ver­bin­dung zwi­schen Bewe­gungs­mel­der und Lam­pe kom­plett auf­bricht und die gan­ze Logik an (HomeAssistant|OpenHAB|IOBroker|Whatever) aus­la­gert?
Das muß gehen. Jeden­falls kann ich schon mal eine belie­bi­ge Akti­on (Home­As­si­stant) aus­füh­ren las­sen, sobald ich den Wind­fang betre­te.

- alias: Bewegung im Windfang Licht in HWR einschalten
  trigger:
    platform: state
    entity_id: sensor.windfang_bewegungsmelder
    to: 'on'
  action:
    service: light.turn_on
    data:
      entity_id: light.hwr_deckenlampe
      brightness_pct: 100

Ich möch­te das dann mit sun ver­bin­den, dann habe ich näm­lich genau das, was ich will: tags­über wird nicht geschal­tet, im Dun­keln schon.
Aber erst mor­gen 🙂

0

Vielleicht bekomme ich die Pluggit ja doch noch ans HomeAssistant

Jeden­falls habe ich mal die Kom­mu­ni­ka­ti­on zwi­schen Tele­fon und Anla­ge mit­ge­schnit­ten — das sieht sehr ein­fach gestrickt aus, und zumin­dest zum Lesen ist wohl auch kei­nen Authen­ti­fi­zie­rung nötig.

Es ist immer ein Fra­ge-Ant­wort-Spiel: Die App fragt ein Regis­ter ab, die Anla­ge ant­wor­tet.
Ein typi­sches Ant­wort­pa­ket sieht so aus:

Die 23 könn­te die Luft­tem­pe­ra­tur im Haus sein. Man müß­te jetzt “nur” noch wis­sen, wie man an ein bestimm­tes Regis­ter kommt, und wel­ches Regis­ter wel­chen Wert lie­fert.
Dann soll­te man mit der Doku wei­ter­kom­men.

0

Pluggit am Netz

Das war ein klei­nes Dra­ma. Das Teil kann auf drei­er­lei Arten bedient wer­den:

  • am Front­pa­nel
  • am Rech­ner via USB-Kabel
  • via App

Am Front­pa­nel ist ja ein­fach — aber da gibts auch nur die Mög­lich­keit, zwi­schen den Stu­fen 0 (aus) und 4 zu wäh­len, das ist dann alles.
Und natür­lich zuwe­nig.
Die meis­ten Ein­stel­lungs­mög­lich­kei­ten bie­tet wohl die Vari­an­te via USB. Da gibts dann ein Pro­gramm, aller­dings nur für Win­dows. Und da es hier kein Win­dows gibt, bleibt nur noch die drit­te Vari­an­te übrig: via IOS-/An­dro­id-App.
Dazu müß­te aller­dings die Plug­git erst­mal ins WLAN kom­men. Kommt sie aber man­gels WLAN-Modul nicht. Es gibt nur Ether­net via RJ45, und auch nur DHCP.
Glück­li­cher­wei­se hat­te ich noch einen alten Access-Point rum­zu­lie­gen, den man im Cli­ent-Mode betrei­ben kann. Das WLAN ist dahin­ten zwar mies, reicht aber.
Ein nmap zeig­te dann schnell Port 502 (Mod­Bus) als offen an. Bis­lang hat­te die App noch nie die Plug­git gefun­den — und tat es auch dies­mal, trotz mehr­ma­li­gen Anbrül­lens, nicht.
Run­ter­ge­wor­fen, neu­in­stal­liert, tut.

Schlicht, aber aus­rei­chend

Angeb­lich kann man mit dem Win­dows-Pro­gramm sehr viel mehr ein­stel­len, ins­be­son­de­re die Schwell­wer­te für den Som­mer-Bypass (dann wird die küh­le Nacht­luft nicht mehr am Wär­me­tau­scher vor­bei­ge­führt, son­dern direkt ins Haus gebla­sen) mani­pu­lie­ren.
Da muß ich mir noch mal jeman­den mit Win­dows auf ein Bier ein­la­den.

Für Home­As­si­stant gibt es ein Mod­Bus-Modul, das wäre was für graue Win­ter­aben­de viel­leicht 😉

0

HomeAssistant, Update fehlgeschlagen

Bei mir läuft HA 0.82.1, ich möch­te auf 0.83.1 updaten. Hin­ter­grund ist, daß nach einem Sonos-Update Text-to-Speech nicht mehr funk­tio­niert. Da dach­te ich, daß es viel­leicht mit einem aktu­el­len HA geht und habe upge­da­ted wie immer.
Danach ging kein Con­nect mehr auf TCP/8123, obwohl HA angeb­lich klag­los lief:

root@raspberrypi:/srv# systemctl status home-assistant@homeassistant.service
● home-assistant@homeassistant.service - Home Assistant
Loaded: loaded (/etc/systemd/system/home-assistant@homeassistant.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-11-30 19:38:03 CET; 1min 7s ago
Main PID: 4772 (hass)
CGroup: /system.slice/system-home\x2dassistant.slice/home-assistant@homeassistant.service
└─4772 /srv/homeassistant/bin/python3 /srv/homeassistant/bin/hass -c /home/homeassistant/.homeassistant

Nov 30 19:38:03 raspberrypi systemd[1]: Started Home Assistant.
Nov 30 19:38:09 raspberrypi hass[4772]: 2018-11-30 19:38:09 INFO (MainThread) [homeassistant.loader] Loaded websocket_api from homeassistant.components.websocket_api
Nov 30 19:38:09 raspberrypi hass[4772]: 2018-11-30 19:38:09 INFO (MainThread) [homeassistant.bootstrap] Home Assistant core initialized
Nov 30 19:38:09 raspberrypi hass[4772]: 2018-11-30 19:38:09 INFO (MainThread) [homeassistant.loader] Loaded logger from homeassistant.components.logger
Nov 30 19:38:09 raspberrypi hass[4772]: 2018-11-30 19:38:09 INFO (MainThread) [homeassistant.setup] Setting up logger
root@raspberrypi:/srv#

Aber lau­schen tut der nicht:

root@raspberrypi:/srv# netstat -tulpen | grep python
tcp 0 0 192.168.1.41:1400 0.0.0.0:* LISTEN 999 385576389 4772/python3
root@raspberrypi:/srv#

Mist!
Zum Glück gibts Back­ups 😉 Also das Back­up zurück­ge­spielt und:

root@raspberrypi:/srv# netstat -tulpen | grep python
tcp 0 0 192.168.1.41:1400 0.0.0.0:* LISTEN 999 385595390 6234/python3
tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN 999 385596186 6234/python3
udp 165952 0 0.0.0.0:5353 0.0.0.0:* 999 385596190 6234/python3
udp 165952 0 0.0.0.0:5353 0.0.0.0:* 999 385596189 6234/python3
udp 0 0 0.0.0.0:5353 0.0.0.0:* 999 385596187 6234/python3
udp 0 0 0.0.0.0:50199 0.0.0.0:* 999 385605044 6234/python3
root@raspberrypi:/srv#

Natür­lich geht Text-to-Speech nun wie­der nicht. Ging ganz gut, um die Kin­der zu erschre­cken 😉

0

Home Assistant: Licht an, wenn Film schon läuft

Doch der Rei­he nach: Ges­tern bemerk­te ich, daß sich das Licht nicht dimmt, wenn es erst nach Film­be­ginn ange­schal­tet wird, etwa, weil es mitt­ler­wei­le dun­kel wur­de.
Nun, das soll­te eigent­lich ein­fach umzu­set­zen sein, doch Pus­te­ku­chen: War es nicht.
Das Forum hat­te dann letzt­lich den ent­schei­den­den Hin­weis: Tipp­feh­ler.
Habe ich dann auch gleich ein­ge­ar­bei­tet — und es geht!

 

0

Schickes Home Assistant

Ges­tern hat uns mei­ne Schwes­ter IKEA-Tråd­fri-Lam­pen aus Ros­tock mit­ge­bracht, Ker­zen mit E14-Sockel für die Nacht­tisch­lam­pen — und zwei Fern­be­die­nun­gen.
Nun ja, so kann man eben Lam­pen mit einer Fern­be­die­nung schal­ten und dim­men, nichts außer­ge­wöhn­li­ches, aber bes­ser als zuvor; schon wegen des Dim­mens.
Über die Tråd­fri-App kann man Lam­pen zu einem bestimm­ten Zeit­punkt schal­ten, das bie­tet sich natür­lich an, wen Bine zum Früh­dienst auf­ste­hen muß. Das wäre aber dann jeden Mor­gen so, auch wenn sie frei oder Urlaub oder einen ande­ren Dienst hat.
Aber: sie schreibt ihren Dienst­plan ihren Kalen­der, den sie für mich frei­ge­ge­ben hat.
Ich habe ja Home­As­si­stant, und der kann auf Cal­Dav zugrei­fen, also auch auf unse­re Kalen­der im Inter­net. Und da steht ja drin, wann Bine Früh­dienst hat — also los!

Doch so schnell gehts nicht: Zuerst der Anlei­tung nach die benö­tig­ten dev-Pake­te nach­in­stal­liert und cal­dav akti­viert. Beim nächs­ten Star­ten fing Home­As­si­stant erst­mal an, Python-Pake­te zu über­set­zen. Auf einem Raspi, der ohne­hin schon durch Kodi gut aus­ge­las­tet ist, ist das ein Gedulds­spiel. Ich den­ke, das hat wenigs­tens 30 Minu­ten unter Vollast gedau­ert; ich habe nicht auf die Uhr gese­hen.

Dann habe ich die Kon­fi­gu­ra­ti­on nach bes­tem Wis­sen und Gewis­sen gemacht — und es funk­tio­nier­te natür­lich nicht. Und selbst­ver­ständ­lich gab es auch kei­ne Feh­ler. Da die Nota­ti­on für den Zugriff auf den Kalen­der etwas unüber­sicht­lich ist, habe ich dort eben­so lan­ge wie ergeb­nis­los rum­kon­fi­gu­riert. Dann doch mal das Debug-Level auf info hoch­ge­dreht — und sie­he da: per­mis­si­on denied für den Kalen­der. Doch war­um? Das Paß­wort war defi­nitv rich­tig, der Nut­zer­na­me sowie­so. Ahhhh!!! Bekloppt ich bin — ich habe ja 2FA, allein User­na­me und Paß­wort rei­chen da nicht. Also noch schnell ein App-Paß­wort erzeugt — und bäng! kein per­mis­si­on denied mehr.
Dann galt es nur noch her­aus­zu­fin­den, daß der Such­string wirk­lich ein regu­lä­rer Aus­druck sein muß, ich habe mich für .*[Bb]ine\ +[Ff]rüh.* ent­schie­den.

Mei­ne Tests waren erfolg­reich, jetzt wol­len wir das dann mal über­mor­gen live sehen, wenn sie Früh­dienst hat!

Und hier der ent­schei­den­de Com­mit.

0