ioBrokerioBroker Tutorials

ioBroker abendliche Prüfung

In diesem Artikel zeige ich, wie in unserem Smart Home abends alle Türen und Fenster sowie Beleuchtungen oder Geräte geprüft werden.

Bestimmt ging es euch auch einmal so, ihr liegt abends im Bett und kurz vor dem Schlafen gehen taucht die Frage auf, sind auch wirklich alle Fenster und Türen geschlossen? Natürlich könnten wir jetzt unsere Smart-Home App öffnen und einfach nachschauen, viel cooler wäre es aber doch, wenn uns das smarte Zuhause einfach darüber informiert. In diesem Artikel zeige ich, wie ich dieses Thema bei uns ganz einfach über ein kleines Script gelöst habe.

function DailyEveningCheck() 
{
    var Tuer_Haustuer_State = getState("hm-rpc.0.OEQ0167091.1.STATE").val;
    var Tuer_Terassentuer_State = getState("hm-rpc.0.NEQ1835804.1.STATE").val;
    var Fenster_Esszimmer_State = getState("hm-rpc.0.NEQ1835810.1.STATE").val;
    var Fenster_Kueche_State = getState("hm-rpc.0.NEQ1835811.1.STATE").val;
    var Fenster_WC_State = getState("hm-rpc.0.NEQ1835812.1.STATE").val;
    var Status_Device_TV = getState("hm-rpc.0.OEQ1398567.1.STATE").val;
    var Infos = [];
    var InfoMessage = ""; 
    
    // Test
    Fenster_WC_State = true;
    
    // Türen
    if ( Tuer_Haustuer_State === true ) { Infos.push("- Haustüre ist offen!");  }
    if ( Tuer_Terassentuer_State === true ) { Infos.push("- Terassentür ist offen!"); }    
    
    // Fenster
    if ( Fenster_Esszimmer_State === true ) { Infos.push("- Fenster Esszimmer ist offen!"); }
    if ( Fenster_Kueche_State === true ) { Infos.push("- Fenster Küche ist offen!"); }       
    if ( Fenster_WC_State === true ) { Infos.push("- Fenster WC ist offen!"); }      
    
    // Geräte
    if ( Status_Device_TV === true ) { Infos.push("- TV ist eingeschaltet!"); }
    
    // Wenn im Array Infos Einträge vorhanden sind, dann eine Benachrichtigung senden
    if ( Infos.length > 0 )
    {
        var infoLength = Infos.length;
        InfoMessage = "Informationen: \n";
        
        for (var i = 0; i < infoLength; i++) 
        {
            InfoMessage = InfoMessage+Infos[i]+'\n';
        }

        sendTo("telegram", "send", { text: InfoMessage });
    }
}

schedule({hour: 20, minute: 0}, function () {
    DailyEveningCheck();
});

Das Skript prüft nun jeden Abend um 20:00 Uhr ob die definierten Sensoren (Tür- und Fenstersensoren) offen bzw. die Zwischensteckdosen eingeschaltet sind. Über den Test-Abschnitt können die einzelnen Geräte vorab getestet werden. Um die Funktion einmalig nach dem Speichern des Skriptes zu testen einfach am Ende folgende Zeile einfügen:

DailyEveningCheck();

Ich hoffe ich konnte mit dem Artikel darstellen wie einfach selber definierte Prüfungen direkt im Script-Code über die schedule() Funktion erstellt werden können. Bei Fragen wie immer über die Kommentare oder per E-Mail 🙂

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.

3 Gedanken zu „ioBroker abendliche Prüfung

  • Thomas

    Hallo is es auch möglich über Telegramm die aktuelle Temperatur abzufragen von einem Thermostat? Wenn ich schreibe zbs. Temperatur Wohnzimmer das ich die Antwort übermittelt bekomme

    Antwort
  • Hallo Matthias, ich habe dein Script schon eine ganze Zeit im Einsatz, klappt auch prima. Ich würde das script aber gerne ausführen, wenn ich das Haus verlasse. Ich habe hierfür einen Datenpunkt „Bernd_anwesend“ angelegt. Leider weis ich nicht wie das anstelle des Cronjobs einbauen muss. Über einen Tipp würde ich mich freuen.
    Gruß Baerny

    Antwort

Schreibe einen Kommentar zu Thomas Antworten abbrechen

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