NEWS
[VORLAGE] Blockly Meldung wenn Waschmaschine fertig
-
@Master-Rudi sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
@rantanplan said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Eine Lampe zum Test ist sehr schlecht. Das Script triggert auf Änderung! Wenn die Lampe einmal an ist, ändert sich ja nichts mehr. Ein Test mit Waschmaschine wäre aussagekräftiger.
Ok, Wasserkocher? Funktioniert nämlich auch irgendwie nicht.
Ein Wasserkocher mit Waschprogrammen und Drehrichtungswechsel?
Power muss sich HÄUFIG ändern.Schließe doch einfach mal die Waschmashine an den Stecker und beobachte den Datenpunkt "POWER" wärend gewaschen wird. Wo ist das Problem?
Danke! Sorry, mein erstes Skript
Kein Problem. Aber dann sollte man ein Script einsetzen wofür es gedacht ist.
-
Naja aber so wie ich das Script verstehe, macht es doch nichts anderes als in Intervallen zu prüfen, ob Power größer oder kleiner ist als GrenzWertinWatt? Dann sollte es doch egal sein, welcher Verbraucher dran hängt. Wichtig ist doch, dass Power einmal größer wird als GrenzWertinWatt und wenn fertig, dann muss der Wert wieder unterhalb von GrenzWertinWatt fallen und das innerhalb der 40s um z.B. eine falsche Auslösung zu vermeiden.
Oder verstehe ich das falsch? Versuche das Skript nur zu verstehen, um den Fehler selbs finden zu können.
Damit hast du recht, dass eine Waschmaschine deutlich komplexer läuft als ein Wasserkocher, aber nach meinem Verständnis von dem Skript sollte das egal sein oder?
Ich habe es übrigens vorher und auch jetzt mehrfach mit der Waschmaschine laufen lassen, aber es hat nicht funktioniert, darum habe ich mir eben die LED oder den Wasserkocher als Ersatztestgerät gesucht, um es zu simulieren.
Weiß nicht, wo der Fehler liegt. Kannst du mir nochmal helfen?
Danke!!
Edit:
Liegts evtl daran, dass mein Energy_Power Wert inkl. "W" angezeigt wird und nicht nur als Zahl? Also, dass der Vergleich immer falsch ist?So ich glaube ich habe den Fehler gefunden. Es lag wie vermutet nicht am Skript sondern am iBroker an sich:
Ich habe "Art" von "Gemischt" auf "Logikwert" geändert. Jetzt läuft es, auch am Wasserkocher
Danke -
@Master-Rudi sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Weiß nicht, wo der Fehler liegt. Kannst du mir nochmal helfen?
Wenn ich kann, immer gerne.Liegts evtl daran, dass mein Energy_Power Wert inkl. "W" angezeigt wird und nicht nur als Zahl? Also, dass der Vergleich immer falsch ist?
Das kannst Du leicht überprüfen.
Dafür gibt es in Blockly den "Debug" Baustein. Damit kannst Du Informationen ins Log schreiben.
Für eine Fehlersuche ist der unentbehrlich.
Lass Dir doch mal den Wert ausgeben, den Dein Aktor liefert.
-
Hm...es wundert mich ein bisschen, dass mein "Problem" scheinbar seltener Natur ist.
Folgendes:
Ich nutze ein Shelly 1 vor der Waschmaschine und nutze den Script in unveränderter Form.
Nun ist es aber so, dass der Shelly ca. alle 30s seine Leistung per MQTT zum iobroker sendet.Zieht die Waschmaschine nun weniger als 4W, kommt trotzdem alle 30s eine Leistungs-Wert rein...dieser variiert dann irgendwo zwischen 1,0 und 1,1W im Standby.
Das heißt, dass jedes mal, wenn das Shelly eine minimale Wertänderung sendet der Script neu angestoßen und damit der Timer zurückgesetzt wird (bzw. neu anläuft), solange nicht 2mal hintereinander exakt die gleichen Werte vom Shelly kamen.
So passiert es schon mal, dass die Waschmaschine schon 10...20 Minuten lang fertig ist, bevor die 40s vom Timer überhaupt abgelaufen sind.Im Shelly kann ich den Sendezyklus nicht einstellen.
Wie umgeht man das Problem und wie ist das bei anderen Geräten gelöst? Senden die generell weniger oft oder nur bei Änderungen einer bestimmten Größte?
Edit:
Ich würde eine zweite Verzögerungs-Variable vorschlagen:Diese wird gesetzt, wenn der Timer (Fertig) anläuft und zurückgesetzt, wenn dieser fertig ist.
Solange der Timer läuft, springt die Haupt-Schleife nicht mehr zur checkFertig-Funktion, auch wenn diese erneut angestoßen wird (obwohl sie unter dem Schwellwert liegt).Was sagen die Profis dazu?
-
Diese wird gesetzt, wenn der Timer (Fertig) anläuft und zurückgesetzt, wenn dieser fertig ist.
Solange der Timer läuft, springt die Haupt-Schleife nicht mehr zur checkFertig-Funktion, auch wenn diese erneut angestoßen wird (obwohl sie unter dem Schwellwert liegt).Was sagen die Profis dazu?
Bin kein Profi, hab es bei meinem Script so wie du gelöst, ist aber Javascript kein Blockly. Ich da 4 Zustände drin.
1. > 20 Watt schaltet das aktiv 2. > 10 Watt hält es aktiv stoppt 3 und 4 3. <= 3 Watt startet 60 Sekunden Timeout 4. 3-10 Watt startet 20 Minuten Timeout und stoppt 3
die Nr. 4. hab ich drin fürs Daunenprogramm und eines der anderen Programme. Da kann ich einfach nicht erkennen, ob es am Ende ist oder mitten drin.
Hab ne Steckdose mit Schalter... das Script nervt bis man die Steckdose am Schalter ausschaltet. -
@ticaki sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Hab ne Steckdose mit Schalter... das Script nervt bis man die Steckdose am Schalter ausschaltet.
Mit welchem Script arbeitest Du? Meins triggert auf Änderung. Was ändert sich bei Deinem Stecker wenn dieser ausgeschaltet ist?
Wir schalten unseren HM Funkstecker immer aus wenn die Waschmaschine nicht mehr gebraucht wird. -
@rantanplan sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Mit welchem Script arbeitest Du? Meins triggert auf Änderung. Was ändert sich bei Deinem Stecker wenn dieser ausgeschaltet ist?
Wir schalten unseren HM Funkstecker immer aus wenn die Waschmaschine nicht mehr gebraucht wird.Selbst geschriebenes Script. Alexa erinnert alle 20 Minuten an die fertige Waschmaschine und hört damit auf, wenn die Steckdose ausgeschaltet wird. Nachteil ist, dass ich die Steckdose aus und an schalten muß um das zurück zu setzen.
-
Ich habe Rantanplans script auch als Basis genutzt, läuft seit einem Jahr problemlos, für die Leistungsmessung läuft ein Shelly 1pm. Ich habe außerdem eine Leistungsmessung des Waschvorgangs erstellt, die die Leistungsveränderungen des Shelly zur Laufzeit der Maschine aufsummiert und nach Ende des Waschvorgangs eine pushhover-Meldung mit dem Gesamtverbrauch sendet. Erstaunlicherweise entspricht der Wert mit nur geringer Abweichung dem Realverbrauch:
Logik ist eigentlich einfach: Solange die Waschmaschine läuft ist die Variable WON wahr, mit jedem Update des Leistungswert im Shelly-Objekt merken wir uns Leistung und den Timestamp der letzten Änderungen. Bei der nächsten Änderung ermitteln wir die Differenz zum letzten Timestamp, multiplizieren mit der Leistung, formatieren und aktualisieren den gespeicherten Gesamtwert. Am Ende der Waschmaschine können wir den Wert aus Waschmaschine.power oder der Variablen ts_temp auslesen und z.B. an die Pushover-Nachricht anhängen:
Gerne auch mal testen, die gesamte Beschreibung gibt's hier: https://www.smarthomejetzt.de/so-wird-jede-waschmaschine-und-trockner-smart/
-
Hi,
ich habe das Problem, dass die Einschaltverzögerung nicht zurückgesetzt wird. Hat evtl. jemand´ne Idee woran das liegen mag? Dadurch bekomme ich kein "Waschmaschine läuft" Benachrichtigung. Mein Grenzwert liegt bei 2.1W. Wenn ich das Skript pausiere und starte wenn die Waschmaschine schon arbeitet, also > 0W zieht, funktioniert es..09:09:47.991 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:11.79 Verzögerung aktiv:falseWaschmaschine an:false 09:09:47.992 info javascript.0 (7888) script.js.WaschmaschineFertig: ***Starte Verzögerung 09:09:52.569 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:11.55 Verzögerung aktiv:trueWaschmaschine an: false 09:10:23.188 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:4.01 Verzögerung aktiv:true Waschmaschine an: false 09:10:59.389 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.94 Verzögerung aktiv:true Waschmaschine an: false 09:11:35.189 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.84 Verzögerung aktiv:true Waschmaschine an: false 09:12:05.069 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:3.85 Verzögerung aktiv:true Waschmaschine an: false 09:12:58.578 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:2120 Verzögerung aktiv:true Waschmaschine an: false 09:14:36.289 info javascript.0 (7888) script.js.WaschmaschineFertig: Power:2107 Verzögerung aktiv:true Waschmaschine an: false
-
Guten Morgen,
ich benutze dieses Script auch schon lange. Leider funktioniert das Script nach dem letzten JS Update nicht mehr, bzw. nur, wenn ich das Script neustarte.
Hat jemand eine Idee wo der Fehler ist? Irgendwie reagiert das Script nicht, obwohl sich der Powerwert ändert.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="eo//GcIsH?o?Xb`gsj^L">Meldetext</variable> <variable id="x74@3fHfZNDz?z2a,xF.">parameter</variable> <variable id="MXAKoyu#FS,d3bu4)hLY">VerzoegerungAktivSpuelmaschine</variable> <variable id="bCUZ,!4dG^ya5cOGE7Qr">GrenzWertWattSpuelmaschine</variable> <variable type="timeout" id="timeout">timeout</variable> <variable type="timeout" id="Einschaltverzoegerung">Einschaltverzoegerung</variable> </variables> <block type="procedures_defnoreturn" id="l1.gm`YNTt2#Ww;_Stf+" x="838" y="88"> <mutation> <arg name="Meldetext" varid="eo//GcIsH?o?Xb`gsj^L"></arg> </mutation> <field name="NAME">Melden</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="CgkHkrp5c26e`w3uU(i`"> <field name="COMMENT">Hier wird die Meldung ausgegeben</field> <next> <block type="debug" id="SYQu;@N0JgE!W~[JZcZ_"> <field name="Severity">log</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="4+J8c.^+FrkDV^]dAda-"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="KuX^Hf4/i6gnp|rmq9WR"> <field name="VAR" id="eo//GcIsH?o?Xb`gsj^L">Meldetext</field> </block> </value> <next> <block type="comment" id="hBy7hd`EsC3Cz[CG}/hg"> <field name="COMMENT">Dot Küche</field> <next> <block type="control" id="Jy`_L_yjLJ-oY0??$JX~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U5099123064L.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="aYz#A93`;)Vf.Cv3gV#p"> <field name="VAR" id="eo//GcIsH?o?Xb`gsj^L">Meldetext</field> </block> </value> <next> <block type="comment" id="W9A6q3XJioE0SVpw`ETK"> <field name="COMMENT">Dot Bad</field> <next> <block type="control" id="{VAA_o!bo5pGR5ez84Zz"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50991360F42.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="vC22]G-c^OPoF#d*~^_H"> <field name="VAR" id="eo//GcIsH?o?Xb`gsj^L">Meldetext</field> </block> </value> <next> <block type="telegram" id="G+{j+/n)Z41#7/ds34Zl"> <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="9x|HH665Ob)EXKKk_S:P"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="gQDFNZc!n#_3q$RU_`W2"> <field name="VAR" id="eo//GcIsH?o?Xb`gsj^L">Meldetext</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="@`s,ARMz+*DZ*ns;z2m_" x="13" y="155"> <field name="COMMENT">Initialisierung bei Scriptstart</field> <next> <block type="comment" id="Ov|lJMd@PV!y.oUN9Boj"> <field name="COMMENT">VerzögerungAktiv NICHT ändern</field> <next> <block type="variables_set" id="T+;|Db@bx|T]wkX[e.xT"> <field name="VAR" id="MXAKoyu#FS,d3bu4)hLY">VerzoegerungAktivSpuelmaschine</field> <value name="VALUE"> <block type="logic_boolean" id="FimMeG{k6LBu0{7UjBJ4"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="6q4+KcF6/q*eh;RCmGKL"> <field name="COMMENT">Entscheidungswert festlegen</field> <next> <block type="variables_set" id="pE;t15K()B2=@=,RY5D_"> <field name="VAR" id="bCUZ,!4dG^ya5cOGE7Qr">GrenzWertWattSpuelmaschine</field> <value name="VALUE"> <block type="math_number" id="OB=)nO2pXH:1HNwm(JpG"> <field name="NUM">1</field> </block> </value> <next> <block type="comment" id="|2tm%?,yK/o3_AA)J{ah"> <field name="COMMENT">Steckdose überwachen</field> <next> <block type="on" id="|dlGHoQ87=K)nFeYS]]X"> <field name="OID">meross.0.1912247791726925188148e1e9147e11.0-power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="=n/Jfc]x(Ib[NRPJZ%7X"> <value name="IF0"> <block type="logic_compare" id="?m1STicTe5=N-/f:Ji2s"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="QjKQBx`PdHENcy)eGM,5"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id=":(p2PWPzD2(~R-q9upeS"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id=";%e=m5A.5_U8[v[Odt7."> <field name="COMMENT">Dieser Teil wird NUR ausgeführt wenn</field> <next> <block type="comment" id="Bv,r2iN_4zSfF_^X35gM"> <field name="COMMENT">Funkstecker oder Spülm. komplett aus war.</field> <next> <block type="variables_set" id="xuK#29.xYf)m6FX5LA78"> <field name="VAR" id="MXAKoyu#FS,d3bu4)hLY">VerzoegerungAktivSpuelmaschine</field> <value name="VALUE"> <block type="logic_boolean" id=")}Jh9zUdflaLNnL+;^h="> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="Wv*jiP9Bn3#//0KE[4e["> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="!hyL_SIc#q!nV1G.NU,/"> <field name="TEXT">***Starte Verzögerung</field> </shadow> </value> <next> <block type="timeouts_settimeout" id="v[ws-ZxN:-nNl,kERlT8"> <field name="NAME">Einschaltverzoegerung</field> <field name="DELAY">0</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="comment" id="UyUTD{W;Ef;u2!)%y5h|"> <field name="COMMENT">Eventuell hohe Einschaltspannung abfangen.</field> <next> <block type="comment" id="^wiM;VZ*5RLS-+SMsG7?"> <field name="COMMENT">Diese kann größer als der Grenzwert sein</field> <next> <block type="variables_set" id="@d2;tEWydly|fW:ng;eg"> <field name="VAR" id="MXAKoyu#FS,d3bu4)hLY">VerzoegerungAktivSpuelmaschine</field> <value name="VALUE"> <block type="logic_boolean" id="S5R1RMtIKx(=N;}|dM%Z"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="1^,/eLLAT{#66hqVIel8"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="[koH26;mOP0UeXV~CJRb"> <field name="TEXT">***Beende Verzögerung</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="EZK4(UY%`}HZl{2F)m6p"> <field name="COMMENT">Ab hier wird gewaschen</field> <next> <block type="controls_if" id="S(-Xvr1uja6/vNdH|?j:"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="s(;r=_ekdU*dF=_Tsrbb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="d_lZY_VlNaa40/Pob=Um"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="`c4GU.`+o2_G+Vdxq;n/"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="FD[JnQcwajuYLgGmTX`."> <field name="VAR" id="bCUZ,!4dG^ya5cOGE7Qr">GrenzWertWattSpuelmaschine</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="*Y`H0qa!`fsBeI/2Cv+c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="zC,(}TPXAvX2yd^k`W._"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";a;[[bw/v2oQnG9DHZIn"> <field name="ATTR">val</field> <field name="OID">javascript.0.SpuelmaschineAN</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";a5=vVD`86hstjR{4y~+"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K.3M9Le`+STB!.M_eD7O"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[!KuvI83Wzp*sDDNM{S!"> <field name="VAR" id="MXAKoyu#FS,d3bu4)hLY">VerzoegerungAktivSpuelmaschine</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9_[X?aI?X1w]lj.RY`K^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S6URE:3#}}.v#e!X.A4D"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.SpuelmaschineAN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="QqpwRU?xP?P=bvS9HS[1"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="=!*WIp};Ta`)XeMMk,iR"> <mutation name="Melden"> <arg name="Meldetext"></arg> </mutation> <value name="ARG0"> <block type="text" id="{QcAY3oi:,FGG.929?TS"> <field name="TEXT">Die Spülmaschine läuft</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Yuagp|w@)mC+asceXLLu"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="P(tu4AS{);E?w-p?]{1q"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ou6,Zi?vbs[;{]@93U`!"> <field name="VAR" id="bCUZ,!4dG^ya5cOGE7Qr">GrenzWertWattSpuelmaschine</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="H90l#sdGb5I}Wqsbz=9s"> <field name="COMMENT">Timer stoppen</field> <next> <block type="procedures_callnoreturn" id="zo=cPu~=j#pus6bWVaJl"> <mutation name="checkFertig"> <arg name="parameter"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="1SYbGS^3xkqD/Uj?{bvJ"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_operation" id="_@|YxZPYI(z3![Q=ZbX4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Ge6FX#6b5WYoc;wF%%iH"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="0Vw33+AwVD~={g{aHa~d"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="NufLwbvZR1.fEmqJNOTZ"> <field name="VAR" id="bCUZ,!4dG^ya5cOGE7Qr">GrenzWertWattSpuelmaschine</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="X[1t=zl25bQ]aHT[:`,8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4WFkiPOYU?#zQhOL)0u("> <field name="ATTR">val</field> <field name="OID">javascript.0.SpuelmaschineAN</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?jrLY7K)k;1?sa!Ef{VO"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="comment" id="}Q59!:8+Dc~b~LwZhq-("> <field name="COMMENT">Timer starten</field> <next> <block type="procedures_callnoreturn" id=";MD%1IF[[H29g_f=vvYH"> <mutation name="checkFertig"> <arg name="parameter"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="/yX*,4aU!HHUO#/2U-NR"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="sDP?w~)oJD}Z95[_?EY0" x="838" y="588"> <mutation> <arg name="parameter" varid="x74@3fHfZNDz?z2a,xF."></arg> </mutation> <field name="NAME">checkFertig</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="V2@7jqv5RTl+}q}xfEsZ"> <field name="COMMENT">Timer stoppen</field> <next> <block type="timeouts_cleartimeout" id="y7iPL;/^^,*);q|%Pk6;"> <field name="NAME">Einschaltverzoegerung</field> <next> <block type="controls_if" id="*DX-*|5t*M5.|5Qw0p76"> <value name="IF0"> <block type="logic_compare" id="[-Hs2uzeFf6L7XO4:d6g"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="uT*6f!Y:?Sivq1F-y;7_"> <field name="VAR" id="x74@3fHfZNDz?z2a,xF.">parameter</field> </block> </value> <value name="B"> <block type="logic_boolean" id="w?1)4.uK{/ey3NJ)NjH:"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="fU`TRz:h*y1K[t@GmyY:"> <field name="COMMENT">Timer starten</field> <next> <block type="timeouts_settimeout" id="k%sy5:QdTn+3f@{OZshs"> <field name="NAME">timeout</field> <field name="DELAY">40</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="UOquZ.)w|Dv~5_@iC*HO"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.SpuelmaschineAN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ttQizIf!/AB*HLfb9Kw1"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="HHrpaU=vtt6v1JInTG~l"> <mutation name="Melden"> <arg name="Meldetext"></arg> </mutation> <value name="ARG0"> <block type="text" id="leE4:W;JI@,LD;n0Gs6r"> <field name="TEXT">Die Spülmaschine ist fertig</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@djsirius sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Hat jemand eine Idee wo der Fehler ist?
Ersetze Alle Time Blockly neu.
-
@djsirius sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Leider funktioniert das Script nach dem letzten JS Update nicht mehr, bzw. nur, wenn ich das Script neustarte.
Es kann sein, das timeout Blöcke umbenannt wurden.
Bild aus dem ersten Beitrag
Schau mal was da bei Dir steht (ich habe Deinen export nicht importiert)
-
@sigi234 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Ersetze Alle Time Blockly neu.
In allen Blocky Skripten...
-
@dslraser Das scheint der Fehler gewesen zu sein!
Super, vielen Dank!
-
Hallo Leute
Könnt Ihr mir ev. helfen?
Habe ein Skript für Telegrammnachricht bei WM fertig und dieser läuft nun einwandfrei. Die WM ist mit einem Homematic Funk-Schaltaktor mit Leistungsmessung verbunden. Nun habe ich den Wäschetrockner mit einem Sonoff Pow R2 in Betrieb genommen. Die Werte werden korrekt in Objekt angezeigt und dann alle 10 Sekunden aktualisiert.
Was nicht funktioniert ist die Meldung via Telegramm. Habe Skript von WM kopiert und für den Trockner dann angepasst. Habe nun einmal beide Skripte angehängt. Vielleicht findet Ihr den Fehler...!?
-
Hallo zusammen,
ich nutze nun seit Monaten dieses Script. Es funktionierte einwandfrei. Seit 3 Wochen ca. läuft es nicht mehr. Ich bekomme bei jedem Waschgang ca. 200 Telegram Nachrichten.
Jedes Mal, wenn der Wert unter 55W fällt und danach direkt wieder steigt bekomme ich eine Meldung "WM fertig" und "WM läuft".
Im Prinzip wird die Verzögerung komplett ignoriert.Ich hatte was von einem Update des js-controller gelesen, gute Frage, ich updatete meinen iobroker täglich automatisiert.
Ich hatte mal versucht die Timeouts zu ersetzen, sehe aber keinen Unterschied.
Keine Ahnung woran es liegt. Danke für jede Hilfe...
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Yy!%k5qHi}pnKz$aE=8:">parameter</variable> <variable id="$rhxzXjEBnv?gzANwLs_">Meldetext</variable> <variable id="@9d6R+12NMzYvL_8~jf?">VerzoegerungAktiv</variable> <variable id="yK|`u`xtTN?zxid^G/J]">GrenzWertInWatt</variable> <variable type="timeout" id="timeout">timeout</variable> <variable type="timeout" id="Einschaltverzoegerung">Einschaltverzoegerung</variable> </variables> <block type="create" id=":XvakORUFJ^_I1/^;0qD" x="13" y="13"> <field name="NAME">Waschmaschine</field> <value name="VALUE"> <block type="logic_boolean" id="@dp#WL$AGmUMtmcRDa8y"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="@`s,ARMz+*DZ*ns;z2m_"> <field name="COMMENT">Initialisierung bei Scriptstart</field> <next> <block type="comment" id="Ov|lJMd@PV!y.oUN9Boj"> <field name="COMMENT">VerzögerungAktiv NICHT ändern</field> <next> <block type="variables_set" id="T+;|Db@bx|T]wkX[e.xT"> <field name="VAR" id="@9d6R+12NMzYvL_8~jf?">VerzoegerungAktiv</field> <value name="VALUE"> <block type="logic_boolean" id="FimMeG{k6LBu0{7UjBJ4"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="6q4+KcF6/q*eh;RCmGKL"> <field name="COMMENT">Entscheidungswert festlegen</field> <next> <block type="variables_set" id="pE;t15K()B2=@=,RY5D_"> <field name="VAR" id="yK|`u`xtTN?zxid^G/J]">GrenzWertInWatt</field> <value name="VALUE"> <block type="math_number" id="OB=)nO2pXH:1HNwm(JpG"> <field name="NUM">55</field> </block> </value> <next> <block type="comment" id="|2tm%?,yK/o3_AA)J{ah"> <field name="COMMENT">Steckdose überwachen</field> <next> <block type="on_ext" id="n)UklDS{=z!-#^HfL@Ly"> <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="@Uda~stBc8L/=2DFzrvo"> <field name="oid">sonoff.0.DVES_1.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="=n/Jfc]x(Ib[NRPJZ%7X"> <value name="IF0"> <block type="logic_compare" id="?m1STicTe5=N-/f:Ji2s"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="QjKQBx`PdHENcy)eGM,5"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="math_number" id=":(p2PWPzD2(~R-q9upeS"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id=";%e=m5A.5_U8[v[Odt7."> <field name="COMMENT">Dieser Teil wird NUR ausgeführt wenn</field> <next> <block type="comment" id="Bv,r2iN_4zSfF_^X35gM"> <field name="COMMENT">Funkstecker oder Waschm. komplett aus war.</field> <next> <block type="variables_set" id="xuK#29.xYf)m6FX5LA78"> <field name="VAR" id="@9d6R+12NMzYvL_8~jf?">VerzoegerungAktiv</field> <value name="VALUE"> <block type="logic_boolean" id=")}Jh9zUdflaLNnL+;^h="> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="Wv*jiP9Bn3#//0KE[4e["> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="!hyL_SIc#q!nV1G.NU,/"> <field name="TEXT">***Starte Verzögerung</field> </shadow> </value> <next> <block type="timeouts_settimeout" id="/P(F70jE{1chR,Gf!q6J"> <field name="NAME">Einschaltverzoegerung</field> <field name="DELAY">20</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="comment" id="UyUTD{W;Ef;u2!)%y5h|"> <field name="COMMENT">Eventuell hohe Einschaltspannung abfangen.</field> <next> <block type="comment" id="^wiM;VZ*5RLS-+SMsG7?"> <field name="COMMENT">Diese kann größer als der Grenzwert sein</field> <next> <block type="variables_set" id="@d2;tEWydly|fW:ng;eg"> <field name="VAR" id="@9d6R+12NMzYvL_8~jf?">VerzoegerungAktiv</field> <value name="VALUE"> <block type="logic_boolean" id="S5R1RMtIKx(=N;}|dM%Z"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="1^,/eLLAT{#66hqVIel8"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="[koH26;mOP0UeXV~CJRb"> <field name="TEXT">***Beende Verzögerung</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="EZK4(UY%`}HZl{2F)m6p"> <field name="COMMENT">Ab hier wird gewaschen</field> <next> <block type="controls_if" id="S(-Xvr1uja6/vNdH|?j:"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="s(;r=_ekdU*dF=_Tsrbb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="d_lZY_VlNaa40/Pob=Um"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="`c4GU.`+o2_G+Vdxq;n/"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="FD[JnQcwajuYLgGmTX`."> <field name="VAR" id="yK|`u`xtTN?zxid^G/J]">GrenzWertInWatt</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="*Y`H0qa!`fsBeI/2Cv+c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="zC,(}TPXAvX2yd^k`W._"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";a;[[bw/v2oQnG9DHZIn"> <field name="ATTR">val</field> <field name="OID">javascript.0.Waschmaschine</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";a5=vVD`86hstjR{4y~+"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K.3M9Le`+STB!.M_eD7O"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="[!KuvI83Wzp*sDDNM{S!"> <field name="VAR" id="@9d6R+12NMzYvL_8~jf?">VerzoegerungAktiv</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9_[X?aI?X1w]lj.RY`K^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S6URE:3#}}.v#e!X.A4D"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Waschmaschine</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="QqpwRU?xP?P=bvS9HS[1"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="=!*WIp};Ta`)XeMMk,iR"> <mutation name="Melden"> <arg name="Meldetext"></arg> </mutation> <value name="ARG0"> <block type="text" id="{QcAY3oi:,FGG.929?TS"> <field name="TEXT">Waschmaschine LÄUFT</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Yuagp|w@)mC+asceXLLu"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="P(tu4AS{);E?w-p?]{1q"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ou6,Zi?vbs[;{]@93U`!"> <field name="VAR" id="yK|`u`xtTN?zxid^G/J]">GrenzWertInWatt</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="H90l#sdGb5I}Wqsbz=9s"> <field name="COMMENT">Timer stoppen</field> <next> <block type="procedures_callnoreturn" id="4.@#ma`Y^~%:1o1yn^eY"> <mutation name="checkFertig"> <arg name="parameter"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="9BUx7t2ne[J%zKE1=6]["> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_operation" id="_@|YxZPYI(z3![Q=ZbX4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Ge6FX#6b5WYoc;wF%%iH"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="0Vw33+AwVD~={g{aHa~d"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="NufLwbvZR1.fEmqJNOTZ"> <field name="VAR" id="yK|`u`xtTN?zxid^G/J]">GrenzWertInWatt</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="X[1t=zl25bQ]aHT[:`,8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4WFkiPOYU?#zQhOL)0u("> <field name="ATTR">val</field> <field name="OID">javascript.0.Waschmaschine</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?jrLY7K)k;1?sa!Ef{VO"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="comment" id="}Q59!:8+Dc~b~LwZhq-("> <field name="COMMENT">Timer starten</field> <next> <block type="procedures_callnoreturn" id=";MD%1IF[[H29g_f=vvYH"> <mutation name="checkFertig"> <arg name="parameter"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="/yX*,4aU!HHUO#/2U-NR"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="sDP?w~)oJD}Z95[_?EY0" x="13" y="1313"> <mutation> <arg name="parameter" varid="Yy!%k5qHi}pnKz$aE=8:"></arg> </mutation> <field name="NAME">checkFertig</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="V2@7jqv5RTl+}q}xfEsZ"> <field name="COMMENT">Timer stoppen</field> <next> <block type="timeouts_cleartimeout" id="y7iPL;/^^,*);q|%Pk6;"> <field name="NAME">Einschaltverzoegerung</field> <next> <block type="controls_if" id="*DX-*|5t*M5.|5Qw0p76"> <value name="IF0"> <block type="logic_compare" id="[-Hs2uzeFf6L7XO4:d6g"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="uT*6f!Y:?Sivq1F-y;7_"> <field name="VAR" id="Yy!%k5qHi}pnKz$aE=8:">parameter</field> </block> </value> <value name="B"> <block type="logic_boolean" id="w?1)4.uK{/ey3NJ)NjH:"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="fU`TRz:h*y1K[t@GmyY:"> <field name="COMMENT">Timer starten</field> <next> <block type="timeouts_settimeout" id="w]0Q8Xb@.[Q8uj(YJs]p"> <field name="NAME">timeout</field> <field name="DELAY">50</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="UOquZ.)w|Dv~5_@iC*HO"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Waschmaschine</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ttQizIf!/AB*HLfb9Kw1"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="HHrpaU=vtt6v1JInTG~l"> <mutation name="Melden"> <arg name="Meldetext"></arg> </mutation> <value name="ARG0"> <block type="text" id="leE4:W;JI@,LD;n0Gs6r"> <field name="TEXT">Waschmaschine FERTIG</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="l1.gm`YNTt2#Ww;_Stf+" x="13" y="1638"> <mutation> <arg name="Meldetext" varid="$rhxzXjEBnv?gzANwLs_"></arg> </mutation> <field name="NAME">Melden</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="CgkHkrp5c26e`w3uU(i`"> <field name="COMMENT">Hier wird die Meldung ausgegeben</field> <next> <block type="debug" id="SYQu;@N0JgE!W~[JZcZ_"> <field name="Severity">log</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="4+J8c.^+FrkDV^]dAda-"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="KuX^Hf4/i6gnp|rmq9WR"> <field name="VAR" id="$rhxzXjEBnv?gzANwLs_">Meldetext</field> </block> </value> <next> <block type="comment" id="a;Ent4V!@/ELz)~^PTwn"> <field name="COMMENT">Hier den SendTo Baustein einsetzen,</field> <next> <block type="comment" id="Xc,u6Sm.@c5xeqVM)suq"> <field name="COMMENT">den man benutzen will.</field> <next> <block type="comment" id="cI=%X;P?/Tfam8YIny%V"> <field name="COMMENT">Die Meldung befindet sich in der Variablen</field> <next> <block type="comment" id="{(av)+6o4VfWo^eJEnft"> <field name="COMMENT">"Meldetext"</field> <next> <block type="telegram" id="PQ(Z?ExZDsV!WHV0a$yz"> <field name="INSTANCE">.0</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="nxE-Yq*m{TCHi9/$/_sv"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="q]ll5={Nel=m7bAjL{6Q"> <field name="VAR" id="$rhxzXjEBnv?gzANwLs_">Meldetext</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Blockly:
@Adnim said in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
@sigi234 sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
Ersetze Alle Time Blockly neu.
In allen Blocky Skripten...
Was heißt in allen Blockly Skripten? Ich habe es nur in diesem versucht zu löschen und neu anzupassen. Dann sollte ja zumindest dieses Script gehen? Oder hängt das irgendwie verquert zusammen?!
-
@Master-Rudi
In der untersten Funktion checkFertig muss es m.E. 'stop timeout' heissen statt 'stop Einschaltverzögerung'. -
@zahnheinrich sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
@Master-Rudi
In der untersten Funktion checkFertig muss es m.E. 'stop timeout' heissen statt 'stop Einschaltverzögerung'.genau..
-
@dslraser
Das ist so ein Fehler der beim javascript update entstanden ist. -
@zahnheinrich sagte in [VORLAGE] Blockly Meldung wenn Waschmaschine fertig:
@dslraser
Das ist so ein Fehler der beim javascript update entstanden ist.ich weiß, ich wollte es nur bestätigen.