ioBroker Ereignisse (Events) mit JavaScript überwachen

Events
Lesedauer: 2 Minuten

Eine Haus-Automatisierung ist im groben Prinzip eine Verkettung von “wenn -> dann” Abfolgen. Z.B. Wenn Schalter betätigt, dann Licht an; Wenn 20 Uhr abends jeden Tag, dann TV an. Viele dieser Funktionen lassen sich mit direkten Verknüpfungen innerhalb einer Gerätefamilie einrichten. Andere hingegen lassen sich über einen kleinen Umweg auch geräteübergreifend realisieren.

HomeMatic Aktor mit HomeMatic Schalter/Taster schalten

Eine schöne Art und Weise zum Schalten ist die direkte Verknüpfung zwischen einem HomeMatic Schalter und einem Aktor. Dieser lässt sich in der HomeMatic konfigurieren.

Direkte Verknüpfung in HomeMatic
Direkte Verknüpfung in HomeMatic

ioBroker Gerät/Datenpunkt mit HomeMatic Schalter/Taster schalten

Möchtest Du nun aber ein anderes Gerät mit einem HomeMatic Schalter/Taster schalten, so ist dies mit der HomeMatic nicht so einfach möglich. Klar, für manche Geräte gibt es Workarounds o.ä. Eine elegantere Lösung stellt hier das JavaScript in ioBroker dar, denn dieses kann plattformunabhängig reagieren. Als Beispiel möchte ich jetzt mit einem HomeMatic Schalter meinen Onkyo Receiver (über Onkyo Adapter verbunden) mit dem Taster einschalten.

on({id: 'hm-rpc.0.OEQ0613813.1.PRESS_SHORT', change: 'any'}, function(obj) {
    setState("onkyo.0.Zone1.Power", true);
 });

Über den Parameter on in der ersten Zeile lassen sich Datenpunkte “abonnieren”. Mit dem nächsten Parameter change lässt sich JavaScript anweisen, wie es auf Änderungen reagieren soll. Dazu ist in der nächsten Tabelle ersichtlich, welche Werte verwendet werden können.

WertBeschreibung
anyTrigger wird immer ausgeführt
eqDer neue Wert muss gleich dem Alten sein
geNeuer Wert muss größer oder gleich groß sein
gtNeuer Wert muss größer als der alte Wert sein
leNeuer Wert muss kleiner oder gleich groß sein
ltNeuer Wert muss kleiner als der alte sein
neDer neue Wert muss nicht gleich dem Alten sein (Standard)
Übersicht der change Parameter

Sollten Dich zeitgesteuerte Schaltungen auch interessieren, so findest du hier meinem Beitrag zu dem Thema.

Wie hat Dir der Beitrag gefallen?
Bewertung: 5/5 - abgegebene Bewertungen: 1

3 Gedanken zu „ioBroker Ereignisse (Events) mit JavaScript überwachen

  1. Willi Schmidt Antworten

    Hallo Stephan,
    vielen Dank für deinen Artikel über die Events-Überwachung per Trigger. Ich nutze diese in meinen Scripts oft und erfolgreich. Jetzt habe ich aber eine Frage: Wie kann ich diese Trigger an anderen Stellen im Script manuell aufrufen, also so, als ob ich sie wie eine Funktion aufrufe? Geht das? Klar könnte ich die Befehle innerhalb des Triggers in ene Funktion schreiben und diese dann über den Troigger selber aufrufen, aber eleganter wäre es, wenn ich den Trigger einfach auch manuell triggern könnte. Hast du da ene Idee?
    Danke und Grüße,
    Willi

    • Stephan Autor des BeitragsAntworten

      Hallo Willi,
      du kannst z.B. eine Funktion erstellen, die durch den Trigger, aber auch durch eine andere Funktion aufgerufen wird.

      Beispiel:

      n({id: 'hm-rpc.0.OEQ0613813.1.PRESS_SHORT', change: 'any'}, function(obj) {
      setzeStatus("onkyo.0.Zone1.Power");
      });

      /* Diese Funktion kannst Du dann auch aus einem Skript aufrufen -> setzeStatus(andereId);*/
      function setzeStatus(id) {
      setState(id, true);
      }

      Gruß,
      Stephan

  2. Pingback: Zeitgesteuerte Schaltungen mit JavaScript in ioBroker | Kreyenborg.koeln

Schreibe einen Kommentar

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