openhab2 und MQTT verbinden

Ich habe meine openhab2 Installation , die ein paar ZWave Sensoren und Schalter steuert mit mqtt verbunden. Warum? Weil ich mich mit dem Regeldeditor von Habmin und der Regelumsetzung in openhab nicht wirklich anfreunden kann. Auf lange Sicht möchte ich auf nodered setzen, um Regeln grafisch zu editieren und dazu ist es nötig, die Daten und Zustände von Sensoren und Schaltern für die Verwendung in nodered zu publizieren.

Dafür ist für mich ein auf dem gleichen Raspberry Pi , auf dem openhab2 läuft, installierter mosquitto Server das Mittel der Wahl. Inatalliert aus den Paketquellen der Raspian Distribution, kann man mit mqttlens sehr schnell schauen, ob der Server läuft und man eine Verbindung herstellen kann…

Die Konfiguration in openhab2 ist relativ simpel:

  • über das Paper-UI unter „Addons“ das mqtt-binding aktivieren
  • die Konfiguration für den mosquitto-Server eintragen

Mit Installation des Plugins werden im ~openhab2/services Verzeichnis die folgenden beiden Dateien angelegt:

  • mqtt.cfg die eigentliche Config-Datei für die Verbindung zum Server, dort die folgende Zeile einkommentieren und den Eintrag editieren, um einen Server auf localhost anzusprechen:

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
raspipi.url=tcp://localhost:1883

  • mqtt-eventbus.cfg hier wird eingetragen, welche Dinge aus dem openhab2 Eventbus in Richtung mqtt Server publiziert werden.

# Name of the broker as it is defined in the openhab.cfg. If this property is not available, no event bus MQTT binding will be created.
broker=raspipi das spricht den Server an, den wir zuvor eingetragen haben

# When available, all status updates which occur on the openHAB event bus are published to the provided topic. The message content will
# be the status. The variable ${item} will be replaced during publishing with the item name for which the state was received.
statePublishTopic=openhab-status/${item}/status Statusänderungen werden als Topic openhab-status publiziert

# When available, all commands which occur on the openHAB event bus are published to the provided topic. The message content will be the
# command. The variable ${item} will be replaced during publishing with the item name for which the command was received.
commandPublishTopic=openhab-command /${item}/command Kommandos werden als Topic openhab-command publiziert

Das ist eigentlich schon alles. Nach einem Neustart von openhab2 kann man im Log sehen, dass die Verbindung zum mqtt-Server hergestellt wird. Abonniert man mit mqttlens die beiden zuvor konfigurierten Topics kann man bei Betätigung eines Schalters in openhab2 auch die entsprechend publizierten Nachrichten sehen.

Home Assistant Presence Detection einrichten

Festzustellen, ob eine Person zu Hause ist, ist eine wesentliche Informationsquelle für das Aufstellen von Regeln für die Heimautomatisierung. Home Assistant bietet dafür unterschiedliche Möglichkeiten an:

  • Benutzung von NMap und Scannen des Netzwerkes
  • Zugriffe auf unterstützte Router via Telnet
  • Zugriff auf einen MQTT Server mit Telemetriedaten

Die zum Ausprobieren einfachste Variante ist NMap, dazu ist lediglich folgender Eintrag in der configuration.yaml notwendig:

device_tracker:

platform: nmap_tracker

hosts: 192.168.1.1/24

home_intervall: 10

Hosts bitte auf die jeweiligen Gegebenheiten im eigenen Netzwerk anpassen. Der letzte Eintrag ist die Zeit in Minuten, bis die Geräte erneut abgefragt werden.

Alle gefundenen Geräte werden in einer Datei known_devices.yaml abgelegt und folgen dieser Notation:

 

192168140:
#name: 192.168.1.40
name: marko
mac: 50:B7:3k:B2:B6:3E
picture:
track: yes
hide_if_away: no

Der kommentierte Eintrag zeigt, wie Namen für die Anzeige im UI angepasst werden können. Per Default sind die IP Adressen die Namen.

Sollen bekannte Geräte nicht weiter auf Anwesenheit getrackt werden, den Eintrag auf no setzen, bzw, die letzte Zeile auf yes, wenn nur anwesende Geräte im UI dargestellt werden sollen.

Tip für die configuration.yaml: Die Doku sagt zwar aus, dass mehrere Trackingmethoden gleichzeitig verwendet werden können, aber denkt daran, dass die tracker Einträge dann durchnummeriert werden müssen, sonst greift jeweils nur der letzte…

Hausautomatisierung – Zentrale mit Home Assistant

Eine der Softwarelösungen für die Zentrale, die ich ausprobiere ist Home Assistent. Die Installation auf der Synology ist schnell gemacht, es gibt ein Paket der Synocommunity.

