ioBrokerioBroker Blockly

Blockly – Mit dem ID-Selektor alle Geräte steuern

In diesem Artikel zeige ich Dir, wie Du mit dem ID-Selektor Block alle Geräte einer Funktion in ioBroker steuern kannst.

Für eine weitere Lichtsteuerung habe ich nach einem einfachen Weg zur Steuerung von allen Leuchtmitteln im Haus gesucht. Hierbei wollte ich nicht die einzelnen Datenpunkte der Leuchtmittel manuell eintragen, sondern über die Funktion der Objekte die Datenpunkte ansteuern.

Im ersten Schritt zeige ich Dir dazu in den ioBroker Objekten die entsprechende Funktion. Über die Funktionsauswahl siehst Du hier die entsprechenden Objekte (Aktoren oder Sensoren) mit der hinterlegten Funktion. In meinem Fall verwende ich hier die Funktion funcLight zur Steuerung der Leuchtmittel.

Im folgenden Screenshot siehst Du ein Leuchtmittel mit der Funktion „funcLight“. Bitte achte hierbei darauf, dass nur der eigentliche Datenpunkt zur Steuerung des Aktors die Funktion enthält. Alternativ kann hier noch eine weitere Funktion hinterlegt werden.

Im nächsten Schritt legen wir uns nun ein neues Blockly-Script an. In meinem Fall verwende ich einen Schalter als Aktor zur Steuerung der Lichter. Ich möchte mit einem Klick auf den Schalter alle Leuchtmittel ein- oder ausschalten. Dazu habe ich im ersten Schritt die Objekt-ID des Schalters am Trigger (Falls-Objekt) eingetragen. Im nächsten Schritt habe ich dann eine Schleife (Iterator) auf den IDs vom Selektor Block gesetzt, sodass alle IDs der definierten Bedingung durchlaufen werden. Als Bedingung habe ich folgende Definition hinterlegt:

state[id=*](functions=funcLight)

In den Bereich „mache“ der Schleife (Body) habe ich dann den Block „Schreibe“ gesetzt und die Variable i für die ID des Datenpunkts sowie die Option „steuere“ für das Schalten von Aktoren und den eigentlichen Wert des Triggers (true oder false) übernommen. Eine Verzögerung habe ich hier nicht hinterlegt.

Wenn jetzt der Schalter verändert wird, wird der neue Wert des Schalters (true oder false) über die Schleife in alle Datenpunkte der Funktion funcLight gesetzt und somit das Licht entsprechend gesteuert.

Ich hoffe Dir gefällt der Artikel. Über Kommentare, Anregungen oder Ideen freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

Ein Gedanke zu „Blockly – Mit dem ID-Selektor alle Geräte steuern

  • Sören

    Hallo Matthias,
    Danke für das Script.
    Ich werde es für die autom. Beleuchtung beim Auslösen der / eines Rauchmelders umbauen. Somit wird überall Licht und und die Rettungswege sind beleuchtet.

    Danke
    Sören

    Antwort

Schreibe einen Kommentar zu Sören Antworten abbrechen

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