Home Assistant Historie auf die eigenen Bedürfnisse anpassen

Die Home Assistant Historie ist eine gute Funktion um Abläufe oder Temperaturen zu überwachen.

 

Die Home Assistant Historie

Mit der steigenden Anzahl an Sensoren wird auch die Historie unübersichtlicher.

Home Assistant Historie

Es gibt verschiedene Möglichkeiten die Historie auf das Wesentliche zu beschränken.

 

Nur bestimmte Entities anzeigen

Um nur bestimmte Entities anzuzeigen reicht folgende Konfiguration:

# Example configuration.yaml entry
history:
  include:
    entities:
      - binary_sensor.mein_rechner
      - sensor.yr_temperature

Es wird in der Historie also nur der Status von „Mein Rechner“ und die „Temperatur“ angezeigt:

Home Assistant Hisotrie Entity

 

Include und Exclude

Benutzen wir nun „exclude“ anstatt „include“ erreichen wir genau das Gegenteil.

# Example configuration.yaml entry
history:
  exclude:
    entities:
      - binary_sensor.mein_rechner
      - sensor.yr_temperature

In diesem Beispiel zeigt die Home Assistant Historie alle Werte, außer „Mein Rechner“ und „Temperatur“, an.

 

Arbeiten mit Domains

Domains sind eine weitere Möglichkeit die Historie von Home Assistant zu beeinflussen.

Schauen wir uns dieses Beispiel an:

# Example configuration.yaml entry
history:
  exclude:
    domains:
      - automation
      - weblink
      - updater
    entities:
      - sensor.last_boot
      - sensor.date

In diesem Beispiel wird eine Reihe von History-Verläufen mittels „exclude“ ausgeblendet.

Die Bereiche „automation“, „weblink“ sowie „updater“ werden von der Historisierung ausgeschlossen. Sie werden also nicht in der Oberfläche angezeigt.

Zusätzliche wird noch der Sensor „last_boot“ und „date“ ausgeschlossen.

Status eines Netzwerkgerätes in Home Assistant anzeigen

Home Assistant kann durch ein einfaches Ping den Status „on“ oder „off“ diverser Netzwerggeräte anzeigen.

Dadurch lassen sich Automatismen wie folgende umsetzen:

Wenn der Fernseher eingeschaltet wird, dimmt das Licht herunter.

 

Konfiguration des „binary_sensor“ für jedes der Netzwerkgeräte

Um ein Netzwerkgerät zu überwachen reicht uns seine IP Adresse:

binary_sensor:
  - platform: ping
    host: 172.30.4.30
    name: Mein Rechner

 

Nun haben wir eine neue Entity „binary_sensor.mein_rechner“ die wir in einer Gruppe anzeigen können:

group:
  Netzwerkgeraete:
    name: Netzwerkgeraete
    entities:
      - binary_sensor.mein_rechner
  Sonstiges_View:
    name: Sonstiges
    view: yes
    entities:
      - group.Netzwerkgeraete

 

Das Ergebnis zeigt den Status des Gerätes mit „on“ oder „off“:

Netzwerkgeräte in Home Assistant

Den Status von Home Assistant per E-Mail verschicken

Home Assistant Status Email Kurz

Ihr wollt einen Status eurer, an Home Assistant angeschlossenen, Geräte von extern sehen, aber möchtet ungern eure Firewall für Zugriff aus dem Internet freigeben?

Dann habe ich hier eine einfache und schnelle Lösung für das Problem.

Das einzige was ihr benötigt ist einen Email-Account allein für Home Assistant.

 

„IMAP Unread Email“ Sensor anlegen

Zuerst legen wir einen neuen Sensor mit der Platform IMAP an.

Wir geben ihm alle Zugangsdaten zum Zugriff auf unser Email Konto.

# configuration.yaml
sensor:
  - platform: imap
    name: imap_state_req
    server: imap.strato.de
    port: 993
    username: a.b@c.de
    password: abc123!

 

„SMTP“ Notification anlegen

Nun benötigen wir noch eine SMTP Notification. Diese „notify“ Komponente wird später die Email verschicken. Auch hier müssen wir alle Zugriffdaten für das Email-Konto eintragen

# configuration.yaml
notify:
  - name: smtp_state_ans
    platform: smtp
    server: smtp.strato.de
    port: 587
    timeout: 15
    sender: a.b@c.de
    starttls: true
    username: a.b@c.de
    password: 123abc!
    recipient:
      - info@c.de
    sender_name: Home Assistant

 

