Home Assistant
Installation
Hass lässt sich in nur wenigen Schritten auf dem Raspberry mit Hilfe eines Terminals installieren. Zu erst wird eine ssh-Verbindung zum Pi aufgebaut:
ssh pi@192.168.178.X
Dann wird die auf dem Raspberry installierte Software aktualisiert:
sudo apt update
sudo apt upgrade -y
Anschließend werden noch ein paar benötigte Pakete installiert:
sudo apt install python3 python3-venv python3-pip libffi-dev libssl-dev
Danach wird der Benutzer homeassistant
angelegt und in entsprechende Gruppen eingeführt um zum Beispiel Zugriffe auf die Programmier-Pins des Pis zu bekommen.
sudo useradd -rm homeassistant -G dialout,gpio,i2c
Jetzt werden die notwendigen Verzeichnisse erstellt und die Besitzrechte entsprechend verändert.
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
Nun wechseln wir zum Benutzer homeassistant
und erstellen und aktivieren eine Python virtuelle Umgebung (virtual environment / venv). Dies ermöglicht die Installation von Python Paketen isoliert in einem Verzeichnis und schafft eine Art Container.
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Nun beginnen wir mit der Installation der notwendigen Python-Pakete:
python3 -m pip install wheel
pip3 install homeassistant
Anschließend wird Hass gestartet:
hass
Die akutelle version dieser Anleitung ist stets hier verfügbar.
Home Assistant automatisch starten
Damit Hass bei einem Systemneustart automatisch wieder gestartet wird, bedarf es einer Konfiguration von systemd
, dass Programm welches unter Linux für die Verwaltung von automatisch startender Software zuständig ist. Hierzu muss eine Datei im Terminal editiert werden:
sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service
Nun wird folgender Text eingefügt:
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"
[Install]
WantedBy=multi-user.target
Verlassen wird der Editor mit strg + x
und ein anschließendes y
bestätigt das Speichern der Datei. Nun ist ein homeassistant Service bei systemd
registriert. Anschließend wird systemd
noch entsprechend neugestartet und der Service aktiviert:
sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant@homeassistant
Home Assistant updaten
Um Hass zu aktualisieren verbinden wir uns zum Pi per ssh, wechseln wir zum Benutzer Home Assistant, aktivieren die virtuelle Umgebung und updaten dann das hass Paket.
ssh pi@192.168.178.X
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant
Um die Veränderungen zu aktivieren muss Hass neu gestartet werden. Ebenfalls empfiehlt sich ein Blick auf die sogennanten breaking changes
, dh. Veränderungen die unter Umständen dazu führen, dass Geräte nicht mehr sachgemäß funktionieren. Die Veränderungen sind hier einzusehen.
Neue Geräte in Home Assistant einbinden
Hass unterstützt diverse Geräte schon von Hause aus, ohne komplizierte Konfiguration. Nach Anmeldung des Geräts im WLAN und einem Neustart von Hass, erscheint es meist schon in der Komponentenregistrierung (einsehbar auf der Hass-Seite auf dem Symbol < >
). Falls das Gerät nirgends erscheint oder nicht per WLAN gekoppelt wird, sollte zunächst auf der Webseite von Hass nach der Komponente gesucht werden. Nachdem die Dokumentation für das Gerät (hier zB. die Netatmo Integration) identifiziert wurde, kann die manuelle Konfiguration gestartet werden. Zunächst aber sollte die komplette Dokumentation des Geräts ausfürlich studiert werden.
Nachdem der Eintrag verinnerlicht wurde, wird das Programm Forklift
auf dem Mac geöffnet. Links in der Favoritenleiste wird der Eintrag angewählt, der zum Hass-Konfigurationsverzeichnis führt. Und jetzt die Datei configuration.yaml
doppelt geklickt, jetzt sollte sich der Editor Visual Studio Code
öffnen und die live-Bearbeitung des Dokumentes ermöglichen.
Aus der Dokumentation des Geräts wird der YAML-Code aus dem Abschnitt configuration
kopiert und bei Visual Studio Code
am besten ganz unten eingefügt. Hierbei ist lediglich zu beachten, wenn die Konfiguration mit einer Kategorie zum Beispiel sensor
und nicht dem Hersteller anfängt, muss der entsprechende Abschnitt, bei den anderen Sensoren eingefügt werden, dass Kategoriewort sensor
darf nur einmal in der Datei ganz vorn stehen (ohne Einrückung). Nun werden die entsprechenden in Großbuchstaben geschriebenen Felder editiert und das Dokument gespeichert.
Benutzer Pi Schreibrechte auf die Hass config gewähren
usermod -a -G homeassistant pi
sudo chmod g+rwx /home/homeassistant/.homeassistant
Dash-button in Hass einbinden
--- Wie es aussieht hat Amazon die Dashbuttons für immer deaktiviert Stand: 5.10.2019 ---
Um dies zu bewerkstelligen, ist ein mobiles Endgerät mit Amazon-App von Nöten. In der App wird nun oben Links das Menü aufgerufen und auf "Meine Dashbuttons" getippt. Dann oben die Schaltfläche "MENÜ" und dann ganz unten "Dash Button-Geräte verwalten". Nun erscheint die Anleitung zum einrichten des Buttons, das WLAN Passwort sollte nicht bei Amazon gespeichert werden. Das Setup wird nun durchgeführt bis zum auswählen des zu bestellenden Produkts. Jetzt wird die Amazon-App einfach geschlossen.
Ein notwendiges Programm names tcpdump
wird auf dem Pi mit: sudo apt install tcpdump
installiert.
Nun wird wie in diesem Abschnitt beschrieben (link) das Netzwerk permanent gescannt und dann der Button gedrückt. Er sollte nun bei den Scans auftauchen, wichtig ist seine MAC-Adresse, diese kopieren wir in Lanscan
mit dem Rechtsklick-Menü.
Auf dem Pi mit Hilfe von ssh
wird nun das Python-Programm amazon-dash
installiert mit dem Befehl: sudo -H pip install amazon-dash
. Jetzt verschieben wir die vorhandene Konfigurationsdatei mit: sudo mv /etc/amazon-dash.yaml /etc/amazon-dash.yaml.bak
(mehr zum verschieben von Dateien). Nun editieren wir die Konfigurationsdatei des Programmes mit sudo nano /etc/amazon-dash.yaml
und fügen folgenden Code hinzu:
settings:
AC:57:97:2C:FA:AF:
name: Fairy
homeassistant: localhost:8123
event: dash_tv_on
access_token: iashdf789hm9a8whf9c78ihwgbp9fduioaj...
Die MAC-Adresse des Buttons wird nun ganz oben unter "settings" eingerückt eingefügt, der Name kann so gelassen werden, der Parameter homeassistant
beschreibt die Hass-IP und Port, localhost
in unserem Fall, da Hass und amazon-dash
auf dem selben Gerät laufen. Der Paramter event
beschreibt den Name des Events, dass in Hass geworfen wird. Der acces_token
muss über die Hass Weboberfläche generiert werden. Dazu bei Hass links oben auf den Anfangsbuchstabe des Benutzers klicken, dann ganz nach unten scrollen, zum Abschnitt "Langlebige Zugangs-Token", dort unten auf "Token erstellen" klicken und den Token kopieren und im nano
Fenster einfügen. Alle Parameter angepasst, kann nano mit strg + x
geschlossen werden. Anschließend wird der Dash-Button-Service mit sudo service amazon-dash restart
neu gestartet.
Die letzte Komponente ist die entsprechende Hass-Automation. Diese wird mit Forklift
und Visual Studio Code
bearbeitet (link). Nun wird folgende Automation hinzugefügt:
- alias: dash
initial_state: true
trigger:
- event_data: {}
event_type: dash_tv_on
platform: event
action:
service: script.turn_on
entity_id: script.some_script
Der Button sendet ein Event mit dem Typ event_name
an Hass, und Hass reagiert entsprechend der event_type
Konfiguration. Alle anderen Parameter, wie Alias und Aktion der Automation können individuell angepasst werden, lediglich der event_type
muss exakt dem entsprechen, was bei /etc/amazon-dash.yaml
eingetragen wurde.
Xiaomi / Yeelight Lampen einbinden
Um diese Geräte in Hass einzubinden, ist ein Mi-Account notwendig, der hier erstellt werden kann. Auf einem mobilen Endgerät ist dann die Yeelight-App notwendig. In der App wird der Mi-Account eingeloggt und durch ein Tipp auf das Plus-Symbol eine neue Lampe hinzugefügt. Nachdem diese hinzugefügt wurde, muss undbedingt die "Lan-Steuereung" jeder einzelnen Lampe aktiviert werden, damit Hass diese über HTTP-Befehle steuern kann. Nun sollte der Lampe eine statische IP zugewiesen werden, dazu siehe diesen Abschnitt. Die vergebene statische IP wird dann entsprechend dieser Anleitung in Hass eingetragen.
Apple Home und Siri
Um sämtliche in Hass registrierten Geräte über die Apple Home-App zu steuern, wird die Integration HomeKit
benötigt. Diese wird wie jede andere Hass-Komponente in der configuration.yaml
nach dieser Anleitung hinzugefügt.
homekit:
filter:
include_domains:
- alarm_control_panel
- light
- media_player
Bei include_domains
werden nun alle Kategorien der Geräte eingetragen, die in Apple Home übernommen werden sollen, zum Beispiel alle Sensoren (sensors) oder alle Lichter (light). Das iPad sollte nun als Apple Home-Server fungieren, wenn es zuhause im WLAN ist. Das bedeutet, Apple Home kann von überall gesteuert werden, weil das externe Gerät, zum Beispiel ein iPhone, über die Apple-ID und der iCloud eine Verbindung zum iPad und somit zu Hass aufbaut. Es ist hierbei kein DynDNS (link) oder VPN notwendig.
Tuya Temperatur beheben
Zuerst werden alle custom_componens
gelöscht um Konflikte mit älteren Versionen zu vermeiden. Danach wird ein neues custom_componens
Verzeichnis erstellt und die aktuelle tuya
Komponente hineinkopiert. Danach werden einige sed
Befehle ausgeführt, die bestimmte Zeichenketten suchen und ersetzen. Dies führt dazu, dass die Temperatur durch zwei geteilt wird, und Hass weiß, dass es halbe Gradzahlen gibt.
sudo rm -rf /home/homeassistant/.homeassistant/custom_components
sudo mkdir /home/homeassistant/.homeassistant/custom_components
sudo cp -R /srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/tuya/ /home/homeassistant/.homeassistant/custom_components/
sudo sed -i 's/PRECISION_WHOLE/PRECISION_HALVES/g' /home/homeassistant/.homeassistant/custom_components/tuya/climate.py
sudo sed -i "s/return self.tuya.current_temperature().*/return self.tuya.current_temperature()\/2/g" /home/homeassistant/.homeassistant/custom_components/tuya/climate.py
sudo sed -i "s/return self.tuya.target_temperature().*/return self.tuya.target_temperature()\/2/g" /home/homeassistant/.homeassistant/custom_components/tuya/climate.py
sudo chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant/custom_components
Webcam mit motion und Hass steuern
Zuerst sollte motion
direkt vom git repository installiert werden (https://github.com/Motion-Project/motion). Nach Installation, sollten zwei motion config Dateien angelegt werden:
sudo cp /etc/motion/motion.conf /etc/motion/motion_notify.conf
sudo cp /etc/motion/motion.conf /etc/motion/motion_video.conf
Zu beachten ist auch, dass in der Hass-config das
/tmp
Verzeichnis auf die Whitelist muss.
Die motion_notify.conf
wird so bearbeitet, dass ein Video erstellt wird: movie_output on
dieses kann dann per hass versendet werden.
Bei der motion_video.conf
werden die einzelnen Video frames als Bilder gespeichert mit Hilfe von picture_output on
. Zusätzlich muss ein bash-Script mit folgendem Inhalt erstellt werden:
#!/bin/bash
cd /tmp
f=$(ls *.jpg -t | head -n1)
unlink lastsnap
ln -s $f lastsnap
Dieses sollte dann mit chmod +x
ausführbar gemacht werden und über on_picture_save /home/pi/symlink_motion.sh
in der motion config eingebunden werden.
Last updated
Was this helpful?