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 | ReviewUrsprü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