smarthome-tricks.de

ioBroker Blockly Anleitung: Blöcke, Beispiele und Funktionen einfach erklärt

Mit Blockly lassen sich in ioBroker Automationen erstellen, ohne direkt JavaScript schreiben zu müssen. Statt Code werden einzelne Blöcke miteinander verbunden. Damit lassen sich einfache Schaltungen genauso umsetzen wie umfangreichere Abläufe mit Bedingungen, Zeitsteuerungen, Variablen und eigenen Funktionen.

Gerade für Einsteiger ist Blockly ein guter Weg, um die Logik hinter einer Smart-Home-Automation zu verstehen. Gleichzeitig bleibt die Oberfläche flexibel genug, um später auch komplexere Abläufe zu bauen.

Was ist ioBroker Blockly?

Blockly ist ein grafischer Editor für Skripte. Anstelle von geschriebenem JavaScript werden Bausteine verwendet, die sich wie Puzzleteile miteinander verbinden lassen. Jeder Block übernimmt dabei eine bestimmte Aufgabe.

Im Hintergrund erzeugt ioBroker daraus JavaScript. Du musst diesen Code für normale Blockly-Automationen aber nicht selbst schreiben.

Bild 1: Die Blockly-Oberfläche in ioBroker mit Triggern, Logik, Aktionen, Zeit, Variablen und weiteren Bereichen.

Blockly-Skript in ioBroker erstellen

Blockly-Skripte werden über den JavaScript-Adapter verwaltet. Voraussetzung ist deshalb, dass der JavaScript-Adapter in ioBroker installiert und aktiv ist.

  1. Öffne die ioBroker-Administration.
  2. Gehe zum Bereich Skripte.
  3. Erstelle ein neues Skript.
  4. Wähle als Typ Blockly.
  5. Vergib einen eindeutigen Namen.
  6. Baue anschließend die gewünschte Automation aus einzelnen Blöcken zusammen.

Ein Blockly-Skript besteht meistens aus mindestens einem Auslöser und einer Aktion. Häufig kommen zusätzlich Bedingungen dazu.

Die wichtigsten Blockly-Blöcke

Trigger

Trigger bestimmen, wann ein Skript ausgeführt wird. Ein typisches Beispiel ist eine Änderung an einem Datenpunkt. Das kann ein Bewegungsmelder, ein Taster, eine Temperatur oder ein anderer Sensor sein.

Ein häufig verwendeter Trigger lautet sinngemäß: Wenn sich der Wert eines bestimmten Datenpunkts ändert, führe die darunterliegenden Blöcke aus.

Logik

Mit Logik-Blöcken lassen sich Bedingungen prüfen. Dadurch reagiert ein Skript nur dann, wenn bestimmte Voraussetzungen erfüllt sind.

Aktionen

Aktionen verändern Datenpunkte oder lösen konkrete Vorgänge aus. Damit kannst du zum Beispiel ein Licht einschalten, einen Rollladen fahren oder einen Sollwert verändern.

Zeit

Zeit-Blöcke werden für feste Uhrzeiten, Intervalle oder zeitabhängige Automationen verwendet. Damit lassen sich beispielsweise Geräte jeden Abend zu einer bestimmten Uhrzeit ausschalten.

Variablen

Variablen speichern Werte innerhalb des Skripts. Das ist praktisch, wenn ein Wert mehrfach verwendet oder während eines Ablaufs verändert werden soll.

Funktionen

Eigene Funktionen helfen dabei, wiederkehrende Abläufe übersichtlich zu halten. Statt denselben Block mehrfach zu bauen, wird eine Funktion einmal erstellt und später mehrfach aufgerufen.

Beispiel 1: Licht bei Bewegung einschalten

Ein klassisches Beispiel für Blockly ist die Verbindung eines Bewegungsmelders mit einer Lampe. Sobald Bewegung erkannt wird, schaltet das Skript das Licht ein. Wird keine Bewegung mehr erkannt, kann das Licht wieder ausgeschaltet werden.

Bild 2: Ein Bewegungsmelder dient als Trigger. Bei erkannter Bewegung wird das Licht eingeschaltet.

Der Aufbau besteht aus einem Trigger, einer Bedingung und zwei möglichen Aktionen.

In der Praxis sollte man bei Bewegungsmeldern häufig noch eine Verzögerung einbauen. Sonst geht das Licht sofort aus, sobald der Sensor keine Bewegung mehr erkennt.

Beispiel 2: Licht automatisch um 22 Uhr ausschalten

Für feste Uhrzeiten eignet sich ein Zeitplan. Im folgenden Beispiel wird ein Licht jeden Abend um 22 Uhr ausgeschaltet.

Bild 3: Zeitgesteuerte Automation mit Blockly. Das Licht wird jeden Tag um 22 Uhr ausgeschaltet.

Solche Zeitpläne eignen sich zum Beispiel für Beleuchtung, Weihnachtsbeleuchtung, Außenlampen oder Geräte, die nachts nicht eingeschaltet bleiben sollen.

