NEWS
Wasserzähler - Selfmade
-
@Rababersaft Adafruit_Neopixel ist eine Bibliothek, die ich für eine Version mit getrennter Beleuchtung benötige. Ich flashe meinen ESP32 mit der Arduino Umgebung und dann kannst du das über die Bibliothekverwaltung installieren:

Theoretisch kann man den Code auch streichen, aber dann ist es mit meiner alten Hardware nicht kompatibel (ESP3286 mit ArduCAM) - aktuell fehlt mir auch die Zeit dazu
-
@jomjol Nabend

Ja, so flashe ich auch. Er moniert ja den *light Befehl bei mir. Evtl sollte ich auf deine Version von neopixel downgreaden. Das wäre nen Versuch mal wert
Ich informiere weiter ...
-
@mcchickents sagte in Wasserzähler - Selfmade:
kommt heute Abend
So hier mein Programm.
Programm mcchickents 191017.txtDu brauchst zwei DB Steine meine beiden heißen.

Und dann habe ich SV auf meiner CCU gefühlt hier kannst du aber auch DB im Iobroker füllen.
Gruß Julian
Wie ich schon angemerkt hatte, werden bei mir die "Digitalen" Zahlem (m³) nicht immer richtig erkannt. Das führte bei mir zu Verbrauchswerten, die nicht besonders aussagekräftig waren.
Dagegen habe ich beobachtet, das die Erkennung der Zeiger (analog) sehr zuverlässig funktioniert.
Ich habe mir erlaubt, dass Script von @mcchickents so umzubauen, dass nur noch diese Analogen Werte verwendet werden. die Digitalen (m³) werden nur noch im Script hochgezählt.
Ausgangspunkt sind die Parser Werte mit den Einstellungen von @mcchickents

