NEWS
Wasserstandssensor Wert für Blockly verwertbar machen
-
HI,
der Wasserstandssensor HM-Sen-Wa-Od liefert einen % Wert.
Den kann ich so nicht in Blockly anscheinend verwenden.
Wie kann ich den Wert verwertbar machen???
Danke
Tobias
-
Docu sollte man benutzen können Zeug Mal was du probierst.
Und sonst erst convertieren nach Zahl
Sent from my iPhone using Tapatalk
-
Umrechnen in Liter !?
Oder was brauchst du und wieso ist der % Wert nicht verwendbar? Ist doch nur eine Zahl oder nicht?
-
HI,
ne wenn ich den Wert nehme passiert nichts. Habe auch mit und ohne % Zeichen gearbeitet.
Möchte wenn der Stand einen gewissen Level erreicht das die Pumpe abgeschaltet wird.
Wenn ich nun 10 oder 10% oder 10 % eingebe passiert nichts.
-
Poste doch mal einen Screenshot vom Datenpunkt und von deinem Blockly.
-
Und füge Mal einen debug block ein und lassen den Wert von entsprechenden object darstellen Dan sehen wir auch wie JavaScript den Wert bekommt und er aussieht
Sent from my iPhone using Tapatalk
-
Das ist der grob Entwurf.
Tobias
2120_wasserstand.jpg -
Hmm ok, under jetzt bitte Mal einen debug block direct unter dem Trigger und dir dem fals Baustein und darin Baustein Wert von object (Wert der Füllstandanzeige)
Was kommt dan im Log?
Sent from my iPhone using Tapatalk
-
var idProzent = 'hm-rpc.0.NEQ1012780.1.FILLING_LEVEL'; // Datenpunkt-ID Füllstand vorhanden var idLiter = 'javascript.0.Zisterne.Liter'; // Datenpunkt-ID für neuen DP mit Liter um Mitternacht function calcLiter(dp) { var prozent = dp.state.val; setState(idLiter, Math.round(63.58 * dp.state.val), true); } on(idProzent, calcLiter); // bei jeder Änderung von Prozent
den Datenpunkt javascript.0.Zisterne.Liter musst du selbst erstellen
5264_3768b512061288cdb26fc90d0c45949a.png -
Mit dem Script von Camuri hab ich einen Zahlenwert.
Mal sehen ob es nun mit den Telegramm funktioniert.
-
Wollte mir eine Benachrichtigung erstellen mit Telegramm aber leider kommt nix.
Habe die Werte aus dem Script als Wert genommen.
2120_wasserstand2.jpg -
Ich habe es bei mir so gelöst:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="debug" id="7)Ds)#gknJd0CSG;xiWb" x="138" y="63"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="5De)zud]`f#{r]jPz)VI"><field name="TEXT">Wert hat sich geändert</field></shadow> <block type="get_value" id="szF;_jMA%]fh;#9%SKe`"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ0612234.1.FILLING_LEVEL</field></block></value></block> <block type="comment" id="T3=)24VSA9bjBD%s7^PE" x="-92" y="159"><field name="COMMENT">Pumpe einschalten bei 90%</field> <next><block type="on" id="DVyq|RPU;W[;q8AP1%G3"><field name="OID">hm-rpc.0.OEQ0612234.1.FILLING_LEVEL</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="controls_if" id="/4|`Jc(|UuTaeI;j*MT1"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="k{]W?BOhU/V^4@u~=47,"><field name="OP">GTE</field> <value name="A"><block type="on_source" id="jNlly0=H;g!:?RxbHFAv"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="*+egb%rf.Nq:@0tU;zWf"><field name="NUM">90</field></block></value></block></value> <statement name="DO0"><block type="control" id="BGt;PCX[w}|_3an)fGZR"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.NEQ1316057.1.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="u|W`S7tk6LB-XRdATj0V"><field name="BOOL">TRUE</field></block></value> <next><block type="telegram" id="+W?3v8jX^uKAcTV3Cumx"><field name="INSTANCE">.0</field> <field name="LOG">log</field> <value name="MESSAGE"><shadow type="text" id="i}-{4v+mx*%lMOL?k3VD"><field name="TEXT">Behaelter hat sich bei 90 Prozent eingeschalten!</field></shadow></value> <next><block type="debug" id="vYj5(B@F+dVl;.a.9,/k"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="5De)zud]`f#{r]jPz)VI"><field name="TEXT">Wert hat sich geändert</field></shadow> <block type="on_source" id="e%bV43[5n@pes^:uuHe8"><field name="ATTR">state.val</field></block></value></block></next></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="eH`FTu1l-Zgle8Xw[{}R"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="5~p@P{-!CaxenG~?*qF/"><field name="OP">LTE</field> <value name="A"><block type="on_source" id="v*=yjm=7wz-4;IT[rwux"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="p/S69eq]C{D2^9WkVI#`"><field name="NUM">86</field></block></value></block></value> <value name="B"><block type="logic_compare" id="J4HZnSw8ChQ)5V?3OEiA"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="~BY3@9S]mjXcM~rKrEMJ"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ1316057.1.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="SQvzy~Zf42H8DGw{zd81"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO1"><block type="control" id="!F#4j5{7W1jmV95I)qEf"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.NEQ1316057.1.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id=",`i?~f)3i.{,q7C;_wDk"><field name="BOOL">FALSE</field></block></value> <next><block type="telegram" id="U}BAi01`LzVjt}6[_XHI"><field name="INSTANCE">.0</field> <field name="LOG">log</field> <value name="MESSAGE"><shadow type="text" id="OY)VH8wsc./iS+m!K0gp"><field name="TEXT">Behaelter hat sich bei 85 Prozent ausgeschalten!</field></shadow></value></block></next></block></statement></block></statement></block></next></block></xml>
Auf deinem ersten Bild steht aber auch kein Wert bei Wasserstand.Schacht.Filling.Level ?!
-
Hab den Block gekürzt nur das eine Meldung bei unter 80L kommen soll ohne das eine Telegramm ankommt.
-
Hab es nun hinbekommen.
Nun ist die Frage, wie blockiere ich den Versand mehrere Nachrichten?
Wenn ich eine Meldung bekomme habe, kommt die nächste mit dem selben Stand 3-4 Minuten später.
Wie kann ich das verhindern, das nur ein neuer Stand gesendet wird?
Eine Frage zu den Blöcken, kann ich beide Logik "falls" Bausteine in einen Trigger packen oder so wie jetzt separat ??
Danke
Tobias
2120_blockly_wasserstand.png -
Versuch mal den Trigger auf "Wurde geändert" zu setzen.