In meinem letzten Beitrag zu ioBroker habe ich dir erklÀrt, wie du GerÀte in das System einbinden kannst. Dort habe ich mir als Beispiel den Adapter des Deutschen Wetterdiensts herausgesucht, da dieser in seinen Einstellungsmöglichkeiten recht kompakt ist und damit als Beispiel gut geeignet scheint.

Dieser Beitrag soll dir nun zeigen, wie du basierend auf diesem Adapter eigene Regeln erstellen kannst und deinem Zuhause echte Intelligenz verpasst!

Wenn du meinen Beitrag zur Installation von GerĂ€ten noch nicht gesehen hast, dann musst du dort vorher unbedingt vorbeischauen. Außerdem möchte ich dir meine Grundlagen zum Thema ioBroker empfehlen. Dort habe ich dir den Aufbau erklĂ€rt und gezeigt, wie es bei ioBroker unter der Haube aussieht.

 

FĂ€llt dir die Erstellung von Skripten in ioBroker schwer?

Ergebnisse    Archiv

 

Was wir in diesem Beitrag umsetzen

 

Heute möchte ich gerne mit dir die Daten aus dem Adapter vom Deutschen Wetterdienst auswerten und eine interne Variable befĂŒllen.

Das Beispiel klingt sehr banal, ist jedoch ein Ausgangspunkt fĂŒr komplexere Regeln mit deinem ioBroker. Ich habe mir dieses Beispiel ausgesucht, weil sich hierbei sehr schön erklĂ€ren lĂ€sst, was es fĂŒr unterschiedliche Variablen gibt und wie du die Daten dieser Variablen nutzen kannst.

Wir erstellen gemeinsam ein Blocky-Skript und ich werde dir dieses auch spĂ€ter als Grafik in den Beitrag einfĂŒgen. Damit hast du dann den besten Überblick ĂŒber das, was wir jetzt gleich tun werden.

Die Regel, welche wir gleich erstellen, kannst du natĂŒrlich auch nach deinen WĂŒnschen erweitern. Wenn du statt einer internen Variable lieber eine Nachricht ĂŒber Telegram versenden möchtest, musst du dafĂŒr nur einen Teil des Codes austauschen. Das wir zwar nicht Bestandteil in diesem Beitrag sein, funktioniert jedoch ziemlich einfach.

Ich möchte nochmal darauf hinweisen, dass du fĂŒr die Umsetzung dieser Regel unbedingt bereits den Adapter des Deutschen Wetterdiensts eingerichtet haben musst. Wenn das noch nicht der Fall sein sollte, dann lies dir bitte diesen Beitrag vorher durch.

 

Was sind globale Variablen?

 

Wenn du dir eine Regel baust, dann wĂŒnschst du dir vielleicht manchmal, dass ein bestimmter Wert oder Zustand auch nach der AusfĂŒhrung noch erhalten bleibt. Das bedeutet, wenn deine Regel nochmal von vorne beginnt, soll ioBroker bereits wissen welcher Wert gesetzt ist.

Da Variablen innerhalb einer Regel jedoch nur von kurzer Dauer sind, also nach der AusfĂŒhrung gelöscht werden, muss etwas BestĂ€ndigeres her. BestĂ€ndig bedeutet in diesem Kontext ĂŒbrigens nur, dass der Wert auch nach der AusfĂŒhrung der Regel erhalten bleibt, nicht aber bei einem Neustart. Möchtest du einen Wert auch ĂŒber einen Neustart hinweg speichern, musst du diese Daten in einen sogenannten nicht-flĂŒchtigen Speicher ablegen. Das sind in der Regel Datenbanken, die mit ioBroker zusammenarbeiten.

Merke: Man unterscheidet zwischen lokalen Variablen innerhalb eines Skripts bzw. einer Regel und globalen Variablen, die ĂŒber das gesamte System verfĂŒgbar sind. Dadurch können auch andere Regeln auf diese Variablen zugreifen und die Daten weiterverarbeiten.

