ioBroker auf dem Raspberry Pi (optional mit Multihost und VIS) installieren

Diese Anleitung beschreibt die Installation von ioBroker auf einem Raspberry Pi☆ auf Basis von Raspbian Stretch. Diese Anleitung ist für jede ioBroker-Installation nutzbar. Später geht es dann weiter mit der Konfiguration als Multihost, was optional ist. Wer diesen Teil nicht braucht, kann ihn einfach überspringen. Am Ende geht es um die Konfiguration des Raspberry für eine VIS-Darstellung im Fullscreen-Kiosk-Modus. Diese ist unabhängig vom Multihost. Man kann also mit dieser Anleitung nur einen ioBroker installieren und optional die Multihost-Funktionalität sowie die VIS. Die nicht benötigten Schritte kann man einfach weg lassen, die anderen werden hierdurch nicht beeinflusst… Dies gilt übrigens auch für die ioBroker-Installation! Auch diese kann man weg lassen. Wer nur einen Raspberry für die VIS haben will, kann die Installation einfach so durchführen…

Teil 0 – Vorwort und Vorarbeiten: Installation von Raspbian Stretch auf dem Raspberry Pi

Ich habe bei mir im Smarthome eine Besonderheit: die Visualisierung soll im Flur auf einem 32 Zoll Touchscreen-Monitor☆ dargestellt werden. Was liegt da näher, als einen Raspberry Pi☆ für die Darstellung zu nutzen? Doch was soll darauf laufen? Nur ein Browser für die VIS? Nein! Hier läuft ein zweiter ioBroker im Multihost-Betrieb, um auch diesen Raspberry im System einzubinden. Doch dazu später mehr… Zuerst benötigen wir eine geeignete Installation. Basis bei mir ist ein Raspbian Stretch-Image (Image-Download hier), welches ich auf die Micro SD-Karte des Raspi installiert habe. Dieses Image wird zuerst ganz normal im Raspberry Pi gebootet.

Nun erscheint die grafische Benutzeroberfläche von Raspbian, beim ersten Start öffnet sich von selbst ein Konfigurations-Assistent. In diesem werden alle Schritte durchlaufen. Zuerst kommen die lokalen Einstellungen (nach der Auswahl von Germany als Land sollten Sprache, Zeitzone und Tastaturlayout automatisch angepasst werden), dann wird ein Passwort festgelegt, ein WLAN ausgewählt und Updates durchgeführt. Im Anschluss wird ein Reboot des Systems durchgeführt.

Wenn das System wieder gestartet wurde, müssen wir noch zwei Einstellungen ändern. Hierzu klicken wir auf den Home-Button oben links (die rote Himbeere!), gehen auf Einstellungen und dann auf Raspberry-Pi-Konfiguration. Hier müssen wir auf dem System-Tab den Hostname definieren (bei mir passend „touch“) sowie auf dem Schnittstellen-Tab die SSH-Funktion aktivieren. Das System verlangt dann von sich aus einen Neustart, welchem wir natürlich zustimmen. Das war es nun mit der Konfiguration am Raspberry selbst, der Rest wird über das Netzwerk durchgeführt.

Teil 1 – Installation von ioBroker und dafür benötigter Software

Wir starten das Tool PuTTY (oder einen anderen SSH-Client) und verbinden uns mit dem Server (Hostname hoffentlich nicht vergessen? Im Zweifelsfall einfach im Router nachschauen!). Bei der ersten Verbindung werden wir gefragt, ob wir dem Schlüssel vertrauen möchten, was wir natürlich mit „Ja“ bestätigen. Auf der Konsole angekommen, müssen wir uns zuerst einloggen, was wir mit dem Benutzernamen „pi“ und dem selbst ausgewählten Passwort machen.

Nun müssen wir eine ganze Reihe Befehle eingeben, um den ioBroker zu installieren. Manche der Befehle brauchen etwas Zeit für die Ausführung, ohne dass was zu sehen ist. Bitte nicht abbrechen, einfach Geduld haben und warten! Die hierbei erscheinenden Warnungen sind für uns unwichtig und können ignoriert werden! Die Befehle am besten von hier per Copy&Paste in PuTTY übernehmen, dass auch kein Tippfehler rein kommt! Am besten hier jede Zeile mit einem dreifachen Klick markieren, dass nicht aus Versehen Zeilen zerteilt werden, weil die Darstellung am Bildschirm evtl. zu Umbrüchen führt, die hier nicht rein gehören!

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y build-essential libavahi-compat-libdnssd-dev libudev-dev libpam0g-dev nodejs
sudo npm install -g npm@4
sudo mkdir /opt/iobroker
sudo chmod 777 /opt/iobroker
cd /opt/iobroker
sudo npm install iobroker --unsafe-perm
sudo iobroker start