Automatisation erstellen

Jetzt fehlt noch die Automatisation an sich.

Der Trigger löst aus sobald sich der Status unseres IMAP Sensors ändert. Also die Anzahl der ungelesenen Emails im Postfach steigt oder sinkt.

Die Aktion verschickt eine HTML-Email mit HTML-codiertem Inhalt.

Die Konfiguration „images“, mit der .jpg Datei, muss so in der Konfiguration vorhanden sein, ansonsten funktioniert die Aktion nicht. Das scheint ein Bug in Home Assistant zu sein.

# configuration.yaml
automation:
  - id: statreq
    alias: Reagiere auf Status Anfragen
    trigger:
      platform: state
      entity_id: sensor.imap_state_req
    action:
      service: notify.smtp_state_ans
      data_template:
        title: 'Home Assistant Status'
        message: 'Status'
        data:
            images:
                - /home/pi/snapshot1.jpg
            html: >
                 This is my email text!
                 Status Alarmanlage: {{ states.binary_sensor.fibaro_system_fgbs001_universal_binary_sensor_sensor_4_0.state }} 

 

Schicken wir nun eine E-Mail an a.b@c.de erhöht sich die Anzahl der ungelesenen Emails im Postfach und Home Assistant verschickt eine Status E-Mail an info@c.de.

So könnte die E-Mail dann aussehen:

Home Assistant Status Email

 

Der Vorteil an dieser Konfiguration ist das die Status E-mails immer an die vordefinierte Adresse verschickt werden. Dh. selbst wenn jemand diese Funktion ausnutzen möchte bekommt er selber nie eine Status E-Mail zugesandt.

Temperatur Offset in Home Assistant konfigurieren

Manche Temperatur Sensoren haben das Problem das sie konstant ein paar Grad Abweichung von der tatsächlichen Temperatur haben.

Um das auszugleichen gibt es die Platform „template“ in der Komponente „sensor“.

 

Gehen wir also davon aus wir haben einen Temperatursensor

Zum Beispiel einen von denen hier:
Fibaro FIBEFGMS-001-ZW5 5G 4-in-1 Multisensor
Aeotec Multi-Sensor 6 ZW100-C – Z-Wave Plus
Cyrus SmartHome 4-in-1 Multisensor Z-Wave Plus (Bewegung / Temperatur / Luftfeuchtigkeit / Licht)
Aeon Multi Sensor Gen5

Die Identity heißt hier als Beispiel „sensor.yr_temperature“.

# Weather Prediction
sensor:
  - platform: yr
    monitored_conditions:
      - temperature
      - Symbol

Nun ist es aber tatsächlich 1 Grad wärmer draußen als angegeben.

Um diese Abweichung (Offset) zu beheben konfigurieren wir in der „configuration.yaml“ eine neue Platform „template“:

# Weather Prediction
sensor:
  - platform: yr
    monitored_conditions:
      - temperature
      - symbol
  - platform: template
    sensors:
      yr_temperatureoff:
        value_template: '{{ states.sensor.yr_temperature.state | float + 1 }} C'

Der neue sensor „sensor.yr_temperatureoff“ kann nun als zusätzlicher Sensor in die UI eingebunden werden und zeigt die Temperatur + 1 an:

Home Assistant UI mit Offset

ZigBee – Ikea Tradfri in Home Assistant einrichten

Ikea hat mit dem Tradfri System ein sehr günstiges Smart Home Beleuchtungssystem herausgebracht. Lampen sind schon ab 10€ zu bekommen und das Gateway Kostet knappe 30€.

Natürlich hat Home Assistant auch hierzu eine Integration.

 

Was wir benötigen

  • Gateway
  • Lampe
  • Fernbedienung

Als Starterset gibt es diese drei Dinge mit einer zusätzlichen Birne für 75€. Ein echtes Schnäppchen im Gegensatz zu Hue und Lightify.

Zuerst müsst ihr das Gateway, die Fernbedienung und die Lampe so in Betrieb nehmen wie von Ikea vorgesehen. Auch nach der Integration in Home Assistant funktioniert das Ikea System komplett autark, mit der Ausnahme das es sich zusätzlich über Home Assistant steuern lässt.

 

Home Assistant vorbereiten (mit HassIO entfällt dieser Schritt!)