Auch lesenswert:  Alexa gegen Google Home - Wer hat die Nase vorn?

 

Lass uns loslegen!

 

Wir navigieren zuerst in die Objekte und suchen uns dort den Ordner javascript.0 heraus. Diesen musst du anklicken und im Anschluss daran in der Navigation oben auf das Plus klicken. Dadurch erhÀltst du ein neues Fenster, in dem du den Namen der Variable eingibst, die du erstellen möchtest. Ich habe meine Variable DWD_Warnung genannt.

Die Variable ist ein Datenpunkt und enthÀlt einen Logikwert. Ein Logikwert ist ein Wert, der entweder wahr oder falsch sein kann. Entwickler kennen das unter dem Namen boolscher Wert (true / false).

 

ioBroker globale Variable

 

Nach dem Speichern leitet dich ioBroker auf die Konfiguration deines Datenpunkts weiter. Hier musst du nichts einstellen und kannst die Konfiguration ĂŒber Abbrechen schließen.

 

Das Skript

 

Nun navigieren wir in den Bereich Skripte, wo wir unser Blocky-Skript erstellen werden.

Klicke oben auf das Plus, wodurch sich der Dialog Neues Skript hinzufĂŒgen öffnet. An dieser Stelle hast du die Wahl zwischen JavaScript, Blockly und TypeScript. Als noch unerfahrener Nutzer ist es empfehlenswert, Blockly auszuwĂ€hlen.

 

ioBroker neues Skript anlegen

 

Bei Blockly handelt es sich um ein Tool, das dir bei der Erstellung deiner Skripte hilft. Du kannst auf einfache Art und Weise deine Logik zusammenbauen, ohne dass du hierfĂŒr selbst Codezeilen schreiben musst.

Nun musst du einen Namen fĂŒr dein Skript vergeben. Ich nenne es DWD_Warnung, damit ich dieses Skript meiner Variable zuordnen kann. Das Feld Mappe kannst du vorerst unbeachtet lassen.

Jetzt kommst du in den Editor, in dem wir beginnen können das Skript zu erstellen. Wir wÀhlen zu Beginn Trigger aus und ziehen den ersten Trigger in unseren Arbeitsbereich.

 

ioBroker Blockly Trigger

 

Ein Trigger ist ein Auslöser und startet den Durchlauf eines bestimmten Skripts in deinem System. Dabei kann ein Trigger entweder eine bestimmte Uhrzeit oder die Änderung des Zustands einer Variable bzw. eines Datenpunkts sein.

FĂŒr unser Beispiel nutzen wir die Möglichkeit, dass das Skript bei der VerĂ€nderung einer Variable gestartet wird. Dazu wĂ€hlen wir als Objekt ID einen Datenpunkt aus dem DWD-Adapter. Die Auswahl kannst du starten, indem du auf das Wort default neben Objekt ID klickst.

 

DWD Auswahl

 

 

BestÀtige unten rechts deine Auswahl. Nun steht anstatt default der Name deiner Variable im Trigger.

Ich habe mich fĂŒr den Datenpunkt Headline entschieden, da dieser bei einer aktiven Warnung immer ausgefĂŒllt ist.

 

Der Anweisungsteil

 

Nun machen wir weiter mit der eigentlichen Anweisung fĂŒr unser Skript. Bislang haben wir ioBroker nur mitgeteilt, dass dieses Skript bei der Änderung der Headline seine Arbeit aufnehmen soll. Wir mĂŒssen allerdings auch noch mitteilen, was bei der AusfĂŒhrung genau passieren soll.

Dazu wĂ€hlen wir aus dem Bereich Logik den Baustein falls … mache aus. Als Bedingung geben wir an, dass der Wert des Datenpunkts nicht leer sein darf. Hierzu mĂŒssen wir erneut in den Bereich Logik navigieren und uns den zweiten Baustein von oben herausnehmen. Dieser vergleicht zwei Werte miteinander.

Auch lesenswert:  poweropti - Deine Energiedaten in einer App

