NEWS
Waschmaschine
-
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.
-
Hi Dirni,
ich habe mir nicht den kompletten Verlauf angesehen. Sorry. Aber ich frage mich, warum Du das so kompliziert machst. Was genau willst Du denn erreichen? Du musst doch eigentlich nur wissen, wann die Maschine wirklich fertig ist und dann eine Nachricht bekommen. Oder???
Eine Nachricht, dass die Maschine läuft, solltest Du normalerweise nicht brauchen, wenn Du sie selber eingeschaltet hast
Mein Waschmaschinenskript sieht so aus und funktioniert einwandfrei.
-
@Dirni
Poste doch bitte mal den Code des Scripts in nem spoiler, dann schaue ich mir das nachher mal an.A.
-
@buggybeast sagte in Waschmaschine:
Hi Dirni,
ich habe mir nicht den kompletten Verlauf angesehen. Sorry. Aber ich frage mich, warum Du das so kompliziert machst. Was genau willst Du denn erreichen? Du musst doch eigentlich nur wissen, wann die Maschine wirklich fertig ist und dann eine Nachricht bekommen. Oder???
Eine Nachricht, dass die Maschine läuft, solltest Du normalerweise nicht brauchen, wenn Du sie selber eingeschaltet hast
Mein Waschmaschinenskript sieht so aus und funktioniert einwandfrei.
Hi
Ich weis das was du hast hatte ich ja schon, ich weiss das es eine Spielerei ist.
Das mit dem Start hab ich nur gemacht damit ich mitbekomme ob es Startet und ob es läuft in dem Fall bin ich ja dadurch auf den Fehler gekommen.
Ich weis auch das es mir einem Debug geht.Ich finde es spannend solche dinge umzusetzen und sitze da gerne am Abend wenn ich Zeit habe ein paar Stunden und kämpfe mich da rein, auch mit den Tips hier vom Forum.
lg
-
Ich danke dir
-
@Dirni
Ich hab mir das noch einmal angeschaut - und hab erkannt das ein Fehler drin ist. Wie man in deinem Screenshot vom Gesamtablauf des Programms sehen kann braucht die Waschmaschine nur für wenige Minuten konstant mehr als 100 W. Auch während des Waschvorgangs fällt sie immer wieder deutlich unter die 5 W Grenze (was durch den Timeout am Ende abgefangen wird)Es gibt jetzt 3 Optionen :
Die Einfache: Du erhöst den Watt-Wert zum Starten auf 200 und entfernst die Abfrage auf den WaMa_Dauerzähler. Dann "startet" das Waschprogramm beim Aufheizen, und ggf. wird ein echter "Kaltwaschgang" nicht erkanntDer Mittelweg:
Du schaust beim WaMaDauerzähler auf <2 Minuten und lässt den Rest so wie er ist. In diesem Fall wird der ioBroker es als "Waschgang" erkennen wenn jemand eine Minute lang an der Maschine "einstellt".Der Aufwändige:
Dieser Läuft in 2 Schritten ab:- Schritt: Du entfernst die Abfrage auf den Dauerzähler.
- Schritt: Du baust im timeout4 als erstes eine Abfrage auf den Dauerzähler ein - sie Bild 1
In diesem Fall blockierst du effektiv nur die Meldung auf Fertig wenn das Waschprogramm kürzer als 2 Minuten ist.
Als letztes hast du noch einen Fehler im Script den ich beim letzten mal nicht gesehen habe:
Da wo hier "state value" steht musst du explizit den Wert von shelly.0.xxx.Relay0.Power holen, ansonsten hast du da einen alten Wert, und die Entprellfunktion des Timeout ist wirkungslos.
Als letztes ist mir der Dauerzähler noch ein Dorn im Auge.
Eigentlich brauchst du die Minuten nicht selber zu zählen, dafür hat der Rechner eine Uhr. Wenn du dir den folgenden Block anschaust findest Du eine Lösung die ohne ein manuelles Hochzählen funktioniert - du brauchst also den Dauerzähler nicht, und auch der timeout3 wird unnötig.
A. -
Hi Leute
Nach weiteren Stunden des Testens, Probierens und Fehler beheben kann ich nun sagen "es funktioniert.
Ein Danke nochmal an @Asgothian für deine Gedult.Ich habe mir alle deine Tips zu Herzen genommen und auch umgesetzt.
Ich habe das Script so gut es geht mit Kommentaren versehen.
Hier nochmal meine Anforderungen zusammengefasst
-
Benachrichtigung über Telegramm (da wir immer wieder Timer an der Waschmaschine laufen haben wollen wir auch wissen ob sie Startet)
Da die Waschmaschine beim Wählen des Programmes und nach dem Einstellen des Timers kurz einen Ausschlag im Stromverbrauch hat, wird das Script erst bei einem Momentanverbrauch von über 200 gestartet. -
Protokollieren des Stromverbrauches ( Da wir einen Wasch/Trockner haben kann man sehr gut erkennen was es eigentlich an Strom braucht wenn man Trocknet)
-
Protokollieren der Zeit - Da heute viele Waschmaschinen schoin erkennen wieviel Wäsche in der Maschine ist sollten sie eigentlich bei wneig Wäsche auch schneller fertig sein (zumindest Werben manche dafür) mal sehen ob das so ist
-
Kosten pro Wasch/Troeckengang nice to have
-
Benachrichtigung über Alexa
Einige Beträge oberhalb kann man sich auch nochmal genau die Statistiken anschauen um Nachvollziehen zu können wie ich auf die Watt Werte gekommen bin.
-