mit Intervall von 300000 (5min)Ich habe des Script so umgebaut, das mit Anfangszählerständen gearbeitet wird (Tag; Woche; Monat; Jahr) Die dazugehörigen Objekte müssen (wo immer Ihr sie hin haben wollt) angelegt werden.
WICHTIG: Die Plausibilitätsprüfung muss ausgeschaltet sein, so das immer der gerade erkannte Wert im Parser mitgegeben wird.
Bei mir funktioniert das seit 1er Woche ohne Auffälligkeiten.
Ich würde mich über Tester freuen. Auch Verbesserungsvorschläge sind sehr willkommen.
Ich bin wahrlich kein Profi, was das Scripten betrifft.Hier das Blockly Script:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="+{wu7EACDqh[jz.w|UJ_">Digital</variable> <variable type="" id="CrQs0Fj4!jTiB_=7Z{H#">Analog alt</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="Y%2waVBVJfgC:UsZNg9^">Analog</variable> <variable type="" id="jD*[#Zlic1jmyurL%.%b">Wasser</variable> <variable type="" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</variable> <variable type="undefined" id="timeout3">timeout3</variable> </variables> <block type="variables_set" id="GE[E%kt%s0mH*y[T,]`|" x="-1813" y="-637"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="f#L%AXrk=Ex$lR)!ag{6"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> </block> </value> </block> <block type="on_ext" id="hW,coeg6nL[_/oRIW8`_" x="-1288" y="-612"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="#1+|n}n82E%YcW~~(OAJ"> <field name="oid">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="[3s08X/c2]b+g09k=MS2"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="~ZWWb=S%vhPDv}PO8g-~"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </block> </value> </block> </statement> </block> <block type="comment" id="{)~[qYJwM%HmTqZC[Dme" x="-1787" y="-537"> <field name="COMMENT">Werte von Url Ausgabe aufbereiten und als Zahl in neuen DB</field> <next> <block type="on_ext" id="O@t;)N+2$SFNG$?Gf{h2"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9K|x1o#+%6GQb*;p%3O#"> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="W]bzQri^_8bvqpKQOrEV"> <field name="NAME">timeout</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="5w0B^2Jki=M**PAtqc+u"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> <value name="VALUE"> <block type="get_value" id=";?U(`UWCL4fsnK8#0#*["> <field name="ATTR">val</field> <field name="OID">parser.0.Wasserzähler</field> </block> </value> <next> <block type="variables_set" id="ixFd@J8)L1oE}OCVbtYq"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> <value name="VALUE"> <block type="text_join" id="/fqyB}E;PHmjBsJJ`0Fh"> <mutation items="6"></mutation> <value name="ADD0"> <block type="math_number" id="SMJBX;~T(pjV^d0~+S)y"> <field name="NUM">0</field> </block> </value> <value name="ADD1"> <block type="text" id="u[@%#8#fi4C^yX.r%d!I"> <field name="TEXT">.</field> </block> </value> <value name="ADD2"> <block type="text_charAt" id="kJ_eC,oa_KKeEhwykd:J"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="-y({kI6sfR,nQAjVkA]A"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="hr%jA*b+T]5*Ca|K9m+4"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text_charAt" id="5.{HXUkih?pbuhQ3mL)E"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="H=fwgeU*yM2BO1So/@rJ"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="Up65|^q^LW$4[4{Q2Kvh"> <field name="NUM">8</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text_charAt" id="ds.0fi_$#ZlQ+?RhAo,4"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="O|qHH_xUhqy?KE+,cKX2"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="bLvs%(U/*rs$Ld9Al1[+"> <field name="NUM">9</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text_charAt" id="6OR:#lbqI-PRhCHNec9^"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=":H4e}P$k[XW1ul.ATEA5"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="X4xw.sN^lzaqf}IPF.jh"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id=".SMM.AW-`BYfdQ}ya?b1"> <field name="NAME">timeout3</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="ju/a2i7Frg:jTfpH!r}c"> <value name="IF0"> <block type="logic_compare" id="iF^jZ2ra(+[,1@C9!+=|"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="_GG[w[-[]ELfHI1|/,TP"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Olf6S3dwBydhTC59hi/:"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="BL,kMdDU#u3!rMwPJmR*"> <value name="VALUE"> <block type="variables_get" id="PhuKa|3GsTTN8QxR{%AZ"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="u!#Qj:zrQsUXSN8{%.g1"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="OEPXck6@PFIlEp.OYnhd"> <value name="VALUE"> <block type="variables_get" id="7,s5XP+o{Z?X[7ll.+0Q"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="%At]Iu`?WR5ZfT:VCL#z"> <field name="NUM">0.5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="DAIA1CzWMpcy853_!RS!"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="DELTA"> <shadow type="math_number" id="~^qVXIp-f$qYSGT|k(p*"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="control" id="9n0als[H])_JXK;wZ;Rj"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="(V-dzVo;qF_Ad-#3qQ{U"> <value name="VALUE"> <block type="variables_get" id="YRQ;vYYHy!{m@:dXStQf"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <next> <block type="control" id="y/fZ]IDy`tMrbrJLSaCC"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Analog</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="duI29L)?T~xuD,TORa9@"> <value name="VALUE"> <block type="variables_get" id="+Y@Az*Mey}}NRlITw$Xi"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> <next> <block type="control" id="K2vn9_SQgwL|)u!!gl1|"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="MM+jsw4UfO(.Hx.u/s:`"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="7Oaw?3HKyclxaVy@qE~p"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="XJ=s_p6$TZ)-avlBa((;"> <value name="VALUE"> <block type="variables_get" id="W0w=_,X/ejFNyHT1XV{R"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="|=f,]Pr,T6HC8laX|R;o"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="552=i|r`DG0,-Fa.z5km"> <value name="VALUE"> <block type="variables_get" id="9`[$K-.pLdS/93Sr7u]M"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="on_ext" id="@zG4;]iYO[gk6PE9A8Bd" x="-1788" y="137"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="bo2gx?dIMh?:HL#A@*J["> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="$^5i[4.V)UQ$0,R53n%|"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> <value name="VALUE"> <block type="variables_get" id="auf4Vpl?.5xl,2EQDC}x"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> <next> <block type="control" id="6DzKEv?-~d]3U=;Btcop"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="o5`@Rv8Ul:#hrNuvl,2|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> <block type="on_ext" id="g0!@tN:hJ5,@IC03]C(R" x="-1787" y="337"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="i*|8`Z*]C1Z-aKXfx4qF"> <field name="oid">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="9)silgejCBBBlJ^K5*h."> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="$_^*U)oNg;J39mNWX7iv"> <value name="IF0"> <block type="logic_compare" id="R+]z+~$9PRX.!`-n2j$_"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="1Q.u,.7hmJgpxgTS!yJJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <block type="get_value" id="*^w0O6:fgj}}S|y_?89S"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="z)/Gd*s9,-W6[D752=D?"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> <value name="VALUE"> <block type="math_arithmetic" id="xt-H^j-:43Irbg7Fhml("> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="X_rWlPD~o/J^KhVZi%6o"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A4Sx?OtCp2T?h#I(031U"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="+qND:7;^kTj.azwuZHHi"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@R6Vro4Waf_mK|.+!]^0"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <next> <block type="control" id="0(_/h8O2,M[gEb`Ic4=2"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="s)PN7Vw`prv!A?hv2mLf"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="E#zB^cvPPx!3cYPr+Pu{"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="A_V2Dl3Tco*!@[~Lr1n~"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XY5vn6~5Da?Zt0namcfQ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Il/T*4`06v:{m@*OFmkc"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="=TjWO/63[rWCTbDj7JUs"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="tn*R.05(D.%K3Cq(}nvg"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="5fng!*j2(M,$$,YwlLHx"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="j!|XN6hin]+7`7e88l18"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="!%YGCtSmGv.!]KU$#6Nw"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="-3@,nGkZ]@$FU1Ry}%PA"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(E?id-LI#NfEL|Jt:.vZ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0E2;EjD-PBt:GCDwPU~H"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="YDY5~1aA-=^]//;i6MJ+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="NUZlH-[?T]-}p@iCL{Au"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="oBT%X]5xBNnY,5AICE3X"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="[nv%@@BX,N#hLq#S-k`+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id=",P%Ylnd^*u1LkcG9X]:W"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="|(*+rA~Ej?$2*?ityV)U"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="]ziDJBvg89Wq:.R;J:!,"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="nd_9af.ZMA1/K1,S#U@Q"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="s#NIPHF{^u=-UljnNO$r"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="#z,-nejW?jGgjF|6|.H}"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="y39]M!U/%X9b%6jp*4#}"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="2#^Z6@xqJOMGnvvjT6%?"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="UN.1V5+(r@))%J,=@gqY"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="$mrk)426X5fx_+e!J_gK"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/Z@4#mZokQ,L-w^bH.Tg"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="Ha=O,ekrr9a?z]eu4Xs+"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="=E[:Y4;({rV9PgxM??W#"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8567</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="N~pEF;p}RibZHL@Jj%]8"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(ypJq^YjyV_r2Tja[JzG"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-MMgXsvKFd?[}m13v}9o"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="iD:Yn+mvm5eH]y:k88K+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Jahr</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="comment" id="ox+@jzn`KXVwX.fOTB$," x="-937" y="888"> <field name="COMMENT">Wasserverbrauch letzte 5 min zurücksetzen</field> <next> <block type="on_ext" id="j=c,w9.$Xq;DsB5^}pBB"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}z+=RenMSy8(B@XhK@0K"> <field name="oid">hm-rega.0.8568</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%|yEAWaJ*FP|KJ!T/+Y$"> <value name="IF0"> <block type="logic_compare" id="_EAAa*G$MT%4=Rg?[~bP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="tZQSY0`YcA7JL[M$Ws@g"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.8568</field> </block> </value> <value name="B"> <block type="math_number" id="Pd*)$#q#9Ay-w#:cv1+7"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="lU:dL+CfL4WMPIg8M38w"> <mutation delay_input="true"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="sH;+ugos5JXLrj_4BfDg"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="qSxx=;Q,jlnWfNVxu*TC" x="-1688" y="1062"> <field name="COMMENT">reset heute</field> <next> <block type="schedule" id="v;%?AXWh:txx%4R+2:U,"> <field name="SCHEDULE">59 23 * * *</field> <statement name="STATEMENT"> <block type="control" id="o03K_LgrizESb@J0r`gL"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+|Dv5/%]/%.QIWBB+**C"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="8DJ|hXs^UV[]]q|j@$/@"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="q#8NRrtE|p##-plw;KZ9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="f}lW@jf:=d$f0yptTr$b" x="-1687" y="1262"> <field name="COMMENT">reset Woche</field> <next> <block type="schedule" id="CS=RSPfa:iN5AMzgx~+$"> <field name="SCHEDULE">59 23 * * 0</field> <statement name="STATEMENT"> <block type="control" id=".l7{U_lCbkh?eh[J76.L"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="NQ{Xt.0IXvoF}I^AtomT"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="lf}%4*+o^Q{FU:7fxp|;"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="nh{y8TyWjpjiIEhFd/tl"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="K/RigU5g)ITrS$Z5%z%$" x="-1687" y="1462"> <field name="COMMENT">reset Monat</field> <next> <block type="schedule" id="I+d[tdGa*#NplJWq)l:D"> <field name="SCHEDULE">2 0 1 * *</field> <statement name="STATEMENT"> <block type="control" id="Xs0Vn%@[Z3LhUgSZi.{E"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="!8%xuHUE*S.4byz]?#eV"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="$izuc,5%%3Gb_Y!X,+vb"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="~}P$;7JTwiREk|;4H:.i"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="oHR,JG*z8K2lOHmdJgUI" x="-1687" y="1662"> <field name="COMMENT">reset Jahr</field> <next> <block type="schedule" id="#CJ#r$^ohJ=^7
Nachher:

