IO Broker und Homematic auf Rasbian

  • Beitrags-Autor:
  • Beitrags-Kategorie:Allgemein
  • Beitrags-Kommentare:0 Kommentare

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.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darĂŒber, wie deine Kommentardaten verarbeitet werden.