Kleine Anregungen:
Das Ereignis soll letztendlich nur ausgeführt werden, wenn der Wert von idAbwesendKurzVariable false wird. Hier dürfte es effizienter sein, die Prüfung gleich bei on() vorzunehmen:
on({id: idAbwesendKurzVariable', value: false},...)
Da Programm würde sich dadurch noch mal verkürzen.
/* Programm Abwesend Kurz
Ablösen des CCU2 Programms
Mit Hilfe von Jey Cee, Pix und Paul53
*/
// Das Einschalten der Alarmierung der INSTAR2 Kamera erfolgt über CCU2 Programm "Anwesend kurz INSTAR2 Balkon Alarm Aus"
// Abfrage der Abwesenheit Kurz:
var idAbwesendKurzVariable = 'hm-rega.0.2330'; // System Variable CCU2 Abwesend Kurz
idLichthelligkeit = "hm-rega.0.19606",
idAstro = 'hm-rega.0.7961';
// kurze Schreibweise
on({id: idAbwesendKurzVariable, value: false}, function (obj) {
var helligkeit = getState(idLichthelligkeit).val,
astro = getState(idAstro).val;
if (!astro) { // wenn Astro ist Nacht
if (!helligkeit) starteAktion2();
} else { // wenn Astro ist Tag
if (helligkeit) starteAktion3();
else starteAktion4();
}
});
Warum verwendest Du Variablen von der Homematic? Wenn es geht solltest DU in Betracht ziehen, dass zu ändern. Die Variablen von Homematic werden nur von Zeit zu Zeit aktualisiert (gewollt). Daher kann es zu deutlichen Verzögerungen kommen. Ich habe bei mir nach und nach alle Abhängigkeiten der Homematic soweit möglich entfernt. Auch der Zustand Tag/Nacht wäre ein Punkt den man nach ioBroker verschieben könnte.