Jeweils nach 20 Aufrufen.Probier mal das aus und melde ich. Bei mir installiere ich es auch, sobald der Build fertig ist.
LG, jomjol -
Servus
Ich hatte gestern die Idee das roi Bild mit in die VIS aufzunehemen.
Schaut sehr gut aus.
Aber leider wird es anscheinend nur aktualisiert, wenn ich die ip:3000/roi.html aufrufe.
Ich hab aber das direkte Bild verlinkt.Kann ich das auch automatisch irgendwie generieren lassen?
Ideal wäre natürlich wenn es nur erstellt wir wenn die VIS aktiv ist und auch wirklich eine Änderung vorliegt.Ist vermutlich eher eine VIS frage aber da es nur mit dem Wasserzähler zu tun hat frag ich hier.
Ich verwende noch die letzte Version die direkt auf dem PI ohner Docker läuft.
Gruß Peer
-
@C1500 Hast Du schon probiert, das mit dem Parser zu machen, würde mich interessieren ob das geht. Wie läuft das mit Deiner Erkennungsrate, ist diese stabil?
-
Servus @pfried
Ich hatte mit dem Parser immer das Problem, dass er pünklich um 0:03 Uhr aufgehört hat und sich auch die CAM weggehängt hat.Ich probier jetzt gerade das Script von weiter oben.
Letzte Nacht lief es schon mal durch.Die Erkennungsrate ist sehr gut, solange ich "usePreValue" verwende.
Sobald die Zahlen anfangen sich wegzudrehen wird es sonst schwierig.Gruß Peer
-
@C1500 Korrekt, das roi-Bild wird nur bei roi.html aktualisiert. Der Aufwand, es jedesmal zu aktualisieren ist nicht sehr groß, kann ich bei nächster Gelegenheit mal machen.
-
Hat einer von Euch diess Projekt erfolgreich in einer VM unter Proxmox am laufen?
-
@jomjol Habe die neue Docker Version getestet. Es dauert nun nicht mehr 4 Stunden bis der Memory überläuft sondern 15 Stunden:

