So,
jetzt habe ich mir auch ein kleines Alarmscript (irgendeine Fensteröffnung = Pushovermeldung) gebastelt, welches die Besonderheit hat, dass es die beiden Kellerfenstersensoren nicht meldet, sofern diese beiden Fenster vom Entfeuchtungsscript automatisch geöffnet/geschlossen worden sind.
Außerdem sendet es nur eine Meldung, wenn die Personenanzahl weniger als 1 ist (also niemand zuhause ist). Das habe ich über den Geofence Adapter gelöst.
Es scheint so zu klappen alles, vielleicht nicht elegant, aber ich kann denn Code nachvollziehen.
// Forum: http://forum.iobroker.net/viewtopic.php?f=21&t=2473 // Horcht an allen Gewerken (functions) unter "Alarm" und sendet bei Statusänderung // Schließt die beiden Kellerfenster vom Alarm aus, sofern das Lüftungsscript die Öffnung/Schließung angestoßen hat: // wenn Jalousieaktorstatus (= Aktor für die Fenstermotoren) auf WORKING steht, dann werden die Kellerfenster ausgeschlossen! // IDs deklarieren var jemandzuhauseid = "geofency.0.atHomeCount"/*atHomeCount*/; var kellerscriptsiid = "hm-rpc.0.MEQ03xxxxx.1.WORKING"/*Fensteröffner Keller Sicherungsraum:1.WORKING*/; // liest den Jalousieaktor aus, WORKING = in Arbeit var kellerscriptwaid = "hm-rpc.0.MEQ05xxxxx.1.WORKING"/*Fensteröffner Keller Waschraum:1.WORKING*/; $('channel(functions=Alarm)[state.id=*.STATE]').on(function (event) { // An "Alarm"-Gewerke nach Statusänderungen prüfen var _obj = getObject(event.id, 'functions'); log("---------------------------------------------------"+ event.channelName, "info"); var jemandzuhause = getState(jemandzuhauseid).val; // IDs auslesen var kellerscriptsi = getState(kellerscriptsiid).val; var kellerscriptwa = getState(kellerscriptwaid).val; if((event.channelName !== 'Fenstersensor Keller Sicherungsraum' && kellerscriptsi !== true) || // Ausschluss Kellerfenster bei automatischer Öffnung/Schließung (event.channelName !== 'Fenstersensor Keller Waschraum' && kellerscriptwa !== true)) { if (jemandzuhause < 1) // Prüft ob jemand Zuhause ist { sendTo("pushover", {message: 'ALARM: ' + event.channelName + ' hat angeschlagen!', priority: 1}); // wenn nein, Alarmnachricht //setState(sayit_vol, 100); //setState(sayit_txt, "Der "+ event.channelName +" hat angeschlagen."); } } });