Home Assistant Oberflächen Konfiguration

Der erste Schritt zur Konfiguration der Oberfläche von Home Assistant ist es zu wissen welche Sensoren und Aktoren „Entities“ euch in eurem System zur Verfügung stehen und wie sie heißen.

 

Verfügbare Entities

Dazu öffnet man das Menu und klickt in den „Developer Tools“ auf die spitzen Klammern:

Home Assistant Entities

Die Entities werden nun mit ihrem Status aufgelistet:

Home Assistant Entities

Da unsere Installation nagelneu ist sehen wir nur zwei „Entities“:

  • sensor.yr_symbol
  • sun.sun

Beide Entities stammen schon aus der aktuellen „Configuration.yaml“ und zwar werden sie mit folgenden Einträgen aktiviert:

# Track the sun
sun:
# Weather Prediction
sensor:
  platform: yr

Als Status sehen wir bei „sensor.yr_symbol“ eine 3. Die Zahl gibt an welches Symbol die Oberfläche für den Status benutzt soll. Die Entity „sun.sun“ gibt den Sonnenstand an unserem Heimatort wieder. In unserem Beispiel „above_horizon“ also über dem Horizont.

 

Oberflächen Konfiguration

In der Oberfläche werden unsere zwei Entities momentan noch in den roten Kreisen angezeigt:

Home Assistant Oberflächen Konfiguration

Sie sind also noch keiner Gruppe zugewiesen.

Wir erstellen also nun eine Gruppe in unserer Oberfläche und fügen dazu diesen Code in die „configuration.yaml“ ein:

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

Es ist wichtig das jede Komponente, in diesem Fall „group:“, nur einmal in der configuration.yaml enthalten ist!

Um die Konfiguration nun sichtbar zu machen müssen wir sie aktualisieren. Im Fall von Gruppen können wir das über die Oberfläche tun. Unter dem Menu Punkt „Configuration“ können wir mit einem Klick auf „Reload Groups“ die WebUI aktualisieren.

Danach sollte das Ergebnis so aussehen:

Home Assistant Oberflächen Konfiguration

 

Nun fügen wir noch eine View (Tab) hinzu, um unsere Gruppe dort anzuzeigen:

group:
  Wetter:
    name: Wetter
    entities:
      - sun.sun
      - sensor.yr_symbol
  Wetter_View:
    name: WetterView
    view: yes
    entities:
      - group.Wetter

Nun wieder ein „Reload Groups“ ausführen und schon wir die neue View in der Oberfläche angezeigt:

Home Assistant Wetter

 

Bezeichnungen anpassen (friendly_name)

Die Entities haben momentan noch die internen Bezeichnungnen „Sun“ und „yr Symbol“. Um dies zu ändern können wir mit dem Parameter „customize“ einen neuen Namen definieren:

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: UTC
  customize:
    sun.sun:
      friendly_name: Sonnenstand
    sensor.yr_symbol:
      friendly_name: Wetter

Um die „customize“ Konfiguration neu zu laden, müssen wir den Home Assistant Service neu starten. Dazu können wir den Menupunkt „Services“ benutzen und dort als „Domain = homeassistant“ und „Service = restart“ auswählen.

Home Assistant Oberflächen Konfiguration

Nach dem Klick auf „Call Service“ wird der Home Assistant neu gestartet. Das kann einige Sekunden dauern, je nach Performance des Systems.

Nun sieht unsere Oberfläche so aus:

Home Assistant Wetter

 

Grundlagen über die Home Assistant Konfiguration

Ihr habt eine lauffähige Home Assistant Installation und möchten nun eigene Konfigurationen vornehmen? Kein Problem, hier erkläre ich wie das geht.

 

Wo findet man die Home Assistant Konfiguration?

Home Assistant ist noch nicht komplett über eine Web UI Oberfläche konfigurierbar. Ich schreibe „noch nicht“ weil im Moment daran gearbeitet wird und bei jedem Release ein wenig mehr zur Verfügung steht.

Der einzige sinnvolle Weg ist es daher Home Assistant über die eigene Konfigurationsdatei zu konfigurieren. Diese heisst „configuration.yaml“ und liegt im „config“ Ordner des Systems.

Um diese Datei konfigurieren gibt es zwei Wege:

  1. Über SSH und ein Dateibearbeitungprogram wie „nano“
  2. Oder ganz einfach über das FTP Plugin von Notepad++

 

