NEWS
[gelöst] Frage zu Intervall als Wartezeit
-
Zwei Dinge sind blöd .. zum einen steht die Waschmaschine still trotzdem "ist sie fertig" .. kommt grad so alle paar Minuten. Kein einziger Val ist über 0.3. Und die W_kWh und W_Euro sind NaN (Not a Number) .. müssten sie doch aber sein.
17:36:39.598 [info] javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350} 17:36:39.599 [info] javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350} 17:36:39.599 [info] javascript.0 script.js.common.waschmaschine_trockner: setTimeout(ms=30000) 17:37:06.963 [info] javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970432.2.POWER, timerId=0) => {"val":0.28,"ack":true,"ts":1538235426957,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235426957} 17:37:06.964 [info] javascript.0 script.js.common.waschmaschine_trockner: setTimeout(ms=30000) 17:37:09.599 [info] javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350} 17:37:09.599 [info] javascript.0 script.js.common.waschmaschine_trockner: setForeignState(id=.eigene.wäschetrockner, state=false) 17:37:36.965 [info] javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970432.2.ENERGY_COUNTER, timerId=0) => {"val":2359.5,"ack":true,"ts":1538235426950,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538234215211} 17:37:36.965 [info] javascript.0 script.js.common.waschmaschine_trockner: sendTo(adapter=email, cmd=send, msg={"text":"Verbrauch heute: NaN kWh. In Euro: NaN","to":"xx@xx.com","subject":"Waschmaschine heute"}) 17:37:36.965 [info] javascript.0 script.js.common.waschmaschine_trockner: setForeignState(id=alexa2.0.Echo-Devices.G090LF107207028R.Commands.speak, state="Die Waschmaschine ist fertig")
-
kommt grad so alle paar Minuten. Kein einziger Val ist über 0.3. `
Aber auch nicht konstant. Deshalb die Abfrage erweitern auffalls Wert < 4 und vorheriger Wert >= 4
EDIT: falls Wert < 4 falls vorheriger Wert >= 4
Und die W_kWh und W_Euro sind NaN (Not a Number) `
Die Variable Wstart wurde sicherlich noch nicht initialisiert, da der sonst-Zweig noch nie erreicht wurde. Initialisiere die Variable <u>zusätzlich</u> außerhalb des Triggerblocks:setze Wstart auf Wert vom Objekt Waschmaschine:2.ENERGY_COUNTER
-
Warum stoppe ich was, dass durch die falls Bedingung gar nicht gestartet wurde `
Der Timer wird gestoppt, wenn die Falls-Bedingung erfüllt war, aber innerhalb der Verzögerungszeit sie nicht erfüllt bleibt. Beispiel:Waschmaschine läuft –> Leistung 3 W (Start Timer) --> nach 10 s Leistung 50 W (Stopp Timer) --> nach 20 s Leistung wieder 3 W (Start Timer) --> nach 40 s Leistung 50 W (Stopp Timer) --> nach 50 s 3 W (Start Timer) --> nach 80 s Wachmaschine fertig.
Ohne den Stopp Timer würden nach 20 s und 50 s weitere Timer gestartet, der erste Timer würde weiterlaufen und nach 30 s fertig melden, der zweite Timer nach 50 s und der dritte Timer nach 80 s. `
OK, jetzt weiß ich auch warum sich einige meiner Blocklys komisch verhalten, eigentlich logisch.
-
> falls Wert < 4 und vorheriger Wert >= 4
Wie macht mann denn das mit dem vorherigen Wert? Ist das "letzte Änderung" ?
-
Unter Trigger:
-
"eiks"! .. so?
Attachment gelöscht .. wg. Mailadresse sorry .. weiter unten ist ein Update
-
so? `
Sollte passen. -
Danke Paul .. dann drück ich mal auf Play
Melde mich demnächst mit einem Status zurück.
Schönen Abend allerseits!
-
KORREKTUR !
Die UND-Verknüpfung mit vorheriger Wert funktioniert so leider nicht, da dies zu zusätzlichen Möglichkeiten des Stopp Timer im Sonst-Zweig führt (z.B. bei Änderung von 0,25 auf 0,28 W). Bitte korrigieren mit zusätzlichem falls:
-
Moin Paul, danke für Deine Korrektur!
Ich war mir nicht sicher ob es nur an der Demo liegt oder auch so ist .. aber ich muss offenbar gar nicht "von Objekt sowieso einfügen" wenn es nur eine Objekt gibt das triggert .. hoffe ich hab das richtig verstanden. Mit true/false arbeite ich auch nicht mehr in diesem Skript.
Was mir heute Morgen aufgefallen ist (vor der Korrektur) sind die vielen Log-Einträge weil der Messwert offenbar zittert 0,27/0,28. Womöglich ist das jetzt weg .. mal schauen.
-
ich muss offenbar gar nicht "von Objekt sowieso einfügen" wenn es nur eine Objekt gibt das triggert .. hoffe ich hab das richtig verstanden. `
Richtig verstanden.
@daniello:die vielen Log-Einträge weil der Messwert offenbar zittert 0,27/0,28. `
Wodurch wurden die Log-Einträge erzeugt ? Hattest Du einen Debug-Block im Sonst-Zweig ? -
Nein .. aber Hilfe-Ausgaben war angekreuzt. Scheint aber jetzt auch mit Checkbox ruhig zu sein.
-
Wenn es jetzt funktioniert wie gewünscht, markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].
-
Mach ich .. haben aber noch nicht gewaschen
(meinte nur das Loggen)
-
Moin Paul, danke für Deine Korrektur!
Ich war mir nicht sicher ob es nur an der Demo liegt oder auch so ist .. aber ich muss offenbar gar nicht "von Objekt sowieso einfügen" wenn es nur eine Objekt gibt das triggert .. hoffe ich hab das richtig verstanden. Mit true/false arbeite ich auch nicht mehr in diesem Skript.
Was mir heute Morgen aufgefallen ist (vor der Korrektur) sind die vielen Log-Einträge weil der Messwert offenbar zittert 0,27/0,28. Womöglich ist das jetzt weg .. mal schauen.
2018-09-29_132626_vorherigerWertt.png `
Hallo, ich habe nun testweise das Programm auf meine Sonoff angepasst.
Leider klappt es nicht ganz wie gewünscht.
Die Maschine hat einen Standby Verbrauch von 1-4 Watt.
Im Waschgang geht sie auch mal runter auf 2 Watt, das aber nur ganz kurz.
In dem Fall wo sie eben mal kurz auf 2 Watt ging, kam die Meldung, das die Maschine fertig ist.
Was ich aber generell nicht an dem Programm verstehe. Normalerweise verbraucht die Maschine ja über 4 Watt. Also müsste das Skript ja durchgehend im "inneren falls" sein und mir ständig Nachrichten senden, wieso ist das aber nicht so. (Sry bin mit blockly noch nicht ganz warm geworden.)
Vielleicht kann mir ja wer Licht ins dunkle bringen.
VG
Lindi
-
In dem Fall wo sie eben mal kurz auf 2 Watt ging, kam die Meldung, das die Maschine fertig ist. `
Dann ist die Timeout-Zeit zu kurz.
@lindi200000:Normalerweise verbraucht die Maschine ja über 4 Watt. Also müsste das Skript ja durchgehend im "inneren falls" sein und mir ständig Nachrichten senden, wieso ist das aber nicht so. `
Bei >= 4 Watt geht das Programm in den unteren Sonst-Zweig. -
@daniello: Die Ermittlung von Wstart im unteren Sonst-Zweig funktioniert so nicht (erfasst nur die letzte Aktionszeit der WM). Verschiebe es an das Ende des Timeout-Blocks (vor oder hinter speak).
-
ja da war was komisch .. danke .. kann aber erst Sonntag weiter basteln
Gesendet von meinem BLA-L29 mit Tapatalk
-
In dem Fall wo sie eben mal kurz auf 2 Watt ging, kam die Meldung, das die Maschine fertig ist. `
Dann ist die Timeout-Zeit zu kurz.
@lindi200000:Normalerweise verbraucht die Maschine ja über 4 Watt. Also müsste das Skript ja durchgehend im "inneren falls" sein und mir ständig Nachrichten senden, wieso ist das aber nicht so.
Bei >= 4 Watt geht das Programm in den unteren Sonst-Zweig.
Achso, also wenn der timer gestoppt wird, dann wird alles im timer ausgeführt, ansonsten startet er immer wieder, wodurch die Tg Nachricht nicht gesendet wird.Richtig verstanden?
Gesendet von meinem BLA-L29 mit Tapatalk
-
wenn der timer gestoppt wird, dann wird alles im timer ausgeführt, `
Nein, wenn der Timer gestoppt wird, wird die Ausführung der Aktionen im Timer verhindert. Erst ein Neustart des Timers führt <u>nach der vorgegebenen Verzögerungszeit</u> zu den Aktionen im Timer.