Weil es so ein langer Weg für mich war, will ich hier meine Erfahrungen einmal niederschreiben… Vielleicht hilft es dem Einen oder Anderen 🙂
Ich war auf der Suche nach einem System, welches alle meine Smarthome-Ideen zusammenbringt. Der IO-Broker ist dafür schon ein gutes Feature. Er kann mit sehr vielen Endgeräten arbeiten und bietet selbst auch Scriptmöglichkeiten und Programme.
Da ich eine uralte Homematic CCU 1 laufen hatte, und ohnehin einen Raspberry für eine CCU3 brauchte, habe ich auf ein fertiges Image von IO-Broker mit CCU3 zurückgegriffen. Diese Images laufen zuverlässig und binden die CCU3 in einem Container über eine virtuelle Ethernetschnittstelle ein. So kann man den IO-Broker und die CCU jeweils über eigene IP-Adressen ansprechen aber gleichermaßen auch miteinander auf einem Raspberry laufen haben. Soweit, so gut…..
Leider sind die Images OHNE ein vollständiges Rasbian erstellt. Das macht Sinn, wenn man ressourcenschonend nur die Dienste Laufen lassen möchte. Für das Arbeiten mit dem Raspi ist es jedoch nicht ideal.
Mein Ziel ist es nämlich, direkt auch einen Monitor mit einer Grafana-Oberfläche anschließen zu können und eine Open-Hab-Oberfläche darzustellen. Denn wieder einen weiteren Raspian dafür laufen zu haben, macht in meinen Augen keinen Sinn. Am Ende soll alles in einem Magic-Mirrow münden.
Mein Setting dazu:
- Erst einen Raspberry mit einem normalem Rasbian aufsetzen
- Einen Container einrichten und eine PIVCCU 3 installieren und mit einer eigenen IP anbinden
- Einen IO-Broker aufsetzen
- Eine Influx-Datenbank installieren
- Ein Grafana-Frontend einrichten
- und zu guterletzt ein Open-Hab-Frontend
- Alles konfigurieren und schön machen
- Fertig
Erster Schritt: „Erst einen Raspberry mit einem normalem Rasbian aufsetzen“
Wie das geht, brache ich hier nicht zu beschreiben. Das ist hinreichend gut im Netzdokumentiert 😉 – Insbesondere, seitdem es den Raspiloader „Raspberry Pi Imager“ gibt, der verschiedene Systeme in jeweils aktueller Fassung herunterlädt und auf einer SD-Karte der Wahl schreibt. Ich rate hier zu einer Karte jenseits der 64GB, da die Datenbanken über die Jahre schon groß werden können.
Zweiter Schritt: „Container einrichten und eine PIVCCU 3 installieren“
Dieser Schritt ist schon etwas schlechter dokumentiert, da es verschiedene Hardware-Varianten gibt, und unterschiedliche Probleme mit Kernel-Versionen. Daher hier meine (deutsche Version) der Anleitung von der Git-Seite der piVCCu
Zuerst die öffentliche Quelle der pivccu im Internet zur Bibliothek hinzufügen:
wget -q -O - https://www.pivccu.de/piVCCU/public.key | sudo apt-key add
Dann das Packetverzeichnis angeben. Ich wähle hier immer die „stable“-Variante, da ich die Betaversionen nicht in die Haussteuerung bringen möchte.
sudo bash -c 'echo "deb https://www.pivccu.de/piVCCU stable main" > /etc/apt/sources.list.d/pivccu.list' sudo apt update
GANZ wichtiger Schritt. Das angleichen der Kernel-Versionen. Es kursieren im Netz verschiedene Anleitungen (insbesondere auch deutschsprachige) die diesen Schritt ignorieren. Das kann manchmal klappen, ist aber in der Regel ein Desaster, da verschiedenste Fehler bei den einzelnen Komponeten später auftreten können. Daher:
sudo apt install build-essential bison flex libssl-dev sudo apt install raspberrypi-kernel-headers pivccu-modules-dkms
Ich benutze das Standard-Funkmodul „HM-MOD-RPI-PCB“ von ELV und nicht das hb-rf-eth-Modul. Wenn ihr das hb-rf benutzt, dann muss dafür das Packet installiert werden. Diese einfach mit apt inst aufnehmen:
sudo apt install hb-rf-eth
Da ich das HM-MOD-RPI-PCB nutze, brauche ich dieses Paket:
sudo apt install pivccu-modules-raspberrypi
und anschließend weisen wie die Pins dem Funkmodul zu:
Dazu den Editor der /boot/config.txt aufrufen:
sudo bash -c 'cat << EOT >> /boot/config.txt
und die nachfolgenden vier Zeilen für die Pins setzen. Wir legen hier die UART-Schnittstelle fest. Das Ende ist immer EOT`
dtoverlay=pi3-miniuart-bt enable_uart=1 force_turbo=1 core_freq=250 EOT'
Ebenso muss dann noch die Serielle Schnittstelle aus dem Raspi deaktiviert werden, um das Funkmodul nutzen zu können (sonst kolliediert das). Das ist nur erforderlich, wenn die UART-Pins für das ELV-Funkmodul benutzt werden.
sudo sed -i /boot/cmdline.txt -e "s/console=serial0,[0-9]\+ //" sudo sed -i /boot/cmdline.txt -e "s/console=ttyAMA0,[0-9]\+ //"
Als nächstes muss die Netzwerkbrücke aus dem Container geführt werden.
sudo ip link show | cut -d' ' -f2 | cut -d: -f1 | grep -e '^e.*'
Dazu muss die Konfiguration geändert werden. Zum einen durch entfernen der DHCP und einfügen der Bridge-Utils:
sudo apt remove dhcpcd5 sudo apt install bridge-utils sudo bash -c 'cat << EOT > /etc/network/interfaces source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 EOT'
Nach einem Neustart muss dann noch die eigentliche Pivccu installierte werden:
sudo reboot sudo apt install pivccu3
Um zu schauen, welche Parameter die Installation hat, einfach die Info aufrufen:
sudo pivccu-info
Unter der IP-Adresse (Die sich auch in dem Router oder DHCP-Server finden sollte) ist dan die Homematic erreichbar. Bitte das setzen eines Passwortes nicht vergessen.
Nächster Schritt IO-Broker aufsetzen
Der IO-Broker istalliert sich quasi von allein. Wenn das Rasbian aktuell ist (und wir haben es ja gerade erst gemacht), dann könnt ihr direkt installieren.
Falls ihr auf ein bestehendes System gehen wollt, dann hier schauen, um die korrekte Node-Version zu installieren und die Pakete zu überprüfen.
Die IO-Brokerseite ist da selbsterklärend. Auf der Downloadseite ist die Installationsroutine beschrieben. Zuerst brauchen wir Node.js, da die gesamte IO-Broker-Kiste mit Javascript arbeitet.
curl -sLf https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
Anschließend können wir ohne Neustart direkt den Broker installieren.
curl -sLf https://iobroker.net/install.sh | bash -
Während der Installation werden einige Abfragen getätigt. Diese nach bestem Wissen und Gewissen beantworten. Nach einem Neustart ist dann der Broker auf dem Port 8081 zu erreichen
http://<IP-Adresse>:8081
Der IO-Broker ist automatisch als Dienst gestartet und fährt auch beim Neustart gleich mit hoch. Über die Konsole der Wahl kann der Broker ggf. gestoppt, gestartet und überprüft werden. Bei einigen Updates ist dies erforderlich. Hier die wichtigsten Befehle dazu
iobroker stop
iobroker start
iobroker restart
iobroker status
Beim ersten Öffnen durchläuft das Web-Frontend mit dir einige Einstellungen zum Standort und zu Standards. Dabei kann auch nach erforderlichen Adaptern gesucht werden.
Im IO-Broker sind Adapter quasi Plugins, die die Verbindung zu Drittanbieterelementen aufbauen und dann die Datenpunkte im IO-Broker darstellen. Die Homematic-Adapter (es sind mehrere) bestehen immer auf einem Adapter für die „Maschine“, also die Logic der Homematic und mehreren weitere Adapter zu den Kommunikations-Schnittstellen der Homematic. Diese Gliedern sich hauptsächlich in
- Homematic IP
- Homematic RF
- Homematic Wired
- Virtuelle Geräte
Jede Anschlussart an der Homematic muss erst als HM-RPC-Instanz in IO-Broker angelegt werden und danach in der HM-REGA verknüpft werden.
Wenn ihr (so wie ich) noch eine alte Homematic 1 parallel laufen habt, dann braucht ihr auch für diese zusätzlich erst die HM-RPCs und dann eine weitere HM-Rega.
Die Einstellungen sind selbsterklärend.
INFLUX
Der IO-Broker kann mit mehreren verschiedenen Datenbanksystemen gleichzeitig arbeiten. Das kann Sinn machen, wenn man z.B. mit einem externen Rechner bestimmte Datenbanken auslesen möchte. Die IO-Broker-eigene Datenbank „History“ ist in den Adaptern sehr weit verbreitet. Jedoch steht die Influx-Datenbank dieser kaum in Sachen Verbreitung nach.
Ich nutze die Influx gern, weil sie so schön einfach auswertungen über definierte Zeiträume auch in der Konsole ausgeben kann. Außerdem kann GRAFANA auf Influx-Datenbanken zugreifen und die Konfiguration ist denkbar einfach.
Der Adapter Influx-Datenbank installiert die Datenbank und stellt diese dann für die Datenpunkte (beim IO-Broker werden Datenpunkte „Objekte“ genannt) bereit.
GRAFANA einbinden
Grafana kann nicht als Plugin, Webfrontend, oder Ähnlliches aus dem IO-Broker installiert werden, sondern wird direkt auf einem Rasbian installiert.
Die Installation auf der „Tutorial-Seite“ der Grafana ist selbsterklärend, aber ich fasse es hier trotzdem mal zusammen:
Zuerst wieder den APt-Key hinzufügen, damit die Quelle bekannt ist:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Dann die Quelle aktualisieren.
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Jetzt Grafana installieren, indem das Apt-Get-Update aufgerufen wird:
sudo apt-get update
sudo apt-get install -y grafana
Grafana hat einen eigenen Web-Server, der auf Port 3000 erreichbar ist. Diesen Server aktiviert man mit:
sudo /bin/systemctl enable grafana-server
Starten get dann über:
sudo /bin/systemctl start grafana-server
Herzlichen Glückwunsch… JETZT steht dem Smarthome nichts mehr im Wege.
Ich habe mittlerweile knapp 50 Endgeräte eingebunden und visualisiert. Als Frontend nutze ich die Oberfläche des Openhabian (Open-Hab) Open-Hab, die als Adapter im IO-Broker vorhanden ist. Diese ist schön einfach aufzusetzen, schlicht in der Optik und kann (über Umwege) auch Responsiv eingerichtet werden.
Wer es flexibler mag, kann die „VIS“-Visualisierung nutzen. Diese ist wesentlich aufwendiger in der Einrichtung, kann aber individueller gestaltet werden. Als Darstellung von Grafen und Daten dient dann das Plugin „Flot“, welches dann einen Link erzeugt, der in VIS eingebunden werden kann.
Alles in Allem ist die Kombination aus IO-Broker, Homematic und dem vollständigen Rasbian-OS eine echt tolle Lösung, die einem Privatmann alles bietet, was erbraucht.