NEWS
Aquarium Wasserstand (Wasser Niveau Regulierung)
-
@aphofis
Mit dem Javascript-Code kann ich nichts anfangen, außer du möchtest künftig in Javascript weiter programmieren.
Ich benötige den XML-Export von Blockly.@aphofis sagte in Aquarium Wasserstand (Wasser Niveau Regulierung):
Wäre es so korrekt !?
Nein.
Wozu 3 Trigger auf den gleichen Datenpunkt "sonoff.0.Aqua_Float.POWER"? Man verwendet pro Datenpunkt nur einen Trigger. Was ist "sonoff.0.Aqua_Float.POWER"?
Welche Funktion hat der exec-Block unten? Für eine URL wäre wohl der httpGet-Block eher geeignet. -
@paul53 Hab denXMl Export angehängt.
"sonoff.0.Aqua_Float.POWER" ist der Schwimmer
"sonoff.0.Aqua_Control.POWER1" ist das Magnetventil
"sonoff.0.Aqua_Float.SENSOR.COUNTER.C2" ist der Wasser Durchfluß Messer
Der exec Block soll nach dem Wasser dosiert wurde im Tasmota Gerät den Counter vom Wasser Durchfluß Sensor auf null stellen Damit beim nächsten pumpen der Wert 0 hat. -
@aphofis sagte: Hab denXMl Export angehängt.
Habe beide Skripte in ein Skript zusammengeführt und angepasst.
EDIT: Habe noch eine Verzögerung eingebaut, damit das Magnetventil geschlossen ist, wenn die Wassermenge ausgewertet wird.
-
@paul53
Das ja bombastisch!!!
Ich frage mich bei jeder Steuerung wie man sowas kann.
Ich hatte die bestehenden Werte aus den Datenpunkten gelöscht und dann das neue Blockly gestartet. Es wird zwar gezählt aber es steht nur in Wasser Jahr der alte Wert.
Der war 7,004 Liter den hatte ich auch auf Null gesetzt. Doch nach dem Wasser dosiert wurde steht Wasser Tag auf "0" und Wasser Jahr wurde der alte wert 7,004 angenommen. Woher kommt das !? Ach ja und im Telegram Bot kommt nix an.
Eingetragenen Bot Token hab ich kontrolliert der stimmt. Die Aquarium Steuerung, meldet per Telegram auch wenn Futter dosiert wird und Pumpe ein und ausgeschaltet wird also verbindung zu Telegram ist vorhanden. -
@aphofis sagte: Der war 7,004 Liter den hatte ich auch auf Null gesetzt.
Vor dem Skriptstart?
@aphofis sagte in Aquarium Wasserstand (Wasser Niveau Regulierung):
im Telegram Bot kommt nix an.
Kam die Logausgabe "7.004 Liter"?
Mit Telegram kenne ich mich nicht aus. -
@paul53
Ja Logausgabe kam mit 7,004 Liter aber woher hat die Steuerung den Wert. Hatte den ja vor Script Start gelöscht.
Ich Pumpe mal etwas Wasser aus dem Becken ab. Mal sehen vielleicht geht es ja wenn das von selsbt auslöst und nicht wenn ich den Schwimmer von hand betätige. -
@aphofis sagte in Aquarium Wasserstand (Wasser Niveau Regulierung):
@paul53
Ja Logausgabe kam mit 7,004 Liter aber woher hat die Steuerung den Wert. Hatte den ja vor Script Start gelöscht.
Ich Pumpe mal etwas Wasser aus dem Becken ab. Mal sehen vielleicht geht es ja wenn das von selsbt auslöst und nicht wenn ich den Schwimmer von hand betätige.Also Wasser Tag & Wasser Jahr bleibt auf null.
Log Ausgabe sagt 0 liter sprich nur Jahr macht eine Ausgabe die tages angabe in ml fehlt.
Telegram sagt auch nichts
Counter wird sauber auf 0" gesetzt -
@aphofis sagte: Counter wird sauber auf 0" gesetzt
Bevor er auf 0 gesetzt wird: Zeigt er die dosierte Wassermenge an?
Er sollte nicht per Skript auf 0 gesetzt werden, denn das muss auch passieren, wenn der Sensorwert auf 0 gesetzt wird (httpGet).Der Sensorwert ändert sich und das Log mit Wassermenge in ml kommt?
-
@paul53
Hatte mal den javascript adapter neu gestartet nun werden ml Tag und Liter Jahr angezeigt und Telegram bekomme ich schon hin -
Hab ja die Steuerung jetzt schon ein paar Tage am laufen. Irgenwie reagiert die Steuerung nicht darauf wenn der Schwimmer true ist. wenn ich den Schwimmer von Hand einmal hoch ziehe also false setze und dann auf true los lasse dann erst reagiert die Steuerung.
Ist da irgendwas falsch !?
Momentan sieht es so aus.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</variable> <variable id="8TTn.0gElhjE;FlI3{:~">Wasser_Tag</variable> <variable id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="variables_set" id="HUSPsI8yrvs1R9buB5UE" x="-1212" y="-763"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> <value name="VALUE"> <block type="math_arithmetic" id="e1#%MoOBW(WQNQtz+];;"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="f)g1|Fqv,`2l-1dYfZ34"> <field name="NUM">1</field> </shadow> <block type="get_value" id="|=$q%x;t`MAEW/vG=BLQ"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Float.SENSOR.COUNTER.C2</field> </block> </value> <value name="B"> <shadow type="math_number" id="j[l*MeT/~[+quhxnrS7C"> <field name="NUM">5.1</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="HchfBD.f$i=}z$B3%%ro"> <field name="VAR" id="8TTn.0gElhjE;FlI3{:~">Wasser_Tag</field> <value name="VALUE"> <block type="get_value" id="M_~UzJP71@mQ8;LaEqA;"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag</field> </block> </value> <next> <block type="variables_set" id="eg3d1X/Cm`7YA1`r@6/5"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> <value name="VALUE"> <block type="get_value" id="HFTLl.5s}DD!S3VkI2}w"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr</field> </block> </value> <next> <block type="on_ext" id="0:-d[({.Z}?pVdpxL($`"> <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="0W#F=X0/oRtnrPk9h3{x"> <field name="oid">sonoff.0.Aqua_Float.POWER</field> </shadow> <block type="text" id="*P`{6.y$Qz:6)XRyP/e."> <field name="TEXT">sonoff.0.Aqua_Float.SENSOR.COUNTER.C2</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id=".o$v5mYbaxJ%Dy^rAJ~@"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> <value name="VALUE"> <block type="math_rndfixed" id="~C}Q;4pD[j1fqWGOQbxr"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="sYM=iIrazCVz3G9{m*Wp"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="Q,q,)Fqfx8Dcu]de0[XS"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="f)g1|Fqv,`2l-1dYfZ34"> <field name="NUM">1</field> </shadow> <block type="on_source" id="3{.pWaaavxoM|Ix^BlA}"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number" id=")SsRvEav^gC^x{KjjCyf"> <field name="NUM">5.1</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="update" id="?h=3;[vg7tLw)/h@7:$A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",s^*MoNszpa:oog%EMAW"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> </block> </value> <next> <block type="debug" id="^-PLnz!%La/%esP+p|q%"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="W!}jJFO{vTG9fL(st@|Z"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="oliPeI~VRSKRwW7]r|%]" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="-A9r0_TWSe~DfBweAXDt"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> </block> </value> <value name="ADD1"> <block type="text" id="8Ojo1T/MND*{-XQvij#:"> <field name="TEXT"> ml</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="on" id=".Kws=H5v3:9sC$2y}XY."> <field name="OID">sonoff.0.Aqua_Float.POWER</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="`#?D6cI2R48DM4)iEV2)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="on_source" id="Z:Ey]JGh2[+Z2p6CktfV"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="fwTIogd8xTfe{#gzL9Cn"> <value name="IF0"> <block type="logic_negate" id="U/Ou4#ODbm6%waUiXwK3"> <value name="BOOL"> <block type="on_source" id="LKR8T,H^%|Gh2gr{;F,#"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="RtR6.MNo`wh`ud[PbJ]:"> <field name="NAME">timeout</field> <field name="DELAY">15</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="IX/.|6z/Aro1]dY5SAYb"> <field name="VAR" id="8TTn.0gElhjE;FlI3{:~">Wasser_Tag</field> <value name="DELTA"> <shadow type="math_number" id="=M*S)jZ,M4p(dx.CTNCh"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="su_iSda]mMUcg|Ylu@=o"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> </block> </value> <next> <block type="update" id="fwHm}o7U6~1d|Z|{o_na"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id=";]qdo[hKwhyu5U)H]|AP"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="%/fU!@WL!D1NR8vZIXrJ"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id=".$Y/`yQi2Ep48g$zUH!("> <field name="VAR" id="8TTn.0gElhjE;FlI3{:~">Wasser_Tag</field> </block> </value> </block> </value> <next> <block type="math_change" id="|lE6{O$UQZ68v5$V-mhf"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> <value name="DELTA"> <shadow type="math_number" id="r(O489L+4qKOus0|bJZ]"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="aUjod9%H]Jr`c:7;L`1L"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="G]!BBiks_53Irs;)eRZ/"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="==0y1MmV=A38?y{8!7Qp"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> </block> </value> <value name="B"> <shadow type="math_number" id="W)Ad2(Y4FzH8rN6?DDSG"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="telegram" id="%Ac!=W);Rce9~t/iuvmU" collapsed="true"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="/qlY{U].1kjbanyv~*S8"> <field name="TEXT">text</field> </shadow> <block type="text_join" id=";;6oqX}l/W(ws@3[8iFR" inline="false"> <mutation items="6"></mutation> <value name="ADD0"> <block type="math_rndfixed" id="I;(*n|Y1J;sj}Vs~,1w`"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="IZ`3Rk8S?(K[:=/b[Fvi"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id="wimbm((,ufreXmGowP_b"> <field name="VAR" id="GnuRk+7KsY$0X2R3aUO1">Wassermenge</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="e)3mz5qz)A1i;o:E{!47"> <field name="TEXT"> ml</field> </block> </value> <value name="ADD2"> <block type="text" id="We*0)kla7,,mg^N5.sPb"> <field name="TEXT"> Wasser wurden dosiert</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="~nUOik7/[6b_mj-#r6(;"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="math_rndfixed" id="4-Nd9(iT2OOMTVJH6gx6"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="%/fU!@WL!D1NR8vZIXrJ"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id="n+Wsz3PbGc-kKOFZzy/6"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text" id="f_S0X,P8Fohvyjt[~}Wt"> <field name="TEXT"> Liter wurden dieses Jahr dosiert</field> </block> </value> </block> </value> <next> <block type="update" id="v@JXdPp^SX$e}[;*TN;5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="H]3.WGAtE,UJ;+O:yMqK"> <field name="n">3</field> <value name="x"> <shadow type="math_number" id="%?~4gjL?h%jK9FuG!MeL"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id="/n6Y=9C~2W@KV$RXN-DW"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> </block> </value> </block> </value> <next> <block type="update" id="`NW9_QcSlKGP;b[9@.QH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="|m|G@]xx7.d^nS-E2Q,B"> <field name="NUM">0</field> </block> </value> <next> <block type="debug" id="ESkP;ss;~ZDB;gISHFI]"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="W!}jJFO{vTG9fL(st@|Z"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="R[aL32f3![219OSKE$k!" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="Y%f8;@,D;lNrR?pmQ|(Z"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> </block> </value> <value name="ADD1"> <block type="text" id="q=ZJuFoniJND[_z;_j~M"> <field name="TEXT"> Liter</field> </block> </value> </block> </value> <next> <block type="http_get" id="e9^C0,Xruq+R^Q=|k3dc"> <field name="TIMEOUT">10</field> <field name="UNIT">sec</field> <field name="TYPE">text</field> <value name="URL"> <shadow type="text" id=",_J4F8mdkf!o;QG{KC2z"> <field name="TEXT">http://192.168.0.71/cm?cmnd=counter2 0</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="schedule" id="eY2k):|9:7y;jFJ|-e{." x="-437" y="-687"> <field name="SCHEDULE">0 0 1 1 *</field> <statement name="STATEMENT"> <block type="variables_set" id="cEkH53kNZuyOARmP+Q|,"> <field name="VAR" id="1Q4.:OQ6u!U%3ez6^aej">Wasser_Jahr</field> <value name="VALUE"> <block type="math_number" id="9;ptE-Ve[-8t]`aa|Tgl"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="|*@i5i^pfX8@UCo}nN4j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="27z6jlXz=#}B7;,?{V7M"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="schedule" id="!0s4!(IKf352-$Cjs+=H"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="u2/ozk5F`Si~3`_cLs4`"> <field name="VAR" id="8TTn.0gElhjE;FlI3{:~">Wasser_Tag</field> <value name="VALUE"> <block type="math_number" id="kQwxXS=Yw7,Q5s]YKP}*"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id=",B.vece!}v4W4j`J0O1r"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="(P{ST5UTzs=*|2/~;Z+d"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@aphofis sagte: Momentan sieht es so aus.
Das Magnetventil muss direkt auf den Schwimmer reagieren. Der Teil im Programm darunter wird 15 s nach Schließen des Magnetventils ausgeführt.
-
@paul53
verstehe ich nicht, die Einstellung ist doch so
wo wird eigentlich der timeout beendet !? -
@aphofis sagte: wo wird eigentlich der timeout beendet !?
Der beendet sich nach 15 s selbst und führt dann das verzögerte Programm aus.
Weshalb hast du die Verzögerung auf 15 s gesetzt? Ein Magnetventil schließt normalerweise schneller. -
@paul53 keine Ahnug was das falsch gelaufen ist. hab ich zurück auf 500ms gestellt
-
@paul53
Das Wasser wird immer noch nicht richtig gezählt und der Wert wird nihct resettet
Der wert aktuell wird durchgehend gezählt aber auch nicht zurück gesetzt.
Ich finde den Fehler nicht.
Wenn wasser dosiert wird kommen ja um die vier zählungen in einer sekunde zu stande. die Steuerung muss also vielleicht 2 sek warten und die werte speichern ausrechnen tasmota counter resetten und dann erst weiter zählen.