Philips Hue Gateway in Home Assistant einbinden

Philips Hue Gateway in Home Assistant einbinden

Philips Hue Gateway in Home Assistant einbinden – Was wir benötigen

Da Home Assistant eine vollständige Integration von Philips Hue besitzt benötigen wir nur ein Gateway:

 

Die Hue Bridge lässt sich einfach nach der beiliegende Anleitung in ein Netzwerk einbinden.

  • Hue Bridge mit dem Netzwerk Verbinden
  • App aus dem App-Store herunterladen
  • App und Hue Bridge Verbinden

Konfiguration in Home Assistant

Die Konfiguration ist mehr als einfach wenn der „Discovery“ Modus aktiviert ist:


# configuration.yaml
discovery:

Home Assistant durchsucht das Netzwerk automatisch und bietet die gefundenen Hue Gateways/Bridges in der Oberfläche an.

 

Manuelle Konfiguration ab Version 0.6

Aber auch wenn der Discovery Modus nicht aktiv ist lässt sich die Hue Bridge einbinden.

Hierzu muss aber die IP-Adresse der Hue-Bridge bekannt sein:


# configuration.yaml
hue:
  bridges:
    - host: 192.168.178.25

 

 

Home Assistant schreibt nun eine phue*.conf Datei in das config Verzeichnis um sie den Zugriffsschlüssel zur Hue Bridge zu merken.

Szenen als Schalter in Home Assistant darstellen

Home Assistant UI Switch

Möchtet ihr viele Lampen mit nur einem Schalter steuern gibt es eine gute Möglichkeit dies mit Home Assistant zu tun.

Lampen mit Szenen zusammenfassen

Mit einer Szene schalte ich meine komplette Ambientebeleuchtung im Haus.

Insgesamt sind es vier Ikea Tradfri Birnen und zwei Z-Wave Relais die im Schaltkasten eingebaut sind.

Der Vorteil ist das ich nicht nur die Lampen ein und aus schalten kann sondern bei den Tradfri Lampen auch den Dimm-Faktor angebe:

scene:
  - name: haus_ambientebeleuchtung_an
    entities:
      light.wz_nahmaschine:
        state: on
        brightness: 10
      light.wz_stehlampe:
        state: on
        brightness: 10
      light.ku_kochinsel_links:
        state: on
        brightness: 10
      light.ku_kochinsel_rechts:
        state: on
        brightness: 10
      switch.ke_haus_ambiente_licht_fibaro_fgs223_switch:
        state: on
      switch.ez_stehleuchte_steckdose_fibaro_fgwpf102_switch:
        state: on

Die gleiche Szene muss nochmal zum ausschalten der Lampen angelegt werden.

Szenen als Schalter in Home Assistant

Nun sieht eine Szene in der UI von Home Assistant nicht wirklich ansprechend aus.

Um auch ein Feedback zu bekommen lege ich ein „template“ Switch an:

switch:
  - platform: template
    switches:
      sw_ha_ambientebeleuchtung:
        friendly_name: Haus Ambientebeleuchtung
        value_template: "{{ is_state('switch.ke_haus_ambiente_licht_fibaro_fgs223_switch', 'on') }}"
        turn_on:
          service: scene.turn_on
          entity_id: scene.haus_ambientebeleuchtung_an
        turn_off:
          service: scene.turn_on
          entity_id: scene.haus_ambientebeleuchtung_aus

Der Switch schaltet die Szenen „an“ und „aus“.

Zusätzlich nimmt der Schalter den Status von dem Switch „ke_haus_ambiente_licht_fibaro_fgs223_switch“ an.

 

Somit spart man viel Platz in der UI und steuert seine Szenen auch mit einem sichtbaren Status (was ansonsten nicht möglich wäre).

Ambiente und helle Außenbeleuchtung in einem – Die intelligente Außenbeleuchtung

Meine Frau hat mich gebeten unsere Außenbeleuchtung „schön“ zu machen.
Das Problem sind aber die ca. 19 Lampen die sie damit gemeint hat.
Wie also bekommt man es hin eine schöne Ambientebeleuchtung und eine helle Außenbeleuchtung zu vereinen, ohne dabei neue Kabel verlegen zu müssen?