Damit Home Assistant mit dem Tradfri Gateway sprechen kann müssen vorher „libtool“ und „autoconf“ installiert werden:

$ sudo apt-get install libtool
$ sudo apt-get install autoconf

$ git clone --depth 1 --recursive -b dtls https://github.com/home-assistant/libcoap.git
$ cd libcoap
$ ./autogen.sh
$ ./configure --disable-documentation --disable-shared --without-debug CFLAGS="-D COAP_DEBUG_FD=stderr"
$ make
$ sudo make install

 

Komponente in Home Assistant einrichten

Wenn bei euch die „discovery“ Komponente aktiviert ist (in der „configuration.yaml“) dann findet Home Assistent, nach einem Neustart, das Gateway von alleine. Ihr müsst nur den Code eingeben den ihr auf der Unterseite des Ikea Tradfri Gateways findet:

Solltet ihr die „discovery“ Funktion nicht nutzen wollen, könnt ihr Tradfri auch manuell in der „configuration.yaml“ eintragen. Alles was ihr dazu braucht ist die IP-Adresse des Gateways in eurem Netzwerk und natürlich den Schlüssel der auf dem Gateway steht:

# Example configuration.yaml entry
tradfri:
  host: IP_ADDRESS
  api_key: API_KEY

Die Lampen werden nun automatisch als „light“ Entity hinzugefügt. Die Namensgebung orientiert sich an den Namen die ihr mit der Tradfri App vergeben habt.

Bei jedem Neustart des Home Assistant Dienstes dauert es ca. 30 Sekunden bis die Tradfri Entities verfügbar sind. Er holt sich die Informationen immer frisch vom Gateway.

 

Weblinks in Home Assistant UI anzeigen

Weblinks könnt ihr benutzen um schnellen Zugrif auf euere Router Konfiguration zu haben. Oder ihr wollt schnell zu Google? Kein Problem.

Home Assistan Weblinks

Weblinks konfigurieren

Als erstes legen wir für jeden Weblink eine Entity in Home Asisstant an:

weblink:
  entities: 
    - name: Router
      url: http://192.168.1.1/
      icon: mdi:router-wireless 
    - name: Synology
      url: http://192.168.1.2/
      icon: mdi:network

Danach weisen wir die Entities einer Gruppe zu:

group:
  Wetter:
    name: Wetter
    entities:
      - sun.sun
      - sensor.yr_symbol
  Links:
    name: Links
    entities:
      - weblink.router
      - weblink.synology
  Wetter_View:
    name: WetterView
    view: yes
    entities:
      - group.Wetter
      - group.Links

Fertig!

Grundlagen in Automatisation mit Home Assistant

Automatisation mit Home Assistant wird in der „configuration.yaml“ mit der „automation“ Komponente konfiguriert.

Die Basis bilden zwei Teile, der „trigger“ und die „action“. Zusätzlich kann noch eine „condition“ hinzugefügt werden.

 

Unsere erste Automatisation

Beginnen wir mit einem Automatismus der das Licht einschaltet wenn es Regnet

Unser Sensor „sensor.precip_intensity“ gibt uns Werte wie „dry“ und „rain“ wieder.

Unsere Wohnzimmer Licht hat die Entity „light.couch_lamp“

Wir definieren also einen Trigger der ausgeführt wird sobald „sensor.precip_instensity“ auf den Status „rain“ wechselt.

Als Aktion soll dann das Licht „light.couch_lamp“ eingeschaltet werden.

automation:
  - alias: 'Rainy Day'
    trigger:
      - platform: state
        entity_id: sensor.precip_intensity
        from: 'dry'
        to: 'rain'
    action:
      service: light.turn_on
      entity_id: light.couch_lamp

Der „trigger“ löst also die Automatisation aus. Die „action“ definiert was dann passiert.

Zusätzlich können wir noch eine „condition“ hinzufügen.

Wir möchten also das die Automatisation ausgeführt wird wenn es regnet. Aber wir wollen das er zusätzlich noch prüft ob wir zu Hause sind und ob es zwischen 14 und 23 Uhr ist.

automation:
  - alias: 'Rainy Day'
    trigger:
      - platform: state
        entity_id: sensor.precip_intensity
        from: 'dry'
        to: 'rain'
    condition:
      - platform: state
        entity_id: group.all_devices
        state: 'home'
      - platform: time
        after: '14:00'
        before: '23:00'
    action:
      service: light.turn_on
      entity_id: light.couch_lamp

