NEWS
Wasserzähler - Version 2 - all-in-device
-
@pfried
Danke dir, ich schau mir das mal an.
Die in deinen Blockly-Daten angelegten hm-rega Werte würde ich dann wie die im Bild umbenennen und anlegen.
Denke ich könnte da so einiges übernehmen wenn ich darf.
LG
Horst -
@hasont Sicher, dazu gibt es ja eine Community!
-
@pfried
Habs mal angepasst installiert, danke dir.
Mal sehen ob ich dann SourceAnalytics bei mir deinstalliere.
SourceAnalytics ist ja schon sehr mächtig und mit deinem Blockly könnte man bei Bedarf auch mal von Hand nachbessern.
Bei mir läuft über SourceAnalytics nur Gas-, Wasser- und Gartenwasserzähler
Hab das Blockly inkl. der Datenanlage ohne HomeMatic mal beigefügt.
Muss aber erst noch getestet werden ob alles richtig ist und läuft.Danke natürlich auch an JomJol für das neue Update
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="fb%^b%(.P(De7B%I+^fp">Wasserverbrauch_alt_speichern</variable> <variable id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</variable> </variables> <block type="procedures_defcustomnoreturn" id="9J$a1]{I0b8Tky$a[.EJ" x="-1712" y="-1537"> <mutation statements="false"></mutation> <field name="NAME">Felder anlegen</field> <field name="SCRIPT">Y3JlYXRlU3RhdGUoJ2phdmFzY3JpcHQuMC5XYXNzZXJ6YWVobGVyJywge25hbWU6ICJXYXNzZXJ6YWVobGVyIn0pOw0KY3JlYXRlU3RhdGUoJ2phdmFzY3JpcHQuMC5XYXNzZXJ6YWVobGVyLldhc3NlcnphZWhsZXJfYWx0Jywge25hbWU6ICJXYXNzZXJ6YWVobGVyX2FsdCJ9KTsNCmNyZWF0ZVN0YXRlKCdqYXZhc2NyaXB0LjAuV2Fzc2VyemFlaGxlci5XYXNzZXJ6YWVobGVyX2FrdHVlbGwnLCB7bmFtZTogIldhc3NlcnphZWhsZXJfYWt0dWVsbCJ9KTsNCmNyZWF0ZVN0YXRlKCdqYXZhc2NyaXB0LjAuV2Fzc2VyemFlaGxlci5XYXNzZXJ6YWVobGVyX2dlcmVjaG5ldCcsIHtuYW1lOiAiV2Fzc2VyemFlaGxlcl9nZXJlY2huZXQifSk7DQpjcmVhdGVTdGF0ZSgnamF2YXNjcmlwdC4wLldhc3NlcnphZWhsZXIuV2Fzc2VyemFlaGxlcl81bWluJywge25hbWU6ICJXYXNzZXJ6YWVobGVyXzVtaW4ifSk7DQpjcmVhdGVTdGF0ZSgnamF2YXNjcmlwdC4wLldhc3NlcnphZWhsZXIuV2Fzc2VyemFlaGxlcl9IZXV0ZScsIHtuYW1lOiAiV2Fzc2VyemFlaGxlcl9IZXV0ZSJ9KTsNCmNyZWF0ZVN0YXRlKCdqYXZhc2NyaXB0LjAuV2Fzc2VyemFlaGxlci5XYXNzZXJ6YWVobGVyX1dvY2hlJywge25hbWU6ICJXYXNzZXJ6YWVobGVyX1dvY2hlIn0pOw0KY3JlYXRlU3RhdGUoJ2phdmFzY3JpcHQuMC5XYXNzZXJ6YWVobGVyLldhc3NlcnphZWhsZXJfTW9uYXQnLCB7bmFtZTogIldhc3NlcnphZWhsZXJfTW9uYXQifSk7DQpjcmVhdGVTdGF0ZSgnamF2YXNjcmlwdC4wLldhc3NlcnphZWhsZXIuV2Fzc2VyemFlaGxlcl9KYWhyJywge25hbWU6ICJXYXNzZXJ6YWVobGVyX0phaHIifSk7DQpjcmVhdGVTdGF0ZSgnamF2YXNjcmlwdC4wLldhc3NlcnphZWhsZXIuV2Fzc2VydmVyYnJhdWNoX0dlc3Rlcm4nLCB7bmFtZTogIldhc3NlcnZlcmJyYXVjaF9HZXN0ZXJuIn0pOw0KY3JlYXRlU3RhdGUoJ2phdmFzY3JpcHQuMC5XYXNzZXJ6YWVobGVyLldhc3NlcnZlcmJyYXVjaF9sZXR6dGVfV29jaGUnLCB7bmFtZTogIldhc3NlcnZlcmJyYXVjaF9sZXR6dGVfV29jaGUifSk7DQpjcmVhdGVTdGF0ZSgnamF2YXNjcmlwdC4wLldhc3NlcnphZWhsZXIuV2Fzc2VydmVyYnJhdWNoX2xldHp0ZXJfTW9uYXQnLCB7bmFtZTogIldhc3NlcnZlcmJyYXVjaF9sZXR6dGVyX01vbmF0In0pOw0KY3JlYXRlU3RhdGUoJ2phdmFzY3JpcHQuMC5XYXNzZXJ6YWVobGVyLldhc3NlcnZlcmJyYXVjaF9sZXR6dGVzX0phaHInLCB7bmFtZTogIldhc3NlcnZlcmJyYXVjaF9sZXR6dGVzX0phaHIifSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_callcustomnoreturn" id="geg;!c-MHma4J;I-!F?z" x="-1712" y="-1512"> <mutation name="Felder anlegen"></mutation> </block> <block type="comment" id="nZLIgu,pmh4[2*$0MI%?" x="-1713" y="-1387"> <field name="COMMENT">Einlesen des neuen MQTT Wertes </field> <next> <block type="on_ext" id="4Psx1wuqrX65nv_lkDB}"> <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="3Q)hsz!uvKk?{unC*,0E"> <field name="oid">mqtt.0.wasserzaehler.zaehlerstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="wR=JtsBFCJou1i6LdCw~"> <field name="VAR" id="fb%^b%(.P(De7B%I+^fp">Wasserverbrauch_alt_speichern</field> <value name="VALUE"> <block type="get_value" id="pL9_YEK1IWWA6.!#W)bd"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_alt</field> </block> </value> <next> <block type="control" id="6DzKEv?-~d]3U=;Btcop"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_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.Wasserzaehler.Wasserzaehler_aktuell</field> </block> </value> <next> <block type="control" id="}]Q8$qsGmL/BOYA_~4FM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="Pih,sstkIbC`EncyUqge"> <field name="ATTR">val</field> <field name="OID">mqtt.0.wasserzaehler.zaehlerstand</field> </block> </value> <next> <block type="controls_if" id="[)h5!Wt?#u]$;DJ*fSen"> <value name="IF0"> <block type="logic_compare" id="}I^P3N/ka`dJ[#)ravN7"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="yiT6k|}2%QxC5Ip2;7;^"> <field name="VAR" id="fb%^b%(.P(De7B%I+^fp">Wasserverbrauch_alt_speichern</field> </block> </value> <value name="B"> <block type="get_value" id="UX+:bzMd8g/f6b{dN+lx"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_aktuell</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">Wasser gerechnet</field> <value name="VALUE"> <block type="math_arithmetic" id="xt-H^j-:43Irbg7Fhml("> <field name="OP">MINUS</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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.Wasserzaehler.Wasserzaehler_aktuell</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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.Wasserzaehler.Wasserzaehler_alt</field> </block> </value> </block> </value> <next> <block type="controls_if" id="8K}#}[Fk:%g~F#3)+NAF"> <value name="IF0"> <block type="logic_operation" id="lR$k8X3;ySVntotf-vFz"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="q0zW=|U!.1,jkAy[X!b$"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Hnk,pbHq`B?Nb}~w$=$H"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <block type="math_number" id="7E.:+JU.a]LF)/p!,#;*"> <field name="NUM">30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="6Ig?RU}s(dFcicEuhcm0"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="jcdb+L_Z#8kmj7e(cq:1"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <block type="math_number" id="9=%(A.)%}-%Ym9CUISV^"> <field name="NUM">120</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="CDT0?0zH4r9GW/H*Y2$f"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_gerechnet</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="*aA/fh;#]Di_eXq6nL,^"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XGWua76GS6aHpO3imk]l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="|~8@Y)]z.lKE{$Sr]Phs"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="@6AZ4Y}v+0qS8p%_qu{H"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="0(_/h8O2,M[gEb`Ic4=2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="A_V2Dl3Tco*!@[~Lr1n~"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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.Wasserzaehler.Wasserzaehler_Heute</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="lKu:^o1-H]d/0,7P%Ipo"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="XB}ackBd~?1d)cTC#bwV"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="RP9x3%P{}.7k42Qpi5y;"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="5fng!*j2(M,$$,YwlLHx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_5min</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="-3@,nGkZ]@$FU1Ry}%PA"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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.Wasserzaehler.Wasserzaehler_5min</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="G9U[WP2t4_f8T+_0LGXB"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="34;qZzQ3Z+JnD{P-NYW:"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="G:AdLWj}|(?]]ENs(!55"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="oBT%X]5xBNnY,5AICE3X"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id=",P%Ylnd^*u1LkcG9X]:W"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" 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.Wasserzaehler.Wasserzaehler_Woche</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="e.p_|Smt|,NX(RunG)gt"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="P5_c8#OAPy=l^ASZ;$es"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="YDm1,jv1{.k2e(?8V)(|"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="R5$.Na4^BAFjW2ARqTxN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="e{,b!INUIeaJ}fkB8}m@"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="!-w04:ct]D5r!DJQmLSW"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="HgghGzkzow#w{s|+|+a:"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Monat</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="nllQn,{7d8IO(@Lg3M:B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="MJ/ZuL+#^.3AQq~epH3J"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="J^_v%Hn7gX*W7f[-+mgU"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="=E[:Y4;({rV9PgxM??W#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="pIPk0X$;_7l#cS6]J[a)"> <field name="n">4</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="`:+j8dW)6S#f{T%Ai9u5"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="vuDO5{C4d)Z4!.?z)/v."> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Jahr</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="P!TIMt7*.bBC#4%Idw8j"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="`,M`KPfi72=ir~XGyo;+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Tq{Zc)v77pwV^ctJd{|J"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="^v@w@K@=*~ET7Z1v-oO@"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</field> </block> </value> <value name="B"> <shadow type="math_number" id="@~]Yp/KY$~_P8PTXoQKy"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="$f;2YJblP5aT5TAGfFMx" x="-512" y="-1087"> <field name="COMMENT">Maximaler Durchfluss pro Sekunde x 30 Sekunden Abtastrate, 120 Liter Ziffernwechsel</field> </block> <block type="comment" id="qSxx=;Q,jlnWfNVxu*TC" x="-1712" y="-487"> <field name="COMMENT">reset heute</field> <next> <block type="schedule" id="v;%?AXWh:txx%4R+2:U,"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="control" id="+%wEpsL(Ww[z8Tfc-X$0"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserverbrauch_Gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="2D{+Qa%pnz-R43!M3Fr0"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Heute</field> </block> </value> <next> <block type="control" id="o03K_LgrizESb@J0r`gL"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Heute</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> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="ox+@jzn`KXVwX.fOTB$," x="-812" y="-462"> <field name="COMMENT">Wasserverbrauch letzte 5 min zurücksetzen</field> <next> <block type="on_ext" id="j=c,w9.$Xq;DsB5^}pBB"> <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="}z+=RenMSy8(B@XhK@0K"> <field name="oid">javascript.0.Wasserzaehler.Wasserzaehler_5min</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">javascript.0.Wasserzaehler.Wasserzaehler_5min</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 xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_5min</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="f}lW@jf:=d$f0yptTr$b" x="-1712" y="-137"> <field name="COMMENT">reset Woche</field> <next> <block type="schedule" id="CS=RSPfa:iN5AMzgx~+$"> <field name="SCHEDULE">0 0 * * 1</field> <statement name="STATEMENT"> <block type="control" id="t0cN(g{+b8)OJ-/00/~|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserverbrauch_letzte_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="):/cfCdq~Md|vN,`/o0|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Woche</field> </block> </value> <next> <block type="control" id=".l7{U_lCbkh?eh[J76.L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Woche</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> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="L0xCte;w,mCtr5``[I6d" x="-812" y="-112"> <field name="COMMENT">reset Monatserster um 0:00</field> <next> <block type="schedule" id="ZJuIT}CXu@.%G_,asO#;"> <field name="SCHEDULE">0 0 1 * *</field> <statement name="STATEMENT"> <block type="control" id="e4CSH~@KH=*]lpuxtu=H"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserverbrauch_letzter_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="vd_9A0Lx!_;e=Z^9V))G"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Monat</field> </block> </value> <next> <block type="control" id="Q+iLqKVdxopT4]nO6QAy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="WcF0pJahHrFD!v-d+zv("> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="oHR,JG*z8K2lOHmdJgUI" x="-1712" y="113"> <field name="COMMENT">reset Jahr</field> <next> <block type="schedule" id="#CJ#r$^ohJ=^7![RC?r["> <field name="SCHEDULE">0 0 1 1 *</field> <statement name="STATEMENT"> <block type="control" id="Yd{OxT;_R~B9P,Psmp5V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserverbrauch_letztes_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="UYH]mq6ma|o#0tn5lU*9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Jahr</field> </block> </value> <next> <block type="control" id="RjxS0F1e!{}R=?k0u5hu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Wasserzaehler.Wasserzaehler_Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Gv+;Fb{zqvo$M?Mv;DML"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
Ich habe mir ein Telegramm eingerichtet welches mir, sollte ein Fehler übermittelt werden, eine Nachricht sendet.
Ich erhalte merkwürdigerweise recht viele Meldung.Beispiel: Negative Rate - Returned old value - read value: 157.981 - raw value: 00157.981 - checked value: 157.981003
Der Raw Wert ist korrekt. Ich weiß nicht wo die 3 zusätzlichen Stellen wieder herkommen.Ebenso hier
Negative Rate - Returned old value - read value: 157.581 - raw value: 00157.581 - checked value: 157.580994
-
@jomjol Guten Morgen Josef, könntest Du bitte einmal den Algorithmus des MQTT: flow rate veröffentlichen. Ich bekomme diesen Wert nicht mit meinem bisherigen, über Blocky berechneten Werten, in Übereinstimmung. Weis aber nicht wo der Fehler liegt.... Liebe Grüße Paul
-
@pfried @jomjol
Hallo, nach dem Update gestern haben sich über Nacht beide Zähler vom WLAN getrennt.
Es wurden noch Bilder gemacht aber Connection Lost > auch direkt in der Fritzbox.
Nach Stromlosmachen läuft wieder alles.
Zum Thema Berechnung kann ich Paul zustimmen.
Angezeigter Wert z.B. 1,2l und der von dir berechnete Wert 0.00167Zum Thema WLAN melde ich mich sobald ich was rausgefunden habe.
LG
Horst -
Hallo, da mein Wasserzähler jetzt schon längere Zeit einwandfrei läuft, hätte ich evtl noch ein anderes Projekt.
Meint ihr der ESP könnte ohne weiteres Training die Ziffern auslesen: -
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
Meint ihr der ESP könnte ohne weiteres Training die Ziffern auslesen:
wenn ich mir das Foto von dem digitalen wasserzähler vor ein paar Posts ansehe, müsste es unter einigen Voraussezungen passen.
- keine Reflexionen
- "irgendwie" das Bild weißer bekommen
- Referenzpunkte für die Kalibrierung des Fotos müssten existieren
Ist das Display beleuchtet, und daher so blau?
-
@homoran
Ja, Display ist beleuchtet.
Ich muss es mir mal genau anschauen, ob ich Referenzpunkte setzen könnte.
Eigentlich ist es Quatsch das zu machen, in dem Gerät um PH und Chlor zu messen, ist ja ein ESP verbaut und die Daten sind auch über eine App abrufbar.
Hätte sie eben gerne in iobroker, am einfachsten über MQTT, aber keine Ahnung wie ich da die Daten her bekomme.
Daher kam mir die Idee mit dem ESP32Cam -
@jomjol
Hallo, nun hat es scheinbar wieder zeitgleich beide Zähler erwischt. Muss Stromlos machen damit die wieder ins WLAN kommen. Die Fritzbox ist auf dem Stand 7.25 seit März!
Beide heißen im Netz "Watermeter"
Hatte die Version 6.7 drauf. Was hab ich seit gestern getan:
Ich hab nur die Config.ini mit den 2 neuen Parametern erweitert.
Sonst auf der SD Karte nichts geändert.
Dann hab ich die Firmware.bin und HTML.zip übers Web-Interface aufgespielt.
Ich kann sagen, dass beide von ca. 17:00 - 23:00 gestern gelaufen sind.
Heute morgen war das WLAN tot und seit 9:00 bis mind. 15:00 lief alles.
Jetzt beim nachsehen wieder WLAN weg aber Fotos werden gemacht.
Schalte das Log an!!LG
Horst -
@hasont Hallo Horst,
versuche doch testweise mal einem der beiden einen anderen Hostnamen zu geben, vielleicht bewirkt das schon etwas -
@michmein
Hallo Michael, hab mal Karte raus und da Stand in der WLAN.ini "gasmeter".
Komisch, in der Fritzbox 7590 stand bei beiden Zählern "watermeter".
Ich hab noch ne zweite Fritzbox 7490 und die wird im Mash nur eingeschaltet wenn ich im Dach arbeite.
Trotzdem hatte sich der Gaszähler im Keller heute Mittag mit dieser Fritzbox 7490 verbunden.
Auch gestern Abend hatte ich die 7490 an.
Hab jetzt beim Gaszähler auch das gateway in der WLAN.ini mit angegeben.
Mal sehen.LG Horst
-
@hasont vielleicht hat die fritzbox die Namen einfach mal gespeichert. Ich drücke dir die Daumen das du dem Phänomen auf die Schliche kommst!
-
@hasont Man muss auf der Firitzbox und bei den Repeatern aufpassen wenn ein SW Upgrade oder ein Reboot passiert (sieht man im LOG der Fritzbox). Es ist nämlich leider so, dass wenn der ESP das WLAN nicht findet, dass er sich dann einfach nicht mehr verbindet. Obwohl Josef mir versichert hat, dass die ESP ständig versuchen ins WLAN zu kommen konnte ich diese Sache (bei mir) replizieren. Habe bei dem Gasmeter und Wassermeter einen FritzRepeater. Wenn der Repeater z.B. ein SW Upgrade bekommt (das geht bei mir automatisch) verlieren beide ESPs das WLAN und ich muss beide ESPs vom Strom nehmen und so zu rebooten.
-
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@hasont Man muss auf der Firitzbox und bei den Repeatern aufpassen wenn ein SW Upgrade oder ein Reboot passiert (sieht man im LOG der Fritzbox). Es ist nämlich leider so, dass wenn der ESP das WLAN nicht findet, dass er sich dann einfach nicht mehr verbindet. Obwohl Josef mir versichert hat, dass die ESP ständig versuchen ins WLAN zu kommen konnte ich diese Sache (bei mir) replizieren. Habe bei dem Gasmeter und Wassermeter einen FritzRepeater. Wenn der Repeater z.B. ein SW Upgrade bekommt (das geht bei mir automatisch) verlieren beide ESPs das WLAN und ich muss beide ESPs vom Strom nehmen und so zu rebooten.
@pfried, @Hasont,
welche Version verwendet ihr? in der aktuellen Rolling ist der WLan-Code upgedated und der Reconnect funktioniert bei mir aktuell auch nicht. Bin gerade dran, dass zu testen. Bei den älternen Versionen habe ich in meinem Netz keine Problem - egal ob ich die FritzBox reboote oder nicht.
LG,
jomjol -
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Guten Morgen Josef, könntest Du bitte einmal den Algorithmus des MQTT: flow rate veröffentlichen. Ich bekomme diesen Wert nicht mit meinem bisherigen, über Blocky berechneten Werten, in Übereinstimmung. Weis aber nicht wo der Fehler liegt.... Liebe Grüße Paul
Hier der Code:
double difference = difftime(currenttime, lastvalue); // in Sekunden difference /= 60; // in Minuten FlowRateAct = (Value - PreValue) / difference;
Du bist nicht der einzige, der eine Abweichung zu einer manuelle Berechnung findet. Ich habe ehrlich gesagt noch keine Zeit, das zu prüfen. Sag gerne Bescheid, wenn du den Fehler findest.
Danke und Gruß,
jomjol -
@jomjol Nachdem ich ein Update-Junkie bin bin ich auf v7.0.1
-
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Nachdem ich ein Update-Junkie bin bin ich auf v7.0.1
in der neueste Rolling von heute Morgen behoben.
-
@jomjol Erstmal vielen Dank für deine Arbeit. Ich beobachte das jetzt schon seit Monaten und hatte die Tage endlich Zeit meine "Messuhr" anzugehen.
Ich lese aktuell 2 Digital Ziffern aus (Poolmeter) was bisher super klappt. Einzig das Komma verschieben, hat etwas gedauert, bis ich es gefunden habe... Jetzt meine Frage, ich würde gerne eine 2. Zahl auswerten (nochmal 3 Ziffern). So wie ich verstanden habe geht das aber mit einer Cam nur für eine Zahl oder? D.h. ich brauche ne 2. Cam oder wäre es möglich, ein 2. "Zahlenfeld" zu generieren? In Summe wären beide Zahlen auch nur 5 Ziffern was von der Rechenleistung vermutlich noch ok wäre?
-
@xsev Die Rechenleistung würde reichen, jedoch ist die Programmstruktur für zwei Zahlen nicht vorgesehen. Das wäre ein massiver Eingriff in den Ablauf, die Konfiguration und auch den html-Web-Server für die Konfiguration. Daher ist es momentan nicht vorgesehen.
Du könntest einen "Trick" anwenden: du fügst gedanklich die beiden Zahlen zu einer Zusammen (z.B. 1. Zahl vor dem Komma, 2. Zahl nach dem Komma) und machst die Zerlegung in die beiden Zahlen und die Kommaverschiebung dann lokal im Postprocessing.