NEWS
Benötige Hilfe bei KlingelScript
-
Hallo,
ich habe aktuell folgendes Script mir erschlossen.
on({id: 'doorbird.0.Doorbell.1.trigger', change: "any"}, function (obj) { setState("vis.0.control.instance", 'FFFFFFFF'); setState("vis.0.control.data", 'Viewname_Klingel'); setState("vis.0.control.command", 'changeView'); setTimeout(function () { setState("vis.0.control.instance", 'FFFFFFFF'); setState("vis.0.control.data", 'Standartview'); setState("vis.0.control.command", 'changeView'); },9000); });
Nachdem meine Klingel gedrückt wurde soll soll auf einen View gewechselt werden. Und nach einer Zeit soll dann wieder zurück zu einem anderen View gewechselt werden. Das funktioniert auch alles wie es soll bis auf die Zeit. Egal welchen Wert ( z.B. 9000 oder 90000 oder 900000 ) ich am Ende eingebe der Wechsel auf den Standartview zurück geschieht immer nach circa 6 Sekunden. Ich hätte eigentlich gerne eine Zeit von 2-3 Minuten.
Was mache ich falsch ? -
@backons hast du mal einen debugtext ausgegeben ob dein timeout für die Rückschaltung verantwortlich ist? Evtl kommt das aus einer andren Richtung?
Kannst du das mal testen? -
Aktuell wird da ständig ein neuer timeout erstellt, da du ja auch Change any hast.
Dh , du löst einen timeout aus, wenn die Klingel gedrückt wird und wenn sie losgelassen wird.
Wenn dann jemand mehrfach klingelt wird es ganz wild.Du solltest prüfen, ob der Trigger true ist (damit nicht auch bei loslassen erneut ausgelöst wird), ob bereits die View eingestellt ist und ob ein timeout läuft. Wenn beides nein, dann führe aus ..
-
@backons sagte in Benötige Hilfe bei KlingelScript:
on({id: 'doorbird.0.Doorbell.1.trigger', change: "any"}, function (obj) {
Probier mal:
on({id: 'doorbird.0.Doorbell.1.trigger', change: "ne", val: true}, function (obj) {
Voraussetzung natürlich ist, dass deine id true und false hat; ansonsten halt der Wert der auslösen soll.
mfg
-
@tempestas oder de. Timeout global definieren und immer zuvor stop timeout aufrufen.
Ansonsten: Bekommt man die Referenz auf den getriggerten timeout?
-
Danke für die Hilfe !!!!
Hatte in einem anderen Script den selben Datenpunkt und dort das kurze Timeout... Nach deaktivieren des anderen Scriptes funktioniert es nun