NEWS
Waschmaschine
-
@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.
-
sorry das ich mich einmische aber fehlt hier nicht dieser Schritt
Und danke nochmal ich muß mein Script aber noch mehr optimieren. ich bekomme jetzt immer noch vereinzelt Nachrichten das die Waschmaschine fertig ist. Ich gehe davon aus das die WATT Werte nicht passen bzw. angepasst werden müssen. Mir ist heute wie ich gleich mal nachgesehen habe aufgefallen das die Waschmaschine bei der Programmwahl einen Ausschlag von ein paar Hundert Watt drin hat. Hier werde ich eine Einschaltverzögerung benötigen. Hat jemand vielleicht einen Tip wie das nun wieder realisiert werden kann?
lg Dirni
@Asgothian sagte in Waschmaschine:
@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.
-
@Dirni sagte in Waschmaschine:
Hat jemand vielleicht einen Tip wie das nun wieder realisiert werden kann?
In deinem fall gibt es eine einfache Option:
Du prüfst einfach ob der Dauerzähler < 5 ist. Wenn ja, dann setzt du die gesamte Erkennung zurück - weniger als 5 Minuten sollte kein Waschgang dauern.
Also in Etwa so:
Das komplette modifizierte Script findest Du im Spoiler, basierend auf dem was du vorher hier im Thread gepostet hast.
Neben der Abfrage auf den Dauerzähler habe ich auch noch eine Zusatzabfrage eingebaut das der vorherige Wert >= 5 und der aktuelle Wert < 5 sein soll, damit der Trigger nur dann aktiv wird wenn die Leistungsaufnahme gerade unter 5 fällt, also nicht jedes mal wenn sie zwischen 3 und 4 herum dümpelt.
-
Hi
Ich muß dir erstmal danken dass du dich da so rein hängst, finde ich echt nett.
Kannst du mir nur sagen was genau diese änderung bewirkt... ich steht jetzt komplett auf der Leitung
st das nun die Verzögerung ?Und ich hab mir gestern noch Gedanken gemacht ich hätte die Wattwerte nach oben gestellt.
falls wert gösser 40 dann soll er starten
und falls Wert kleiner 2 ist für 5 Minuten dann soll ende sein.
Das heist wenn er dazwischen hin und her springt für kurze Zeit sollte es egal sein oder.
Ich bin mir sicher dein Script funktioniert aber ich hätte nur gerne ein Antwort ob ich da richitg gedacht habe oder ob ich daneben liegeHier noch der Log meiner Waschmaschine damit du die Werte siehst
Ganzes Programm
Die Schwankungen
und die Minimalwerte vor Start und am ende
-
@Dirni sagte in Waschmaschine:
Hi
Ich muß dir erstmal danken dass du dich da so rein hängst, finde ich echt nett.
Kannst du mir nur sagen was genau diese änderung bewirkt... ich steht jetzt komplett auf der Leitung
st das nun die Verzögerung ?Nein, das ist keine Verzögerung. Prinzipiell "denkt" das Script jedes mal wenn der WattWert über 40 steigt das die Waschmaschine mit dem Waschen angefangen hat.
Wenn allerdings innerhalb der ersten 5 Minuten der Wattwert unter 2 fällt, dann bricht das Script den "Waschvorgang" ab ohne einen Energieverbrauch zu melden oder eine Meldung zu senden, da davon aus zu gehen ist das es ein "Fehlstart" war.Und ich hab mir gestern noch Gedanken gemacht ich hätte die Wattwerte nach oben gestellt.
falls wert gösser 40 dann soll er starten
und falls Wert kleiner 2 ist für 5 Minuten dann soll ende sein.
Das heist wenn er dazwischen hin und her springt für kurze Zeit sollte es egal sein oder.Solange der Wert nicht unter 2 fällt ist passiert nichts - das ist durch den grossen "falls - sonst falls" block abgedeckt. Interessant ist nur wenn er immer mal wieder unter 2 fällt - da wird dann jedesmal eine Abfrage gestartet ob der wert in 5 Minuten immer noch unter 2 ist. Nur dann wird das Waschen beendet.
Also ist die Aussage so richtig.
-
Ok verstehe ich teste jetzt heute mal das Script von dir und melde mich dann. Danke nochmal
-
So nun habe ich ein wenig herum probiert aber leider funktioniert es nicht. Ich habe nie die ende Meldung bekommen warum auch immer.
wie ist das mit dem vorigen Wert ist gleich kleiner 5, wenn die Werte nun so ankommen wie oben in meine Screenshot einmal höher 5 einmal kleiner oder zweimal hintereinander kleiner 5.
Ich kann nun durch die Abfrage ist Dauerzhäler kleiner 5 auch nicht während dem Waschvorgang herum testen da er ja dann immer kleiner 5 ist und von vorne beginnt.
Da der Wert ja schankt stellt er den zähler immer zurück.Ich merke es da ich oben eine Waschstart Meldung eingebaut habe und die bekomme ich Sekunden Abständen.