NEWS
Waschmaschine
-
Hallo!
Ich habe ein Waschmaschinen-Skript welches leider nicht ganz funktioniert.
Ich bekomme eine Benachrichtigung, dass die Waschmaschine den Waschvorgang beendet hat und auch die Informationen bzgl. Stromverbrauch, Dauer, usw. jedoch schaltet die Waschmaschine während des Waschvorgangs kurz auf 4W und dann wieder über 5W. Dh ich bekomme pro Waschvorgang mehrere Nachrichten, dass die Waschmaschine fertig ist.
Ich müsste irgendwie an der folgenden Stelle einbauen, dass wenn der Wert für 1min auf unter 5W und WaschmaschineEinAus ist wahr erst dann folgt "mache"...
Wäre super, wenn mir da jemand weiterhelfen könnte.
LG
Andi -
Timeout Und Forensuche sind die Stichwörter:
https://forum.iobroker.net/search?term=Waschmaschine Fertig&in=titlesposts
-
@wendy2702 Hab ich bereits gesucht. Was brauchbares war leider nicht dabei. Ich weiß dass ich irgendwie die Timeout Funktion verwenden muss nur weiß ich leider nicht genau wie ich das in mein Skript einbauen soll.
LG
-
@Sepp55464
Vielleicht hilft dir mein Test (Verständnis) Script um den Timer bei dir zu implementieren?Hier das Log dazu:
08:58:24.457 info javascript.0 (6138) script.js.Test: Neuer Wert: 0 08:58:24.457 info javascript.0 (6138) script.js.Test: Restart 08:58:27.853 info javascript.0 (6138) script.js.Test: Neuer Wert: 9 08:58:27.854 info javascript.0 (6138) script.js.Test: Wert größer/gleich 5 08:58:31.607 info javascript.0 (6138) script.js.Test: Neuer Wert: 7 08:58:31.607 info javascript.0 (6138) script.js.Test: Wert größer/gleich 5 08:58:33.495 info javascript.0 (6138) script.js.Test: Neuer Wert: 4 08:58:33.496 info javascript.0 (6138) script.js.Test: Wert kleiner 5 08:58:35.480 info javascript.0 (6138) script.js.Test: Neuer Wert: 8 08:58:35.481 info javascript.0 (6138) script.js.Test: Wert größer/gleich 5 08:58:37.974 info javascript.0 (6138) script.js.Test: Neuer Wert: 5 08:58:37.974 info javascript.0 (6138) script.js.Test: Wert größer/gleich 5 08:58:40.486 info javascript.0 (6138) script.js.Test: Neuer Wert: 4 08:58:40.487 info javascript.0 (6138) script.js.Test: Wert kleiner 5 08:58:42.987 info javascript.0 (6138) script.js.Test: Wert länger als 2,5s kleiner 5 08:58:45.968 info javascript.0 (6138) script.js.Test: Neuer Wert: 0 08:58:45.969 info javascript.0 (6138) script.js.Test: Restart
Viele Grüße,
Multivitamin -
Das hier ist mein Blockly (aus dem Forum) welches mir eine zuverlässige Ansage und Telegram Nachricht liefert.
Vielleicht kannst du davon etwas gebrauchen oder es um deine zusätzliche gewünschten Informationen erweitern.
Happy Easter
-
Ich habs mittlerweile geschaft und ein funktionierendes Timeout eingefügt.
Hier die Lösung:LG
Andi -
Ich habe leider ein ähnliches Problem. Alles war gut bis meine Frau eine Miele WaMa angeschafft hat. Diese macht in unterschiedlichen Programmen immer mal eine Pause.
Aktuell habe ich das Problem, dass meine ich nicht genau erkennnen kann wann die WaMa fertig ist. Entweder wird zu früh oder zu spät ausgelöst.
Hat jemand eine Idee?Hier mal mein Skript:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="g0/Nn;+R(T|M9J(Q9MAs">timerAN</variable> <variable type="undefined" id="Intervall2">Intervall2</variable> <variable type="undefined" id="Intervall3">Intervall3</variable> </variables> <block type="variables_set" id="h.+i7E6,D9GG@8.%vKkw" x="-138" y="-87"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> <value name="VALUE"> <block type="math_number" id="TWg#:[TdGu]Vq(%hIm9Q"> <field name="NUM">0</field> </block> </value> <next> <block type="on" id=")^uHT[F(f*N=HBo9wVZF"> <field name="OID">hm-rpc.0.KEQ0970473.1.STATE</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="VqEP:Cfz:y)ie=5|6]10"> <value name="IF0"> <block type="logic_compare" id="=%VY};{Z+(d4vw@5#r55"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="sVE-y~n3:kYka](FM:}+"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.1.STATE</field> </block> </value> <value name="B"> <block type="logic_boolean" id="h7}jwl`g/@@|AqW%*u%-"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="IZV=(QOd)%fE3*jY~)^6"> <field name="NAME">Intervall2</field> <next> <block type="timeouts_setinterval" id="NPUQnD#l^Ts1qCREr/9g"> <field name="NAME">Intervall2</field> <field name="INTERVAL">25</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="on" id="/L{o-3TMm)`l-gu@t7dS"> <field name="OID">hm-rpc.0.KEQ0970473.2.POWER</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="X*#S(6|+!-c{Q)0;$0QC"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="QBo7_D#r]`W5H5dgLG^q"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="Xm*}Q{tN7}vcUcDqif#s"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.2.POWER</field> </block> </value> <value name="B"> <block type="math_number" id="c!00%%`_kF@BdL.e}TUW"> <field name="NUM">1600</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="0v+c=%P`I[*Gd7{I=dN%"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> <value name="VALUE"> <block type="math_number" id="fE~#fuyWu(cK_{mn(7J4"> <field name="NUM">1</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="/*ZpEpIhKs%ha/MRA:0G"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="5rRLt1$V~[v]tJ^%3fV]"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="M+TX5XMJx12eq_|uA)hN"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.2.POWER</field> </block> </value> <value name="B"> <block type="math_number" id="V]F@`[~oIJ_@zSK#Z,{c"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="XX!_MYi)W`}nqY6{[EH8"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="3kJW9{fCJW%~iw$caX|?"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> </block> </value> <value name="B"> <block type="math_number" id="N=bo4;uN1|{IQ7[$0shn"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="FZ#|c~?/b1,BfOT0cYk8"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> <value name="VALUE"> <block type="math_number" id="mk;$r+zb5[~jJp$%+5vs"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="s51Rcqm.[41I$f3Z%#:Z"> <value name="IF0"> <block type="time_compare" id="Yl?]}mUQDB*XR[n9kPcx"> <mutation end_time="false"></mutation> <field name="OPTION"><</field> <field name="START_TIME">21:00</field> </block> </value> <statement name="DO0"> <block type="control" id="U{?@+xAu~HNA*DyMPCKE"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LF0965231HKD.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="*h!5K8`9x.19~R$G)u|?"> <field name="TEXT">io Broker sagt: die Waschmaschine ist jetzt fertig. Bitte leeren.</field> </block> </value> <next> <block type="control" id="Nw}u.!nbX(Iv[/H6M6!l"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RR138312054L.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="_Xk]98ivLlcZJ`3^yjkf"> <field name="TEXT">io Broker sagt: die Waschmaschine ist jetzt fertig. Bitte leeren.</field> </block> </value> <next> <block type="timeouts_setinterval" id="Q2u*U8FkFk:MTLQx7yY}"> <field name="NAME">Intervall3</field> <field name="INTERVAL">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="W9cjcThG~]OZ$rhE/L{W"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LF0965231HKD.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="JMi0MpiN9y_T8aA{+c[7"> <field name="TEXT">io Broker sagt: die Waschmaschine ist jetzt fertig. Bitte leeren.</field> </block> </value> <next> <block type="control" id="rM{r2qbcJ0hB;RaLD6u{"> <mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RR138312054L.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="s@PnDWP|uNWLWd{@%qu0"> <field name="TEXT">io Broker sagt: die Waschmaschine ist jetzt fertig. Bitte leeren.</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="controls_if" id="x+9bw^Q68HoGdD4JxnSW"> <value name="IF0"> <block type="logic_compare" id="yzC:/#/P$`=3?JSWdpWE"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="RZdJ/q.8jBAiDDlh`(Bm"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.1.STATE</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m%{)nx6by.9c_k2Mrsdt"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6H)b19^jpC7p`?.$`5p6"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> <value name="VALUE"> <block type="math_number" id="R^)xEsAU=L|Q*[Jw/4*h"> <field name="NUM">0</field> </block> </value> <next> <block type="timeouts_clearinterval" id=",c4?^oV($DZIm;t^O@m$"> <field name="NAME">Intervall2</field> <next> <block type="timeouts_clearinterval" id="jk19^lRA3^R1R{_HV1a1"> <field name="NAME">Intervall3</field> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="WFR(-n3)_dt;s@(?]H;d"> <value name="IF0"> <block type="logic_compare" id="^tPn@^VWNH}s%Tclo`/%"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="B8D}C0y0N*ritTUZt)XX"> <field name="VAR" id="g0/Nn;+R(T|M9J(Q9MAs" variabletype="">timerAN</field> </block> </value> <value name="B"> <block type="math_number" id="X.%Mq};QbeeuebBC{te~"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="}i{~|^8!9}kRR,l+9.QX"> <field name="NAME">Intervall3</field> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
und hier mal die mitgeloggten Werte:
null true history.0 2020-04-20 06:50:28.650
0 true history.0 2020-04-20 06:50:28.650
null false history.0 2020-04-20 06:50:19.984 2020-04-20 06:50:19.984
0 true history.0 2020-04-20 06:50:19.983
0 true hm-rpc.0 2020-04-20 06:49:57.766 2020-04-19 18:02:09.018
0 true history.0 2020-04-20 04:01:52.532
null true history.0 2020-04-20 04:01:52.528
null false history.0 2020-04-20 04:00:02.298 2020-04-20 04:00:02.298
0 true history.0 2020-04-20 04:00:02.297
0 true hm-rpc.0 2020-04-20 03:57:15.674 2020-04-19 18:02:09.018
0 true hm-rpc.0 2020-04-19 18:02:09.018
2.53 true hm-rpc.0 2020-04-19 17:59:37.564
0 true hm-rpc.0 2020-04-19 17:56:51.330
0 true hm-rpc.0 2020-04-19 15:22:09.311
2.2 true hm-rpc.0 2020-04-19 15:21:42.201
10.29 true hm-rpc.0 2020-04-19 15:20:09.591
12.48 true hm-rpc.0 2020-04-19 15:20:07.603
157.12 true hm-rpc.0 2020-04-19 15:19:52.051
704.6 true hm-rpc.0 2020-04-19 15:19:37.347
744.43 true hm-rpc.0 2020-04-19 15:19:22.136
770.07 true hm-rpc.0 2020-04-19 15:19:07.074
614.44 true hm-rpc.0 2020-04-19 15:18:52.368
519.39 true hm-rpc.0 2020-04-19 15:18:37.323
447.98 true hm-rpc.0 2020-04-19 15:18:22.044
343.06 true hm-rpc.0 2020-04-19 15:18:07.118
181.41 true hm-rpc.0 2020-04-19 15:17:55.003
165.25 true hm-rpc.0 2020-04-19 15:17:52.341
170 true hm-rpc.0 2020-04-19 15:17:37.057
74.9 true hm-rpc.0 2020-04-19 15:17:22.042
42.75 true hm-rpc.0 2020-04-19 15:17:07.481
31.07 true hm-rpc.0 2020-04-19 15:16:45.193
43.65 true hm-rpc.0 2020-04-19 15:16:29.052
32.01 true hm-rpc.0 2020-04-19 15:16:14.044
49.48 true hm-rpc.0 2020-04-19 15:15:59.076
28.23 true hm-rpc.0 2020-04-19 15:15:44.216
39.31 true hm-rpc.0 2020-04-19 15:15:28.061
39.74 true hm-rpc.0 2020-04-19 15:15:26.567
53.86 true hm-rpc.0 2020-04-19 15:15:13.071
16.7 true hm-rpc.0 2020-04-19 15:14:58.320
26.87 true hm-rpc.0 2020-04-19 15:14:21.024
91.91 true hm-rpc.0 2020-04-19 15:14:06.031
82.9 true hm-rpc.0 2020-04-19 15:13:51.251
116.41 true hm-rpc.0 2020-04-19 15:13:36.240
98.67 true hm-rpc.0 2020-04-19 15:13:21.175
73.66 true hm-rpc.0 2020-04-19 15:13:06.101
94.34 true hm-rpc.0 2020-04-19 15:12:51.291
73.9 true hm-rpc.0 2020-04-19 15:12:43.272
67.62 true hm-rpc.0 2020-04-19 15:12:36.331
86.83 true hm-rpc.0 2020-04-19 15:12:21.328
66.66 true hm-rpc.0 2020-04-19 15:12:06.493 -
@Accu
Das Script kann so eigentlich nicht sauber funktioniert haben.In einem Intervall (Intervall2) einen Trigger einzutragen ist nicht Sinnvoll - der Trigger bleibt vorhanden, unabhängig ob das Intervall2 aktiv oder inaktiv ist.
Auch der Trigger auf den WaMa Schaltaktor wird so wie eingetragen nicht funktionieren. Generell gilt: Trigger im Trigger ist mist.
Ich empfehle Dir im Forum nach alternativen Waschmaschinen Skripten zu suchen. Ich erinnert mich daran das es auch Lösungen gibt bei denen ein kurzfristiger Abfall der Leistungsaufnahme nicht als "ich bin fertig" erkannt wird.
Du kannst auch folgenden Pseudocode versuchen.
Wichtig ist die Einrückung. Blöcke die gleich weit eingerückt sind sollen gleichberechtigt nebeneinander stehen, nicht ineinander verschachtelt.
Dabei ist "Meldung" der folgende Block:
Trigger auf Wert von WaMa_Schaltaktor, kleiner als vorher, mache stop intervall3 timerAN = 0 Trigger auf Objekt WAmaMesswert, wert wurde geaendert Falls Wert von WaMA_Schaltaktor = wahr mache Falls Wert von WaMaMesswert < 7 und timerAn = 1 mache Starte Timeout0 (1 min) Meldung setze timerAn = 0 sonst falls Wert von WaMaMesswert > 1600 mache stop Timeout0 setze timerAn = 1
A.
-
Vielleicht hilft dir mein Skript
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="Hhe!Hg(xh7gHuy(6hLlx">Waschmaschine_Dauerzaehler</variable> <variable type="" id=";y1}Hi=}pdvws@je`5g*">WaschmaschineEinAus</variable> <variable type="undefined" id="timeout3">timeout3</variable> <variable type="undefined" id="Dauerzaehler">Dauerzaehler</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="variables_set" id="#tQ1FLFGKUhY/n@+2v+L" x="13" y="-62"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id="n7J3jl%iQv$o0|:ziws|"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="U@kYzXZme7c_*Uk)IuPm"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="#xjPS!k_7bYBUV}GE@Ji"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="%l??Ns0%ZOhlZQJn)RIY"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="8p+iN2CjzC1M$2o|Xq=m"> <field name="oid">sonoff.0.SH_Waschmaschine_Keller.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="-4y,4m5H6`8[U,UjJH(0"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-^U__L=#GGG_LD~6o~hg" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="90" w="276">Falls Maschinengang erkannt (Wattzahl >10) UND Modus ist auf falsch dann starte und schreibe den aktuellen verbrauch in DP</comment> <value name="A"> <block type="logic_compare" id="-%Kg)H+S;{}Yyd@cqe=l"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="QS5)==Ahwtfe.nNTl`R@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="OT1x**T)z3hCtGxhqDDI"> <field name="NUM">12</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",LW+*+gUB/lbO[yiNJdv"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[$/1md}o9xogfLp*!}WA"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V}KP*,b;J,.3q802Q0l^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HHIFm}6:*U#VVrIRv7e|"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="%.`!o$LmcZOm0##5WWoJ"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="5=|wMO.9[SHb3Zk2@BSt"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="Kg;[X9f6%4!)kf:3}RwL"> <field name="TEXT">Waschmaschine gestartet</field> </shadow> </value> <value name="USERNAME"> <block type="text" id="n|=#HQoo99ooPz3rBz4H"> <field name="TEXT"></field> </block> </value> <next> <block type="control" id="[)j~N!(tB0+$IKN/TQV4"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschstart</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="`*fHoyq$BY7kQu@1/t::"> <field name="ATTR">val</field> <field name="OID">sonoff.0.SH_Waschmaschine_Keller.ENERGY_Total</field> </block> </value> <next> <block type="timeouts_setinterval" id="80-Y$b]E}H$59*M]Ez/,"> <field name="NAME">Dauerzaehler</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="dEv]%1h|Rwk;-L7)Wf_~"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="DELTA"> <shadow type="math_number" id="a33@3paIo~y.$^q.*~*["> <field name="NUM">1</field> </shadow> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="[:7QWv4Op8S6o@lG45(y" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="94" w="164">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="igy_8vlVI|k$sL-O!_Ya"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="oKi^o%$Qa%i0^MVE?s)Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="*bx}yjZ_C7J2#/$NzLoS"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}A,!m2TVXL.^LQWg%!e|"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="r/rnzWL?1!/.2!+pr@5("> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="S,c^%F*KOd(.(Q(BL!=g"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="n6OU?~VJ9O@1;?;?v[}w"> <field name="NAME">timeout3</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="Ru#jm0kAdQ5s!lWw8-ZF"> <value name="IF0"> <block type="logic_operation" id="JotSxV7L@8aDs,_6JaUV" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="94" w="164">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="b/FaS!8mVUO{hnTc4B[6"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="dVvU8WoX0X;M=N=WK;(h"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=",F%?(OrtuVj_V~!;.6/+"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="X8IF*lSL$KZGbw+(B`Vk"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="y~Gc(BiT2KWngQJRPcmM"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id=",mTckZE~,,T--ya6Jl^i"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="U,jzx?Ey?4jm/#tjYSPO"> <field name="NAME">Dauerzaehler</field> <next> <block type="variables_set" id="vj!Vu=sDr5yt.:ZU#OfU"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="5xCJ(QRB3mIo5.*f1Fsg"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="ZJLwAoNe[2g:dp:QCr=^"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="`sEwFAU9zKYNAz{GFsgC"> <field name="ATTR">val</field> <field name="OID">sonoff.0.SH_Waschmaschine_Keller.ENERGY_Total</field> </block> </value> <next> <block type="timeouts_settimeout" id=",NjGW@Wtt+n7RKNkcxK!"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id=":)Sqh|eio_J%+h7Q@6nJ"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="zaE.r=+WylppU_4Nmdx~"> <field name="TEXT">Waschmaschine ist fertig</field> </shadow> <block type="text_join" id="3,~.TJZeugM.!B%S1^X}"> <mutation items="13"></mutation> <value name="ADD0"> <block type="text" id="|9?4%ic*sy2}Q088ry:q"> <field name="TEXT">Die Waschmaschine ist fertig!</field> </block> </value> <value name="ADD1"> <block type="time_get" id="a?D^RPe+s+Si=*kkfgj["> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="bo,?noy~Q_fU|mOY{L#L"> <field name="TEXT">Dauer: </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="UWw#{Zvec^I@@szY?`2w"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> </block> </value> <value name="ADD4"> <block type="text" id="M^]iVwQ,prG!`L|C~)~g"> <field name="TEXT"> Minuten.</field> </block> </value> <value name="ADD5"> <block type="time_get" id="8u(%B16pz]eRN}PV5dst"> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="5C!gUPV|`b@=iFX@aJeI"> <field name="TEXT">Verbrauch: </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id="VKS0i5D@QcR(K8~HBVt*"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="/mj1cO@W#rIj@,l-hhT("> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="a9lUI_@{%c|:}2r]9,3="> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Vt0U^|-5/xSi)-0R$lvC"> <field name="NUM">1</field> </shadow> <block type="get_value" id="n.xJH}U%IgpOj2qa_[d7"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschende</field> </block> </value> <value name="B"> <shadow type="math_number" id="kjky7:Z,vFRr8V{DWBlc"> <field name="NUM">1</field> </shadow> <block type="get_value" id="g%bFIVmFv8)gI{%-jcRB"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschstart</field> </block> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="?3@1QC?jSS#7UdzSm),X"> <field name="TEXT"> kWh.</field> </block> </value> <value name="ADD9"> <block type="time_get" id="BE%B6PWxaT1!ksrO8=F}"> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD10"> <block type="text" id="OZG2U8*$5^Y~7us`n98M"> <field name="TEXT">Kosten: </field> </block> </value> <value name="ADD11"> <block type="math_arithmetic" id="BCwbs!Im7D^MQ^?u-n[?"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="$.jsBRUo-cSN{]xL{GW/"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="vMz`ArhYYU5KvzU!CJM-"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id=",fEIqVcGmmf4,!4)?0b^"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="EBsPk7Wu}B*pVRwu`11t"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Vt0U^|-5/xSi)-0R$lvC"> <field name="NUM">1</field> </shadow> <block type="get_value" id="X+Oe]i0kB*xR=4rB/=p3"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschende</field> </block> </value> <value name="B"> <shadow type="math_number" id="kjky7:Z,vFRr8V{DWBlc"> <field name="NUM">1</field> </shadow> <block type="get_value" id="WS0!QAt)dlmkHoRl`b^7"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Waschmaschine.Waschstart</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="fTs9_kewk!xCWm]N#JQd"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0#$phz$rjNdH,Sw+70H/"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonstige.Energieueberwachung.Strompreis</field> </block> </value> </block> </value> <value name="ADD12"> <block type="text" id="`g7T6{aw*)Xb;2tcAr,;"> <field name="TEXT"> €.</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="ClQ#mBX9^]LxIc[8FtLL"> <field name="TEXT"></field> </block> </value> </block> </statement> <next> <block type="timeouts_settimeout" id="^Q4mos%.lH(nScu^]C,+"> <field name="NAME">timeout</field> <field name="DELAY">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="c+9yEbR]14.2z]jg^oG?"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id="^uz`+l@#(*|kCFi{#TXz"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
LG
-
Hi Sepp,
ich probiere dein script mal aus.
Werde aber aus folgender Zeile nicht ganz schlau:
-
@Accu
Mit dieser Zeile wird ein vom Benutzer angelegter Datenpunkt gefüllt. Nach der Benennung gehe ich davon aus das in diesem Datenpunkt die für den Waschgang angefallene Energie gespeichert wird damit diese zu einem Späteren Zeitpunkt (ggf. in einer Visualisierung) verfügbar ist.. -
Wie Asgothian schreibt. Beim oberen X "Waschstart" das ist bei mir ein Datenpunkt der mit dem Wert von meiner Steckdose befüllt wird beim Start des Waschvorgangs. Beim unteren X wird der Datenpunkt "Waschende" befüllt und anschließend werden beide Punkte subtrahiert um den Stromverbrauch des Waschvorgangs zu erhalten. Anschließend wird dieser Wert verwendet um die Kosten pro Waschvorgang zu berechnen berechnet.
LG
-
@Sepp55464 sagte in Waschmaschine:
Ich habs mittlerweile geschaft und ein funktionierendes Timeout eingefügt.
Hier die Lösung:LG
AndiKönntest du mir sagen ob du hier auch ein Timeout ENDE gesetzt hast und wen ja wo? Ich bekomme immer wieder Meldungen das die Maschine fertig ist.
-
@Dirni sagte in Waschmaschine:
Könntest du mir sagen ob du hier auch ein Timeout ENDE gesetzt hast und wen ja wo? Ich bekomme immer wieder Meldungen das die Maschine fertig ist.
Ein Timeout kann eigentlich nicht der Grund dafür sein das du Regelmäßig Meldungen bekommst das die Maschine Fertig ist. Zeig doch bitte mal dein gesamtes Script, dann sollten wir Dir einen Hinweis geben können wo die regelmassigen Meldungen herkommen können.
A.
-
Hi,
ich habe das Skript einmal etwas angepasst und bei mir laufen lassen.
Schaut leider im Ergebnis so aus:
Irgendwas scheint mit der Berechnung des Verbrauchs nicht zu klappen. Scheint wohl an den Datenpunkten vom Typ Zahl zu liegen, die ich angelegt und referenziert habe. Außerdem wird das genaue Ende der Waschzeit nicht getroffen
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="Hhe!Hg(xh7gHuy(6hLlx">Waschmaschine_Dauerzaehler</variable> <variable type="" id=";y1}Hi=}pdvws@je`5g*">WaschmaschineEinAus</variable> <variable type="undefined" id="timeout3">timeout3</variable> <variable type="undefined" id="Dauerzaehler">Dauerzaehler</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="variables_set" id="#tQ1FLFGKUhY/n@+2v+L" x="-1213" y="-1087"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id="n7J3jl%iQv$o0|:ziws|"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="U@kYzXZme7c_*Uk)IuPm"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="#xjPS!k_7bYBUV}GE@Ji"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="%l??Ns0%ZOhlZQJn)RIY"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="8p+iN2CjzC1M$2o|Xq=m"> <field name="oid">hm-rpc.0.KEQ0970473.2.POWER</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="-4y,4m5H6`8[U,UjJH(0"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-^U__L=#GGG_LD~6o~hg" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="90" w="276">Falls Maschinengang erkannt (Wattzahl >10) UND Modus ist auf falsch dann starte und schreibe den aktuellen verbrauch in DP</comment> <value name="A"> <block type="logic_compare" id="-%Kg)H+S;{}Yyd@cqe=l"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="QS5)==Ahwtfe.nNTl`R@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="OT1x**T)z3hCtGxhqDDI"> <field name="NUM">12</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",LW+*+gUB/lbO[yiNJdv"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[$/1md}o9xogfLp*!}WA"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V}KP*,b;J,.3q802Q0l^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HHIFm}6:*U#VVrIRv7e|"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="%.`!o$LmcZOm0##5WWoJ"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="5=|wMO.9[SHb3Zk2@BSt"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="Kg;[X9f6%4!)kf:3}RwL"> <field name="TEXT">Die Waschmaschine wäscht jetzt.</field> </shadow> </value> <next> <block type="control" id="zDJ/w+}RAYiwfloyzrDG"> <mutation delay_input="false"></mutation> <field name="OID">StatusIoT.0.WaMaWaschstart</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="={Ei+8*qBg-+KD,[;Jps"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.2.ENERGY_COUNTER</field> </block> </value> <next> <block type="timeouts_setinterval" id="80-Y$b]E}H$59*M]Ez/,"> <field name="NAME">Dauerzaehler</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="dEv]%1h|Rwk;-L7)Wf_~"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="DELTA"> <shadow type="math_number" id="a33@3paIo~y.$^q.*~*["> <field name="NUM">1</field> </shadow> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="[:7QWv4Op8S6o@lG45(y" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="94" w="164">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="igy_8vlVI|k$sL-O!_Ya"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="oKi^o%$Qa%i0^MVE?s)Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="*bx}yjZ_C7J2#/$NzLoS"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}A,!m2TVXL.^LQWg%!e|"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="r/rnzWL?1!/.2!+pr@5("> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="S,c^%F*KOd(.(Q(BL!=g"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="n6OU?~VJ9O@1;?;?v[}w"> <field name="NAME">timeout3</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="Ru#jm0kAdQ5s!lWw8-ZF"> <value name="IF0"> <block type="logic_operation" id="JotSxV7L@8aDs,_6JaUV" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="94" w="164">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="b/FaS!8mVUO{hnTc4B[6"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="dVvU8WoX0X;M=N=WK;(h"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=",F%?(OrtuVj_V~!;.6/+"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="X8IF*lSL$KZGbw+(B`Vk"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="y~Gc(BiT2KWngQJRPcmM"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id=",mTckZE~,,T--ya6Jl^i"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="U,jzx?Ey?4jm/#tjYSPO"> <field name="NAME">Dauerzaehler</field> <next> <block type="variables_set" id="vj!Vu=sDr5yt.:ZU#OfU"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*" variabletype="">WaschmaschineEinAus</field> <value name="VALUE"> <block type="logic_boolean" id="5xCJ(QRB3mIo5.*f1Fsg"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id=",NjGW@Wtt+n7RKNkcxK!"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id=":)Sqh|eio_J%+h7Q@6nJ"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="zaE.r=+WylppU_4Nmdx~"> <field name="TEXT">Waschmaschine ist fertig</field> </shadow> <block type="text_join" id="3,~.TJZeugM.!B%S1^X}"> <mutation items="13"></mutation> <value name="ADD0"> <block type="text" id="|9?4%ic*sy2}Q088ry:q"> <field name="TEXT">Die Waschmaschine ist fertig!</field> </block> </value> <value name="ADD1"> <block type="time_get" id="a?D^RPe+s+Si=*kkfgj["> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="bo,?noy~Q_fU|mOY{L#L"> <field name="TEXT">Dauer: </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="UWw#{Zvec^I@@szY?`2w"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> </block> </value> <value name="ADD4"> <block type="text" id="M^]iVwQ,prG!`L|C~)~g"> <field name="TEXT"> Minuten.</field> </block> </value> <value name="ADD5"> <block type="time_get" id="8u(%B16pz]eRN}PV5dst"> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="5C!gUPV|`b@=iFX@aJeI"> <field name="TEXT">Verbrauch: </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id="VKS0i5D@QcR(K8~HBVt*"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="/mj1cO@W#rIj@,l-hhT("> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="a9lUI_@{%c|:}2r]9,3="> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Vt0U^|-5/xSi)-0R$lvC"> <field name="NUM">1</field> </shadow> <block type="get_value" id="n.xJH}U%IgpOj2qa_[d7"> <field name="ATTR">val</field> <field name="OID">StatusIoT.0.WaMaWaschende</field> </block> </value> <value name="B"> <shadow type="math_number" id="kjky7:Z,vFRr8V{DWBlc"> <field name="NUM">1</field> </shadow> <block type="get_value" id="g%bFIVmFv8)gI{%-jcRB"> <field name="ATTR">val</field> <field name="OID">StatusIoT.0.WaMaWaschstart</field> </block> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="?3@1QC?jSS#7UdzSm),X"> <field name="TEXT"> kWh.</field> </block> </value> <value name="ADD9"> <block type="time_get" id="BE%B6PWxaT1!ksrO8=F}"> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD10"> <block type="text" id="OZG2U8*$5^Y~7us`n98M"> <field name="TEXT">Kosten: </field> </block> </value> <value name="ADD11"> <block type="math_arithmetic" id="BCwbs!Im7D^MQ^?u-n[?"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="$.jsBRUo-cSN{]xL{GW/"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="vMz`ArhYYU5KvzU!CJM-"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id=",fEIqVcGmmf4,!4)?0b^"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="EBsPk7Wu}B*pVRwu`11t"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Vt0U^|-5/xSi)-0R$lvC"> <field name="NUM">1</field> </shadow> <block type="get_value" id="X+Oe]i0kB*xR=4rB/=p3"> <field name="ATTR">val</field> <field name="OID">StatusIoT.0.WaMaWaschende</field> </block> </value> <value name="B"> <shadow type="math_number" id="kjky7:Z,vFRr8V{DWBlc"> <field name="NUM">1</field> </shadow> <block type="get_value" id="WS0!QAt)dlmkHoRl`b^7"> <field name="ATTR">val</field> <field name="OID">StatusIoT.0.WaMaWaschstart</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="fTs9_kewk!xCWm]N#JQd"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0#$phz$rjNdH,Sw+70H/"> <field name="ATTR">val</field> <field name="OID">StatusIoT.0.Strompreis</field> </block> </value> </block> </value> <value name="ADD12"> <block type="text" id="`g7T6{aw*)Xb;2tcAr,;"> <field name="TEXT"> €.</field> </block> </value> </block> </value> </block> </statement> <next> <block type="timeouts_settimeout" id="^Q4mos%.lH(nScu^]C,+"> <field name="NAME">timeout</field> <field name="DELAY">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="c+9yEbR]14.2z]jg^oG?"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">Waschmaschine_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id="^uz`+l@#(*|kCFi{#TXz"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
- Du speicherst aktuell den aktuellen Stand des Energiezählers nur zu Waschbeginn
- Bei der Berechnung nutzt du den den Datenpunkt mit dem Stand zu Waschende, ohne das du diesen explizit setzt.
Zum Fangen von Wasch-Start und Wasch-Ende: In dem Skript ist die Regel wie folgt:
Start des Waschens wenn die Leistung der Steckdose >12 ist.
Ende des Waschens wenn die Leistung der Steckdose unter 4 fällt und 3 Minuten später immer noch unter 4 ist.Auffällig ist:
- Wenn die Leistungsaufnahme unter 4 liegt aber leicht schwankt, dann wird das Ende nicht sauber erkannt, da der 3 Minuten Timeout bei jedem schwanken erneut gestartet wird, und damit ggf. mehrfach verfügbar ist
- Wenn die Leistungsaufnahme leicht schwankt aber über 4 Steigt wird der Timeout nicht beendet.
Mein Vorschlag in Pseudocode um das Ende sauberer zu fangen:
Falls (WaschmaschineEinAus = wahr) Falls (state value <= 4) und (old value > 4) mache Timeout3 Block wie bisher ende Falls Falls (state value >= 12) und (old value < 12) mache stop Timeout3 ende Falls ende Falls
Nachtrag: Wichtig ist, das im Timeout3 der "wert" Baustein nicht genutzt werden darf - an dieser Stelle muss die aktuelle Leistungsabfrage neu ermittelt werden.
-
Hallo
Ich habe leider das gleiche Problem.
Ich habe zwei Datenpunkte erstellt für die Watt Zahl Waschstart und Waschende.
Wenn die Maschine fertig ist, dann soll die Zahl vom Waschstart z.B. 99176 vom Waschende 99678 abgezogen wären. Das klappt auch aber ich würde dieses Ergebnis gerne durch 1000 teilen lassen, um dann im Telegramm die richtige Zahl z.B. 0,502 kWh angezeigt zu bekommen.
Zusätzlich die Kosten wäre natürlich perfekt.
Ich bekomme es aber einfach nicht hin.
-
@biker1602
versuch mal so: -
Hi
Ich wäre dir echt sehr Dankbar, ich kämpfe nun schon seit einiger Zeit mit diesem Thema herum. Ich weis ich zahlreiche verschiedenen Scripte miteinander vereint aber ich hoffe ihr könnt mir helfen.
Wie gesagt
Wenn Programmschalter auf 0, dann Verbraucht die Maschine auch 0
Wenn wir einen Timer stellen um 6:00 mit einem Waschprogramm dann verbraucht die Maschine zu diesem Zeitpunkt schon gleich viel wie während dem Waschprogramm in den Pausen.
Darum benötige ich wenn das Script mal läuft eine Überprüfung, wenn nach Start der Wert von z.b. 4 Watt vorkommt muß überprüft werden ob dieser Wert dauerhgaft ist (dann ist die Maschine fertig) oder ob es sich nur um eine Kurze Pause im Programm handelt wo die Maschin weniger verbraucht.<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="=?OmOeJXP(6k$Q8a4v1*">WaMa_Dauerzaehler</variable> <variable type="" id="Hhe!Hg(xh7gHuy(6hLlx">WaMa_EinAus</variable> <variable type="undefined" id="timeout4">timeout4</variable> <variable type="undefined" id="Dauerzaehler">Dauerzaehler</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout3">timeout3</variable> </variables> <block type="variables_set" id="VhvVE3UkVJB2fvjGzu*!" x="12" y="-13"> <field name="VAR" id="=?OmOeJXP(6k$Q8a4v1*" variabletype="">WaMa_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id="g,Bx,*s}7,][vN=Z-Mt4"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="i@;~wXOo)(5+=$*9v:QF"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="stD7DD67D[4(YSQ3dCvR"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="%l??Ns0%ZOhlZQJn)RIY"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="8p+iN2CjzC1M$2o|Xq=m"> <field name="oid">shelly.0.SHSW-PM#BA58D8#1.Relay0.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="-4y,4m5H6`8[U,UjJH(0"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-^U__L=#GGG_LD~6o~hg" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="90" w="276">Falls Maschinengang erkannt (Wattzahl >10) UND Modus ist auf falsch dann starte und schreibe den aktuellen verbrauch in DP</comment> <value name="A"> <block type="logic_compare" id="-%Kg)H+S;{}Yyd@cqe=l"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="QS5)==Ahwtfe.nNTl`R@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="OT1x**T)z3hCtGxhqDDI"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",LW+*+gUB/lbO[yiNJdv"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[$/1md}o9xogfLp*!}WA"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V}KP*,b;J,.3q802Q0l^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HHIFm}6:*U#VVrIRv7e|"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="%.`!o$LmcZOm0##5WWoJ"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="z]7Pj2YXS1-d)pnchN,!"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschstart</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="b$lgvB*z^u:a@_hX4hL]"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#BA58D8#1.Relay0.Energy</field> </block> </value> <next> <block type="timeouts_setinterval" id="(?2yHN!soJ=}mLZ7l]lF"> <field name="NAME">Dauerzaehler</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="w,FoLyTV8R1TP-!PMN(k"> <field name="VAR" id="=?OmOeJXP(6k$Q8a4v1*" variabletype="">WaMa_Dauerzaehler</field> <value name="DELTA"> <shadow type="math_number" id="H!-!N4kZhgP#5;zrxCTY"> <field name="NUM">1</field> </shadow> <block type="math_number" id="AF2;r}gdm2RpvV`mn)fr"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="[:7QWv4Op8S6o@lG45(y" inline="false"> <field name="OP">AND</field> <comment pinned="false" h="80" w="160">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="igy_8vlVI|k$sL-O!_Ya"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="oKi^o%$Qa%i0^MVE?s)Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="*bx}yjZ_C7J2#/$NzLoS"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}A,!m2TVXL.^LQWg%!e|"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="r/rnzWL?1!/.2!+pr@5("> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="S,c^%F*KOd(.(Q(BL!=g"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="l_UxyF[7l.W[9+KCjUzR"> <field name="COMMENT">Zusätzliches Timeout "Wenn füre 2 Minuten weniger wie 5 Watt verbraucht werden ist die Maschine Feritg</field> <next> <block type="timeouts_settimeout" id="FT-Aebrk1nQxA(D0}bjX"> <field name="NAME">timeout4</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="z#h:Sgr$YhLz;/sJ:;q+"> <value name="IF0"> <block type="logic_operation" id="k8`k9;Ypy[xEoy_mm2)_"> <field name="OP">AND</field> <comment pinned="false" h="80" w="160">Falls Verbrauch unter 3 Watt fällt und der Modus ist Wahr dann beende den Waschmodus.</comment> <value name="A"> <block type="logic_compare" id="kg`v@}Wxf%H71-6[LoA2"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="K/(.^9Kpm4|7=Ye=7lp#"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="OqAYX/y!j21Y]dVWdJ82"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="7k@eXCwx[(!`$|iKjlX?"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="_DQp6uLs##,TQ84hTu,X"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m[z$R3x+t7q:t3NePYda"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="4Usl2WULucSJQ,Ptrt9^"> <field name="NAME">Dauerzaehler</field> <next> <block type="variables_set" id="vj!Vu=sDr5yt.:ZU#OfU"> <field name="VAR" id="Hhe!Hg(xh7gHuy(6hLlx" variabletype="">WaMa_EinAus</field> <value name="VALUE"> <block type="logic_boolean" id="5xCJ(QRB3mIo5.*f1Fsg"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="{MMg6Za}8I|gw.4cE6oG"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="}_}=j6pEBm+0afN/394("> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-PM#BA58D8#1.Relay0.Energy</field> </block> </value> <next> <block type="timeouts_settimeout" id=",NjGW@Wtt+n7RKNkcxK!"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="comment" id="P5Kh.,h#^UMV[v`9Yzkh"> <field name="COMMENT">Daten Schreiben für History Verbrauch pro Waschgang</field> <next> <block type="control" id="gHXhqKS,=oO5$AN/c_ha"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Stromverbrauch_pro_Waschgang</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="%DceoHsJ1|2ktnX;ik;Y"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="}[m8CJ[~.H(X2Ez)$MNC"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="B1^}sQT!K1/]T@W1L[xe" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id=";x*EJIT-UHcl7Q0j{G#U"> <field name="NUM">1</field> </shadow> <block type="get_value" id="4j)vOPYH;mNC!#:Z+WGo"> <field name="ATTR">val</field> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschende</field> </block> </value> <value name="B"> <shadow type="math_number" id=")KC,Lt~MMGdb=v/v*dsR"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Em,I/QyK(Bar*A)uA#fs"> <field name="ATTR">val</field> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschstart</field> </block> </value> </block> </value> </block> </value> <next> <block type="comment" id="wF!c?,7;T=c_:f5E$ca%"> <field name="COMMENT">Alexa Speak Küche</field> <next> <block type="control" id="+SAt@WRkN^,`?mBaWK7X"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LA09738501SH.Commands.speak-volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="fe^Mhowmv1lO*}E|[u!,"> <field name="NUM">50</field> </block> </value> <next> <block type="control" id="w3DS%f?P5Y+pO7;1V~SB"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LA09738501SH.Commands.announcement</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="vtK95A?T0Tj#c5DEZ[5~"> <field name="TEXT">Waschmaschine ist fertig</field> </block> </value> <next> <block type="comment" id="@dC$^axcVYkgm8#naev1"> <field name="COMMENT">Nachricht über Telegramm</field> <next> <block type="telegram" id=":)Sqh|eio_J%+h7Q@6nJ"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="zaE.r=+WylppU_4Nmdx~"> <field name="TEXT">Waschmaschine ist fertig</field> </shadow> <block type="text_join" id="3,~.TJZeugM.!B%S1^X}"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="|9?4%ic*sy2}Q088ry:q"> <field name="TEXT">Die Waschmaschine ist Fertig.</field> </block> </value> <value name="ADD1"> <block type="time_get" id="a?D^RPe+s+Si=*kkfgj["> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="grfj-@D75~7#;4n|*Zja"> <field name="TEXT">Dauer: </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="n.X3BE*TU_{qnfXV+E~:"> <field name="VAR" id="=?OmOeJXP(6k$Q8a4v1*" variabletype="">WaMa_Dauerzaehler</field> </block> </value> <value name="ADD4"> <block type="text" id="hB0LeD{cRvcWSjG+y.+="> <field name="TEXT"> Minuten.</field> </block> </value> <value name="ADD5"> <block type="time_get" id="cA93H,ih=ovnjMRR4?Q6"> <mutation format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">\n</field> </block> </value> <value name="ADD6"> <block type="text" id="iq5Tj*K!:5+gf]#fZ42]"> <field name="TEXT">Verbrauch: </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id=")6B|F41_epI9gP[THRW["> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="}[m8CJ[~.H(X2Ez)$MNC"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="vkHPDt[yds%_+|}F~JlI" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id=";x*EJIT-UHcl7Q0j{G#U"> <field name="NUM">1</field> </shadow> <block type="get_value" id="v-h3Ax9U5D^A[-sA.*VR"> <field name="ATTR">val</field> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschende</field> </block> </value> <value name="B"> <shadow type="math_number" id=")KC,Lt~MMGdb=v/v*dsR"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Y8iAp,Pk9o!]nby,SpJ^"> <field name="ATTR">val</field> <field name="OID">javascript.0.scriptEnabled.Eigener_Datenpunkt.WaschmaschineVerbrauchKosten.Waschstart</field> </block> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="Gq}sI5F*R]paEBl+;3+e"> <field name="TEXT"> kWh.</field> </block> </value> </block> </value> <value name="USERNAME"> <block type="text" id="F-U1oN3NElzVk6CJ);7R"> <field name="TEXT">Dirni</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="timeouts_settimeout" id=":DTtJMZX*6T[m5$MS#FV"> <field name="NAME">timeout3</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id=",${esm~ZSiljnImc}dcx"> <field name="VAR" id="=?OmOeJXP(6k$Q8a4v1*" variabletype="">WaMa_Dauerzaehler</field> <value name="VALUE"> <block type="math_number" id=";!%m^7forEuu5xZJ{}fV"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@Dirni
Dein Script hat die Funktion bereits, allerdings mit einem Fehler:An dieser Stelle darfst du nicht den "Wert" Baustein nehmen sondern musst den Wert des Datenpunktes neu abfragen.
A.