Home Assistant Integrationen

‚ě¶ Home Assistant ‚ě® Home-Assistant Oberfl√§che, Bedienung und Benachrichtigung

F√ľr das Einbinden von Ger√§ten werden in Home Assistant sogenannte Integrationen verwendet. Die Integrationen erm√∂glichen eine direkte Kommunikation zu den Ger√§ten, oder das Verbinden von anderen Gateways. Als Beispiel gibt es f√ľr ZigBee-Ger√§te mehrere M√∂glichkeiten wie diese integriert werden k√∂nnen:

ZigBee Integration mit dem ConBee 2 USB-Stick: 3 mögliche Integrationsvarianten:

  1. Phoscon deCONZ¬†(w√ľrde ich nicht empfehlen)
  2. ZHA (empfohlene Variante)
  3. Zigbee2MQTT (mögliche Variante)

Damit ich meine ZigBee-Ger√§te √ľber Home-Assistant steuern kann, verwende ich einen ConBee II USB-Stick. Informationen zum Setup, siehe:¬†Conbee 2: Phoscon deCONZ - Docker Inbetriebnahme | Review.¬†Urspr√ľnglich habe ich die Herstellersoftware des ConBee 2 Sticks verwendet:¬†deCONZ mit der grafischen Oberfl√§che Phoscon.

Alternativ kann ConBee 2 aber auch¬†direkt in Home Assistant eingebunden werden und¬†als dritte M√∂glichkeit √ľber¬†Zigbee2MQTT. Mit den letzten beiden Varianten kann auch ein g√ľnstigerer ZigBee-Adapter, als Beispiel:¬†CC2652 oder CC1352 verwendet werden. Ich habe ca. ein Jahr deCONZ eingesetzt und das Setup dann auf¬†Zigbee2MQTT¬†ge√§ndert, was ich¬† ein weiteres Jahr im Einsatz hatte.¬†Beim Wechsel von¬†deCONZ¬†zu Zigbee2MQTT musste ich¬†die Endger√§te neu verbunden.¬†¬†Zigbee2MQTT funktioniert wunderbar, dennoch teste ich gerade ZHA. Dazu wird es in K√ľrze ein Update mit meinen Erfahrungen beim Wechsel und mit ZHA im Allgemeinen geben. Schon mal soviel: ich musste die Ger√§te dabei nicht komplett neu verbinden.

1) ConBee 2 Hersteller-Software: deCONZ / Phoscon

Wer¬†ConBee und Phoscon bereits im Einsatz¬†hat, muss als Vorbereitung f√ľr die Verbindung von Home Assistant das Phoscon-GW auf ‚ÄěApp verbinden‚Äú stellen:

Über die Benachrichtigung meldet Home-Assistant bereits das erkannte deCONZ-Setup: 

Alternativ kann die Integration auch im Men√ľpunkt¬†Konfiguration hinzugef√ľgt werden:¬†

Details siehe, https://www.home-assistant.io/integrations/deconz/

2) Zugriff auf ConBee 2, direkt aus Home Assistant (Zigbee Home Automation: ZHA)

Alternativ zur Anbindung des ConBee-Sticks √ľber das deCONZ Zigbee Gateway, kann der Stick auch direkt in Home Assistant eingebunden werden, dazu muss Home-Assistant, wie auch der deCONZ-Container, mit dem Parameter ‚Äě--device‚Äú gestartet werden:

docker run -d --name="home-assistant" \
-v ha:/config \
-v /etc/localtime:/etc/localtime:ro \
--net=host \
--restart=always \
--device=/dev/ttyACM0 \
homeassistant/home-assistant:stable

 

  

Ger√§te die zuvor in deCONZ eingebunden wurden, k√∂nne an dieser Stelle nicht weiter verwendet werden, sie m√ľssen erneut verbunden werden:

ZHA ist sicherlich die einfachste Variante um ZigBee-Geräte in HomeAssistant einzubinden. Eine weitere Alternative zu deCONZ und ZHA stellt Zigbee2MQTT dar.  Siehe auch: ZHA Inbetriebnahme und Wechsel von Zigbee2MQTT

3) Unabhängige Lösung: Zigbee2MQTT

Zigbee2MQTT ist eine Zigbee-Bridge f√ľr die Kommunikation zwischen Zigbee und einem MQTT-Broker. Das Setup mit HomeAssistant besteht dabei aus drei Komponenten:

In Home-Assistant kann MQTT in den Integrationen hinzugef√ľgt werden:

Siehe: MQTT - Broker : Docker Setup, bzw. mein komplettes Docker Compose-Setup: Zigbee2MQTT- docker-compose.yml.

Im Vergleich zu Phoscon, siehe: Zigbee2MQTT vs deCONZ und Phoscon

Home Assistant Community Store (HACS)

