ioBrokerioBroker Tutorials

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.

2 Gedanken zu „ioBroker Zeitsteuerung via Script

  • Martin Nitsche

    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
  • Jens Hübner

    Hallo Matthias,

    Frage: Wie kann ich denn ein Zeitintervall einstellen?
    Ich möchte, das zB nur im Zeitfenster von 22 – 7 Uhr eine Zusatzheizung angeht, wenn ein Wert unterschritten wird.

    Also das mit „Falls <" bekomme ich hin, aber wie ist denn die Zeitsteuerung für das Intervall?
    Ich will ja nicht , das er im Intervall jede Stunde irgendwas macht, sondern dass das gesamte Zeitintervall aktiv ist und außerhalb des Zeitfensters halt nichts gemacht wird….

    Dank Dir.

    Antwort

Schreibe einen Kommentar

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