Herausgekommen ist ein Konzept das auf bewährte Technologien setzt (Z-Wave und ZigBee), bezahlbar ist, und trotzdem individuell, automatisierbar und erweiterbar ist.

 

Z-Wave und ZigBee

Die Protokolle Z-Wave und ZigBee

Nach meinen bisherigen Erfahrungen in der Haussteuerung möchte ich nur auf bewährte Technologien setzen.

Der Grund dafür ist einfach: Sollte ich zu irgendeiner Zeit keine Lust mehr haben meinen Raspberry Pi zu hegen und zu pflegen, müssen alle angeschlossenen Komponenten Plug&Play über ein anderes Steuerungssystem, zbs. Homee, angebunden werden können.

Da Z-wave und ZigBee momentan die zwei bewährtesten Systeme. Die Vorteile sind das viele Firmen diese Standards unterstützen und es somit kein Monopol eines Herstellers gibt. Beide Funkprotokolle bilden ein Mesh-Netzwerk so das die Reichweite mit jedem eingesetzten Gerät steigt. Außerdem Ergänzen sich Z-Wave und ZigBee indem Z-Wave eher für Sensoren und Aktoren genutzt werden kann und ZigBee in der Beleuchtungssparte seine Heimat hat.

 

Gedanken über ZigBee

Um die gleiche Lampe als Ambiente und als normale Außenbeleuchtung nutzen zu können benötigt man eine Dimmfunktion. Mit gut ausgewählten Leuchtmitteln und einem Dimmschalter wäre das kein Problem umzusetzen, wenn, ja wenn meine Frau nicht darauf bestehen würde das nicht alle 19 Lampen in der Ambiente Beleuchtung mit eingebunden sein sollen. Das Carport zum Beispiel soll nicht beleuchtet werden. Genaus wenig die Garage.

Die Lösung könnte nun aussehen das ich überall neue Kabel ziehe (Was bei einer Grundstücksgröße von ein paar hundert Quadratmetern nicht wirklich Spaß macht). Ich kann aber auch einfach ZigBee Leuchtmittel benutzen. Denn damit lässt sich jede einzelne Birne an und ausschalten, selbst wenn an der Lampe Strom anliegt.

Es ermöglicht also folgendes:

  • Ambiente: 17 von 19 Lampen leuchten auf ca. 20% Leuchtstärke
  • Außenlicht: 19 von 19 Lampen leuchten auf 100% Leuchtstärke

Vorrausetzung dafür ist lediglich das jede der 19 Lampen eine Fassung hat in die ein ZigBee Leuchtmittel passt (Beispiel: Ikea Tradfri, GU10, E27, E14)

 

Gedanken über Z-Wave

Was passiert aber nun wenn die Haussteuerung ausfällt? Lassen sich die ganzen ZigBee Birnen dann nicht mehr steuern?

Für dieses Problem gibt es auch eine Lösung, nämlich einen Relaisschalter der den Stromkreis der Außenlampen ein und aus Schalten kann und der zusätzlich über einen Standard Wandschalter schaltbar ist. (zbs. Fibaro Relais Switch FGS-223)

Ikea Tradfri ZigBee Birnen reagieren nämlich folgendermaßen:

  • Wird der Strom weggenommen schalten sich alle Birnen aus (klar, der Strom ist ja weg)
  • Wird der Strom aber wieder angeschaltet gehen alle Birnen in den letzten bekannten „AN“ Status zurück. Selbst die Birnen die vorher „AUS“ waren leuchten ab diesem Zeitpunkt also wieder.

Mit dieser Lösung kann ich also meinen Standard Wandschalter (der schon immer die Außenbeleuchtung gesteuert hat) weiterverwenden und trotzdem über die Haussteuerung (zum Beispiel Home Assistant) jede Lampe einzeln dimmen.

 

Automatisation mit Home Assistant

Home Assistant steuert die Ambiente Beleuchtung voll automatisch. Bei Sonnenuntergang wird das Licht eingeschaltet (nur die gewünschten Birnen) und gedimmt. Am späten Abend wird das Licht wieder ausgeschaltet.

Beim auslösen des Alarms werden alle Lichter eingeschaltet und auf 100% Leuchtkraft gedimmt.

Drückt man auf den konventionellen Schalter werden alle Birnen automatisch eingeschaltet, wenn auch in der letzten Dimm-Einstellung.

 

Backup eines Raspberry Pi Systems erstellen

SD-Karte

Die SD-Karte in einem Raspberry Pi ist immer eine kleine Schwachstelle im 24/7 Betrieb.

Gerade das ständige schreiben des Betriebssystems sowie von Home Assistant, auf die SD-Karte, führt dazu das sie irgendwann ihren Geist aufgibt.

Es gibt aber auch lebensverlängernde Maßnahmen, wie ein gutes Netzteil oder eine hochwertige SD-Karte.

 

Backup eines Raspberry Pi

Am besten ist es wenn ihr eure SD-Karte nach der grundlegenden Installation und Konfiguration von Home Assistant einfach sichert.

Ihr benötigt dazu nichts weiter als den „Win32DiskImager„.

Ihr fahrt den Raspberry pi herunter und kappt die Stromzufuhr:

$ sudo shutdown -h 0

danach könnt ihr die SD-Karte entfernen und in den Kartenleser eures Windows PC einstetzen.

Nun öffnet ihr Win32DiskImager und wählt das Laufwerk der SD-Karte und einen Speicherplatz für das Image aus:

Win32DiskImage

Nach dem klick auf „Lesen“ wird eine .img Datei erstellt.

Diese lässt sich mit dem gleichen Programm auf einer anderen SD-Karte wiederherstellen. Dazu wählt ihr wieder das Image und das Laufwerk aus und klickt auf „Schreiben“.

 

Einen Nachteil gibt es leider

Das Image lässt sich nur auf SD-Karten wiederherstellen die größer sind als die Ursprungs-SD-Karte!

 

Fibaro Wall Plug FGWPF-102 in Home Assistant einbinden

)Fibaro Wall Plug FGWPF-102

Der Fibaro Wall Plug (FIBEFGWPF-102) ist ein kleiner, unauffälliger Zwischenstecker der nicht nur über Z-Wave geschaltet werden kann sondern auch noch den Stromverbrauch anzeigt.

 

Einbinden des Fibaro Wall Plug FGWPF-102 in das Z-Wave Netzwerk

Nach dem einstecken in eine Steckdose können wir den Wall Plug in unser Z-Wave Netzwerk einbinden.

Dazu den Kontroller in den Anlern-Modus bringen und am Fibaro Wall Plug 3x den kleinen Knopf an der Oberseite drücken.

Der Wall Plug signalisiert den erfolgreichen Anlernprozess über den LED Ring.

 

Neue Entities in Home Assistant

Ich habe das Z-Wave Gerät in „EZ Stehleuchte Steckdose Fibaro fgwpf102“ umbenannt, daher heissen meine neuen Entities folgendermaßen:

zwave.ez_stehleuchte_steckdose_fibaro_fgwpf102
Zeigt den Status des Geräts an

switch.ez_stehleuchte_steckdose_fibaro_fgwpf102_switch
Zeigt den Schaltzustand der Steckdose an, bzw. schaltet die Steckdose

sensor.ez_stehleuchte_steckdose_fibaro_fgwpf102_power
Zeigt den momentanen Verbrauch an der Steckdose an (in Watt)

sensor.ez_stehleuchte_steckdose_fibaro_fgwpf102_energy
Zeigt den gesamten Verbrauch an der Steckdose an (in kWh)

Home Assistant UI

 

 

Übersicht über das anlernen und auslernen eines Z-Wave Gerätes an einen Kontroller

Z-Wave Logo

 

Die meisten Z-Wave Kontroller und Z-Wave Geräte haben unterschiedliche Methoden wie sie in den „inclusion /pair“ (anlern) und „exclusion/unpair“ (auslern) Modus gesetzt werden.

Die Z-Wave Kontroller:

Name Anlernmodus Auslernmodus
Aeon
Z-Stick S2
(DSA02203-ZWUS)
Kurzer Knopfdruck
=> langsames Blinken
Langer Knopfdruck
=> schnelles Blinken

 

Die Z-Wave Geräte:

Name Anlernmodus Auslernmodus
Aeon
Multisensor Gen 5
(ZW074)
1x Knopfdruck 1x Knopfdruck
Fibaro
Double Switch 2
(FGS-2×3)
3x schneller Knopfdruck auf S1 3x schneller Knopfdruck auf S1
Fibaro
Universalsensor
(FBGS-001)
3x schneller Knopfdruck 3x schneller Knopfdruck
Fibaro
Wall Plug
(FGWPF-102)
3x schneller Knopfdruck 3x schneller Knopfdruck

Fibaro Double Switch 2 FGS-223 in Home Assistant einbinden

 

Fibaro Double Switch 2

Der Fibaro Double Switch 2 (FIBEFGS-223) ist ein kleines Relay mit dem zwei Stromkreise über konventionelle Schalter und Z-Wave geschaltet werden können.

Zusätzlich misst das kleine Gerät den Strom in Watt und kWh und gibt diese Informationen an Home Assistant weiter.

Anschluß des Fibaro Double Switch 2

Der Anschluß ist recht simple: (bei diesen Arbeiten immer vorher den Strom abstellen!)

  • L = Phase (meist braun)
  • N = Neutral (meist blau)
  • Q1 = Erster Stromkreis der geschaltet werden soll
  • Q2 = Zweiter Stromkreis der geschaltet werden soll
  • S1 = Erster Schalter
  • S2 = Zweiter Schalter

Die Schalter können auf durch Taster ersetzt werden, hierfür muss allerdings eine Konfiguration über Z-Wave erfolgen.

Beispiel in eine Schaltkasten: (Die Kabelfarben bei S1 und S2 sind nicht den Regeln entsprechend, daher bitte nicht darauf achten)

Fibaro Double Switch 2 im Schaltkasten

 

Einlernen des Switches

Um den Switch zu pairen drücken wir den Knopf auf dem Aeon Z-Stick ein mal kurz (Der Stick fängt an langsam zu blinken)

Nun Drücken wir 3x schnell hintereinander den Schalter an S1 des Fibaro Double Switch 2.

Der Z-Stick bestätigt nun das Einlernen durch eine Unterbrechung des Blinken.

Nachdem der Stick wieder in den Raspberry Pi gesteckt wurde muss Home Assistant zweimal neu gestartet werden, um alle Entities mit korrekten Namen anzuzeigen.

Neue Entities

Folgende Entities werden nun, unter Anderen, in Home Assistant angezeigt:

Zwei für die Schalter:

  • switch.fibaro_system_fgs223_double_relay_switch_6_0
  • switch.fibaro_system_fgs223_double_relay_switch_6_0_2

Zwei für den aktuellen Stromverbrauch in Watt:

  • sensor.fibaro_system_fgs223_double_relay_power_6_8
  • sensor.fibaro_system_fgs223_double_relay_power_6_8_2

Zwei für den Gesamtverbrauch in kWh:

  • sensor.fibaro_system_fgs223_double_relay_energy_6_0
  • sensor.fibaro_system_fgs223_double_relay_energy_6_0_2

 

Egal wie man nun das Relay auslöst (ob per Schalter oder via Home Assistant) der Status wird in Home Assistant angezeigt und kann auch für Automatismen benutzt werden. Es sind keine weiteren Einstellungen nötig!

 

Fazit:

Meiner Meinung nach ist der Fibaro Double Switch 2 (FGS-223) wirklich empfehlenswert, da man für 45€ ein sehr einfach zu integrierendes und voll funktionierendes Z-Wave Produkt bekommt. Mit dem Konkurrenz Produkt von Philio (PAN04-1b) hatte ich in der Hinsicht weniger Glück.

Aeon Z-Stick – mit Home Assistant Z-Wave Geräte verwalten

In der Z-Wave Welt ist es nicht immer ganz einfach neue Geräte zu verwalten, da es hierfür keine einheitliche Spezifikation gibt. Dieser Blogeintrag soll ein bisschen Licht in die grundlegende Funktionen der Geräteverwaltung in einem Z-Wave Netzwerk bringen.

 

Wichtig sind hierbei zwei Begriffe:

