Automation mit iobroker

Es muss nicht immer Haus-Automation sein. Deine Phantasie ist das Limit...

Automation mit iobroker
Photo by Jelleke Vanooteghem / Unsplash

Wer in seiner Jugend die Möglichkeit hatte mit Lego Mindstorms zu experimentieren, der wird sich in iobroker sofort zurecht finden.

ioBroker Smarthome
ioBroker is an IoT platform (Fog computing). It has ability to manage your IoT system as one intelligent, robust project. Unique graphics and beautiful interfaces for you. Use one of the best open source products for managing your automation system on premise. Comprehensive smart home support

Es muss nicht immer ein Haus sein

Die Meisten begegnen mir mit dem Standpunkt: "Ich wohne doch in einer Mietwohnung. Was kann ich hier schon automatisieren..."

Das ist sicherlich richtig. Doch mit einem kleinen Raspberry permanent Dinge im Blick zu behalten, die man selbst wahrscheinlich irgendwann vergessen würde, ist einfach eine enorme Erleichterung.

Grundlagen

Wenn man verstanden hat, wie die Daten in iobroker organisiert sind, wird die Bedienung einfach. Will man z.B. eine Fritzbox beobachten, muss diese mit einem Adapter an iobroker angeschlossen werden. Und wenn man weitere Fritzboxen anschließen will, benötigt es dazu mehrere Instanzen dieses Adapters:

In den Einstellungen jeder Instanz des Adapters kann man dann konfigurieren, wie die Fritzboxen erreichbar sind und wählt dafür am besten einen eigenen Benutzer auf der Fritzbox.

Hier kann man auch Geräte im WLAN erkennen lassen, um sie später zum Beispiel für eine Anwesenheitserkennung nutzen zu können. Ist die Instanz dann aktiv, entstehen sogenannte Datenpunkte:

So könnte man zum Beispiel im Blockly-Script auf eine Änderung im gesamten JSON-Objekt unterhalb von /tr-064/0/callmonitor/inbound reagieren. Während also das Telefon ( ringing=true ) klingelt, könnte man schnell im Internet nachschauen, wer da anruft (man hat ja nicht jeden Anrufer im lokalen Telefonbuch).

Informationen über den Anrufer könnte man dann auf einem Awtrix-Display darstellen oder an seine Smartwatch schicken. Ich mache das so:

Sobald sich das JSON-Objekt ändert, welches Informationen über das letzte eingehende Gespräch enthält, schaue ich auf das-oertliche.de nach, wem die Nummer gehört und schicke eine Info darüber an meine SmartWatch.

Benzinpreise?

Ich möchte z.B. gerne informiert werden, wenn der Preis für Diesel an meiner favorisierten Tankstelle am günstigsten ist. Leider weiß man ja nie, ob er noch weiter fällt. Daher habe ich mir folgendes überlegt:

Nachts steht an der Anzeigetafel der Tankstelle und in der MTS-K der günstigste Preis des vergangenen Tages. Wenn ab diesem Zeitpunkt ein Preis angekündigt wird, der 3ct über dem günstigsten Vortageswert liegt, möchte ich dies erfahren. Und wann immer der Preis noch günstiger wird natürlich auch. Das Muster folgt immer dem gleichen Ablauf:

Und so könnte dann die zugehörige Automation in Blockly aussehen:

Um 2:01 in der Nacht hole ich mir den Diesel-Preis, addiere 3ct dazu und lege das Ergebnis in der Variablen SPRITBILLIGPREIS ab. Falls sich nun der Preis ändert, schicke ich mir eine Nachricht falls der Preis maximal 2ct über dem gestrigen Minimum liegt und merke mir dies als neuen SPRITBILLIGPREIS. Weitere Nachrichten kommen somit nur, falls dieser neue Preis unterboten wurde.

Ölpreis?

Ja. Ich habe noch eine Ölheizung. Im Gegensatz zu Gas und Strom ermöglicht sie mir einen Vorrat anzulegen, wenn der Preis günstig ist. Dazu beobachte ich meinen Kontostand, meinen Ölstand und natürlich den Ölpreis. Sollte ich Platz und Geld haben und der Preis ist günstig, dann möchte ich den Moment nicht verpassen.

Was macht mein Auto?

Ich könnte ebenso die Informationen meines Autos nutzen. Es gibt dazu eine große Auswahl an Adaptern.

So könnte ich aus meinem Tesla auslesen, was das Ziel auf dem Navi ist und wieviel Zeit dorthin noch benötigt wird. Wenn das Ziel "mein Zuhause" ist und die verbleibende Zeit unter x-Minuten liegt, dann mach das Garagentor auf. Oder falls es dunkel ist zusätzlich die Außenbeleuchtung an. Oder setze meine Frau in Kenntnis, dass ich voraussichtlich in x-Minuten zuhause sein werde. Möglicherweise möchte ich auch meine Wallbox ausschalten, falls mein Auto nicht zuhause ist, damit nicht jemand anderes meinen Strom tankt.

Vielleicht muss ich aber auch einfach nur ein Fahrtenbuch führen, falls mein Arbeitgeber mich dazu verpflichtet hat.

Dynamischer Wecker

Wenn ich morgens mit öffentlichen Verkehrsmitteln zur Arbeit fahre, möchte ich mich gerne entsprechend wecken lassen. Auch diese Informationen können integriert werden:

Somit werde ich früher oder später geweckt. An Feiertagen auch mal garnicht.

Server-Monitoring?

Warum nicht auch prüfen, ob die eigene Webseite erreichbar ist? Oder meine WLAN-Steckdose?

Wie man sieht, kann die Blockly-Darstellung beliebig eingesetzt werden:

Hier wird geprüft, ob mein Blog erreichbar ist. Das Ergebnis wird einem Datenpunkt zugewiesen. Via Python prüfe ich auch gleich noch die Verfügbarkeit verschiedener weiterer Services...

Darstellung mittels Visualisierung

Unter iobroker kann man sehr einfach Webseiten mit Übersichten frei gestalten. Bezüglich der überwachten Server habe ich für mein Smartphone ein Dashboard gebaut, bei dem sich die Widgets entsprechend der Verfügbarkeit färben:

Man kann in diesem Editor einfach aus hunderten von Objekten auswählen und diese per Drag-n-Drop auf die Webseite legen. Damit zum Beispiel der HTTPs Button seine Farbe ändert, gebe ich dies in den Eigenschaften des Buttons an:

Und auf dem Smartphone sieht das schließlich so aus:

Noch komplexer?

Wem diese Möglichkeiten noch zu eingeschränkt erscheinen, kann auch auf Blockly verzichten und z.B. Javascript nutzen:

Und schon sieht man auch, was man mit Blockly zusammengestellt hat:

Fazit

Wie man sieht: Es gibt viele Anwendungen, die nicht direkt Haus-Automation sind. Automatisieren kann man vieles. Und wenn man erst einmal damit angefangen hat, erweitert man die Aufgaben des iobrokers immer umfangreicher. Versprochen ;-)