Wie die Installation von 3rd Party Paketen auf der Synology funktioniert, ist auf der Homepage der Synocommunity beschrieben.

Wenn das Paket installiert und der Dienst gestartet ist, erreicht man die Weboberfläche über den Port 8123. Dort gibt es zunächst nicht viel zu sehen, ausser einer Oberfläche in der noch nichts konfiguriert ist, die aber mit Links auf die entsprechenden Dokuseiten verweist.

Einträge für Komponenten usw. kann man schnell hinzufügen, indem man die entsprechenden Passage der Datei configuration.yaml hinzufügt. Für jede Änderung muss der Dienst neu gestartet werden.

Auf der Synology liegt Home-Assistant im Verzeichnis des /Volumes/@appstore/

Was YAML ist, kann man hier nachlesen, wer auf Probleme mit seiner Konfiguration stößt, oder eingetragene Änderungen im Frontend nicht auftauchen, findet auf der Homepage von Home-Assistant viele Beispiele und sollte auch einen Blick in die Logdatei werfen, das hat mich letztlich auf die richtige Spur gebracht.

Zwischenfazit nach einigen Versuchen, Konfigurationseinstellungen für einen online Wetterdienst, die vorhandene Fritzbox, oder die Amazon Fire TV Box vorzunehmen:

Es ist mir nicht gelungen. Es fehlen Python Module in der Synology-Home-Assistant Installation, Konfigurationseinstellungen sind deprecated und und und… Eine sinnvolle Installation auf der Synology ist meiner Meinung nach nicht ohne weiteres möglich, viel zu buggy und kaum verfügbare Hinweise im Netz, die sich tatsächlich auf die Synology Installation beziehen. Verglichen mit der Demo Webseite scheint es auch ein alter Softwarestand zu sein.

Da mir die Software und der dokumentierte Funktionsumfang dennoch gut gefallen, habe ich mich kurzerhand entschlossen, einen Raspberry Pi aufzusetzen und damit einen neuen Versuch zu machen.

Die Installationsanweisungen sind hier beschrieben. Mit wenigen Einträge für einen Online Wetterdienst wie Forecast.io oder Ähnliches sieht das dann schnell so aus:

raspberry home-assistant

raspberry home-assistant

 

Hausautomatisierung – Was soll erreicht werden

Die wohl wichtigste Frage für meine Hausautomatisierungsspielereien lautet: Was soll eigentlich erreicht werden? Aufgekommen ist das Thema durch Überlegungen, die Beleuchtung in Teilen der Wohnung zu ändern und dabei ein paar ungünstig platzierte Schalter durch Funkschalter zu ersetzen / zu erweitern.

Per Funk fernbedienbare Elektronikkomponenten gibt es wie Sand am Meer und in so ziemlich jedem Laden mit einem Elektroniksortiment bis hin zu den bekannten Discountern. Vieles davon sind aber proprietäte Lösungen, die schlecht oder gar nicht erweiterbar sind. Erweiterbar sollte es aber sein, außerdem so, dass man nicht gleich Unsummen investieren muss, vielleicht sogar vorhandene Dinge nutzen kann, bzw. auf frei verfügbare Komponenten, speziell bei der Software und den verwendeten Standards aufsetzen kann.

Bei der vielen Recherche blieb zunächst das übrig:

  • vorhandene Synology Diskstation oder Raspberry Pi als Zentrale verwenden
  • frei verfügbare Softwarelösungen für die Zentrale ausprobieren
  • zunächst vorhandene Komponenten (Mobiltelefon, Netzwerkgeräte) integrieren
  • Presence Detection
  • Integration von Beleuchtung und Funkschaltungen
  • nicht nur fernbedienen sondern regelbasiert steuern

selbstgehosteter Bookmarkdienst

Spätestens, seit es den delicio.us Bookmarkdienst nicht mehr in der damaligen Form gibt, war ich auf der Suche nach einem praktischen Ersatz, am liebsten etwas selbst Betriebenes, womit auch der Mozilla Sync Service ausscheidet. Einen eigenen Sync Server zu betreiben, der sich nahtlos mit dem Firefox Sync integriert ist ein ziemlicher Krampf, das habe ich auch schnell sein gelassen.

Weil immer noch aktuell, bin ich bei der Suche inzwischen auf Shaarli gestossen und teste es aktuell. Das läuft auf einer Sandard LAMP Infrastruktur, braucht keine Datenbank und ist schnell installiert und konfiguriert. Damit eignet es sich auch gut für eine Installation auf einem NAS System, oder einem Raspberry-Pi.

Die Benutzung passiert über ein Bookmarklet, das so ziemlich in jedem gängigen Browser funktioniert. Schön sind Funktionen, wie beispielsweise die Tagcloud, oder der Import bestehender Firefox Bookmarks…

