Und das Ganze etwas erweitert:
var Rueckstellung, Zaehler_On, Zaehler_OFF, Auswertung;
on({id: 'Aktor_Küche#1.Relay0.Switch', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
Rueckstellung = setTimeout(function () {
Zaehler_On = 0;
Zaehler_OFF = 0;
console.warn((['Variablen zurückgesetzt, Mit Zähler ON= ',Zaehler_On,' und Zähler OFF=',Zaehler_OFF].join('')));
}, 10000);
if (getState("Aktor_Küche#1.Relay0.Switch").val == true) {
Zaehler_On = (typeof Zaehler_On == 'number' ? Zaehler_On : 0) + 1;
}
if (getState("Aktor_Küche#1.Relay0.Switch").val == false) {
Zaehler_OFF = (typeof Zaehler_OFF == 'number' ? Zaehler_OFF : 0) + 1;
}
Auswertung = setTimeout(function () {
if (Zaehler_On == 2 && Zaehler_OFF == 2) {
if (getState("Lampe 1#1.Relay0.Switch").val == false) {
setState("Lampe 1#1.Relay0.Switch"/*Switch*/, true);
console.log('Aktor1_in_der_Wunschszene aktiviert');
}
if (getState("Lampe 1#1.Relay0.Switch").val == true) {
setState("Lampe 1#1.Relay0.Switch"/*Switch*/, false);
console.log('Aktor1_in_der_Wunschszene deaktiviert');
}
Zaehler_OFF = 0;
Zaehler_On = 0;
}
if (Zaehler_On == 3 && Zaehler_OFF == 3) {
if (getState("Lampe 2#1.Relay0.Switch").val == false) {
setState("Lampe 2#1.Relay0.Switch"/*SHSW-1#BA6C4B#1.Relay0.Switch*/, true);
console.log('Aktor2_in_der_Wunschszene EIN');
}
if (getState("Lampe 2#1.Relay0.Switch").val == true) {
setState("Lampe 2#1.Relay0.Switch"/*SHSW-1#BA6C4B#1.Relay0.Switch*/, true);
console.log('Aktor2_in_der_Wunschszene AUS');
}
Zaehler_OFF = 0;
Zaehler_On = 0;
}
}, 6000);
});
Die Variablen werden erst nach 10 Sekunden genullt und die Auswertung der Wunschszene erfolgt - in diesem Beispiel - nach 6 Sekunden.
Hinterlegt wird ein jeweils angepasstes Script für jeden in Frage kommenden Teilnehmer, der die Szenen auswählen darf.