Schlagwort: Home Assistant

Trådfri Lampe aufgehängt

Ja, sowas gibts wirk­lich, ich glau­be, nun zum zwei­ten Mal inner­halb viel­leicht eines Jah­res. Ich glau­be, es war bei­des male die Lam­pe auf dem Nacht­tisch der Gat­tin, die­se.
Das zeig­te sich dar­in, daß sich die Lam­pe auto­ma­tisch ein­ge­schal­tet hat­te, nicht mehr auf die Fern­be­die­nung reagier­te (ließ sich auch nicht aus­schal­ten) und dann auch in der IKEA-App als nicht ver­füg­bar auf­tauch­te, eben­so bei Home­kit und Home­As­si­stant.
Die Lösung war dann ein Reset der Lam­pe (der immer­hin ein­fa­cher als bei GE ist 😀)
Das bewirkt aber erst­mal nur, daß man die Lam­pe (nach Löschen der alten) in die IKEA-App, sprich: in die Con­fig des Gate­ways auf­neh­men kann (und die Lam­pe wie­der mit der Fern­be­die­nung ver­bun­den ist)
Danach muß man:

  • in der IKEA-App die Lam­pe auf ihren ursprüng­li­chen Namen (bei mir: Schlaf­zim­mer Nacht­tisch­lam­pe Bine) umbe­nen­nen
  • in Home­kit umbe­nen­nen, in den rich­ti­gen Raum ver­schie­ben, rich­ti­ges Sym­bol zuord­nen
  • Home­As­si­stant:
    • HA stop­pen
    • home-assistant_v2.db und .storage/core.entity_registry löschen
    • HA star­ten

Nee, der WAF-Fak­tor ist da unter­ir­disch 🙂

0

Rasbpian auf Buster angehoben

Ab ers­ten August wer­den neue­re Ver­sio­nen von Home Assi­stant Python 3.5 und damit Raspbi­an Stretch nicht mehr unter­stüt­zen:

Also muß ein Bus­ter her, aller­dings läuft dann Zab­bix nicht mehr, jeden­falls galt das bis vor kur­zem, aber nun nicht mehr 🙂

Das Update ging halb­wegs schmerz­los. Ein­mal brach der Upgrade­pro­zeß ab, ließ sich aber wie­der auf­neh­men. Home Assi­stant ging nicht mehr (neue­re Python-Ver­si­on natür­lich). Neu instal­liert via pip3, alles fein. Zab­bix läuft auch in der aktu­el­len Ver­si­on. Nur Kodi (noch) nicht https://www.raspberrypi.org/forums/viewtopic.php?t=245433

Dann geht Kodi eben erst­mal nicht. Sie wer­den es schon hin­be­kom­men.

0

Re: Roomba, Sonos, HomeAssistant

Sie­he https://rainer.sokoll.com/?p=5078 — ja, funk­tio­niert. Also fast rich­tig geil.

- alias: Adele voll
  trigger:
    platform: template
    value_template: "{%if is_state_attr('vacuum.adele', 'bin_full', true) %}true{%endif%}"
  action:
    - service: notify.ios_loopback
      data:
        message: 'Bitte Adele entleeren!'
    - service: script.sonos_say
      data:
#        sonos_entity: group.sonos
        sonos_entity: media_player.arbeitszimmer
        volume: 0.3
        message: 'Adele hat die Windeln voll.'
        delay: '00:00:03'

Mit sonos_entity: media_player.arbeitszimmer funk­tio­niert das rich­tig gut: Lau­fen­de Musik wird ange­hal­ten, 3 Sekun­den Pau­se, Sonos im Arbeits­zim­mer infor­miert über Ade­les vol­le Win­del, und nach wei­te­ren 3 Sekun­den spielt der Sonos wei­ter.
Aber ich will die Ansa­ge auf meh­re­ren Sono­sen haben, und das habe ich nur geschafft, indem ich eine Grup­pe anspre­che (group.sonos). Dann aller­dings wird nicht wei­ter­ge­spielt, und das ist aus­ge­spro­chen doof.
Jetzt beim Schrei­ben fällt mir auf, daß es mit zwei ser­vices gehen soll­te. Schlimms­ten­falls müß­ten die­se unter­schied­li­che Namen haben. Das lie­ße ich aber hof­fent­lich mit Sym­links auf das Skript sonos_say rea­li­sie­ren.
Mal sehen. Mor­gen.

0

Roomba und die Cloud

Da ich mei­nem Room­ba ja de Cloud abge­dreht habe (tcpdump auf dem Rou­ter)

09:34:43.733618 IP 192.168.1.93.49704 > 5.199.135.170.123: NTPv4, Client, length 48
09:34:43.733863 IP 192.168.1.254 > 192.168.1.93: ICMP 5.199.135.170 udp port 123 unreachable, length 84
09:34:54.811635 IP 192.168.1.93.49705 > 5.199.135.170.123: NTPv4, Client, length 48
09:34:54.811882 IP 192.168.1.254 > 192.168.1.93: ICMP 5.199.135.170 udp port 123 unreachable, length 84

Huch, ich sehe gera­de: NTP kann ich ihm ja erlau­ben. Aller­dings kriegt er von mei­nem DHCP-Ser­ver auch mei­nen loka­len NTP-Ser­ver, war­um also 5.199.135.170 (wird wohl einer von pool.ntp.org sein)?
Jeden­falls ist die App auf dem Han­dy ganz trau­rig:

Aller­dings Home­As­si­stant auf dem­sel­ben Tele­fon kann sehr wohl:

Es ist auch wirk­lich nicht ein­zu­se­hen, war­um man zum Ein­schal­ten eines Staub­saugers eine Cloud benö­ti­gen soll­te (Knopf drü­cken am Gerät geht immer­hin noch)

0

Roomba, Sonos, HomeAssistant

Geil­geil­geil. Ich weiß nur noch nicht, obs funk­tio­niert 🙂
Soll­te aber, mit einem Trig­ger “Licht aus” funk­tio­niert es jeden­falls.

Ziel: Wenn der Staub­sauger (wir nen­nen ihn Ade­le) ein Pro­blem hat, soll er das bit­te mel­den. Pro­ble­me könn­ten zwei sein: Dreck­be­häl­ter voll und fest­ge­fah­ren

- alias: Adele voll
  trigger:
    platform: template
    value_template: "{%if is_state_attr('vacuum.adele', 'bin_full', true) %}true{%endif%}"
  action:
    - service: notify.ios_loopback
      data:
        message: 'Bitte Adele entleeren!'
    - service: script.sonos_say
      data:
        sonos_entity: media_player.arbeitszimmer
        volume: 0.3
        message: 'Adele hat die Windeln voll.'
        delay: '00:00:03'

- alias: Adele festgefahren
  trigger:
    platform: template
    value_template: "{%if is_state_attr('vacuum.adele', 'Stuck', true) %}true{%endif%}"
  action:
    - service: notify.ios_loopback
      data:
        message: 'Bitte Adele befreien.'
    - service: script.sonos_say
      data:
        sonos_entity: media_player.arbeitszimmer
        volume: 0.3
        message: 'Adele hat sich festgefahren.'
        delay: '00:00:03'

Und dazu noch das Skript:

sonos_say:
  alias: 'Sonos TTS script'
  sequence:
  - service: sonos.snapshot
    data_template:
      entity_id: "{{ sonos_entity }}"
  - service: sonos.unjoin
    data_template:
      entity_id: "{{ sonos_entity }}"
  - service: media_player.volume_set
    data_template:
      entity_id: "{{ sonos_entity }}"
      volume_level: "{{ volume }}"
  - service: tts.google_say
    data_template:
      entity_id: "{{ sonos_entity }}"
      message: "{{ message }}"
  - delay: "{{ delay }}"
  - service: sonos.restore
    data_template:
      entity_id: "{{ sonos_entity }}"

Geil sind dabei die zwei Funk­tio­nen sonos.snapshot und sonos.restore — die machen genau das: Sta­tus (Grup­pen, aktu­el­les Abspiel­ob­jekt) vor der Sprach­aus­ga­be sichern und danach den Aus­gangs­zu­stand wie­der­her­stel­len.

Mal mor­gen sehen, ob das auch wirk­lich so funk­tio­niert.
Auf dem Reiß­brett jeden­falls sieht es gut aus 🙂

0

HomeAssistant, IOS Notifications

Dadurch, daß HA nun am Inter­net hängt mit SSL und einem “rich­ti­gen” Zer­ti­fi­kat, kann ich mir nun auch Nach­rich­ten ans Tele­fon schi­cken (das ging zwar vor­her auch schon via Tele­gram, aber wenns auch nativ geht…)

Und es ist furcht­bar ein­fach, ich habe mal nur mit einem ein­fa­chen Trig­ger (Licht wird im Arbeits­zim­mer aus­ge­schal­tet) getes­tet: Aus­schnitt aus mei­ner automations.yaml:

