openHAB 3 Tutorial 6 – Rules&Script –

Dieses openHAB 3 Tutorial behandelt das Thema Rules und Scripts. Ich zeige Euch anhand von 4 Beispielen die „3“ verschiedenen Möglichkeiten eine Rule bzw. ein Script anzulegen. Dabei erstellen wir die erste Rule mit der „normalen“ Rule Engine, die zweite Rule mit dem Blockly und die dritte Rule mit dem reinen Javascript.

Diese drei Funktionen werden verwendet um den State zu lesen, bzw. einen Command oder ein

Update an ein Item zu schicken:

• itemRegistry.getItem(„MyItem“).getState()

• events.sendCommand(„MyItem“, “NewState“)

• events.postUpdate(„MyItem“, „Command“)

Rule ServerKosten Heute:

  • Einen Trigger auswählen
  • Dann ein Script ausführen:

events.postUpdate(„ServerKostenTag“,itemRegistry.getItem(„SonoffP4Test_SonoffP4TagVerbr“).getState () * 0.3);

Rule Müll Trigger bzw. Kalender:

  • Einen Time Trigger an für jeden Wochentag um 19:00Uhr anlegen
  • Dann ein Script ausführen:

if((new Date(itemRegistry.getItem(„Mull_Ergebnisstart_0“).getState().toString()) – new Date()) < 104400000)
{events.sendCommand(„EchoShow_TextSpeech“, „Morgen steht folgender Termin an “ + (itemRegistry.getItem(„Mull_Ergebnistitel_0“).getState().toString()) + „“);}

Ein Gedanke zu “openHAB 3 Tutorial 6 – Rules&Script –

  1. Moin, erstmal vielen Dank für die OH3 Tutorial Reihe. Das hat mit sehr geholfen.

    Ich tue mich mit javascript ehrlich gesagt recht schwer und habe ein Problem mit den Uhrzeiten – vielleicht hast du eine Idee.

    Ich habe folgende Regel, die meine Aussenbeleuchtung in Abhängigkeit der Helligkeit und Uhrzeit steuern soll:
    var Lights_Off, Lights_On;

    Lights_Off = 150;
    Lights_On = 130;
    if (itemRegistry.getItem(‚HmIPWetterstation_Illumination‘).getState() = ‚5:45‘ || itemRegistry.getItem(‚NTPLocalTime_Zeit‘).getState() <= '8:30')) {
    events.sendCommand('Gartenbeleuchtung_Helligkeit', '60');
    events.sendCommand('Terrassenbeleuchtung_Helligkeit', '25');
    } else if (itemRegistry.getItem('HmIPWetterstation_Illumination').getState() = ’15:30′ || itemRegistry.getItem(‚NTPLocalTime_Zeit‘).getState() = Lights_Off) {
    events.sendCommand(‚Terrassenbeleuchtung_Helligkeit‘, ‚0‘);
    events.sendCommand(‚Gartenbeleuchtung_Helligkeit‘, ‚0‘);
    }

    Blöderweise funktioniert das mit den Uhrzeiten nicht so wie es soll. Das Item NTPLocalTime_Zeit ist gemäß deinem Tutorial als „HH:mm“ per Metadaten formatiert, also beispielsweise 22:25. Scheinbar erkennt Javascript dies aber so nicht und im Log steht „Item ‚NTPLocalTime_Zeit‘ changed from 2021-09-12T14:08:47.992+0200 to 2021-09-12T14:09:47.994+0200“. Daher frage ich mich, ob ich das ganze in Javascript noch umbauen muss.

    Hast du evtl. eine Idee?

    Besten Dank und Gruß Christoph

Schreibe einen Kommentar

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