-
@pfried Hallo Paul,
der Memory-Leak liegt intern in Tensorflow. Da kann ich an meiner Software nichts machen. Nicht mal das Löschen und Neuladen der Tensorflowobjekte hilft nicht, da offenbar ein interner Tensor im Speicher bleibt. Habe mehrere Threads dazu gefunden.
Die Tensorflow-Community arbeitet daran und es gibt Hinweise, dass es in der Nightly besser wird, aber anscheinend nicht bei allen.
Bleibt nur das Beobachten und Update, sobald es eine neue Version gibt, testen. Ich beobachte es weiter.
Eventuell kannst du deinen Container regelmäßig nach ein paar Stunden per Script neu starten als Zwischenlösung?
Gruß, jomjol -
Hallo, hat jemand eine Lösung für die Beschlagung des Wasserzählers gefunden?

Wie man sieht sinkt dadurch die Erkennungsrate gegen null:

-
@pfried das Beschlagen hat nur einen Grund: Wasser ist kalt, Umgebung warm. Dadurch beschlägt es. Also entweder dämmt man den Wasserzähler gegen Wärme, oder alternativ probieren eine anti-Beschlagfolie oder Spray verwenden. Alles nur Theorie...hab ich auch noch vor mir.
-
@watcherkb Das mit dem Spray werde ich versuchen. Werde berichten. Außerdem werde ich nun an einem freien Tag einen Ventilator in das Gehäuse einbauen, Vielleicht hilft das ja was.....