NEWS
setStateDelayed - Fragen zur Funktion
-
@paul53
power_on -
@laser
Wenn "power_on" verzögert ausgeschaltet werden soll, muss false (anstelle von true) vor der Verzögerungszeit verwendet werden.setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/, false, 2000, false, function() { console.log("aus") });
-
@paul53 versuche es jetzt so:
function einschalten() { setState('rpi2.0.gpio.22.state'/**/,true); // true ist einschalten Relais setState('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,true); setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,6000); }; // Ende einschalten
EDIT: das ging so schnell, daß ich es in "Objekte" nicht gesehen habe. Bin jetzt auf 6000 gegangen.
-
@paul53 zweimal "delayed" geht wohl nicht? Nach Einschalten über Relais muß der Inverter erst hochlaufen...
und: gibt es einen Höchstwert für Delay?function einschalten() { // setState('rpi2.0.gpio.22.state'/**/,true); // true ist einschalten Relais setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); }; // Ende einschalten
-
@laser sagte: zweimal "delayed" geht wohl nicht?
Sollte funktionieren. Ich würde allerdings setTimeout() bevorzugen.
@laser sagte in setStateDelayed - Fragen zur Funktion:
gibt es einen Höchstwert für Delay?
Ja, der ist aber sehr hoch.
-
@paul53 das setzen funktioniert nicht. Erst wenn ich das zweite "setstateDelayed" auskommentiere, wird gesetzt nach Ablauf der Zeit. "setTimeout" muß ich mir ansehen.
function einschalten() { // setState('rpi2.0.gpio.22.state'/**/,true); // true ist einschalten Relais setStateDelayed('opendtu.1.114184537824.power_control.power_on'/**/,true,5000); // setStateDelayed('opendtu.1.114184537824.power_control.power_on'/*Start the inverter*/,false,8000); }; // Ende einschalten
-
@laser sagte: "setTimeout" muß ich mir ansehen.
function einschalten() { setState('rpi2.0.gpio.22.state'/**/,true); // true ist einschalten Relais setTimeout(function() { setState('opendtu.1.114184537824.power_control.power_on'/**/, true); setStateDelayed('opendtu.1.114184537824.power_control.power_on', false, 3000); // 3 s Impuls }, 5000); // 5 s Hochlauf }; // Ende einschalten
-
@paul53 Danke, das Absetzen der Impulse klappt so. Muß nur noch die Zeiten für den Inverter- Hochlauf hinbekommen, damit die Impulse auch wirken.
EDIT: Klappt auch mit dem Hochlauf abwarten... ,40000 -
@paul53
irgendwelche Nebenwirkungen hat das aber nicht (Unterbrechen von JS- Abarbeitung für die timeout-Zeit?) -
@laser sagte: Unterbrechen von JS- Abarbeitung für die timeout-Zeit?
Nein, setTimeout() wird asynchron ausgeführt.