Heimautomation mittels Home Assistant

Auf dem Markt der Heimautomation gibt es eine Reihe von Standards und viele unterschiedliche Softwarelösungen. Viele dieser Lösungen sind proprietär; einige sind freie Software wie z.B. openHAB oder Calaos. Aus der Kategorie der freien Software sticht Home Assistant hervor. Die in Python 3 geschriebene Software versteht sich als eine umfassende Lösung zur Heimautomation. So wird eine Vielzahl von Standards wie Z-Wave oder das IKEA-Beleuchtungssystemen Tradfri unterstützt.

home-assistant.io

Mittlerweile existieren knapp eintausend Komponenten, welche auf der Webseite des Projektes eingesehen werden können. Diese Komponenten decken eine Vielzahl von Sensoren und Anwendungsmöglichkeiten ab. Dies fängt bei Alarmsensoren an, geht weiter über die Integration von Kalendern, die Steuerungen von Aktoren (wie Thermostaten), die Einbeziehung von Wetter, Luftqualität und anderen Daten und Dingen wie der Steuerung von Media-Playern (z.B. PLEX). Mit jeder neuen Version von Home Assistant finden neue Komponenten ihren Weg in das Projekt.

Die Home Assistant Demo-Seite

Installiert werden kann Home Assistant auf einer Vielzahl von Systemen, von verschiedenen Linux-Distributionen über Windows und macOS. Empfohlen wird allerdings die Installation eines vom Projekt erstellten Raspberry Pi-Images. Dieses hört auf den, für deutsche Ohren gewöhnungsbedürftigen, Titel Hass.io und ist für den Betrieb auf einem Raspberry Pi 3 (Modell B) vorgesehen. In diesem Image sind die Funktionalitäten für den Betrieb von Home Assistant kombiniert. Über eine Weboberfläche kann dieses System konfiguriert werden. So können z.B. SSH- oder Samba-Server aktiviert werden um auf die Konfigurationen von Home Assistant zuzugreifen. Technisch basiert Hass.io auf resinOS und nutzt Docker-Container für die Isolierung der einzelnen Serverkomponenten. Der Quelltext des Home Assistant-Projektes ist auf GitHub zu finden. Lizenziert ist das Projekt unter der Apache-Lizenz in der Version 2.

Realtek WLAN-Chip RTL8723de unter Ubuntu aktivieren

Wer sich in letzter Zeit ein Notebook mit dem WLAN-Chip RTL8723de von Realtek gekauft hat, der wird in die Röhre geschaut haben, sobald er versucht hat diesen unter Linux zum laufen zu bekommen. Nun gibt es allerdings seit einigen Tagen einen funktionsfähigen Treiber für Linux für eben diesen Chipsatz.

Ein HP-Notebook mit dem entsprechendem WLAN-Chip von Reaktek

Um diesen Treiber zu nutzen ist ein wenig Handarbeit nötig, da der Treiber noch nicht im Linux-Kernel vorhanden ist. Im ersten Schritt muss der Quelltext auf dem betreffenden Rechner kopiert werden. Dazu wird ein Terminal geöffnet und dort per Git das Repository mit dem Treiber bezogen:

git clone https://github.com/smlinux/rtl8723de.git

Anschließend wechseln wir in den Ordner und kompilieren den Treiber:

cd rtl8723de
make

Nun muss der Treiber nur noch installiert werden:

sudo make install

Nach einem Neustart ist der Treiber einsatzbereit und das WLAN kann genutzt werden.

Blue Yeti am iPhone anschließen

Das Blue Yeti ist ein beliebtes USB-Mikrofon, welches fürs das entsprechende Geld ordentliche Qualität liefert. Das Mikrofon kann problemlos an beliebige Rechner mit Linux, macOS oder Windows angeschlossen werden. Problematischer wird dies, wenn man versucht das Mikrofon an ein iPhone anzuschließen. Mit dem Lightning auf USB Kamera-Adapter ist dies prinzipiell kein Problem. Allerdings versorgt sich das Blue Yeti komplett über den USB-Anschluss mit dem entsprechenden Strom. Das iPhone kann allerdings nicht genug Strom bereitstellen und teilt dies dem Nutzer in einer Fehlermeldung mit.

Das Blue Yeti benötigt zuviel Strom

Die Lösung für Problem ist relativ einfach. Man benötigt einen Powered-USB-Hub.

Das Blue Yeti muss über einen Powered-USB-Hub mit dem iPhone verbunden werden

Schließt man das Blue Yeti über den Powered-USB-Hub an, sorgt dieser für die Stromversorgung des Mikrofons. Das iPhone muss sich daraufhin nur noch um die Datenverbindung kümmern. Damit kann das iPhone in Verbindung mit dem Blue Yeti für mobile Aufnahmen genutzt werden.

Mit JOSM GPX-Dateien bearbeiten

JOSM ist ein freier Editor für OpenStreetMap. Mit Hilfe des Editors können OpenStreetMap-Daten problemlos editiert werden. Als Referenz lassen sich dabei unter anderem GPS-Tracks in Form von GPX-Dateien hinterlegen. Standardmäßig kann man diese allerdings nicht bearbeiten.

editgpx in der Plugin-Verwaltung von JOSM

Hierzu muss über die Einstellungen erst das Plugin editgpx installiert werden. Nachdem dies geschehen ist, kann ein GPX-Track geladen werden. Damit dieser nun bearbeitet werden kann, muss im Ebenen-Fenster das Kontextmenü für die GPX-Ebene aufgerufen werden. Dort wählt man den Punkt Zur Daten-Ebene konvertieren. Anschließend können die GPX-Daten bearbeitet werden.

Plex auf dem Raspberry Pi installieren

Plex ist ein mächtiger Medienserver, welcher ohne größere Probleme auch auf dem Raspberry Pi betrieben werden kann. Vor allem die Version 3 des Raspberry Pi macht hier keinerlei Probleme. So gibt es unter anderem Distribution für die Installation eines Plex Clients wie z.B. RasPlex. In diesem Artikel soll es um die Installation des Plex Media Server auf dem Raspberry Pi gehen. Dafür benötigt man die Version für ARMv7 and ARM64, welche von einigen Studenten der Universität Leipzig bereitgestellt wird. Nachdem man sich im Terminal auf dem Raspberry Pi per SSH eingeloggt hat, müssen die neuen Paketquellen aktiviert werden:

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key  | sudo apt-key add -
echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list
apt-get update

Anschließend kann das Paket installiert werden:

apt-get install plexmediaserver

Wenn man nach der Installation versucht das Plex Media Server-Interface im Browser aufzurufen wird unter Umständen feststellen das dieses nicht erreichbar ist. Hier handelt es sich wohl um einen Bug. Der Workarround für diesen Bug ist ein Neustart des Raspberry Pi.

Die Plex-Einrichtung kann beginnen

Anschließend kann der Plex Media Server über die URL:

http://raspberrypi.local:32400/web/index.html

aufgerufen werden.