Das Bedeutet der auslösende Faktor ist der Regensensor, wenn allerdings die „conditions“ nicht erfolgreich sind, wird auch die „action“ nicht ausgeführt.

Aeon Multisensor Gen5 mit Z-Wave Plus

Aeon Multisensor Gen5

Der Aeon Multi Sensor Gen5 von „Aeon“ ist ein Z-Wave Plus Produkt, das folgende Sensordaten liefert:

  • Temperatur
  • Helligkeit
  • Luftfeuchtigkeit
  • Bewegung

Ein großer Vorteil an diesem Sensor ist das er auch mit einem USB Netzteil (5V) Betrieben werden kann. Man ist also nicht auf Batterien angewiesen. Gerade bei häufiger Übertragung der Sensordaten ist das ein großer Vorteil.

Angelernt wir der Sensor am besten mit einem Aeon Labs Z-Stick S2.

Knopf drücken auf dem Stick und danach Knopf drücken auf dem Sensor und schon sind die Geräte verbunden.

Home Assistant zeigt nicht nur die eigentlichen Sensordaten an sondern auch eine allgemeine Information über das Gerät und seinen Status:

Home Assistant UI

 

Konfigurieren der Übertragungsrate des Aeon Multisensor 

Die Übertragung der Sensordaten ist sehr sporadisch. Ich vermute die Daten werden nur zu Home Assistant übertragen wenn eine Bewegung lokalisiert wird.

Diesem Problem kann man aber Abhilfe schaffen, indem man den Sensor an ein Netzteil anschließt und die Übertragungsrate auf 60 Sekunden konfiguriert.

Dazu wählt man das Gerät im Z-Wave Manager von Home Assistent aus:

Home Asisstent UI Z-Wave Nodes

Und setzt folgende Konfigurationen:

Home Asisstent UI Z-Wave Config

„Group 1 Reports“ = 225
„Group 1 Intervall“ = 60

Somit überträgt der Sensor alle 60 Sekunden die kompletten Sensorwerte.

Kontrollieren kann man das in der Haupt-Entity des Gerätes im Wert „sendTS“.

 

Abus Terxon SX/MX Alarmanlage an Home Assistent anbinden

Eine der beliebtesten Alarmanlagen für den Privatgebrauch sind die Abus Terxon SX und MX. Der Grund ist das sie nicht nur relativ günstig sind sondern auch äußerst zuverlässig.

In diesem Tutorial zeige ich wie man eine ABUS Terxon SX/MX per Z-Wave an Home Assistant anbindet und folgende Informationen überträgt:

  • Alarmanlage scharf
  • Alarmanlage ausgelöst

 

Die Grundlagen

Wenn wir davon aus gehen das unser Home Assistant Z-Wave bereits unterstützt benötigen wir noch zusätzlich folgende Dinge:

Die ABUS Terxon hat 8 zusätzliche Transistorausgänge. Diese können aber nicht direkt an den Fibaro Universalsensor angeschlossen werden. Dazwischen muss ein Relais das von den Transistorausgängen geschaltet wird und dem Universalsensor das 0 oder 1 liefert.

 

Die Verkabelung

Zuerst verbindet man die ABUS Relaisplatine mit dem ABUS Terxon Mainboard der Alarmanlage:

Abus Terxon Relaisplatine

Nun verbinden wir den Fibaro Sensor mit der Relaisplatine:

Fibaro Universalrelais

Anschluss Kabel Kabelfarbe Wohin
Fibaro Sensor Rot (DC) Fibaro Rot Zu Netzteil 12V AUX
Fibaro Sensor Blau (GND) Fibaro Blau Zu Netzteil 0V
Fibaro Sensor Blau (GND) Fibaro Blau Zu Relaismodul (AZ4140) – CHAN 1 – C
Fibaro Sensor Blau (GND) Fibaro Blau Zu Relaismodul (AZ4140) – CHAN 2 – C
Fibaro Sensor Gelb Fibaro Gelb Zu Relaismodul (AZ4140) – CHAN 1 – NO
Fibaro Sensor Grün Fibaro Grün Zu Relaismodul (AZ4140) – CHAN 2 – NO

 

Das sieht dann so aus:

Abus Terxon mit Z-Wave verkabelung