Der ioBroker ist nun fertig installiert und sollte im Browser über folgende Adresse erreichbar sein:

  • http://<hostname>:8081

Teil 2 – Konfiguration von ioBroker als Multihost-Lösung

Da wir hier aber nicht einen separaten ioBroker installieren wollten, geht es nun noch weiter (wer einfach einen ioBroker auf dem Raspberry haben möchte, kann hier abbrechen!). Wir müssen zuerst den Master in den Multihost-Modus bringen. Hierzu verbinden wir uns per PuTTY auf diesen und geben folgende Befehle ein (beim Master wird in diesem Schritt ein Passwort definiert, welches im Slave wieder zur Bestätigung eingegeben werden muss):

  • cd /opt/iobroker
  • sudo iobroker multihost enable

Nun verbinden wir uns wieder auf unseren neuen Raspberry und machen diesen zum Multihost-Slave. Hierzu geben wir folgende Befehle ein:

  • cd /opt/iobroker
  • sudo iobroker multihost connect

Nach Ausführung dieser beiden Schritte muss auf beiden Geräten der ioBroker neu gestartet werden, was jeweils mit folgendem Befehl passiert:

  • sudo iobroker restart

    Multihost-Betrieb

Die Multihost-Umgebung sollte jetzt laufen. Dies können wir auf dem Master-ioBroker kontrollieren, indem wir links auf den Tab „Hosts“ klicken (siehe Bild rechts). Sollte dieser nicht zur Auswahl stehen, einfach ganz oben links auf das Dreieck klicken, um diesen zu aktivieren. Hier sind jetzt alle in dieser Konfiguration existierenden Hosts zu sehen. Auf den Slave-Systemen ist das Admin-Frontend nicht mehr nutzbar. Es werden alle Hosts über den Master konfiguriert! Hier kann für jeden Adapter separat eingestellt werden, auf welchem System er laufen soll (bei Bedarf einfach mehrere Instanzen installieren!).

Teil 3 – Konfiguration des Raspberry Pi für die VIS im Kiosk-Modus

Primäre Aufgabe meines Pi sollte ja sein, die VIS für mein Smarthome darzustellen. Hier könnte man jedes mal bei Bedarf einen Browser öffnen und darauf zugreifen. Das macht natürlich weder Sinn, noch ist es eine schöne Lösung. Mein Ziel ist es, beim Start des Raspberry nichts tun zu müssen und die VIS als Vollbild dargestellt zu bekommen. Dies ist kein Problem! Wir müssen nur entscheiden, ob wir auch den Mauszeiger ausblenden möchten (wird beim Touchscreen schließlich nicht benötigt). Falls ja, wird das Tool unclutter mit folgendem Befehl installiert:

  • sudo apt-get install unclutter

Nun editieren wir einfach mit dem Befehl „sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart“ die Autostart-Optionen unseres Raspberry und fügen folgende Zeilen hinzu:

@unclutter
@xset s off
@xset -dpms
@xset s noblank
@chromium-browser --incognito --kiosk http://iobroker:8082/vis/index.html#main

EDIT Juli 2019: Auf neueren Raspi-Systemen hat sich der o.g. Pfad geändert und heißt jetzt /etc/xdg/lxsession/LXDE-pi/autostart

Wer den Mauszeiger nicht mit unclutter ausblenden möchte und es daher nicht installiert hat, lässt einfach die erste Zeile weg! In den folgenden Zeilen werden Bildschirmschoner und Energiesparmodus abgeschaltet. Die VIS bleibt also daherhaft auf dem Bildschirm dargestellt, bis wir diesen wieder aus schalten oder den Raspberry herunter fahren. In der letzten Zeile müssen wir die Webadresse unserer VIS entsprechend anpassen… Die Änderungen werden dann mit Strg+O gespeichert (Datei mit Enter bestätigen) und der Editor mit Strg-X beendet. Mit dem nächsten Neustart des Raspberry sollte dieser automatisch die VIS starten!

Teil 4 – Ein- und Ausschalten des Monitors über den ioBroker

Der Monitor für die VIS muss natürlich nicht 24h täglich laufen. Primär dann nicht, wenn keiner wach ist, aber auch nicht, wenn überhaupt keiner zu Hause ist. Das ein- und ausschalten des Monitors müssen wir natürlich über den ioBroker am entsprechenden Raspberry steuern.

