- Home
- Deutsch
- Skripten / Logik
- Node-Red
- Wasserregulierung Aquarium
Wasserregulierung Aquarium
-
@mickym
ja das stimmt. Habe die value in command geändert. Ist wohl bei mir etwas untergegangen.
den payload habe ich dann auch in gesamt geändert.
Der Dekay sitzt nur in dem Strang der den Counter auf dem Tasmota Gerät auf null setzt.
Hat damit also nix zu tun. -
@mickym
hab ich oben angepasst.
Telegram ist völlig unwichtig.
Das Blockly hab ich Telegram rausgeschmissen. Sollte jetzt importiert werden können.<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.21</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="on_source" id="3{.pWaaavxoM|Ix^BlA}"> <field name="ATTR">state.val</field> </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">1000</field> <field name="UNIT">ms</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="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">2000</field> <field name="UNIT">ms</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?user=admin&password=Kasjopayac3po&cmnd=counter2%200</field> </shadow> </value> </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>
und Wasser Aktuell soll auch zum Datenpunkt Wasser_Gesamt hinzugefügt werden. -
@aphofis Aber das haben wir doch schon alles gemacht? - Und ehrlich gesagt ein ganz neuen Flow habe ich keine Lust. Wie gesagt formuliere das einfach. Nur Blockly und ich soll dann einen NodeRed Flow daraus machen - da lernst Du nichts.
-
@mickym
Sollst du doch nicht!
Ich will auch keinen neuen flow. Nur funkitonieren sollte er schon nur um zu wissen wo das problem ist muss ich mehr node-red lernen. -
@aphofis Ja dann solltest Du halt beschreiben was nicht geht und was Du zur Untersuchung des Problems getan hast. Ich sehe den Flow aber weiß nicht wo Dein Problem liegt
-
@aphofis sagte in ["erfolgreich", "gelöst"] Wasserregulierung Aquarium:
@mickym
Sollst du doch nicht!
Ich will auch keinen neuen flow. Nur funkitonieren sollte er schon nur um zu wissen wo das problem ist muss ich mehr node-red lernen.Ich habs zwar nicht gelesen, aber hier gibts noch ein free E-Book, wenn man sich registriert:
Ansonsten gibts auch ein deutsches Buch, dessen Vorgängerversion ich kenne und ich eigentlich ganz gut finde:
Trotzdem wirst Du nicht umhin kommen, die erforderliche Logik in Teilschritte zu unterteilen. Die anderen Onlinequellen habe ich Dir ja schon mehrfach gepostet.
-
@mickym
Das sehr nett! Vielen Dank
Nur werde ich das nicht in einer woche einem Monat lernen. -
Sag mal @peterfido
Könntest du dir meine Steuerung für das Zählen des Wasserverbrauchs mal ansehen, es klappt einfach nicht das dass wasser sauber gezählt wird, der Durchflußzähler und der Tasmota Counter zur rechten Zeit resettet werden. Jahreszähler und Gesamtzähler werden garkeine Werte mehr gespeichert. Ich bin am verzweifeln. Die Steuerung läuft einfach weiter und zählt Ghost Wasser.
Das Magnetventil läuft über den Schwimmer und abgenommen wird mit
sonoff.0.Aqua_Float.POWER1
Der Schwimmer der im Aquarium ist.
Der Counter Korrektur Wert ist Counterwert durch 2.207
das ergibt dann Milliliter.
Das Problem ist halt, wenn Wasser dosiert wird kommen so zu sagen mehrere Schübe innerhalb von ca 2 min. Also in den 2 min. spuckt das Magnetventil mehrere male Wasser. der Durchflusszähler soll mit dem Reset des Datenpunktes warten bis 2 min um sind und dann ausrechnen und in die Datenpunkte schreiben und dann soll erst per exec der Tasmota Counter auf null gesetzt werden.
Ich komme einfach nicht weiter aber vllt hast du auch eine komplett andere Idee wie man das realisieren kann das dann nach erfolgreicher Rechnung und Reset Durchfluss und Counter dann das Script so lange angehalten wird bis wieder der Schwimmer true ist.[ { "id": "4ec24352de82b222", "type": "ioBroker get", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "attrname": "jahr", "payloadType": "value", "errOnInvalidState": "nothing", "x": 590, "y": 1880, "wires": [ [ "8dc1932a227204f4" ] ] }, { "id": "8dc1932a227204f4", "type": "ioBroker get", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "ges", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Gesamt", "attrname": "gesamt", "payloadType": "value", "errOnInvalidState": "nothing", "x": 710, "y": 1880, "wires": [ [ "f7df541d3f404b78" ] ] }, { "id": "ccd69a7fcceb89ee", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Ausg. Rechnung", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1300, "y": 2060, "wires": [] }, { "id": "7c2500bede7f25d4", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "calc", "rules": [ { "t": "set", "p": "durchfluss", "pt": "msg", "to": "$round(durchfluss / 2.207,2)", "tot": "jsonata" }, { "t": "set", "p": "jahr", "pt": "msg", "to": "$round(durchfluss / 1000 + jahr,2)", "tot": "jsonata" }, { "t": "set", "p": "gesamt", "pt": "msg", "to": "$round(durchfluss / 1000 + gesamt,2)", "tot": "jsonata" }, { "t": "set", "p": "tag", "pt": "msg", "to": "$round(durchfluss + tag,2)", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 950, "y": 1880, "wires": [ [ "a555842c424f7060", "a4e896b30b9c0a19", "e05166158901c870", "9944b30b8d6fbad5", "06eaa9f9a160c3b3" ] ] }, { "id": "942aa84ed3938cd3", "type": "ioBroker get", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "count", "topic": "sonoff.0.Aqua_Float.SENSOR.COUNTER.C1", "attrname": "durchfluss", "payloadType": "value", "errOnInvalidState": "nothing", "x": 350, "y": 1880, "wires": [ [ "e2dc8fae110d6914" ] ] }, { "id": "32888838a61fe677", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "durchfl.", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1280, "y": 1940, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "9d9dadb8e634c3ab", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1270, "y": 1820, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "e7e8d354ab3d1d50", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1270, "y": 1880, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "b973530191386ba2", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "gesamt", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Gesamt", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1280, "y": 2000, "wires": [], "icon": "node-red-contrib-calc/calculator.png" }, { "id": "e2dc8fae110d6914", "type": "ioBroker get", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "attrname": "tag", "payloadType": "value", "errOnInvalidState": "nothing", "x": 470, "y": 1880, "wires": [ [ "4ec24352de82b222" ] ] }, { "id": "a4e896b30b9c0a19", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "durchfluss", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 1940, "wires": [ [ "32888838a61fe677" ] ] }, { "id": "e05166158901c870", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "tag", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 1820, "wires": [ [ "9d9dadb8e634c3ab" ] ] }, { "id": "9944b30b8d6fbad5", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "jahr", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 1880, "wires": [ [ "e7e8d354ab3d1d50" ] ] }, { "id": "a555842c424f7060", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "gesamt", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 2000, "wires": [ [ "b973530191386ba2" ] ] }, { "id": "4901ac3e975c3579", "type": "ioBroker in", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Aquarium Schwimmer Null", "attrname": "payload", "topic": "sonoff.0.Aqua_Float.POWER1", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 350, "y": 1740, "wires": [ [ "73c589fc4b19b6a6", "90caba50491bdb04", "8ddcd39403d6930a", "fd3b2660fe046608" ] ] }, { "id": "7c0308e4cbf9ef30", "type": "http request", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Senden", "method": "GET", "ret": "txt", "paytoqs": "ignore", "url": "http://192.168.0.71/cm?user=user&password=password&cmnd=counter1%200", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 1160, "y": 1560, "wires": [ [ "910fdf10409affb9" ] ] }, { "id": "d26aa4a0e660a13a", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Aqua Counter Reset", "rules": [ { "t": "set", "p": "url", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 1560, "wires": [ [ "8743ba443addaebf" ] ] }, { "id": "910fdf10409affb9", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "ESP Floatmeter Reset", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1390, "y": 1560, "wires": [] }, { "id": "609ccf61073b854d", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "warte 30s", "pauseType": "delay", "timeout": "30", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 600, "y": 1560, "wires": [ [ "d26aa4a0e660a13a" ] ] }, { "id": "bc6fea64c9d18049", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Jahr Reset", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 1940, "wires": [] }, { "id": "231f234c747c4e6c", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Jahr", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Jahr", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 690, "y": 1980, "wires": [] }, { "id": "21803bcc2015f013", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Jahr Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 510, "y": 1960, "wires": [ [ "808ca55aa517a5fc" ] ] }, { "id": "563bba093738fae5", "type": "inject", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Counter Reset Manuell", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 160, "y": 1560, "wires": [ [ "609ccf61073b854d" ] ] }, { "id": "f7df541d3f404b78", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "5sek", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 830, "y": 1880, "wires": [ [ "7c2500bede7f25d4" ] ] }, { "id": "8743ba443addaebf", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "warte 5s", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 980, "y": 1560, "wires": [ [ "7c0308e4cbf9ef30" ] ] }, { "id": "6a9e87db4da836f3", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Counter lesen", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1360, "y": 1740, "wires": [] }, { "id": "6f5a83894c3aef98", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "warte 1s", "pauseType": "delay", "timeout": "1", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 1120, "y": 1740, "wires": [ [ "6a9e87db4da836f3", "9bf05862f4304dc5" ] ] }, { "id": "9bf05862f4304dc5", "type": "link out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "link out 3", "mode": "link", "links": [ "9552b7c2b1801979" ], "x": 1305, "y": 1780, "wires": [] }, { "id": "9552b7c2b1801979", "type": "link in", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Wasser Aquarium", "links": [ "9bf05862f4304dc5", "d565db4f64ab77b8" ], "x": 145, "y": 1880, "wires": [ [ "e81a97ae3a22204a" ] ] }, { "id": "c913126f62034657", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "durchfl.", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasser_Counter", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 940, "y": 1760, "wires": [] }, { "id": "73c589fc4b19b6a6", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "warte5s", "pauseType": "delay", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 640, "y": 1760, "wires": [ [ "61542b932d33fd78" ] ] }, { "id": "61542b932d33fd78", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "durchfl.Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1760, "wires": [ [ "c913126f62034657" ] ] }, { "id": "ab90e1ab646e9eed", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Tag Reset", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 700, "y": 2060, "wires": [] }, { "id": "9cecbd11e872bfdb", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "tag", "topic": "0_userdata.0.Aqua_Control.0.Wasser.Wasserzähler_Tag", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 690, "y": 2100, "wires": [] }, { "id": "bc2a319f564c33d9", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Tag Reset", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 500, "y": 2080, "wires": [ [ "89a502565f5ae81e" ] ] }, { "id": "90caba50491bdb04", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Aquarium Schwimmer", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 730, "y": 1820, "wires": [] }, { "id": "fd3b2660fe046608", "type": "function", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "true->Start-false->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == true){\n msg.payload = true;\n return msg;\n}\nif(news == false){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 690, "y": 1640, "wires": [ [ "4fad1e03a092f4a0" ] ] }, { "id": "4feaae61b4f696e0", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Magnetschalter ein", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1380, "y": 1600, "wires": [] }, { "id": "69cce4611306ccbd", "type": "ioBroker out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Schwimmer Null", "topic": "sonoff.0.Aqua_Float.POWER1", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1360, "y": 1640, "wires": [] }, { "id": "038c26b36eef9202", "type": "change", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "true -> false", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1130, "y": 1680, "wires": [ [ "69cce4611306ccbd", "33382d586d6412a6" ] ] }, { "id": "33382d586d6412a6", "type": "debug", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Magnetschalter aus", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1380, "y": 1700, "wires": [] }, { "id": "8ddcd39403d6930a", "type": "function", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "false->Start-true->Reset Trigger", "func": "let news = msg.payload;\n\nif(news == false){\n msg.payload = true;\n return msg;\n}\nif(news == true){\n msg.reset = true;\n return msg;\n}\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 690, "y": 1700, "wires": [ [ "b5f10b86bf9b0200" ] ] }, { "id": "b5f10b86bf9b0200", "type": "trigger", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "10s stabli false", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "10", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 940, "y": 1700, "wires": [ [], [ "038c26b36eef9202", "6f5a83894c3aef98" ] ] }, { "id": "4fad1e03a092f4a0", "type": "trigger", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "10s stabil true", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "10", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 2, "x": 940, "y": 1640, "wires": [ [], [ "69cce4611306ccbd", "4feaae61b4f696e0" ] ] }, { "id": "e81a97ae3a22204a", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "2s", "pauseType": "delay", "timeout": "2", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 230, "y": 1880, "wires": [ [ "942aa84ed3938cd3", "0ed13f428df5e432" ] ] }, { "id": "06eaa9f9a160c3b3", "type": "delay", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "stündlich", "pauseType": "delay", "timeout": "1", "timeoutUnits": "hours", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 1140, "y": 2060, "wires": [ [ "ccd69a7fcceb89ee" ] ] }, { "id": "0ed13f428df5e432", "type": "link out", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Counter Reset", "mode": "link", "links": [ "94a4bdf6ddf909f7" ], "x": 395, "y": 1820, "wires": [], "icon": "node-red/serial.svg" }, { "id": "94a4bdf6ddf909f7", "type": "link in", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "", "links": [ "0ed13f428df5e432" ], "x": 495, "y": 1560, "wires": [ [ "609ccf61073b854d" ] ], "icon": "node-red/serial.svg" }, { "id": "5f88202c19f1243b", "type": "cronplus", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Aqua Jahr Reset", "outputField": "payload", "timeZone": "", "storeName": "", "commandResponseMsgOutput": "output1", "defaultLocation": "", "defaultLocationType": "default", "outputs": 1, "options": [ { "name": "Zeitplan", "topic": "Counter Aqua Reset", "payloadType": "default", "payload": "", "expressionType": "cron", "expression": "0 0 0 31 12 ? *", "location": "", "offset": "0", "solarType": "all", "solarEvents": "sunrise,sunset" } ], "x": 150, "y": 1960, "wires": [ [ "21803bcc2015f013" ] ] }, { "id": "aa6ec21f7f18300d", "type": "cronplus", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "name": "Aqua Tag Reset", "outputField": "payload", "timeZone": "", "storeName": "", "commandResponseMsgOutput": "output1", "defaultLocation": "", "defaultLocationType": "default", "outputs": 1, "options": [ { "name": "Zeitplan", "topic": "Counter Aqua Reset", "payloadType": "default", "payload": "", "expressionType": "cron", "expression": "0 0 0 * * ? *", "location": "", "offset": "0", "solarType": "all", "solarEvents": "sunrise,sunset" } ], "x": 160, "y": 2080, "wires": [ [ "bc2a319f564c33d9" ] ] }, { "id": "808ca55aa517a5fc", "type": "junction", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "x": 610, "y": 1960, "wires": [ [ "231f234c747c4e6c", "bc6fea64c9d18049" ] ] }, { "id": "89a502565f5ae81e", "type": "junction", "z": "c3f95ff4b3bd3d0b", "g": "1a859ccfe9c28df2", "x": 610, "y": 2080, "wires": [ [ "9cecbd11e872bfdb", "ab90e1ab646e9eed" ] ] } ]
-
@aphofis Nein, ist Urlaubszeit. Wenn was nicht wirklich will, dann einfach nochmal neu machen, und dabei nicht von der alten Version inspirieren lassen.
Was mir auffällt ist, dass Durchfluss die Hälfte von Tag ist.
Evtl. ist die Durchflusserfassung auch nicht das Gelbe vom Ei. Allerdings kenne ich den SOnOff Durchflussmesser nicht.
-
@peterfido
Dann wünsche ich erstmal einen schönen Urlaub.
Der Durchflussmesser ist ein so genannter Puls messer.
also wenn ich recht erinnere sind 2,207 pulse dann 1 ml.
Bzw. ist der Puls Wert irgendwas bei 100-300 bei 100ml durchlauf.
Ganz genau weiß ich den Puls wert nicht mehr.
hab halt mehrmals 100 ml durch laufen lassen mit meßbecher und dann den wert ermittelt um 1 ml zu erhalten.
Ganz ehrlich ich wüsste nicht mal wo ich da ansetzen sollte mit einer neuen steuerung.
Mit dem exec Befehlurl": "http://192.168.0.71/cm?user=user&password=password&cmnd=counter1%200
wird dann der counter auf dem Tasmota ESP zurück gesetzt.
Da aber die Dosierungen vom Wasser durch das Magnetventil meistens Nachts gegen 2-3 Uhr stattfinden und immer nur minimale Wasserschübe sind ist es nicht so einfach den wert zu ermitteln.
Deswegen muss die Steuerung ja beim ersten Aktivieren des Schwimmers bzw vllt besser des Magnetventils warten und den count wert zählen und vllt in einen Datenpunkt wie Durchfluss abspeichern und wenn keine Ahnung 5 min um sind dann alle werte ausrechnen in die Datenpunkte schreiben und Durchfluss und Counter auf dem ESP zurücksetzen.
Weil meistens nach 5 min. hat sich der Wasserstand reguliert.
Zumindest war es so beim 110 Liter becken. Das 900 Liter Becken hat mehr verdunstungs Wasser und wird sicherlich öfters ausgleichen als das kleine Becken.