Da mir die ABUS Relaisplatine zu teuer war habe ich mir eine 2-Kanal Relaisplatine selber gebaut (Kosten 3,68 €)

 

Programmierung der Abus Terxon

Nun müssen die „Zusätzlichen Ausgänge“ der Alarmanlage programmiert werden.

 

Der Schaltausgang soll nicht invertiert werden:

Errichtermenü -> Parameter 159 -> 00

 

CHAN1 auf Signalisierung Zustand „Scharf“:

Errichtermenü -> Parameter 151 -> 13 (Aktiv folgend)

 

CHAN2 auf Signalisierung Zustand „Alarm“:

Errichtermenü -> Parameter 152 -> 03 (Einbruch folgend)

 

Fibaro Sensor an Home Assistant anlernen

Das anlernen des Fibaro Sensors funktioniert wie gewohnt.

1x drücken auf den Z-Wave Stick

3x drücken auf den Fibaro Sensor

und schon sollte das anlernen geklappt haben.

 

Konfiguration von Home Assistant

Nach einem Neustart von Home Assistant wird der Fibaro Sensor mit drei neuen Entities angezeigt. Zwei davon sind die eigentlichen Binäreingänge: (hier Node 4)

Nun können sie „customized“ werden:

# Example from configuration.yaml 
binary_sensor.fibaro_system_fgbs001_universal_binary_sensor_sensor_4_0:
  friendly_name: Alarmanlage Scharf
  icon: mdi:lock
binary_sensor.fibaro_system_fgbs001_universal_binary_sensor_sensor_4_0_2:
  friendly_name: Alarm ausgelöst
  icon: mdi:alarm-light

Und natürlich auch innerhalb einer Gruppe angezeigt:

# Example from configuration.yaml
Group_Alarmanlage:
  name: Alarmanlage
  entities:
    - binary_sensor.fibaro_system_fgbs001_universal_binary_sensor_sensor_4_0
    - binary_sensor.fibaro_system_fgbs001_universal_binary_sensor_sensor_4_0_2

Fehler in Home Assistant finden und beheben

Die erste Informationsquelle ist immer die „home-assistant.log“. Diese Datei liegt im gleichen Ordner wie die „configuration.yaml“. In der Grundeinstellung von Home Assistant werden hier schon rudimentäre Informationen über Fehler mitgeloggt.

 

Konfigurationen werden nicht übernommen

Die häufigsten Fehler passieren durch eine fehlerhafte „configuration.yaml“, sind aber meist leicht zu erkennen.

Als Beispiel baue ich einen Fehler in die „group“ Komponente ein:

group:
  Wetter:
  nasme: Wetter
  entities:
    - sun.sun
    - sensor.yr_symbol

Wenn ich nun die Gruppen aktualisiere („Menu -> Configuration -> Reload Group“) bekomme ich folgenden Log Eintrag in der „home-assistant.log“ Datei:

2017-05-30 14:38:26 ERROR (MainThread) [homeassistant.config] Invalid config for [group]: [nasme] is an invalid option for [group]. Check: group->group->Wetter->nasme. (See C:\Users\kuepperj\AppData\Roaming\.homeassistant\configuration.yaml, line 65). Please check the docs at https://home-assistant.io/components/group/

Die Fehlermeldung erklärt den Fehler recht genau. Dieses Glück hat man natürlich nicht immer!

 

Home Asisstant ist nach einem Neustart nicht mehr erreichbar

Wenn man an der Konfiguration eine Veränderung vor genommen hat ist es oft nötig den Home Assistant Service neu zu starten.

Sollte man etwas falsch konfiguriert haben ist die WebUI nach dem Neustart eventuell nicht mehr erreichbar.

Auch hier hilft ein Blick in das Logfile.

Zusätzlich lässt sich der Home Assistant Dienst über SSH manuell stoppen und starten:

$ sudo systemctl stop home-assistant@homeassistant.Service

$ sudo systemctl start home-assistant@homeassistant.Service

 

Wenn der Inhalt des Logfiles nicht ausreicht

Über die „configuration.yaml“ kann das Log erweitert werden.

In diesem Fall wird alles geloggt:

# Example configuration.yaml entry
logger:

Logge alles was „kritisch“ ist:

# Example configuration.yaml entry
logger:
  default: info
  logs:
    homeassistant.components.device_tracker: critical
    homeassistant.components.camera: critical