NEWS
Waschmaschine
-
Hi BuggyBeast,
mein aktueller Stand ist der hier:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Hhe!Hg(xh7gHuy(6hLlx">Waschmaschine_Dauerzaehler</variable> <variable id=";y1}Hi=}pdvws@je`5g*">WaschmaschineEinAus</variable> <variable type="timeout" id="timeout3">timeout3</variable> <variable type="interval" id="Dauerzaehler">Dauerzaehler</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="timeout" 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">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*">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 xmlns="http://www.w3.org/1999/xhtml" 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">8</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*">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="comment" id="b~S%7`wtbC_/n|zadQ1A"> <field name="COMMENT">Erster Durchlauf beim Einschalten</field> <next> <block type="variables_set" id="HHIFm}6:*U#VVrIRv7e|"> <field name="VAR" id=";y1}Hi=}pdvws@je`5g*">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 deine Wäsche.</field> </shadow> </value> <next> <block type="comment" id="2aAKL6#G}W{)p.QREyRi"> <field name="COMMENT">schreibt den initialen kW -Wert in den Waschstart Datenpunkt</field> <next> <block type="update" id="}m9pd`Cn~a?PA@sa:al?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">StatusIoT.0.WaMaWaschstart</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="(VDfb:vZwiH8m(L+xldo"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Iuptz4hwAs7`k(c7eqK{"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="D!_j/Bp]_6`T08*}nE]L"> <field name="OP">DIVIDE</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="+,CYLxK)a=j1?hp_m|l1"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="aDTKaLbbT+8u*1(vCSxo"> <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> </block> </value> <value name="B"> <shadow type="math_number" id="~}GYVr#KtuxpN}_IAYX}"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="M]gS,rQA9xp#dw%NXjv]"> <field name="COMMENT">Misst die Gesamtdauer in einer Variablen</field> <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">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> </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">3</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*">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="comment" id="t*n-NSEL5i.q/)njMqf+"> <field name="COMMENT">WaMa Pause</field> <next> <block type="timeouts_settimeout" id="n6OU?~VJ9O@1;?;?v[}w"> <field name="NAME">timeout3</field> <field name="DELAY">10</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_operation" id="js}(H[9js=@U8oRZi;[l" 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="%)]ZulWOHU$~O[OX5(u!"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="xG%Cqh.$1kGP$jyflNu8"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="1e#{L*Jat2-[pag|953f"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="b/FaS!8mVUO{hnTc4B[6"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="dVvU8WoX0X;M=N=WK;(h"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id=",F%?(OrtuVj_V~!;.6/+"> <field name="NUM">3</field> </block> </value> </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*">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="comment" id="IEyNcr/?#y#8K(IAWHT`"> <field name="COMMENT">WaMa ist fertig</field> <next> <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*">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="update" id="[5GqueLVbE!;+d[D[}Vt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">StatusIoT.0.WaMaWaschende</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="UmwO@D2M8Rja_v2hJCqF"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oM(c}!pCO~G)AV9v8H:g"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="sv]o:8yG*vRh1RT~nlA$"> <field name="OP">DIVIDE</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Nv,k/}AoJ4tZ^^$la{Q}"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="^HUFg_F7MM6/BQel::w,"> <value name="VALUE"> <block type="get_value" id="[|7NgG^]pM%@#-9^bo[V"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0970473.2.ENERGY_COUNTER</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="cnE#{nyce1VJUBHIh~IK"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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">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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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="8aLE^y;!;aWJq$771_e2"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="aa{@~RP3y$9M7v332=?B"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="vMz`ArhYYU5KvzU!CJM-"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" 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 xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="viK@?=8BKmMU^eC!xT?s"> <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> </next> </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">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> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@Accu
Also ich kann ehrlich gesagt keinen echten Fehler oder so erkennen, finde aber ein paar Punkte "seltsam".
Mal angenommen die WaMa läuft und geht zweimal unter 3 Watt. Dann wird beide Male Dein timeout3 gestartet. ich weiß nicht genau welche Auswirkungen das hat, aber meines Erachtens ist es immer sinnvoll, wenn nicht notwendig, einen timeout auch wieder zu stoppen. Das müsstest Du dann vor dem Ausführen des timeou3 noch voranstellen. Wozu Du timeout2 und timeout brauchst, verstehe ich gar nicht. Ist meiner Meinung überflüssig.
Dann aktualisierst Du WaMaWaschende mit einer Verzögerung von 1 Sekunde. In der Zeit läuft Dein Skript aber weiter, und er berechnet wahrscheinlich bereits den Verbrauch, bevor Du in WaMaWaschende überhaupt was reingeschrieben hast. Das würde natürlich auch einen negativen Wert erklären.
Warum probierst Du nicht mal testweise mein Skript. Das ist wesentlich kürzer und abgesehen von Verbrauch und Dauer (das nutze ich nicht) funktioniert das super bei mir.@buggybeast sagte in Waschmaschine:
@buggybeast sagte in Waschmaschine:
-
Danke BuggyBeast. Ich werde mal deins Testen. Hatte mich nur bisher an das Skript von oben gehalten.
Die Timeouts kann ich auch nicht wirklich verstehen. -
Hi Leute,
Ich hab so gefühlt schon alles im Netz gelesen, um mein Waschmaschine blockly hinzubekommen. Mein Problem ist, meine Waschmaschine braucht wenn sie fertig ist, 2-3w. Allerdings macht sie während des waschens auch mal eine Pause und braucht genauso viel. Wenn sie fertig ist, hat sie einen Knitterschutz, da dreht die ca alle 28s nochmal die Trommel. Habt ihr eine Lösung für mein Problem? Hatte schon an nen timer von ca 1h gedacht, was allerdings nicht die beste Lösung wäre. Oder z. B. Einen counter von z. B. 10, der hochählt und bei 11 mal unter 3w erst meldet, dass die Waschmaschine fertig ist. Ist sowas möglich, bzw wie bekomme ich das hin?
Gruß
Phantomkommander
-
@buggybeast Hi, ich habe dein Script übernommen. Danke für deine Arbeit. Es funktioniert wunderbar.
Gruß Kalle -
Ich habe da ein Standardblockly für, man braucht nur die drei kommentierten Werte in der PRG_INI anpassen und dann läuft alles automatisch.
Optional kann man noch eine Telegramnachricht eintippen, bzw den timeout ändern, habe das Blockly bei zahlreichen Geräten so im Einsatz<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</variable> <variable id="6vs1mxJz10C;Y`[KE${J">Trigger_1</variable> <variable id="!KlSDB8b_%^Yexmq!3HA">Sperre</variable> <variable id="auf20dFyBf.~[{:YRHRw">Aktor_1</variable> <variable id="^bj1z4.DNX003R@%=U;O">Text_Telegram</variable> <variable id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="procedures_callnoreturn" id="gM%DIi4R9`s.;`(=yVM%" x="187" y="-112"> <mutation name="PRG_INI"></mutation> <next> <block type="on_ext" id="%o`;]|iQdfx!T6_$|n1Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=";]X5XvT]/I^B#(~bW}=t"> <field name="oid">default</field> </shadow> <block type="variables_get" id="0Zl5xWv@y(?Yg`l;^a[d"> <field name="VAR" id="6vs1mxJz10C;Y`[KE${J">Trigger_1</field> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="WEw:yD5fKj/b-ToFhM(A"> <mutation name="Werte_in_VAR"></mutation> <next> <block type="controls_if" id="DCeD46|YALHfir|.rI-i"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="n@wRq%S(Wk,ajT}Hh${{" inline="false"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="^jaj$^xI4W@]6rgN(y=@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="bPBsuxkAjcm4ae[M?QeM"> <field name="VAR" id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="}4kN^q{7beH%=9Tc`:e?"> <value name="IF0"> <block type="logic_negate" id="2^dBLkE|-R%PAgjklhz6"> <value name="BOOL"> <block type="variables_get" id="sZql:5]-Z7p;rEX44zGL"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="k,hIxCRF]VKALX0Tz7Av"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id=",{xj53f=byzz7jgu.=e5"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="sr2FPZ6N=@1y4l_2UDuz"> <field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="S).vSxl*q%og=75Kuq^|"> <mutation name="Werte_in_VAR"></mutation> <next> <block type="controls_if" id="k|s{]:wTA~;7r}L|kzdf" collapsed="true"> <value name="IF0"> <block type="variables_get" id="v-ms+m,GsE.1t[v`za+~"> <field name="VAR" id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</field> </block> </value> <statement name="DO0"> <block type="control_ex" id="}Z6%|a,IaQf`tH6$cqXa" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="~d`_H-T9NfHPJ%tm2w_w"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="_#r~7K?gJ2B}hhe[xse,"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="#D=jQ4sa4lUej^aPz1_V"> <field name="BOOL">TRUE</field> </shadow> <block type="logic_boolean" id=",4/W%pFzT}Yv+uMspe+o"> <field name="BOOL">FALSE</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="2p#XmCm.G5vMJI;d;fTY"> <field name="NUM">0</field> </shadow> <block type="math_number" id="Ucd4~ROM(Cn,x?pkY9BG"> <field name="NUM">0</field> </block> </value> <next> <block type="procedures_callnoreturn" id="|!-ni90:!o~?59-gCB4A"> <mutation name="Telegram"></mutation> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id=";D,:7xNZ5hDl2r2H$n[E"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="_f%a(3WJx.d3-+2(*$5f"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id="BP_Lr6y8b]X!8T!jS5q0"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="^6O2[WD1D12,dz3]}/}c" x="662" y="-112"> <field name="NAME">Werte_Vorgeben</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="P!j~+j+I.XEDAzh)85fd"> <field name="COMMENT">Hier den ENERGY state auswaehlen</field> <next> <block type="variables_set" id="e@c,Ezp]}KPEaWt9ly4U"> <field name="VAR" id="6vs1mxJz10C;Y`[KE${J">Trigger_1</field> <value name="VALUE"> <block type="field_oid" id="8a^/qbaA0`k/Ag2taO-["> <field name="oid">sonoff.0.DVES_39AF78.ENERGY_Power</field> </block> </value> <next> <block type="comment" id="SZ_C4O9$;-`Lc:9T3fj?"> <field name="COMMENT">Hier den POWER state auswaehlen</field> <next> <block type="variables_set" id="Z(2xpkY*sW;cx,,?F?CA"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> <value name="VALUE"> <block type="field_oid" id="1m~MH}OV!:SlDab]$(U."> <field name="oid">sonoff.0.DVES_39AF78.POWER</field> </block> </value> <next> <block type="comment" id="A2r.k1;Wu3I(tjY(OJn$"> <field name="COMMENT">Wert, der unterschritten werden soll</field> <next> <block type="variables_set" id="yjk|l~?u5525v*-|Ad-{"> <field name="VAR" id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</field> <value name="VALUE"> <block type="math_number" id="p{dw?$tt-:5{$?vKiV*Z"> <field name="NUM">1</field> </block> </value> <next> <block type="comment" id="n?0N#~1ZMI[nnp7N!`aW"> <field name="COMMENT">Hier den Telegram Text eingeben</field> <next> <block type="comment" id="$g}#?:%twPIvJ4P$?+LK"> <field name="COMMENT">Wird nichts eingetragen, ist Telegram deaktiviert</field> <next> <block type="variables_set" id="$fc.plY2s}b@X-RGR=s_"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> <value name="VALUE"> <block type="text" id=")a#kZ^(rDrr$@*twL]4$"> <field name="TEXT"></field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="LsQzF_4}1pkmBjxPPcYo" collapsed="true" x="1187" y="-113"> <field name="NAME">PRG_INI</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callnoreturn" id="0S*xi[+C)tUfwe6-2vVL"> <mutation name="Werte_Vorgeben"></mutation> <next> <block type="variables_set" id="Qg*{Pd[8gC#EHQy-uudL"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id="laDOKTLe./ynmo-~h4!I"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="m|svt~0-wSzL}D?gIELX" collapsed="true" x="1188" y="-88"> <field name="NAME">Werte_in_VAR</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="~lLswh]^~P/U.R_0Ji26"> <field name="VAR" id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</field> <value name="VALUE"> <block type="get_value_var" id="Y#;OdIHSmIWFuO].Tu{O"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="skAIPOSCNT*tn2W`02-e"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="AjpE_xj/`4Xd~;tPpHVH"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> </block> </value> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id=")^w}T@56fhQI57EzBs3:" x="1188" y="-63"> <field name="NAME">Telegram</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="$WHVdHwE`XCMUB5iwN@@"> <value name="IF0"> <block type="logic_compare" id="Wb*Ir5darRMhl0mx4aQd" inline="false" collapsed="true"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="/b^u[!z]`D$9:,BV,ZVe"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> </block> </value> <value name="B"> <block type="text" id="6@CMu2!4?o,AR}|Y=9W@"> <field name="TEXT"></field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="q_wiGI7SXqN77ZhFG.3z"> <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="!T4mV!0Z_jp;`?$%`s{]"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="i+%V#_5V;csfhzAKY9D@"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
Ich habe da ein Standardblockly für, man braucht nur die drei kommentierten Werte in der PRG_INI anpassen und dann läuft alles automatisch.
Optional kann man noch eine Telegramnachricht eintippen, bzw den timeout ändern, habe das Blockly bei zahlreichen Geräten so im Einsatz<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</variable> <variable id="6vs1mxJz10C;Y`[KE${J">Trigger_1</variable> <variable id="!KlSDB8b_%^Yexmq!3HA">Sperre</variable> <variable id="auf20dFyBf.~[{:YRHRw">Aktor_1</variable> <variable id="^bj1z4.DNX003R@%=U;O">Text_Telegram</variable> <variable id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="procedures_callnoreturn" id="gM%DIi4R9`s.;`(=yVM%" x="187" y="-112"> <mutation name="PRG_INI"></mutation> <next> <block type="on_ext" id="%o`;]|iQdfx!T6_$|n1Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=";]X5XvT]/I^B#(~bW}=t"> <field name="oid">default</field> </shadow> <block type="variables_get" id="0Zl5xWv@y(?Yg`l;^a[d"> <field name="VAR" id="6vs1mxJz10C;Y`[KE${J">Trigger_1</field> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="WEw:yD5fKj/b-ToFhM(A"> <mutation name="Werte_in_VAR"></mutation> <next> <block type="controls_if" id="DCeD46|YALHfir|.rI-i"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="n@wRq%S(Wk,ajT}Hh${{" inline="false"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="^jaj$^xI4W@]6rgN(y=@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="bPBsuxkAjcm4ae[M?QeM"> <field name="VAR" id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="}4kN^q{7beH%=9Tc`:e?"> <value name="IF0"> <block type="logic_negate" id="2^dBLkE|-R%PAgjklhz6"> <value name="BOOL"> <block type="variables_get" id="sZql:5]-Z7p;rEX44zGL"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="k,hIxCRF]VKALX0Tz7Av"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id=",{xj53f=byzz7jgu.=e5"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="sr2FPZ6N=@1y4l_2UDuz"> <field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="S).vSxl*q%og=75Kuq^|"> <mutation name="Werte_in_VAR"></mutation> <next> <block type="controls_if" id="k|s{]:wTA~;7r}L|kzdf" collapsed="true"> <value name="IF0"> <block type="variables_get" id="v-ms+m,GsE.1t[v`za+~"> <field name="VAR" id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</field> </block> </value> <statement name="DO0"> <block type="control_ex" id="}Z6%|a,IaQf`tH6$cqXa" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="~d`_H-T9NfHPJ%tm2w_w"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="_#r~7K?gJ2B}hhe[xse,"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="#D=jQ4sa4lUej^aPz1_V"> <field name="BOOL">TRUE</field> </shadow> <block type="logic_boolean" id=",4/W%pFzT}Yv+uMspe+o"> <field name="BOOL">FALSE</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="2p#XmCm.G5vMJI;d;fTY"> <field name="NUM">0</field> </shadow> <block type="math_number" id="Ucd4~ROM(Cn,x?pkY9BG"> <field name="NUM">0</field> </block> </value> <next> <block type="procedures_callnoreturn" id="|!-ni90:!o~?59-gCB4A"> <mutation name="Telegram"></mutation> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id=";D,:7xNZ5hDl2r2H$n[E"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="_f%a(3WJx.d3-+2(*$5f"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id="BP_Lr6y8b]X!8T!jS5q0"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="^6O2[WD1D12,dz3]}/}c" x="662" y="-112"> <field name="NAME">Werte_Vorgeben</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="P!j~+j+I.XEDAzh)85fd"> <field name="COMMENT">Hier den ENERGY state auswaehlen</field> <next> <block type="variables_set" id="e@c,Ezp]}KPEaWt9ly4U"> <field name="VAR" id="6vs1mxJz10C;Y`[KE${J">Trigger_1</field> <value name="VALUE"> <block type="field_oid" id="8a^/qbaA0`k/Ag2taO-["> <field name="oid">sonoff.0.DVES_39AF78.ENERGY_Power</field> </block> </value> <next> <block type="comment" id="SZ_C4O9$;-`Lc:9T3fj?"> <field name="COMMENT">Hier den POWER state auswaehlen</field> <next> <block type="variables_set" id="Z(2xpkY*sW;cx,,?F?CA"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> <value name="VALUE"> <block type="field_oid" id="1m~MH}OV!:SlDab]$(U."> <field name="oid">sonoff.0.DVES_39AF78.POWER</field> </block> </value> <next> <block type="comment" id="A2r.k1;Wu3I(tjY(OJn$"> <field name="COMMENT">Wert, der unterschritten werden soll</field> <next> <block type="variables_set" id="yjk|l~?u5525v*-|Ad-{"> <field name="VAR" id="p/w(@wMvl;`u(^~Az~vs">Vorgabe_Wert</field> <value name="VALUE"> <block type="math_number" id="p{dw?$tt-:5{$?vKiV*Z"> <field name="NUM">1</field> </block> </value> <next> <block type="comment" id="n?0N#~1ZMI[nnp7N!`aW"> <field name="COMMENT">Hier den Telegram Text eingeben</field> <next> <block type="comment" id="$g}#?:%twPIvJ4P$?+LK"> <field name="COMMENT">Wird nichts eingetragen, ist Telegram deaktiviert</field> <next> <block type="variables_set" id="$fc.plY2s}b@X-RGR=s_"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> <value name="VALUE"> <block type="text" id=")a#kZ^(rDrr$@*twL]4$"> <field name="TEXT"></field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="LsQzF_4}1pkmBjxPPcYo" collapsed="true" x="1187" y="-113"> <field name="NAME">PRG_INI</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callnoreturn" id="0S*xi[+C)tUfwe6-2vVL"> <mutation name="Werte_Vorgeben"></mutation> <next> <block type="variables_set" id="Qg*{Pd[8gC#EHQy-uudL"> <field name="VAR" id="!KlSDB8b_%^Yexmq!3HA">Sperre</field> <value name="VALUE"> <block type="logic_boolean" id="laDOKTLe./ynmo-~h4!I"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="m|svt~0-wSzL}D?gIELX" collapsed="true" x="1188" y="-88"> <field name="NAME">Werte_in_VAR</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="~lLswh]^~P/U.R_0Ji26"> <field name="VAR" id="-!!!%oe4ppqH?|#z#XM~">Zustand_Aktor_1</field> <value name="VALUE"> <block type="get_value_var" id="Y#;OdIHSmIWFuO].Tu{O"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="skAIPOSCNT*tn2W`02-e"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="AjpE_xj/`4Xd~;tPpHVH"> <field name="VAR" id="auf20dFyBf.~[{:YRHRw">Aktor_1</field> </block> </value> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id=")^w}T@56fhQI57EzBs3:" x="1188" y="-63"> <field name="NAME">Telegram</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="$WHVdHwE`XCMUB5iwN@@"> <value name="IF0"> <block type="logic_compare" id="Wb*Ir5darRMhl0mx4aQd" inline="false" collapsed="true"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="/b^u[!z]`D$9:,BV,ZVe"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> </block> </value> <value name="B"> <block type="text" id="6@CMu2!4?o,AR}|Y=9W@"> <field name="TEXT"></field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="q_wiGI7SXqN77ZhFG.3z"> <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="!T4mV!0Z_jp;`?$%`s{]"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="i+%V#_5V;csfhzAKY9D@"> <field name="VAR" id="^bj1z4.DNX003R@%=U;O">Text_Telegram</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
Oh vielen Dank. Werde ich später mal ausprobieren. War echt schon am verzweifeln.
-
@Xenon
Glaube ich habe irgendwie eine falsche Verknüpfung gemacht. Es wird doch einmal Power abgefragt, also Steckdose an/aus und einmal Watt. Ist doch richtig? Die Werte werden über die Variablen abgefragt.
Jetzt würde ich gerne über alexa eine Sprachausgabe bekommen, da ich Telegramm nicht nutze. Wenn ich den Steuerbefehl einsetzt quatscht die mit mir was habe ich übersehen? -
zeig mal einen Screenshot von dem, was du gemacht hast
-
Die drei Werte habe ich eingetragen.
-
@Phantomkommander ok und was funktioniert nicht? Wenn du Alexa haben willst, nimm einfach den Telegram Block raus und ersetze ihn durch den Befehl, den Alexa benötigt. Ich habe Alexa nicht im Einsatz, kann dir da leider nicht sagen, was du da für einen Befehl benötigst.
-
@Xenon
Der Befehl passt, wahrscheinlich löst meine Waschmaschine den triggern zu oft aus. Probiere die Tage nochmal etwas rum. -
Hallo zusammen.
Ich habe mir auch ein Waschmaschinen-Script gebastelt. Das funktioniert auch soweit.
Für die Visualisierung brauche ich einen Datenpunkt (haushalt.waschmaschine), der den Wert 0 (Aus), 1 (Läuft) oder 2 (Fertig) benötige. Leider scheine ich den Datenpunkt nicht richtig zu steuern. Was mache ich falsch?
-
@DennisMenger
Wenn Haushalt.waschmaschine ein manuell angelegter datenpunkt ist, dann nimm aktualisiere statt steuere. Außerdem nicht mit wert=0 aktualisieren, sondern einfach nur mit der Zahl. -
@buggybeast super, danke dir. Ja, der Datenpunkt ist selbst angelegt.
Werde ich mal testen und berichten.
-
@buggybeast funktioniert. Danke
-
Frage zu deinen Script, ich muss doch bloß die 3 Werte an meine Konfiguration anpassen, also
Trigger 1 = Power ein/aus
Aktor_1 = momentane Wattanzeige
Vorgabe-Wert = Was meine WM beim Ende an Watt verbraucht, richtig?Alexa & Co dürfte ja kein Fehler enthalten.
-
Mein Blockly für die Waschmaschine funktioniert soweit. Wie kann ich die Speak-Ausgabe nur in der Zeit von 9.00 bis 22.00 Uhr täglich ausgeben lassen?
-
Jemand einen Lösungsansatz wie ich die Speak-Ausgabe zeitlich einschränken kann? Die Kinder "töten" mich momentan, wenn wir morgens die Waschmaschine anstellen und sie durch Alexa geweckt werden, wenn die Waschmaschine fertig ist.