SSH installieren

Damit wir uns  überhaupt per SSH auf den Raspberry Pi verbinden können müssen wir das „SSH server“ Add-on in Hass.io installieren.

Klicken wir auf der Weboberfläche im Menu auf „Hass.io“ und danach auf das Korbsymbol oben rechts in der Ecke.

Hassio SSH

Nachdem SSH installiert ist müssen wir noch ein Kennwort vergeben, das machen wir hier:

Hassio SSH Password

 

1. Über SSH und „nano“

Wir verbinden uns mit „Putty“ per SSH auf unseren Home Assistent Webserver (http://192.168.0.2:8123)

Nun Navigieren wir in das home-Verzeichnis des Benutzers „homeassistant“:

$ cd ..
$ cd config

Jetzt können wir die Konfigurationsdatei mit folgendem Befehl öffnen:

$ nano configuration.yaml

Solltet ihr euch mit dem Programm „nano“ nicht so gut auskennen ist es einfacher und übersichtlicher die Datei mit Notepad++ zu konfigurieren.

 

2. Über Notepad++ und das Plugin NppFTP

Über „Erweiterungen -> NppFTP -> Show NppFTP window“ lässt sich eine Sidebar aufrufen: (Sollte der Eintrag im Menu nicht vorhanden sein könnte ihr NppFTP als Plugin nachinstallieren)

Notepad SFTP

Hier kann über den „Einstellungen“ Button eine neue Verbindung zum Raspberry Pi aufgebaut werden:

Notepad SFTP

Mit einem Klick auf „Add new“ kann ein Hostname, Connection type, Port, Username und Password eingegeben werden.

Mit „Close“ speichert man seine Einstellungen. Und mit „Connect“ Verbindet man sich dann:

Home Assistant Konfiguration

 

 

 

Die „configuration.yaml“

Die Konfigurationsdatei ist im yaml Format geschrieben und grundsätzlich als Liste gehalten.

Ich verschaffe euch erstmal einen kleinen Überblick über die wichtigsten Konfigurationen.

 

Die Basiskonfiguration

Home Assistant Konfiguration

Unter dem Punkt „homeassistant“ lassen sich grundsätzliche Dinge konfigurieren:

Name: Name der ersten View in der WebUI
Latitude / Longitude: Koordinaten des Hauses
Elevation: Höhe über Meeresspiegel
Unit_System: In Deutschland gilt das Metrische System
Time_zone: Die Lokale Zeitzone

Diese Informationen werden hauptsächlich für die Uhrzeit und das Wetter benötigt. Beides wird über Online-Dienste bereitgestellt.

 

Weitere Konfigurationen

Home Assistant Konfiguration

Die weiteren Konfigurationen finden sich allesamt in der Komponenten-Übersicht auf der Home Assistant Webseite wieder.

frontend: Aktiviert die WebUI vom Home Assistant Server
updater: Ermittelt verfügbare Updates
discovery: Ermittelt aktive Geräte im Netzwerk, wie Apple TV, Phillips Hue und vieles mehr
conversation: Kann auf Spracheingaben reagieren
history: Speichert den Status aller Entities in einer Historie
logbook: Listet alle von Home Assistent ausgeführten Aktionen auf
sun: Nutzt die konfigurierten Geo-Koordinaten um Online Wetterdaten zu holen
tts: Aktiviert die Google Sprachsteuerung

 

Komponenten die ihr nicht aktivieren möchtet könnt ihr einfach herauslöschen oder mit einer # am Anfang der Zeile aus kommentieren.

Zusätzliche Komponenten können einfach hinzugefügt werden. Eine Übersicht der aktuell Unterstützten Komponenten findet ihr hier.

Yaml unterstützt keine Tabs. Arbeitet also nur mit Leerzeichen!

 

 

 

 

Die Home Assistant WebUI und WebApp Oberfläche

Jetzt da der Home Assistant Server läuft möchte ich kurz die einzelnen Komponenten der Oberfläche (Home Assistant WebUI) erklären.

 

Home Assistant WebUI

1. Das „Menu“

Das Menu enthält verschiedene Möglichkeiten Informationen über angebundene Aktoren oder Sensoren zu erhalten. Außerdem können hier Befehle an den Home Assistant Webservice geschickt werden (zum Beispiel die Aufforderung zum Neustart des Dienstes)

2. Die „View“

Views sind so etwas wie Reiter oder Tabs. Man kann damit verschiedene Bereiche erschaffen, um so die Oberfläche zu strukturieren. In diesem Beispiel: „Zu Hause“, „Szenen“, „Wetter“, „Personen und Geräte“ und „Automatismen“.

3. Die „Group“

Gruppen können verschiedene Sensoren oder Aktoren Thematisch zusammenfassen. In diesem Beispiel: Zwei Beleuchtungen in der Küche.

4. Die „Entity“ Aktor

In den Gruppen sind meist Aktoren vorhanden. Diese werden in Home Assistant „Entity“ genannt und man kann sie meist schalten. In diesem Beispiel eine Deckenlampe mit Phillips Hue oder Ikea Tradfri Birne.

5. Die „Entity“ Sensor

Eine weitere Art der „Entities“ ist der Sensor. Dieser zeigt meist einen Wert in Zahl oder Textformat an und kann in der Automatisation ausgewertet werden. In diesem Beispiel: Die Außentemperatur von einem Online-Wetterdienst.

4. und 5. Dialoge

Dialoge öffnen sich beim Klick auf eine Entity und zeigen zusätzliche Informationen an:

Home Assistant WebUI Dialog

 

Mit diesem Rüstzeug ist es euch möglich die Konfiguration (mit der sich mein nächster Blogeintrag beschäftigen wird) besser zu verstehen.

Hier geht’s weiter: Grundlagen über die Home Assistant Konfiguration

Installation von Home Assistant auf einem Raspberry Pi Zero W

Das erste Erfolgserlebnis hat mal wohl dann wenn man zum ersten mal die WebSeite der Haussteuerung aufrufen kann… na dann legen wir mal los!

Die günstigste Konfiguration zum Kennenlernen und Erfahrung sammeln

Raspberry Pi in Gehäuse

Was wir brauchen:

  1. Raspberry Pi Zero W (W = Wireless) mit WLAN und Bluetooth
  2. Ein 5V Netzteil mit mindestens 1A
  3. Micro SD-Karte mit 8GB Speicherplatz
  4. Ein funktionierendes WLAN Netzwerk mit Internetzugang
  5. Das neueste „Hass.io“ Image (hier runterladen)
  6. Die neueste Version von „Etcher“ (hier runterladen)
  7. Die neueste Version von „Putty“ (hier runterladen)

Was wir nun tun müssen:

  1. Mit Hilfe von Etcher und Hass.io erstellen wir eine Bootfähige SD-Karte für den Raspberry Pi.
  2. Wir erstellen eine config Datei mit dessen Hilfe sich der Raspberry Pi Zero W automatisch in das WLAN-Netz einwählt.
  3. Wir starten der Raspberry Pi und freuen uns an dem Ergebnis.

 

1. Bootfähige SD-Karte erstellen

Mit einem Windows PC und der Software Etcher lässt sich sehr einfach eine bootfähige SD-Karte für jeglichen Raspberry Pi erstellen.

Dazu ladet ihr euch Etcher herunter, startet es und legt die SD-Karte (sie muss nicht leer oder formatiert sein) in ein Lesegerät.

Das Image von „Hass.io“ ladet ihr hier runter, in ein beliebiges Verzeichnis:

Hass.io Image Datei

 

Nun startet ihr Etcher und wählt das Image und das Laufwerk der SD-Karte aus:

Etcher

 

Nach einem Klick auf „Flash!“ wird Etcher eure SD-Karte Partitionieren und das Image aufspielen.

Jetzt ist die SD-Karte schon bootfähig und kann in eurem Raspberry Pi benutzt werden. Um allerdings ein automatisches einwählen in euer WLAN Netzwerk zu ermöglichen ist vorher noch ein kleiner Schritt notwendig.

 

2. WLAN Konfigurieren

Mit Hilfe der Datei „wpa_supplicant.conf“ werden wir nun die Hassbian Installation dazu bringen sich beim Hochfahren des Raspberry Pi automatisch mit dem WLAN Netzwerk zu verbinden.

 

Dazu greifen wir auf unsere eben erstellte SD-Karte zu und öffnen die Datei „resin-wifi“. Diese liegt im Ordner „system-connections“.

 

Ihr öffnet diese Datei und schreibt folgendes hinein:


[connection]
id=resin-wifi
type=wifi

[wifi]
hidden=true
mode=infrastructure
ssid=YOUR_WIFI_NETWORK_NAME_HERE

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=YOUR_WIFI_PASSWORD_HERE

Ersetzt natürlich „YOUR_WIFI_NETWORK_NAME_HERE“ und „YOUR_WIFI_PASSWORD_HERE“ gegen euren Namen des WLAN Netzwerkes und euren Zugriffsschlüssel. Bitte achtet auch darauf das euer Netzwerk sichtbar ist.

Somit ist eure SD-Karte fertig zur ersten Benutzung.

 

3. Rasbperry Pi starten und darauf zugreifen

Also rein mit der SD-Karte in den Raspberry Pi und das Netzteil anschließen.

Der Raspberry wird automatisch hochfahren und ca. 20 Minuten für das hochfahren und einwählen ins WLAN benötigen.

Sollte alles geklappt haben könnt ihr nun die Web GUI über http://hassio:8123, oder IP-Adresse anstatt Hostname, erreichen.

Home Assistant UI

 

Hier geht’s weiter: Die WebUI und WebApp Oberfläche von Home Assistant

 

Warum Home Assistant?

„Grundsätzlich habe ich ein wenig Freizeit übrig und möchte diese noch füllen […]“

Ist das etwa schon der Grund für die Entscheidung für „Home Assistant“? Sicher nicht…

Aber es ist die erste Frage die man sich stellen sollte: Habe ich genug Zeit mich mit meiner Haussteuerung auseinanderzusetzen und auch mal Dinge einfach auszuprobieren?

All denen die diese Frage mit „Nein“ beantworten sei gesagt: Sucht euch ein anderes System. Ein System wie „Homee“, das die Hardware gleich mitliefert und Out-Of-The-Box funktioniert.

Home Assistant ist „nur“ eine Software. Installation und Wartung müsst ihr selbst übernehmen.

Aber was ist nun der Vorteil an „nur“ Software?

  1. Sie ist umsonst (Open-Source)
  2. Sie ist variabler und hat mehr Schnittstellen zu unterschiedlichen Systemen
  3. Sie kann auch ein Hobby sein 🙂

Aber auch Nachteile sind vorhanden:

  1. Hardware muss selber angeschafft werden (ca. 30€ – Beispiel: Raspberry Pi Zero W)
  2. Installation und Wartung muss selber gemacht werden
  3. Meist sind Linux Kenntnisse von nöten

 

Was hat mich aber nun zu Home Assistant gebracht?

Naja, erstmal war es die schicke Internetseite. Ganz normal wenn man bedenkt das der erste Eindruck zählt und man bis dahin noch keine Ahnung hat ob es sich überhaupt lohnt die Software näher anzuschauen.

Das zweite Kriterium war die Benutzeroberfläche:

 

Home Assistant UI

Sieht doch schick aus und funktioniert als Webseite oder WebApp auf allen Geräten.

Das dritte Kriterium ist die „Anti-Cloud“ Lösung. Home Assistant läuft lokal ohne Daten auf einen Cloudserver zu schicken. Ein Aufruf aus dem Internet ist nur mit fixer IP oder DynDNS und Freigabe in der eigenen Firewall möglich.

Home Assistant ist in Python geschrieben. Gerade das ist ein Erfolgsfaktor da viele Schnittstellen zu IoT-Geräten in Python schon existieren und genutzt werden können. Home Assistant nennt diese Schnittstellen übrigens „Components“ und unterstützt zum jetzigen Zeitpunkt 684 Stück (Stand 24.05.2017).

Noch ein Kriterium ist die einfache Installation. Die Community stellt „Hassbian“ bereit. Ein Betriebsystem für den Raspberry Pi welches schon eine voll funktionsfähige Installation von Home Assistant enthält. Dadurch ist der Installationsaufwand auf wenige Minuten beschränkt und man hat sofort einen lauffähigen Home Assistant Server mit WebUI.

Der letzte Pluspunkt ist die große Community und die dadurch schnellen Tests und Updates. Alle zwei Wochen werden neue Updates und BugFixe bereitgestellt. Zusätzlich bekommt man Hilfe im zentralen Forum.

 

Lust auf mehr?

Hier geht’s weiter: Installation von Home Assistant auf einem Raspberry Pi Zero W