ioBroker Zeitsteuerung via Script

In diesem Artikel zeige ich Dir, wie Zeitsteuerungen per Script ausgeführt werden können.In einem anderen Artikel habe ich bereits gezeigt, wie einfache Zeitsteuerungen via Kalender erstellt werden können. In diesem Artikel erstellen wir eine Zeitsteuerung via Script, in dem wir flexibler und einfacher auf verschiedene Objektzustände reagieren können. Im ersten Schritt gehen wir dazu in der ioBroker Administrationsoberfläche auf die Tab-Lasche „Skripte“.

Unter dem Bereich Common erstellen wir dann ein neues Script, welches wir zur Zeitsteuerung einsetzen.

 

Im nächsten Schritt wählen wir als Engine-Typ „JavaScript“ aus. Zudem können wir hier noch den Namen des Scripts anpassen.

 

Für die Zeitsteuerung soll die schedule Funktion verwendet werden. Die schedule() Funktion besitzt folgende Parameter-Signatur:

 

schedule (pattern, callback)

Der Parameter pattern beschreibt die Cron-Syntax, als callback wird die Funktion definiert, welche zum definierten Zeitpunkt ausgeführt werden soll. Im folgenden Bild ist der Cron-Syntax beschrieben, ich gehe auf diesen Syntax aber nicht näher ein, da wir hier eine andere Form nutzen werden.

 

Anstatt des Cron-Syntax verwenden wir folgende Schreibweise um unsere Zeitsteuerung zu realisieren:

schedule({hour: 20, minute: 15}, RunDailyScript );

function RunDailyScript() {
  log("Skript wird jeden Tag um 20:15 ausgeführt");
}

 

Mit dem schedule haben wir nun definiert, dass das Skript jeden Tag um 20:15 ausgeführt werden soll. In der Funktion RunDailyScript() können wir nun unsere eigene Logik integrieren, mit dem das Skript auf entsprechende Objektzustände reagiert.

Die schedule Funktion besitzt weitere Parameter:

  • hour
  • minute
  • date
  • month
  • year
  • dayofweek

 

Beispiel:

schedule({hour: 14, minute: 30, dayOfWeek: 0}, function(){
  console.log('Sonntag Mittag 14:30 - Zeit für einen Kaffee ;-)');
  drinkCoffee();});

 

Im Beispiel-Code wird die Funktion „drinkCoffee“ immer Sonntags um 14:30 ausgeführt.

 

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail 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 „ioBroker Zeitsteuerung via Script

  • 4. August 2019 um 21:19
    Permalink

    Hallo Matthias, zunächst einmal herzlichen Dank für deine vielen Beiträge zum ioBroker, haben mir schon sehr geholfen. In diesem Beitrag hat mir ein kleiner Fehler allerdings viel Kopfzerbrechen gemacht, bis ich die richtige Schreibweise heraus hatte. Du hast dort im ersten Programm den Aufruf schedule({hour: 20, minute: 15}, RunDailyScript();}); Das ist falsch, es müsste lauten schedule({hour: 20, minute: 15}, RunDailyScript); d.h. hinten sind vier Zeichen zu viel „();}“. Herzliche Grüße, Martin

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere