NEWS
[gelöst] Frage zu Intervall als Wartezeit
-
prima .. hätte es dann so umgesetzt .. müsste passen …
-
Ich würde den 2ten falls im timeout Weck lassen und im ersten falls einen Stop timeout einbauen.
Ändert sich der wert Dan innerhalb der 30 Sekunden wieder > xx stopst du damit den Timer und nichts wird ausgeführt
Sent from my iPhone using Tapatalk
-
danke .. muss ich mal schauen ob ich das umgesetz bekomme .. dachte das passt so .. wegen der Hysterese.
Weiß gar nicht warum ich hier "Professional" bin .. vermutlich die Anzahl meiner Newbiefragen
-
Ist der Datenpunkt "waschmaschine" ein virtueller Datenpunkt (z.B. für Vis), dann aktualisiere verwenden; wird der Wert aber versendet (z.B eine SV der HM CCU), dann steuere verwenden.EDIT KORREKTUR: und durch zweites falls ersetzt
-
Danke Paul .. das ist ja sehr schlank
-
wenn das mal so schlicht läuft .. bin gespannt
-
Mal ne Frage zum Stop des timeout. Warum stoppe ich was, dass durch die falls Bedingung gar nicht gestartet wurde, oder steh ich gerade auf dem Schlauch?
-
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.
-
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.