Beispiel 3: Variablen und eigene Funktionen verwenden

Sobald Blockly-Skripte größer werden, helfen Variablen und Funktionen dabei, die Übersicht zu behalten. In einer Variablen kann beispielsweise eine gewünschte Helligkeit gespeichert werden.

Bild 4: Eine Variable speichert die gewünschte Helligkeit. Die Funktion übernimmt anschließend das Setzen des Datenpunkts.

Eine eigene Funktion kann anschließend diesen Wert übernehmen und an den entsprechenden Datenpunkt schreiben. Dadurch muss die gleiche Logik nicht an mehreren Stellen erneut gebaut werden.

Typische Bedingungen in Blockly

Viele Automationen benötigen mehr als einen einfachen Trigger. Häufig soll eine Aktion nur unter bestimmten Voraussetzungen ausgeführt werden.

Dafür lassen sich mehrere Bedingungen miteinander verknüpfen. Typische Verknüpfungen sind UND und ODER.

Datenpunkte in Blockly auswählen

Ein wichtiger Teil jeder Blockly-Automation ist die Auswahl der richtigen Datenpunkte. ioBroker stellt die Datenpunkte aller eingebundenen Adapter zentral bereit.

Bei einem Bewegungsmelder kann ein Datenpunkt zum Beispiel den Zustand true oder false liefern. Eine Lampe besitzt häufig einen Datenpunkt für Ein und Aus sowie weitere Datenpunkte für Helligkeit oder Farbe.

Wenn ein Skript nicht funktioniert, lohnt sich deshalb zuerst ein Blick auf den verwendeten Datenpunkt. Oft liegt der Fehler nicht in Blockly selbst, sondern an einem falschen Objekt oder einem unerwarteten Wert.

Blockly und JavaScript

Blockly ist eng mit JavaScript verbunden. ioBroker erzeugt aus den grafischen Blöcken automatisch JavaScript-Code. Für Einsteiger ist das praktisch, weil sich Automationen zunächst ohne Programmierkenntnisse erstellen lassen.

Wer später komplexere Skripte benötigt, kann sich schrittweise mit JavaScript beschäftigen. Viele Grundprinzipien aus Blockly bleiben dabei erhalten, zum Beispiel Trigger, Bedingungen, Variablen und Funktionen.

Häufige Fehler bei ioBroker Blockly

Skript ist nicht aktiviert

Ein neu erstelltes Skript muss aktiviert sein. Ist es ausgeschaltet, werden auch korrekt aufgebaute Blockly-Blöcke nicht ausgeführt.

Falscher Datenpunkt

Bei vielen Geräten gibt es mehrere ähnlich benannte Datenpunkte. Prüfe deshalb im Objektbaum, welcher Datenpunkt tatsächlich verändert wird.

Datentyp passt nicht

Ein Datenpunkt kann zum Beispiel einen Wahrheitswert, eine Zahl oder einen Text enthalten. Eine Bedingung mit einem falschen Datentyp liefert häufig nicht das gewünschte Ergebnis.

Trigger reagiert zu häufig

Ein Trigger kann bei jeder Änderung eines Datenpunkts ausgeführt werden. Je nach Sensor kann das sehr häufig passieren. In solchen Fällen sollte genauer festgelegt werden, auf welche Änderung das Skript reagieren soll.

Blockly übersichtlich halten

Bei kleinen Automationen ist die Übersicht meist kein Problem. Größere Blockly-Skripte können allerdings schnell unübersichtlich werden.

Blockly-Beispiele für das Smart Home

Mit Blockly lassen sich sehr viele typische Smart-Home-Aufgaben umsetzen. Einige Beispiele:

Blockly oder JavaScript: Was ist besser?

Für viele Smart-Home-Automationen reicht Blockly vollkommen aus. Gerade wenn nur einige Geräte miteinander verbunden werden sollen, lässt sich die Logik damit schnell nachvollziehen.

JavaScript bietet mehr Möglichkeiten, wenn Abläufe sehr komplex werden oder spezielle Funktionen benötigt werden. Blockly hat dafür den Vorteil, dass man die Struktur einer Automation direkt sehen kann.

Wer gerade mit ioBroker beginnt, kann deshalb problemlos mit Blockly starten und später bei Bedarf auf JavaScript umsteigen.

Fazit

ioBroker Blockly ist ein guter Einstieg in die Automatisierung des eigenen Smart Homes. Trigger, Bedingungen und Aktionen lassen sich grafisch miteinander verbinden und bleiben auch bei kleineren Projekten gut nachvollziehbar.

Mit Variablen, Zeitsteuerungen und eigenen Funktionen lassen sich später auch umfangreichere Abläufe umsetzen. Wer die Grundlagen verstanden hat, kann damit einen großen Teil typischer ioBroker-Automationen ohne selbst geschriebenen JavaScript-Code erstellen.

Die mobile Version verlassen