Eigentlich wollte ich nur ein RGB-Licht in das Dashboard hinzuf√ľgen, geht zwar, aber ohne der M√∂glichkeit die Farbe zu √§ndern: An dieser Stelle h√§tte ich mir mehr erwartet. Die Recherche und Installation einer Integration f√ľr das Steuern von Farben hat mich wesentlich mehr Zeit gekostet als die eigentliche Home Assistant Installation. Daf√ľr habe ich mit HACS aber die Grundlage f√ľr weitere Anpassungen geschaffen. HACS ist eine Integration um GitHub Repositories √ľber eine Art Softwarekatalog herunterzuladen.¬†

Installiert habe ich HACS √ľber einen Befehl im Docker-Container:

user@rechner:~$ docker exec -it home-assistant bash
bash-5.0# wget -q -O - https://install.hacs.xyz | bash -

dann auf Einstellungen, Integration 

und im Anschluss muss die Installation auf GitHub registriert werden, siehe: hacs.xyz/docs/configuration/basic

Ist HACS erst mal installiert, geht das Hinzuf√ľgen von zus√§tzlichen Repositorys relativ einfach:

System Monitor

Um das Betriebssystem - auf dem Home Assistant l√§uft - rudiment√§r zu √ľberwachen, k√∂nnen in der configuration.yaml zus√§tzliche Sensoren hinzugef√ľgt werden, als¬†Beispiel Disk und Memory:

configuraton.yaml:

sensor:
  - platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: /
      - type: disk_use_percent
        arg: /daten
      - type: memory_free    

Server oder Linux-Systeme √ľberwachen

Wer den Status anderer Linux-Systeme √ľberwachen will, kann dazu die Integration ‚ÄěGlances‚Äú verwenden. Glances sammelt Daten zu CPU, Memory oder dem freien Speicherplatz einer Festplatte u.v.m.. Als Voraussetzung muss Glances zuvor auf den zu √ľberwachenden Systemen installiert werden,¬†siehe auch:¬†¬†Glances - Linux-Server √ľberwachen

Template-Sensor

Mit einem Template-Sensor k√∂nnen Sensoren auf Basis bestimmter Werte erstellt werden, z. B. f√ľr Sonnenaufgang und Sonnenuntergang:

configuraton.yaml