- alias: An Rainers Handy petzen
  trigger:
    platform: state
    entity_id: light.arbeitszimmer_deckenlampe
    to: 'off'
  action:
    service: notify.ios_loopback
    data:
      title: "Pullach"
      message: "Licht im Arbeitszimmer ausgeschaltet!"
      data:
        push:
          badge: 0

Und das kommt dann instantan sowohl auf Han­dy als auch auf der Uhr an:

Ganz neue Mög­lich­kei­ten zum Spie­len!

0

HomeAssistant nun am Internet

Das hat­te ich schon län­ger vor: Home­As­si­stant ans Inter­net zu hän­gen. Dann kann ich auch aus der Fer­ne die lie­be Fami­lie erschre­cken 🙂
Nor­ma­ler­wei­se wür­de man auf dem Rou­ter ein Port­for­war­ding ein­rich­ten und gut. Aber das wird dann ganz schnell eklig mit HTTPS und des­sen Zer­ti­fi­ka­ten. Außer­dem spricht mein Home­As­si­stant kein HTTPS, und ich woll­te mög­lichst wenig dar­an rum­kon­fi­gu­rie­ren. Letzt­lich muße ich dort (HA) gar nichts machen.

Mei­ne Lösung: HA läuft auf einem Raspi, auf dem auch ein Apa­che läuft. Der stellt einen rever­se Pro­xy mit HTTPS (selbst­si­gnier­te Zer­ti­fi­kat) zur ver­fü­gung, der dann mit plain HTTP auf HA wei­ter­ver­mit­telt. Bleibt aber das Pro­blem mit den Zer­ti­fi­ka­ten.
Aber ich habe ja noch einen Root-Ser­ver im Inter­net! Und der hat ein rich­ti­ges Wild­card-Zer­ti­fi­kat. Also habe ich auch dort einen rever­se Pro­xy instal­liert, der dann per HTTPS auf mei­nen Heim-IP geht, dort gibt es dann in der Tat ein Port­for­war­ding auf den HTTPS-Pro­xy auf dem Raspi.
Funk­tio­niert!
Der Apa­che auf dem Raspi:


  ServerName hass.sokoll.com
  ServerAdmin webmaster@sokoll.com
  ErrorLog ${APACHE_LOG_DIR}/hass.sokoll.com-error.log
  CustomLog ${APACHE_LOG_DIR}/hass.sokoll.com-access.log combined
  SSLEngine on
  SSLCertificateFile /etc/ssl/private/raspi.crt
  SSLCertificateKeyFile /etc/ssl/private/raspi.key
  ProxyPreserveHost On
  ProxyRequests off
  ProxyPass /api/websocket ws://localhost:8123/api/websocket
  ProxyPassReverse /api/websocket ws://localhost:8123/api/websocket
  ProxyPass / http://127.0.0.1:8123/
  ProxyPassReverse / http://127.0.0.1:8123/
  RewriteEngine on
  RewriteCond %{HTTP:Upgrade} =websocket [NC]
  RewriteRule /(.*)  ws://localhost:8123/$1 [P,L]
  RewriteCond %{HTTP:Upgrade} !=websocket [NC]
  RewriteRule /(.*)  http://localhost:8123/$1 [P,L]

Der auf dem Root-Ser­ver:


  Protocols h2 http/1.1
  ServerName hass.sokoll.com
  ServerAlias home.sokoll.com
  ServerAdmin webmaster@sokoll.com
  ErrorLog ${APACHE_LOG_DIR}/hass.sokoll.com-error.log
  CustomLog ${APACHE_LOG_DIR}/hass.sokoll.com-access.log combined
  SSLEngine on
  SSLCertificateFile  /etc/dehydrated/certs/wildcard_sokoll.com/fullchain.pem
  SSLCertificateKeyFile /etc/dehydrated/certs/wildcard_sokoll.com/privkey.pem
  ProxyRequests off
  ProxyPreserveHost On
  ProxyPass /api/websocket wss://91.66.58.188/api/websocket
  ProxyPassReverse /api/websocket wss://91.66.58.188/api/websocket
  ProxyPass / https://91.66.58.188/
  ProxyPassReverse / https://91.66.58.188/
  SSLProxyEngine on
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerExpire off
  SSLProxyCheckPeerName off


  ServerName hass.sokoll.com
  ServerAlias home.sokoll.com
  ServerAdmin webmaster@sokoll.com
  RedirectMatch permanent ^/(.*) https://hass.sokoll.com/$1

Die webso­cket-Geschich­ten habe ich mir aus dem Inter­net zusammengeklau(b)t, natür­lich. Bis­lang habe ich kei­ne Feh­ler bemerkt.