Als Lesetip noch ein externer Artikel zu selbsgehosteten Alternativen für populäre Alltagsadienste

Raspberry UPiS powering modes und Prioritäten

Wie bereits beschrieben, verfügt das UPiS Modul über 3 Alternativen zur Stromversorgung des Raspberrys Alle Varianten gehen davon aus, dass der Hardwareswitch eingeschaltet ist:

  • der sogenannte EPR Mode External Cable Powering: Damit kann über den mittgelieferten Stecker eine Stromquelle mit einer Spannung zwischen 7V und 18V Gleichstrom anngeschlossen werden. Alternative Stromquellen werden dadurch gekappt, ein etwa angeschlossenens Micro-USB Kabel kann dann zum Zugriff per PC verwendet werden.
  • USB Mode: Wenn nur ein USB Kabel an das UPiS Modul angeschlossen ist, erfolgt die Stromversorgung auf diesem Weg.Wird das Kabel getrennt, erfolgt eine Versorguung über den Akku.
  • BAT Mode zur Versorgung per Akku: Wenn im Akkubetrieb wieder ein Kabel angeschlossen wird, erfolgt eine Umschaltung auf die Kabelverbindung laut Manual nach 3,6 Sekunden, die verwendet werden, um die Stabilität der Stromversorgung zu prüfen.

Der ursprüngliche Modus, die Kombination aus Raspberry und UPiS über den Micro-USB Anschluß des Raspberry zu versorgen, ist ebenfalls möglich, wird allerdings erst ab einer bestimmten Firmware Version unterstützt.

UPiS angekommen…

Seit dieser Woche besitze ich ein UPiS Advanced für meinen Raspberry Pi, das ich zusammmen mit einem passenden höheren Gehäuse erworben habe. Das Gehäuse war ein unmontiertes Set aus steckbaren Einzelteilen, deren Verriegelungsmechanismus es leider bereits beim ersten Zusammensetzung zerlegt. Schade drum, aber aus meiner Sicht ziemlich unbrauchbar…

Das UPiS Modul selbst kommt bereits bestückt mit einer Reihe von Jumpern, die laut Manual bereits so konfigueriert sein sollen, dass ein unmittelbarer Einsatz möglich ist. Akku ist separat verpackt, zusätzlich sind noch ein weiterer Jumper und ein Stecker mit Schraubanschlüssen für eine alternative Stromversorgung dabei.

Wenn man herausgefunden hat, wie der Akku an das Moduk anzuschließen ist, ist beides schnell verbunden und auf den Pi montiert.

Raspberry UPiS Modul ersetzt nicht vorhandenen Hardware Powerswitch

Nachdem ich mich nun intensiver mit den unterschiedlichen Arten der unterbrechungsfreien Stromversorgung beschäftigt habe, scheint mir das UPiS Advanced Modul das Mittel der Wahl für meine Zwecke zu sein…

Für den geplanten Einsatz im Kfz Bereich benötige ich dort vorhandene die Möglichkeit einer flexibleren Stromversorgung, als die übliche Ausgangsspannung der Steckernetzteile, die man an den Pi anschließt. Darüber hinaus bringt das Modul einen Ein-Ausschalter mit, der es ermöglich, den Pi bei einer Stromversorgung über das Modul Ein und Aus zu Schalten.

Eine umfangreichere Liste an Features findet sich im FAQ auf Pimodules.com. Dort werden beispielsweise Aussagen zur Akkulaufzeit gemacht, zur Anschlussmöglichkeit eines Solarpanels, sowie vieler anderer interessanter Aspekte.

Sobald ich eines der Dinger mein Eigen nenne und im Einsatz habe, werde ich hier weiter dazu bloggen.

Power Supply Lösungen für Raspberry Pi

Kurzmitteilung

Für meine Idee, aus dem Raspberry Pi einen Car PC zu bauen, gab es unter anderem noch den großen Haken, dass eine unabhängige Stromversorgung her musste, falls die Zündung mal aus ist und das Gerät noch ordentlich heruntergefahren werden soll.

Durch folgende Produkte, auf die ich heute gestossen bin, bin ich dem Ziel ein Stück näher gekommen:

Pi Supply Switch Kit als Ein- Aus-Schalter

Rasperry Pi USV mit 9 Volt Block

UPiS Advanced Module mit Akku und Ladefunktion

passendes Gehäuse für UPiS Module

Weiter gehts… 🙂

Update: Wer etwas übr die UPiS Module nachlesen möchte, dem sei dies hier ans Herz gelegt. Die beiden angebotenen Module unterscheiden sich im Übrigen nicht nur durch die Akkukapazität. Das breitere Spektrum angeschlossener Stromquellen wird nach meinen Recherchen nur in der Advanced Variante unterstützt, welche damit für den Kfz-Bereich besser geeignet scheint.