NEWS
Berechnung Durchfluss
-
Hallo zusammen,
ich möchte eigentlich nur eine einfache addition darstellen, irgendwie stehe ich im wahrsten sinne des wortes auf dem schlauch...
Ich bekomme den Wert RightFlow und LeftFlow, welche sich aber bei jedem Durchfluss überschreiben. Nun möchte ich einfach die Werte addieren, so dass ich mir via VIS die Gesamtmenge anzeigen lassen kann.
Folgendes habe ich aktuell:
leider addiert er mir die Werte nicht.
Was mache ich falsch?
Gruß und Danke
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="l.p1`Q}Y(LI)0?I@s36=">durchfluss_last_links</variable> <variable id="@yzjK}Fk:%^Y3YjeZ_Hn">durchfluss_last_rechts</variable> </variables> <block type="on_ext" id="UxX?@q/7L,ue:erq/x,Y" x="-937" y="-812"> <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="P3oXHP!RX6~%y?WK.@m1"> <field name="oid">tuya.0.bf2470c6a826549a698cfd.152</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="?8Jp|[9GY9xuxbuilZG7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_rechts_zwischensumme</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id=";ZR?qxzKQ;c_$~+C}dkY"> <field name="ATTR">val</field> <field name="OID">tuya.0.bf2470c6a826549a698cfd.152</field> </block> </value> <next> <block type="variables_set" id="|ju*kG]oct5qEI%oB@D+"> <field name="VAR" id="@yzjK}Fk:%^Y3YjeZ_Hn">durchfluss_last_rechts</field> <value name="VALUE"> <block type="math_arithmetic" id="V:GI2mqOPI`U_I#U9*A]" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="9SV)aGl06%r.5dMgq-;_"> <field name="NUM">1</field> </shadow> <block type="get_value" id=";f(ZN^C5O%kH16-!Upwg"> <field name="ATTR">val</field> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_rechts_zwischensumme</field> </block> </value> <value name="B"> <shadow type="math_number" id="[wmT(-LO}O)AH?5Lm)*`"> <field name="NUM">1</field> </shadow> <block type="get_value" id="u_;oz#Zodu%Fr@0MehFC"> <field name="ATTR">val</field> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_rechts_last</field> </block> </value> </block> </value> <next> <block type="update" id="GvR)9~6hNtIB~Jx5Y8(e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_rechts_gesamt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="G$H{~AuIgUSNHXb4wrUU"> <field name="VAR" id="@yzjK}Fk:%^Y3YjeZ_Hn">durchfluss_last_rechts</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="O3{mgK=f|tQfk@xiyTRn" x="-937" y="-537"> <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="A*xhEuF`#1j$Sr*+GQ7-"> <field name="oid">tuya.0.bf2470c6a826549a698cfd.103</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="B@X1rZ6.kRoYo]Tih{+T"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_links_zwischensumme</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="is8nek}UEr?j|C0faQQ|"> <field name="ATTR">val</field> <field name="OID">tuya.0.bf2470c6a826549a698cfd.103</field> </block> </value> <next> <block type="variables_set" id="@T/ynW=WK6-g7CCG~P]x"> <field name="VAR" id="l.p1`Q}Y(LI)0?I@s36=">durchfluss_last_links</field> <value name="VALUE"> <block type="math_arithmetic" id="vL%xceDQECR@ZUxuulKw" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="V;Uxb~j)?dL^u%Vuc}t1"> <field name="ATTR">val</field> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_links_zwischensumme</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="k^B--XVBZXV]su5sIQrI"> <field name="ATTR">val</field> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_links_last</field> </block> </value> </block> </value> <next> <block type="update" id="6+=-qx6^fzneKiLAmu]_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.MeineObjekte.Bewaesserung.ventil_links_gesamt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",:POlZKY]!b/h=^,lSL9"> <field name="VAR" id="l.p1`Q}Y(LI)0?I@s36=">durchfluss_last_links</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@sebastian-0 sagte: die Gesamtmenge anzeigen lassen kann.
Du möchtest aus dem Durchfluss die Menge bestimmen? Dann muss über die Zeit integriert werden.
In welcher Einheit liegt der Durchfluss vor und in welcher Einheit (l / m³) soll die Menge errechnet werden?Prinzip:
-
Ich möchte eigentlich nur den Wert den ich erhalte:
(Letzte Beregnung = 5Liter) aufaddieren.
Bei jeder Bewässerung setzt sich der Wert RightFlow zurück. Ich möchte gerne die Gesamtmenge anzeigen lassen. -
@sebastian-0 sagte: Letzte Beregnung = 5Liter
Das ist kein Durchfluss, sondern die Menge bei einem Bewässerungsdurchlauf. Dann verwende einen Trigger "ist größer als letztes":
-
@paul53 ist das Objekt "Verbrauch" in dem Fall mein Wert RightFlow den mir das Gerät ausgibt oder ein eigener Datenpunkt?
Falls ich das nicht falsch verstehe, würde er mir ja ansonsten meinen Wert RightFlow überschreiben oder nicht?
-
@sebastian-0
"Verbrauch" entspricht wohl "ventil_rechts_gesamt" in deinem Blockly-Bild. -
@paul53 ok, dann hatte ich es richtig verstanden.
so sieht es jetzt aus. ich teste gleich mal.
nochmal zum Verständnis; warum hast du oben "-" bei "Wert" - "vorheriger Wert" verwendet?
-
@sebastian-0 sagte: warum hast du oben "-" bei "Wert" - "vorheriger Wert" verwendet?
Bedeutet: Erhöhe Verbrauch um Differenz zum letzten Wert.
-
ich habe es abgeändert auf: "wurde geändert" da er ja sonst erst getriggert hat, wenn der wert höher war als der letzte.
Problem ist, er addiert diese nicht auf.
Ich habe jetzt 4 mal manuell zum testen laufen lassen:
Durchgang 1: 5L
Durchgang 2: 3L
Durchgang 3: 2L
Durchgang 4: 4LDatenpunkt stehet auf 7L
-
@sebastian-0 sagte: erst getriggert hat, wenn der wert höher war als der letzte.
Der Wert von "Flow" wird nicht während der Bewässerung kontinuierlich von 0 beginnend erhöht, sondern erst am Ende eingetragen? Dann muss auf "wurde aktualisiert" getriggert werden (2 aufeinanderfolgende Werte können ja zufällig gleich sein):
-
@paul53 also irgendetwas stimmt mit dem Skript nicht.
Er addiert ständig irgendwelche Werte auf. Heute liefen max. 20Liter. Er zeigt aber 790Liter an.
-
@sebastian-0 sagte: Er addiert ständig irgendwelche Werte auf.
Wenn das Verhalten des DP "Flow" nicht klar ist, kann nicht beurteilt werden, woran es liegt. Historisiere mal den DP "Flow" (alles aufzeichnen), damit wir wissen, was er macht.