NEWS
Waschmaschine
-
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.
-
Hi
Das heist in dem Fall so oder, du hast recht er hat ja in dem Fall keinen "WERT" mehr oder?
-
@Asgothian Ich habe es eingegeben mal sehen was bei rauskommt.
-
@Dirni
Jo, so sollte die Abfrage wirken.A.
-
@Asgothian said in Waschmaschine:
@biker1602
versuch mal so:Funktioniert leider nicht die Werte sind Waschmaschinenstart 99518 und Waschende 99964 und als Telegramm habe ich 99864,482 kWh
-
@Asgothian said in Waschmaschine:
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.was meinst du damit? Ich hatte doch das Script von Dir 1:1 übernommen.
-
@Accu sagte in Waschmaschine:
@Asgothian said in Waschmaschine:
was meinst du damit? Ich hatte doch das Script von Dir 1:1 übernommen.
Unwahrscheinlich - ich habe keine Leistungsmessung für meine Waschmaschine
Dein Script sieht (lt. deinem Post vom 27.4.) so aus:
Screenshot 2020-04-28 at 14.33.45In diesem Screenshot kannst du sehen das es zwar einen Befehl "control StatusIoT.0.WaMaWaschstart..." gibt, aber keinen entsprechenden Befehl "control StatusIoT.0.WaMaWaschende..." gibt.
Trotzdem berechnest Du den Energieverbrauch aus "value of Status.Iot.WaMaWaschende - value of Status.IoT.WaMaWaschstart"Du musst da wo du "set WaschmaschineEinAus to false" machst zusätzlich noch
control StatusIoT.0.WaMaWaschende with value of hm-rpc.0.,..." machen, damit die Berechnung funktioniert.A.