Z-Wave Controller: Das ist der Aeon Labs Z-Stick S2
oder ein anderes Gerät das ein Z-Wave Netzwerk kontrolliert

Z-Wave Gerät: Das kann jeder Sensor oder Aktor sein, den man einbinden möchte

 

Um ein Z-Wave Gerät zu nutzen muss es also immer an den Controller angelernt werden. Die zwei lernen sich also kennen um zu Kommunizieren.

Ein Gerät kann natürlich auch entfernt werden oder im schlimmsten fall sogar ausfallen.

Was dann zu tun ist habe ich in vier einfachen Punkten beschrieben:

 

Neues Gerät anlernen mit dem Aeon Z-Stick

  • USB Stick entfernen
  • 1x kurz drücken am Stick
  • Erfolgreich: Langsames Blinken (Anlernmodus aktiv)
  • Am Gerät drücken (Anleitung beachten)
  • Erfolgreich: Z-Stick blinkt kurz schnell, dann kurz durchgängig.
  • USB Stick einstecken, Home Assistant neu starten

 

Bekanntes Gerät entfernen mit dem Aeon Z-Stick

  • USB Stick entfernen
  • 2 Sekunden gedrückt halten am Stick
  • Erfolgreich: Schnelles Blinken (Entfernmodus aktiv)
  • Am Gerät drücken (Anleitung beachten)
  • Erfolgreich: Z-Stick leuchtet kurz durchgängig.
  • USB Stick einstecken, Home Assistant neu starten

 

Totes Z-Wave Gerät aus Home Assistant entfernen

Sollte ein Z-Wave Gerät nicht antworten wird dies in Home Assistant angezeigt.

Um das Gerät zu entfernen kann ein „Remove Node“ gemacht werden. Dazu wählt man im „Z-Wave Manager“ die entsprechende „Node“ aus und klickt auf „Remove Failed Node“.

Home Asisstent UI Z-Wave Nodes

 

Z-Wave Gerät Reset

Wird ein Z-Wave Gerät nicht mehr benötigt oder verkauft, kann man es vorher resetten.

Dazu wird kein Controller benötigt. Jedoch ist es bei jedem Gerät unterschiedlich wie man einen Reset ausführt.

Beispiel:

Philio PHIEPAN04-1B: Knopf 3x innerhalb von 1,5 Sekunden drücken, danach sofort noch einmal 1x für 5 Sekunden halten bis das Licht ausgeht.

Fibaro Double Switch 2: 3x S1 drücken

Package nutzen um die Konfiguration in Home Assistant übersichtlicher zu machen

Mit „Packages“ lassen sich ganze Teile der Konfiguration zu übersichtlichen Teilen ab splitten.

 

Beispiel Package

Das könnte ein „package“ sein:

Package

Wir splitten also die komplette Gruppe „Time Light“ von unserer „configuration.yaml“ ab.

 

Dafür legen wir eine neue Datei an Namens „my_package.yaml“

$ sudo nano my_package.yaml

Hier fügen wir alles ein was wir für die Gruppe benötigen (Beispielcode):


# my_package.yaml
sensor:
  - platform: template
    sensors:
      auto_light_start:
        friendly_name: 'Lichter an um '
        value_template: '{{ (as_timestamp(states.sun.sun.attributes.next_setting) + (states("input_slider.auto_light_offset_on") | int)  * 60)  | timestamp_custom("%H:%M") }}'
      auto_light_stop:
        friendly_name: 'Lichter aus um '
        value_template: '{{ (as_timestamp("2017-06-09T21:00:00+00:00") + (states("input_slider.auto_light_offset_off") | int)  * 60)  | timestamp_custom("%H:%M") }}'

  - platform: time_date
    display_options:
      - 'time'

input_slider:
  auto_light_offset_on:
    name: Minuten nach Sonnenuntergang
    icon: mdi:timer
    initial: 0
    min: -60
    max: 60
    step: 10
  auto_light_offset_off:
    name: Minuten nach 23Uhr
    icon: mdi:timer
    initial: 0
    min: -60
    max: 60
    step: 10