Wir installieren also eine neue Instanz des JavaScript-Adapters, als Server wählen wir den neuen Multihost-Slave aus und nach der Installation wählen wir in den Einstellungen den Haken bei „Erlaubt das Kommando „exec“„. Zur Steuerung legen wir noch in den Objekten einen neuen Datenpunkt vom Typ Logikwert an (ich habe diesen einfach „Monitor“ genannt). Als Typ und Rolle wählen wir jeweils „state„. Nun wechseln wir in den Skripte-Bereich und erstellen dort ein neues Script (hier meines zum Download). Als Instanz für dieses Skript wählen wir die neu angelegte JS-Instanz an (in der Regel also 1). Damit wird definiert, dass das Skript auf dem Raspberry und nicht auf dem „Hauptserver“ ausgeführt wird. Wer keine Multihost-Umgebung hat, kann diesen Punkt ignorieren. Wenn wir jetzt in den Objekte-Bereich wechseln, können wir über das wechseln des Status unseres neues Datenpunktes zwischen true und false den Monitor ein- und ausschalten. Somit sind ab jetzt keinerlei Grenzen für die Steuerung des Monitor über den ioBroker gesetzt! Ich habe diesen zum Beispiel in meiner „Gute-Nacht-Routine“ aufgenommen, wo er abgeschaltet wird. Dies wird ebenso bei Abwesenheit automatisch durchgeführt! Morgens oder bei Rückkehr nach Hause wird mein Monitor automatisch wieder aktiviert. Hier sind natürlich auch tausende andere Lösungen denkbar (z.B. Steuerung über Bewegungsmelder etc.).

8 Kommentare

  1. Ich habe gerade mein erstes SmartHome Projekt Rollladensteuerung fertig und will das ganze mit ioBroker erweitern. Ich muss allerdings sagen, dass der Raspi damit ganz schnell an seine Grenzen kommt, wenn man ein paar Module (Homematic, Javascript, Alexa, Flot, …) installiert hat. Im Moment überlege ich, auf etwas leistungsstärkeres umzusteigen. Wie sind deine Erfahrungen mit Raspi + iobroker bisher?
    MfG
    Sickboy

    • Raspi und ioBroker geht. Für den Anfang… Auf Dauer ist man mit mehreren Adaptern leider nicht glücklich damit. Inzwischen läuft mein System auf einem HP Microserver Gen8 unter Proxmox, wo er seit Wochen stabil und ohne jegliche Probleme sehr performant seine Arbeit verrichtet…

  2. Hallo Daniel. Schöner Beitrag. Gerade der Multihost Teil ist für mich sehr interessant und es überrascht mich wie unkompliziert sich iobroker in den Multihost schalten lässt. Ich plane ebenfalls einen Umzug auf einen mit Proxmox ausgestatteten MiniPC.
    Meine übrigen, bzw zumindest einen der Raspis möchte ich dann als Multihost im anderen Geschoss laufen haben. Hauptsächlich als Zigbee Signalverstärker und den Bluetooth Scan vom Radar Adapter. Die Performance läuft dann größtenteils über die VM.
    Ich bin gespannt ob sich das alles so wie gewünscht umsetzen lässt. Weiter so und viele Grüße aus Westfalen.
    nurChris von Youtube 🙂

    • Haha… Wir haben da einen ziemlich ähnlichen Plan… Mein Multihost wird demnächst neu aufgesetzt. Für die VIS und als Bluetooth-Tag-Scanner für die Anwesenheitserkennung!

      Gruss Daniel

  3. Hallo DAniel, auch mir gefällt Dein Beitrag so sehr, das ich mich gleich ans Werk gemacht habe. Nun sind seit Nov. 2018 bis jetzt schon einige Versionen ins Land gegangen und ich hatte als interessierter Laie so manche Mühe das ioBroker-System zum laufen bringen aber es läuft.
    Gern würde ich auch die Visualisierung nutzen, aber da gehts bei mir nicht weiter den Mauszeiger habe ich erst mal nicht beachtet, aber das Verzeichnis /home/pi/.config/lxsession/LXDE-pi/ gibt es bei mir nicht und die einzutragenen Befehle funktionieren bei mir leider auch nicht. Bin ich zu spät? ist alles scshon wieder neu und ganz anders?
    Das ich nicht die hellste Glühbirne im Softwarehimmel bin weiß ich, aber vielleicht ein kleiner Denkanstoß?

    Viel Dank im voraus

    Volker

    • Hi Volker, da ich aktuell keine neue Installation durchgeführt habe, kann ich nicht sagen, in wie weit mein Tutorial noch stimmt. Habe außer von Dir bisher keine Probleme berichtet bekommen. Kann in den nächsten Tagen vielleicht berichten, wenn ich meinen neuen VIS-Installation umsetze…

      Gruss Daniel

      • Danke, würde mich freuen etwas von Dir zu hören. Wenn ich endlich mit dem Pi4 an der Reihe bin, werd ich es auch noch einmal probieren.

        Beste Grüße Volker

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


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