NEWS
10 Sek Wartezeit bei Skript
-
Hallo Leute,
habe hier ein Skript, welches per modbus und zwave in der Visualisierung ein Licht an- und ausschalten soll. Es funktioniert auch, aber zwischen dem Schalten muss immer einer Zeitspanne von 10 Sekunden sein, sonst wird 10 Sekunden gewartet zwischen den Schaltvorgängen. Da das für eine Präsentation gebraucht wird, sollte er sofort schalten.
on({id: 'modbus.0.holdingRegisters.12289_Write_Steckdose', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("modbus.0.holdingRegisters.12289_Write_Steckdose").val == false) {
setState("zwave.0.NODE3.SWITCH_BINARY.Switch_1"/Switch/, false);
}
else {
setState("zwave.0.NODE3.SWITCH_BINARY.Switch_1"/Switch/, true);
}
});
Besten Dank für einen Schubs in die richtige Richtung
Michael
-
setStateDelayed("zwave.0.NODE3.SWITCH_BINARY.Switch_1"/Switch/, true, 10*1000);
Gesendet von meinem SM-G800F mit Tapatalk
-
dank dir für deine Antwort, aber ich wollte ja, das es keine 10 Sekunden wartet. Hab es probiert mit 1*1000, das hat aber nichts geändert
-
Das Problem liegt nicht am Skript. ZWave sollte eigentlich auch sofort schalten, sofern es keine massive Überlastung des Funkverkehrs gibt.
Bleibt noch modbus: Wird da möglicherweise gepollt? Wenn ja, ist das Intervall konfigurierbar?
-
Hattest eigentlich keine Zeit drinne….
on({id: 'modbus.0.holdingRegisters.12289_Write_Steckdose', change: "ne"}, function (obj) { var Steckdose = getState('modbus.0.holdingRegisters.12289_Write_Steckdose').val; if (Steckdose === false) { setState("zwave.0.NODE3.SWITCH_BINARY.Switch_1"/*Switch*/, false); }else { setState("zwave.0.NODE3.SWITCH_BINARY.Switch_1"/*Switch*/, true); } });
-
Ich habe das Poll Intervall bei modbus probeweise auf 10ms runtergeschaltet, ändert aber nichts am Verhalten.
-
Dann beobachte mal (geht im Objekte-Tab), wann der ZWave-State gesetzt wird und wann die Bestätigung erfolgt (grüne Farbe). Wenn hierzwischen deutliche Verzögerungen auftreten, gibts Probleme im Funkverkehr. Wenn die Verzögerung vorher auftritt, liegt es womöglich bei Modbus - das solltest du aber auch im Objekte-Tab sehen.
Btw:
var Steckdose = getState('modbus.0.holdingRegisters.12289_Write_Steckdose').val;
kannst du ersetzen durch
var Steckdose = obj.val;
da obj der aktuelle Zustand des getriggerten States ist.
-
Der status bei zwave schaltet sofort um, muss also an modbus liegen. Bei Alexa hab ich aber auch dieselbe Verzögerung.
-
@walf Hallo, hast Du inzwischen gefunden, wo das Problem liegt? Ich habe selbiges mit der Rolladensteuerung sowie Licht. Führe ich über vis oder Scripte mehrere Befehle hintereinander aus habe ich eine Latenz von ca. 8-10 Sekunden zwischen den einzelnen Ausführungen.
Viele Grüße
Matthias
-
@Matten
Schau Dir mal setStateDelay an...