automation:
  - alias: "auto_light_on enabled"
    trigger:
      platform: state
      entity_id: input_slider.auto_light_offset_on, input_slider.auto_light_offset_off
    action:
    - service: homeassistant.turn_on
      data:
        entity_id:
          - automation.auto_light_on
    - service: homeassistant.turn_on
      data:
        entity_id:
          - automation.auto_light_off
          
  - alias: 'auto_light_on'
    initial_state: True
    trigger:
      - platform: time
        minutes: '/1'
        seconds: 10
    condition:
      condition: and
      conditions:
      - condition: template
        # value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) == states.sensor.auto_light_start.state }}'
        value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) > states.sensor.auto_light_start.state }}'
      - condition: template
        value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) < states.sensor.auto_light_stop.state }}' - condition: state entity_id: group.automatic_lights_outside state: 'off' action: - service: homeassistant.turn_on entity_id: group.automatic_lights_outside - alias: 'auto_light_off' initial_state: True trigger: - platform: time minutes: '/1' seconds: 10 condition: condition: and conditions: - condition: template # value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) == states.sensor.auto_light_stop.state }}' value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) > states.sensor.auto_light_stop.state }}'
      - condition: template
        value_template: '{{ (now().strftime("%s") | int | timestamp_custom("%H:%M")) < states.sensor.auto_light_start.state }}'
      - condition: state
        entity_id: group.automatic_lights_outside
        state: 'on'
    action:
      - service: homeassistant.turn_off
        entity_id: group.automatic_lights_outside

group:

  Automatic Lights Outside:
    name: Automatic Lights Outside
    entities:
      - switch.outdoor_front_big
      - switch.outdoor_front_small

  Timer Light:
    name: Timer Light
    control: hidden
    entities:
    - automation.auto_light_off
    - automation.auto_light_on
    - input_slider.auto_light_offset_on
    - sensor.auto_light_start
    - input_slider.auto_light_offset_off
    - sensor.auto_light_stop

Jetzt verknüpfen wir unsere neue „my_package.yaml“ mit unserer Basis Konfiguration in der „configuration.yaml“:


# configuration.yaml
homeassistant:
  # Name of the location where Home Assistant is running
  name: Home
  # Location required to calculate the time the sun rises and sets
  latitude: 51.2993
  longitude: 9.491
  # Impacts weather/sunrise data (altitude above sea level in meters)
  elevation: 0
  # metric for Metric, imperial for Imperial
  unit_system: metric
  # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  time_zone: Europe/Berlin
  packages:
    my_pack: !include my_package.yaml

Nun haben wir eine gekapselte Konfiguration erstellt die wir je nach belieben entfernen oder hinzufügen können.

Zentrale Parameter in Home Assistant

Oftmals möchte man zentrale Parameter verwenden damit wiederkehrende Werte nicht mehrmals innerhalb einer Konfiguration gepflegt werden müssen.

Hierfür bietet Home Assistant eine Lösung über die „secrets.yaml“.

 

Zentrale Parameter anlegen in der „Secrets.yaml“

Als erstes legen wir die „secrets.yaml“ an. Dies tun wir im gleichen Verzeichnis wo auch die „configuration.yaml“ liegt:

$ sudo nano secrets.yaml

Beim schließen des nano Editors wird die Datei automatisch angelegt.

Jetzt ändern wir den Besitzer und die Gruppe der Datei auf „homeassistant“:

$ chown homeassistant:homeassistant secrets.yaml

Zusätzlich können wir noch erweiterte Schreibrechte vergeben die benötigt werden um die Datei in Notepad zu editieren:

$ sudo chmod 664 secrets.yaml

Die Berechtigung sollte nun so aussehen:

Zentrale Parameter secretyaml

 

Parameter einpflegen und benutzen

Nun öffnen wir die „secrets.yaml“ und pflegen zwei Parameter ein:

basic_latitude: 50.943723
basic_longitude: 7.520921

In der „configuration.yaml“ ersetzen wir diese Parameter nun durch entsprechene Platzhalter:

homeassistant:
  name: Zu Hause
  latitude: !secret basic_latitude
  longitude: !secret basic_longitude
  elevation: 141
  unit_system: metric
  time_zone: Europe/Berlin

Nach dem abspeichern werden die Parameter aus der „secret.yaml“ gezogen und müssen nur noch dort gepflegt werden.