Dokumentation
  • Überblick
  • Linux
  • SmartHome
    • Der Raspberry
    • Home Assistant
    • Arduino
    • KNX
  • Arbeitsnotizen
    • Zukünftige Projekte
    • Derzeitige und abgeschlossene Projekte
  • Learnings
  • PiHole
  • USB-C
Powered by GitBook
On this page
  • Installation
  • Home Assistant automatisch starten
  • Home Assistant updaten
  • Neue Geräte in Home Assistant einbinden
  • Benutzer Pi Schreibrechte auf die Hass config gewähren
  • Dash-button in Hass einbinden
  • Xiaomi / Yeelight Lampen einbinden
  • Apple Home und Siri
  • Tuya Temperatur beheben
  • Webcam mit motion und Hass steuern

Was this helpful?

  1. SmartHome

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

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

Neue Geräte in Home Assistant einbinden

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

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

Apple Home und Siri

homekit:
  filter:
    include_domains:
      - alarm_control_panel
      - light
      - media_player

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

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.

PreviousDer RaspberryNextArduino

Last updated 5 years ago

Was this helpful?

Die akutelle version dieser Anleitung ist stets verfügbar.

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 einzusehen.

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 nach der Komponente gesucht werden. Nachdem die Dokumentation für das Gerät ( 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.

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 ). Nun editieren wir die Konfigurationsdatei des Programmes mit sudo nano /etc/amazon-dash.yaml und fügen folgenden Code hinzu:

Um diese Geräte in Hass einzubinden, ist ein Mi-Account notwendig, der 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 . Die vergebene statische IP wird dann entsprechend dieser in Hass eingetragen.

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 hinzugefügt.

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 notwendig.

Zuerst sollte motion direkt vom git repository installiert werden (). Nach Installation, sollten zwei motion config Dateien angelegt werden:

hier
hier
Webseite von Hass
hier
verschieben von Dateien
hier
diesen Abschnitt
Anleitung
Anleitung
VPN
https://github.com/Motion-Project/motion