Als nĂ€chstes nehmen wir aus dem Bereich Text den Baustein LĂ€nge von und setzen diesen in den linken Teil des Vergleichs ein. Wir Ă€ndern das Gleichzeichen zu einem GrĂ¶ĂŸer-Zeichen und setzen rechts davon aus dem Bereich Mathematik die Zahl 0 ein.

Wenn das geschafft ist, kommen wir zur eigentlichen Anweisung des Skripts. HierfĂŒr bedienen wir uns im Bereich System dem Baustein Steuere Object ID mit … und setzen diesen in den Bereich Mache.

Hier mĂŒssen wir nun fĂŒr Object ID die Variable auswĂ€hlen, die wir am Anfang in den Objekten erstellt haben. Das Vorgehen ist analog zur Auswahl der Objekt ID im Trigger des Skripts (siehe oben). Als Wert geben wir an, dass dieser Datenpunkt auf wahr gesetzt werden soll. Diesen Baustein entnehmen wir dem Bereich Logik.

 

DWD Regel Teil 1

 

Nun der umgekehrte Fall

 

Damit unsere globale Variable auch wieder auf falsch gesetzt wird, sobald es keine Warnung mehr gibt, mĂŒssen wir diese Regel nun umkehren.

Dazu bedienen wir uns der Möglichkeit, einen Sonst-Bereich hinzuzufĂŒgen.

 

DWD Regel Teil 2

 

Um dieses Fenster zu öffnen, klickst du auf das ZahnrĂ€dchen neben dem Falls und ziehst von der linken Seite das Sonst nach rechts unter das Falls. Klicke dann erneut auf das ZahnrĂ€dchen, um das Fenster zu schließen.

Jetzt kannst du den umgekehrten Fall hinzufĂŒgen und die globale Variable auf falsch setzen, sobald es keine Warnung mehr gibt.

Dazu fĂŒgen wir wieder eine Steuerung ein und setzen den Wert statt auf wahr einfach nur auf falsch. Schon erledigt!

 

DWD Regel Teil 3

 

Jetzt musst du dein Skript mit dem Button Speichern noch sichern, damit deine Änderungen nicht verloren gehen.

Um dein Skript nun an den Start zu bringen musst du es noch starten. In ioBroker lÀuft jedes Skript getrennt voneinander und kann so auch einzeln gestoppt und neu gestartet werden. Das macht das System insgesamt flexibler.

Links findest du eine Auflistung deiner Regeln. Klicke hier auf das rote Play-Zeichen, um deine Regel zu starten. Sobald dein Skript lĂ€uft, siehst du dort ein grĂŒnes Pause-Symbol. Wenn du dieses anklickst, ist dein Skript inaktiv und wird nicht weiter ausgefĂŒhrt.

 

Jetzt bist du dran!

 

Nach dieser kurzen Anleitung ist dir nun klar, wie du Skripte in deinem ioBroker umsetzen kannst. Damit lassen sich wunderbare Automationen erstellen, die dein Zuhause aufwerten. Sei ruhig etwas mutig und probiere dich aus.

Welche Bereiche hast du in deinem Zuhause vor zu automatisieren? Und welches Skript wĂŒrdest du dir fĂŒr dein Smart Home wĂŒnschen?

Über deine Ideen und eine Inspiration fĂŒr andere Leser wĂŒrde ich mir wirklich sehr freuen. Vielleicht entwickeln wir ja gemeinsam deine neuste Regel fĂŒr dein voll automatisches Zuhause? Hast du Lust drauf?


Lukas

Hi, mein Name ist Lukas. Seit 2016 blogge ich auf Hobbyblogging ĂŒber unterschiedliche Themen des Alltags. Schwerpunkt dabei ist das Thema Smart Home, speziell mit der Open Source Software OpenHAB. Neben dem Bloggen absolviere ich derzeit mein Master-Studium im Fachbereich Wirtschaftsinformatik und arbeite als Werkstudent im Software Engineering.

0 Kommentare

Schreibe einen Kommentar

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