0

Home Automation wird niemals das große Ding werden

Weil es kein home auto­ma­ti­on gibt. “Ale­xa, fah­re die Rol­lä­den¹ run­ter!” ist kaum intel­li­gen­ter als “Frau, hol’ das Bier aus dem Kühl­schrank!” Home auto­ma­ti­on ist dann, wenn Gerä­te regel­ge­steu­ert inter­agie­ren kön­nen, auch unter Berück­sich­ti­gung äuße­rer Bedin­gun­gen.

Wenn die Bes­te Ehe­frau von allen² Früh­dienst hat, dann klin­gelt ihr Wecker um 04:30:00 Uhr, und ihre Nacht­tisch­lam­pe geht exakt um 04:30:03 an für 3 Minu­ten. Aber eben nur wenn sie Früh­dienst hat. Das zu beto­nen ist wich­tig. Ob sie Früh­dienst hat, steht in ihrem Kalen­der. Die Ver­knüp­fung von Kalen­der­ein­trag und Lam­pe ist ein schö­nes Bei­spiel für Auto­ma­ti­sie­rung (hier für die Neu­gie­ri­gen).

Aber wer bie­tet mir das? Klar könn­te es einen Anbie­ter für Lam­pen-Kalen­der-Soft­ware geben. Aber das ist nicht die Lösung. Und so geht der Trend schein­bar zu Dut­zen­den Apps, die jede ein­zeln ent­we­der Lam­pen oder Toas­ter oder Staub­sauger oder… steu­ern. Aber ver­knüp­fen kön­nen sie dies sel­ten, und wenn über­haupt, dann nur weni­ge Lam­pen­her­stel­ler mit weni­gen Toas­ter­her­stel­lern. IFTTT? Damit dürf­te Otto Nor­ma­luser über­for­dert sein, und natur­ge­mäß benö­tigt IFTTT die Zugangs­da­ten für alle betei­lig­ten Diens­te, das will man wohl eher nicht. Und natür­lich: Inter­net-Zwang, denn ohne gehts nicht.

Aber es gibt ja noch die gan­zen tol­len Pro­jek­te: Open­HAB, FHEM, Home­As­si­stant… Ja, die kön­nen wirk­lich home auto­ma­ti­on in groß­ar­ti­ger Qua­li­tät — für die Nerds. Jeden­falls Home­As­si­stant ist affen­geil (und es gibt wenig Grün­de anzu­neh­men die ande­ren sei­en weni­ger affen­geil) — wenn man sich dar­auf ein­läßt.
Aber mas­sen­taug­lich ist das nicht — und wird es nie wer­den kön­nen.
Es sei denn, die Indus­trie einig­te sich auf einen gemein­sa­men Stan­dard, und wir wis­sen alle, daß die Indus­trie Stan­dards liebt — jeder Her­stel­ler einen ande­ren.

Momen­tan scheint ja Ama­zon mit Ale­xa-Skills Köni­gin der Blin­den und Ein­äu­gi­gen zu sein — nur intel­li­gent ist das alles nicht.

Smart home wird es nicht geben, nicht für die Mas­se.


¹ ja, ich mei­de die neue Recht­schrei­bung, auch wenn Roll­lä­den in der Tat logisch ist 😉
² Daß mir Kis­hon die­se Idee geklaut hat, wer­de ich ihm nie ver­zei­hen

0

Pluggit, HomeAssistant, Internet, 👏, 🤗, 👍

Vor­ges­tern kam eine Mail auf mei­nen Pri­vat-Account, mit der ich im Leben nie­mals nicht gerech­net hat­te, ich zitie­re ger­ne den Anfang:

Hi Rai­ner,

 

da ich über dei­ne Web­sei­te auch auf die Idee kam, die Anla­ge mit Home Assi­stant zu ver­bin­den, fol­gend mal der Code, den ich in mei­ner configure.yaml habe:

Und dann ein Hau­fen yaml.

Und die Schei*e funk­tio­niert!!!
Ich habe nur an ein paar Stel­len ein­ge­grif­fen (Anzei­gena­men geän­dert, Sen­so­ren, die ich nicht habe (Luft­feuch­te, Luft­qua­li­ti­ät…) raus­ge­las­sen…) — und nun ists schick.

Ich bin dem Ein­sen­der zu tiefs­tem Dank ver­pflich­tet, ich hät­te das wohl nie hin­be­kom­men:

Und im Git­lab gibts die Con­fig-Ände­run­gen.

Noch­mal an den Spen­der: DANKE! Dan­ke!! DANKE!!!

0