sensor:
  - platform: template
    sensors:
      nextsunrise:
        friendly_name: 'Sonnenaufgang'
        value_template: >
          {{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
        icon_template: mdi:weather-sunset-up
      nextsunset:
        friendly_name: 'Sonnenuntergang'
        value_template: >
          {{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
        icon_template: mdi:weather-sunset-down
      nextsunsetsunrise:
        friendly_name: 'Sonne'
        value_template: >
          {{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom(' %H:%M') | replace(" 0", "") }} - {{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
        icon_template: mdi:weather-sunset-up   

Plattform Integration

Um aus einem Momentanwert den Verbrauch zu bestimmen, kann eine sogenannte Plattform-Integration verwendet werden. Als Beispiel kann aus bestimmten Verbrauchswerten: Watt der komplette Verbrauch summiert werden:

sensor:
  - platform: integration
    source: sensor.waschmaschine_power
    name: waschmaschine_energy_sum
    unit_prefix: k
    unit_time: h
    round: 2  

Der Verbrauch wird summiert: 

Um den summierten Verbrauch wieder auf eine bestimmte Zeitspanne zu beziehen, kann die Platform Integration als ‚Äěutility_meter‚Äú verwendet werden:

Utility_Meter

Der Utility-Meter verwendet den Gesamtverbrauch und unterteilt diesen in bestimmte Zeitspannen: z.B. st√ľndlich (hourly) oder (t√§glich) daily:

utility_meter:
  waschmaschine_hour:
    source: sensor.trockner_energy_sum
    name: Waschmaschine hour
    cycle: hourly  
  waschmaschine_daily:
    source: sensor.trockner_energy_sum
    name: Waschmaschine hour
    cycle: daily

Shelly

Nachdem es mit Home Assistant ein leichtes ist, verschiedene Systeme zu verbinden, habe ich neben ZigBee auch einen WLAN-Schalter im Einsatz. Shelly ist ein kleiner Unterputz-WLAN-Schalter f√ľr das Steuern z.B. einer Steckdose.

Nach dem Setup wird das Gerät automatisch dem Standard-Home-Dashboard zugewiesen:

 

Device Tracker OpenWrt

Wer √ľber OpenWrt die Anwesenheit von Ger√§ten tracken will, kann dies mit dem Eintrag device_tracker in der configuration.yaml-Datei:

device_tracker:
  - platform: luci
    host: 192.168.1.2
    username: root
    password: ???
    interval_seconds: 30
    consider_home: 360
    new_device_defaults:
       track_new_devices: true

F√ľr OpenWRT wird dazu das Paket luci-mod-rpc vorausgesetzt. Informationen zu OpenWrt, siehe:¬†Alternative Router Firmware: OpenWrt und nicht mehr DD-WRT

Alternativ kann der Status auch √ľber einen Ping abgefragt werden:

Ping auf ein Netzwerkgerät

Wer √ľber OpenWrt die Anwesenheit von Ger√§ten √ľber einen Ping tracken will, kann dies mit dem Eintrag binary_sensor in der configuration.yaml-Datei:

..
binary_sensor:
  - platform: ping
    name: FireTV
    scan_interval: 120
    host: 192.168.1.104
..

Der Status des Sensors ist je nach Erreichbarkeit des Geräts: "off" oder "on"

MQTT-Geräte als Sensor verbinden 

Nachdem die MQTT-Integration hinzugef√ľgt wurde, kann in der configuration.yaml-Datei ein neuer Sensor angelegt werden:

Voraussetzung f√ľr MQTT ist ein MQTT-Broker-Server, siehe¬†MQTT - Broker : Docker Setup.

Hinzuf√ľgen von einzelnen Sensoren in der¬†configuration.yaml-Datei:

sensor:
  - platform: mqtt
    state_topic: "flowmeter/flow"   
    name: "flowmeter"
    unit_of_measurement: "m³/h"

Services die den MQTT-Broker verwenden:

Troubleshooting ‚Äď deCONZ

EVENTS

In den Developer Tools, kann im Reiter ‚ÄěEVENTS‚Äú beobachtet werden, welche Ger√§te eine Aktion ausl√∂sen, beispielsweise beim Dr√ľcken auf einen Taster:

deconz_event

 

Der Konfigurationsfluss konnte nicht geladen werden

Durch den Betrieb von deCONZ in Docker kann sich beim Neustart die IP-Adresse des deCONZ Containers √§ndern. Home Assistant verwendet nicht den Namen des Containers f√ľr die Verbindung, sondern dessen IP-Adresse, daher funktioniert die Verbindung dann nicht mehr:

Die Einstellung in der Datei .storage/core.config_entries zeigt dann auf eine falsche IP-Adresse:

Markisensteuerung ‚Äď ausgegraut

Ich hatte anfangs das Problem, dass sich meine Markise nur in eine Richtung bewegen ließ.

Bei dem ZigBee-Schalter handelt es sich laut Phoscon um das Modell FB56+CUR17SB2.2 (Heiman)

F√ľr das Anpassen bestimmter Einstellungen wird der erweiterte Modus ben√∂tigt.

Einstellungen: Anpassung

Dadurch k√∂nnen in den Einstellungen bestimmte Attribute ge√§ndert werden, in meinem Fall ‚Äěassumed_state‚Äú

Die Datei customize.yaml wird dadurch wie folgt bef√ľllt:

cover.window_covering_device_10:
  assumed_state: true

Damit die Einstellungen geladen werden, muss die Datei noch in der configuration.yaml angegeben werden:

homeassistant:
  customize: !include customize.yaml

Dann noch den Docker-Container neugestartet und siehe da, jetzt funktioniert auch die andere Richtung:

Daten von falschen Einträgen direkt in der Datenbank bearbeiten

Bei der Integration meiner Wasseruhr habe ich die Einheit von m¬≥/h auf Liter ge√§ndert und dabei falsche Werte in die Datenbank gespielt. Die SQLite-Datenbank kann √ľber Linux-Board mitteln mit dem Befehl sqlite ausgelesen und bearbeitet werden. Achtung bitte unbedingt ein Backup der Datenbank machen, bevor delete oder Update-Statements ausgef√ľhrt werden. Zun√§chst verbinde ich mich in den Docker-Container von Home Assistant:¬†

docker exec -it home-assistant /bin/bash

Im Docker-Container kann mit folgendem Befehlen sqlite installiert und die Datenbank verbunden werden:

bash-5.1# apk add sqlite
bash-5.1# sqlite3 /config/home-assistant_v2.db

Die Verbindung auf die Datenbank erlaubt es beliebige Datenbank-Queries auszuf√ľhren. Als Beispiel k√∂nnen bestimmte Eintr√§ge mit "select" ausgegeben oder mit "delete" gel√∂scht werden:

sqlite> select * from states where entity_id = "sensor.water_value" and last_updated < "2022-12-22 22:56:48.421279";
sqlite> delete from states where entity_id = "sensor.water_value" and last_updated < "2022-12-22 22:56:48.421279";
sqlite> delete from states where entity_id = "sensor.water_state" and state > "890100";

Siehe auch: Home Assistant SQlite - Statistik-Daten ändern

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f√ľr deine Bewertung!


Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details