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.

System Integrity Protection unter macOS deaktivieren

In der aktuellen macOS-Version schlägt bei mir die Aktivierung von Kernel-Extensions grundsätzlich fehl. Da ich einige Kernel Extensions allerdings benötige, hab ich den Weg über die Abschaltung der System Integrity Protection gewählt. Dieses Sicherheitsfeature, auch unter dem Namen rootless bekannt, verhindert das Prozesse Dateien in Systemordnern verändern können. Zur Deaktivierung der System Integrity Protection muss der Mac im Recovery-Modus gestartet werden. Dazu wird er ausgeschaltet und bei gedrückten Cmd+R Tasten gestartet. Die Tasten bleibt dabei so lange gedrückt, bis der Apfel zu sehen ist. Im Recovery-System wird nun das Terminal aktiviert und dort der Befehl:

csrutil disable

eingegeben. Anschließend kann das System wieder normal hochgefahren werden. Zur Reaktivierung wird der Prozess mit dem Befehl:

csrutil enable

durchgeführt und die System Integrity Protection ist wieder aktiv.

Visual Studio unter Unity für macOS als Skripteditor nutzen

Standardmäßig nutzt Unity das eingebaute MonoDevelop, wenn es darum geht Quellcode zu bearbeiten. Ist allerdings auf dem Mac Visual Studio installiert, so kann dieses als primäre IDE genutzt werden. Dazu müssen die Preferences von Unity geöffnet werden.

Die Unity-Einstellungen

Dort findet sich der Punkt External Tools. In diesem Tab findet sich die Einstellung External Script Editor. Bei installiertem Visual Studio kann dieses eingestellt werden und wird damit in Zukunft von Unity genutzt.

Aktivierung von Kernel Extensions unter macOS High Sierra schlägt fehl

Seit macOS 10.13, besser bekannt unter dem Namen High Sierra, müssen Kernel Extensions explizit erlaubt werden. Das Problem ist dass dies im aktuellen Build (17A405) nicht funktioniert. Soll eine bis dahin unbekannte Kernel Extension geladen werden, so erscheint eine Warnmeldung. Anschließen müssen die Einstellungen innerhalb der nächsten dreißig Minuten geöffnet werden und dort der Punkt Sicherheit ausgewählt werden.

Die Sicherheitseinstellungen unter macOS

Dort findet sich nun der Punkt um die Kernel Extension zu aktivieren bzw. zu erlauben. Im aktuellen Build ist diese Option allerdings nutzlos. Klickt man auf den Button passiert nichts. Dank diesem Fehler ist es nicht möglich Kernel Extensions ohne weiteres zu aktivieren; ein ärgerlicher und unnötiger Fehler.

Gatekeeper unter macOS temporär deaktivieren

Seit einigen Versionen gibt es unter macOS den sogenannten Gatekeeper. Diese Funktionalität sorgt innerhalb des Betriebssystems dafür, das nicht signierte Software nicht ausgeführt werden kann. In den neueren macOS-Versionen lässt sich Gatekeeper über die grafischen Einstellungen nicht mehr komplett deaktivieren.

Die vollständige Deaktivierung von Gatekeeper wird nicht mehr angeboten

Öffnet man eine nicht signierte Anwendung, erhält man dort die Meldung:

„paket.pkg“ ist beschädigt und kann nicht geöffnet werden. Es empfiehlt sich, das Objekt in den Papierkorb zu bewegen.

Möchte man diese Anwendung trotzdem nutzen, so muss die Gatekeeper-Funktionalität über das Terminal deaktiviert werden. Dazu dient der Befehl:

sudo spctl --master-disable

Anschließend kann die nicht signierte Anwendung installiert und gestartet werden und Gatekeeper mittels des Befehls:

sudo spctl --master-enable

wieder aktiviert werden. Die installierte Anwendung kann nun trotz aktivierter Gatekeeper-Funktionalität weiterhin genutzt werden.