NEWS
Gaszähler BK-G4 auslesen mit Zigbee-Fensterkontakt
-
@Stefan1bd Das kann ich dir anhand des Bildes nicht sagen, da ich nicht genau sehen kann welche Datenpunkte du dazu angelegt hast.
Da ich den Tages-, Vortages-, Monats, Vormonats- und Jahresverbrauch erfasse und auch in Influx tracke habe ich eine etwas komplexere Datenstruktur. Hier mal ein Bild meiner Datenpunkte:

Hier noch mein Blockly dazu:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="C(bFZFKJ?E{HFMt3wjqy">Jahresverbrauch qm</variable> <variable id="cEfR7s^[TN+C`y=WBp~z">Monatsverbrauch qm</variable> <variable id="3P^R?RjyCloE{A(Mca-~">Tagesverbrauch qm</variable> <variable id="oQk{ZaOTL#Pi%6PiS631">Jahresverbrauch kWh</variable> <variable id=":uED@=Z}%_7lPlkOL+}?">Monatsverbrauch kWh</variable> <variable id="uGl=6(66Z(j)hq_WkD6n">Tagesverbrauch kWh</variable> <variable id="[`*(i$-6d.L4M8Iiv`DR">Jahreskosten</variable> <variable id="eL}j*3R/=C3k_Qh+gg7%">Monatskosten</variable> <variable id="!7=^ifUK^og9WyMpkH7d">Tageskosten</variable> </variables> <block type="procedures_defnoreturn" id="n)(]Q3aL5x.F[^Vkah@K" x="87" y="-988"> <field name="NAME">Jahresverbrauch aktualisieren</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="Q)6cuwx=!tLq+brmUo%X"> <field name="VAR" id="C(bFZFKJ?E{HFMt3wjqy">Jahresverbrauch qm</field> <value name="VALUE"> <block type="math_arithmetic" id="GI~_;Oa_pF$ur.nd@a:H"> <field name="OP">MINUS</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="+8c4JA==hFjegmDXnom]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="O0aa*`9c2Hk07o$sBwVw"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="9a[bb9T|u{Ogw#;fp4qR"> <field name="NUM">1</field> </shadow> <block type="get_value" id="MA-L0wb1hpu8N)l|{;|L"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Abrechnungsbeginn</field> </block> </value> </block> </value> <next> <block type="variables_set" id="WdsYPo]S*%ScS6z{=0l4"> <field name="VAR" id="oQk{ZaOTL#Pi%6PiS631">Jahresverbrauch kWh</field> <value name="VALUE"> <block type="math_rndfixed" id="~_.D6R8ScSEF6M+:vtHu"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="._uSLzl/4=oNirJVGS95"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="8nls]Vzb,L5G6e)V1ytk"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="fdt^~0VXCyna6efS%Abb"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="t5PMs._`sAs#}?I.TOUY"> <field name="VAR" id="C(bFZFKJ?E{HFMt3wjqy">Jahresverbrauch qm</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="]zz:ag2HjwP/J9W6QFQR"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="zKT*tYs1a*4F0_1R]#Pi"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="1vN{8!R:P0Z:dswgmd(]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!mrtZ-.U[Dkfm|t(2#dU"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Brennwert</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id=")PyNYB6Vbxo^i*1*o4bP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="C1=(v_0#xAeY-VFz:tj["> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zustandszahl</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="yKJ0F.H$M}!9#M}P:V|%"> <field name="VAR" id="[`*(i$-6d.L4M8Iiv`DR">Jahreskosten</field> <value name="VALUE"> <block type="math_rndfixed" id="Gy{$WT,yoC4@vZJ%/59t"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZdkEoG}r{2eDWd6~rXqK"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id=",T-0#=k[-0*`+S~=Dn/c"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="uXIcRrq#n(-7Dj)sh({d"> <field name="NUM">1</field> </shadow> <block type="get_value" id="rx)$]k13khRL#qyg+8.("> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Grundpreis</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="vl(Lo?^LKR3z}QL/j:f:"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="Pj;mt(*NerIgloEZ8ie:"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="e-P[LxopEtsvY-+oR#yF"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Be^yW$(TOh(xjFriUBR?"> <field name="VAR" id="oQk{ZaOTL#Pi%6PiS631">Jahresverbrauch kWh</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZLA$Qf49I!L}BCB%e{VN"> <field name="NUM">1</field> </shadow> <block type="get_value" id="k8_bERg`u],uIduA8iG~"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_kWh_in_Euro</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="~e;d.p#o.P6v0A_nUw|-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Abrechnungsjahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="dNRgqUk/JN)n^ECvpO`A"> <field name="VAR" id="oQk{ZaOTL#Pi%6PiS631">Jahresverbrauch kWh</field> </block> </value> <next> <block type="update" id="lu`F/vA3!Ns5!QG+`QF!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Abrechnungsjahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="ZBkl$sr1/fExgyfP5nG1"> <field name="VAR" id="[`*(i$-6d.L4M8Iiv`DR">Jahreskosten</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="bu4(sL#N5~{J/7W{8Zx," x="87" y="-712"> <field name="NAME">Monatsverbrauch aktualisieren</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="7m?+z]8KkKi/.#Lbv`Cu"> <field name="VAR" id="cEfR7s^[TN+C`y=WBp~z">Monatsverbrauch qm</field> <value name="VALUE"> <block type="math_arithmetic" id="OsO^W`{Eo=VEF-hN|=Zs"> <field name="OP">MINUS</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="+8c4JA==hFjegmDXnom]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="{+=2M#bET8K1$C3N^koh"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="9a[bb9T|u{Ogw#;fp4qR"> <field name="NUM">1</field> </shadow> <block type="get_value" id="LDz2%rEcnmmy?1*v.VoA"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Monatsanfang</field> </block> </value> </block> </value> <next> <block type="variables_set" id=".fQ;oik:Pu;T#ncJ)i~0"> <field name="VAR" id=":uED@=Z}%_7lPlkOL+}?">Monatsverbrauch kWh</field> <value name="VALUE"> <block type="math_rndfixed" id="35(?hfPi.85Hqe`#?ZHi"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="._uSLzl/4=oNirJVGS95"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="]?8S`*@S}DP=A@7T86w2"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="fdt^~0VXCyna6efS%Abb"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="g*=z_eSX#1!O2ij$[Dh2"> <field name="VAR" id="cEfR7s^[TN+C`y=WBp~z">Monatsverbrauch qm</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="]zz:ag2HjwP/J9W6QFQR"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="EjXA;PBd[Q{9m.xc.MF2"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="1vN{8!R:P0Z:dswgmd(]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="}}7q}:RJC#oHMp!l6jK!"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Brennwert</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id=")PyNYB6Vbxo^i*1*o4bP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@tUSNOKF$#i[$}yu=m(-"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zustandszahl</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="Vm9:;JnI6sQbnKM0aOUh"> <field name="VAR" id="eL}j*3R/=C3k_Qh+gg7%">Monatskosten</field> <value name="VALUE"> <block type="math_rndfixed" id="qjNsPgao;*)#YuYGgSt!"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZdkEoG}r{2eDWd6~rXqK"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="D_9v4k@n3~pSa`A$!V6H"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="e-P[LxopEtsvY-+oR#yF"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="`fmB9cC,]n8(H/j/#[3o"> <field name="VAR" id=":uED@=Z}%_7lPlkOL+}?">Monatsverbrauch kWh</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZLA$Qf49I!L}BCB%e{VN"> <field name="NUM">1</field> </shadow> <block type="get_value" id=";~EFN,JLCc!BUa{}7=!/"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_kWh_in_Euro</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="u[ahL3Q]_LfL-aMElp80"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="t#=7_wIK-|BXtk!N{fBt"> <field name="VAR" id=":uED@=Z}%_7lPlkOL+}?">Monatsverbrauch kWh</field> </block> </value> <next> <block type="update" id="~ySaBS?W@ur9o8sXbcP~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Fug+dM{eUTRb]MW(lhq2"> <field name="VAR" id="eL}j*3R/=C3k_Qh+gg7%">Monatskosten</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id=";jgl=g8JO]p5qL4}7d9?" x="87" y="-437"> <field name="NAME">Tagesverbrauch aktualisieren</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="0t[[0YC/DBb=RmvwD]/F"> <field name="VAR" id="3P^R?RjyCloE{A(Mca-~">Tagesverbrauch qm</field> <value name="VALUE"> <block type="math_arithmetic" id="yH}qVpt{sTn-##O`G0eR"> <field name="OP">MINUS</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="+8c4JA==hFjegmDXnom]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="vm1-mL+~W)$^48,Nea1v"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="9a[bb9T|u{Ogw#;fp4qR"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Wd,sjWV8;N%zyg3QClK+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_0:00</field> </block> </value> </block> </value> <next> <block type="variables_set" id="sg[6xF[|=^x*ONv?Y5FV"> <field name="VAR" id="uGl=6(66Z(j)hq_WkD6n">Tagesverbrauch kWh</field> <value name="VALUE"> <block type="math_rndfixed" id="/5{3EpLx?|5ZL[OVd*7N"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="._uSLzl/4=oNirJVGS95"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="FDr+pG`p^gjI,O{lbfD8"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="fdt^~0VXCyna6efS%Abb"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="gk}IFF7qw5A*k2f}d~ua"> <field name="VAR" id="3P^R?RjyCloE{A(Mca-~">Tagesverbrauch qm</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="]zz:ag2HjwP/J9W6QFQR"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="f;L|~DdlXB)E5H3SCVKH"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="1vN{8!R:P0Z:dswgmd(]"> <field name="NUM">1</field> </shadow> <block type="get_value" id="d~]{BM8cloxv)JQMh?pK"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Brennwert</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id=")PyNYB6Vbxo^i*1*o4bP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="aIVu7qnK0[3](UdABq3$"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zustandszahl</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="RW*Gj4_LDUwu~2zu.+3K"> <field name="VAR" id="!7=^ifUK^og9WyMpkH7d">Tageskosten</field> <value name="VALUE"> <block type="math_rndfixed" id=":{Xad.;}n9POv,*|G)q/"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZdkEoG}r{2eDWd6~rXqK"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="+27It$f^F((tj]3,wB:+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="e-P[LxopEtsvY-+oR#yF"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="2C0hBHdNMJ.j^z,oOFxE"> <field name="VAR" id="uGl=6(66Z(j)hq_WkD6n">Tagesverbrauch kWh</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="ZLA$Qf49I!L}BCB%e{VN"> <field name="NUM">1</field> </shadow> <block type="get_value" id="ED$GO1^acmqobl5DM*1}"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_kWh_in_Euro</field> </block> </value> </block> </value> </block> </value> <next> <block type="update" id="9Ev,!b|hFTUj9a/M{GjF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="!NWe=/KdWRfOxH81]oAt"> <field name="VAR" id="uGl=6(66Z(j)hq_WkD6n">Tagesverbrauch kWh</field> </block> </value> <next> <block type="update" id="v0LWuuPw{f!1xob^R533"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="u(5[{aco51;|1mG2ybxj"> <field name="VAR" id="!7=^ifUK^og9WyMpkH7d">Tageskosten</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="+8:x5xXlgL{2VF1oFxXN" x="87" y="-163"> <field name="COMMENT">Aktualisiert bei Änderung</field> <next> <block type="on" id="5Kdai^+FkPg$8i)nLSsE"> <field name="OID">deconz.0.Sensors.12.open</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="XWGr|[WH|D?(!cT/dJ2*"> <value name="IF0"> <block type="logic_compare" id="U^)Zqe[K`I=4WD1CqQ(0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ZVjpZBa4EQ{c6VDsAQ.K"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.12.open</field> </block> </value> <value name="B"> <block type="logic_boolean" id=".$e2tu*5^7Y|u,/iY)gI"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="k84CvR,M[b/]bx`#M^]2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="BZ7/.tC`VuWzwGON;_2D"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id=";[V_m#Xc$|D3vgRO~FRc"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="nK|7aq#1]JkX3Nj/+bEY"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="8SqWa4OxT)l]j}to4L(8"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="|.KyU]cf8iV/*N*)aK`Z"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="3!.4x`?@gmd?cDOyQ9-h"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="B6GeqZ-zm~|crjg-C8;r"> <field name="NUM">0.1</field> </shadow> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="(Fg.=1Ziy,;tBNgQ[5ya"> <mutation name="Tagesverbrauch aktualisieren"></mutation> <next> <block type="procedures_callnoreturn" id="rwZ4rbgf;`FrGdO5SUH["> <mutation name="Monatsverbrauch aktualisieren"></mutation> <next> <block type="procedures_callnoreturn" id="kP?SKffwn$79[eqsx~DX"> <mutation name="Jahresverbrauch aktualisieren"></mutation> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="!H(TM~7]E+7pAHl%2`dV"> <field name="COMMENT">Aktualisiert dei Zählerstände täglich um 0:00</field> <next> <block type="schedule" id="b2FC_`#h3RpW*UgbbIds"> <field name="SCHEDULE">57 59 23 * * *</field> <statement name="STATEMENT"> <block type="update" id="CFf2|!Ys1HXkth{}Tdq#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id=")+4p~*jChB|HHC}US]Xq"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Yp)FkCvAs_`/DAAl@sW|"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="SAAH5P,=24!RuQ@L;0X|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Heute</field> </block> </value> </block> </value> <next> <block type="update" id="//mD6cYd9NGc$1iakvX-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_0:00</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="Uokq1ANo|J!f~1EnZl-h"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="}jqhl#S@tg#(E=6YIm]h"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="j,k17$g}/x`p_KRe$O+)"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Aktuell</field> </block> </value> </block> </value> <next> <block type="update" id="L8~Z`%]w@X%V/Y7j$qrZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="BZ7/.tC`VuWzwGON;_2D"> <field name="NUM">3.1234</field> </shadow> <block type="math_rndfixed" id="n^GbK8Ih$E:UGg757P4e"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="|.KyU]cf8iV/*N*)aK`Z"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="B@Mnaz)^!gCN3;I|ZFab"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Heute</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="vO19-![t:Mt+/XLZbrF_"> <field name="COMMENT">Aktualisert den Zählerstand jeden 1. im Monat</field> <next> <block type="schedule" id="#lHUl+IJ+^{vV9f%SX~+"> <field name="SCHEDULE">0 0 1 * *</field> <statement name="STATEMENT"> <block type="update" id="g2xtn0!!J}G_kvUx8+=n"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_Monatsanfang</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="=4e~}YwsU,IFGW2+.0~{"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Yp)FkCvAs_`/DAAl@sW|"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="@sX9y6S7KTghg,#mBo^B"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Zählerstand_0:00</field> </block> </value> </block> </value> <next> <block type="update" id="hH;jN3S#b|VSVWvT4YRh"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Vormonat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="xA^HPhn5s0{k9UabRs*N"> <field name="n">1</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="R++4;[_;8FO/3fVdMuoS"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="$3BH*r*[+J;7K]L!MdqI"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Verbrauch_Monat</field> </block> </value> </block> </value> <next> <block type="update" id="fn^:.2^WsF1Uy9I_?C~Q"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Vormonat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="T;]]rGP)/{m=!4OOWxAk"> <field name="n">2</field> <value name="x"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="R++4;[_;8FO/3fVdMuoS"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="D)?:[i7vm+#yCSqDID]U"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenobjekte.Gasverbrauch.Kosten_Monat</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>Kannst es ja mal importieren und dir anschauen. Ist halt sehr komplex, da ich im weiteren auch erfassen möchte, wie sich der Verbrauch im Zusammenspiel mit der Aussentemperatur verhält etc.
-
Sorry für die etwas verspätete Antwort, ich war unterwegs.
Ich verstehe deine Frage nicht ganz. Das Blockly nutzt die Die Variablen, die ich unter dem Datenpunkt javascript.0.EigeneDatenobjekte.Gasverbrauch angelegt habe. (Siehe mein vorheriger Post, erstes Bild) Der Trigger für das Blockly ist natürlich der Datenpunkt deines Sensors:
, bei mir heißt der Gaszähler open.Wenn du mein Blockly nutzen willst, musst du zunächst einmal alle Datenpunkte unter javascript.0.EigeneDatenobjekte.Gasverbrauch anlegen, wie sie in meinem Bild des vorherigen Post zu sehen sind. Dann importierst du das Blockly, änderst von meinem Datenpunkt Gaszähler open auf deinen Datenpunkt und dann sollte das eigentlich schon mal laufen. Natürlich musst du gewisse Änderungen an den Werten unter javascript.0.EigeneDatenobjekte.Gasverbrauch vornehmen. Den Zählerstand Abrechnungsbeginn, die Zustandszahl, den Brennwert und die Kosten pro kWh habe ich meiner letzten Gasabrechnung entnommen und eingetragen.
Da ich auch aus gewissen Gründen bereits eine tägliche Aufzeichnung des Zählerstandes machte, konnte ich auch den Zählerstand Monatsanfang und den aktuellen Zählerstand eintragen. Um Werte für den Vormonat zu erhalten musst du einen Monatswechsel abwarten. Der Rest wird durch das Blockly berechnet und eingetragen und das jedes mal, wenn dein Kontakt sich ändert und das den Trigger auslöst.
Konnte ich deine Frage damit beantworten?
-
Hi Stefan, genau so machst du es
-
Unter Objekte den Datenpunkt javascript.0 anklicken und damit markieren.
-
Dann klickst auf diesen Button oben im linken Breich
und legst das Objekt Eigene_Datenobjekte an. -
Markiere Jetzt Eigene_Datenobjekte und lege auf die gleiche Weise den Datenpunkt Gasverbrauch an.
-
Markiere Gasverbrauch und lege die restlichen Datenobjekte nach der Reihe an.
Achte darauf, dass bei den Attributen zu den Datenobjekten das so aussieht:

Besonders wichtig, das Attribut max wird meist mit angelegt und steht Standardmäßig auf 100. Ich habe diesen Wert einfach gelöscht, weil man ihn nicht braucht. Beachte dies, denn sonst werden Daten, die größer als das Attribut max. sind nicht geschrieben. Mit Unit kannst du die Einheit festlegen, z.B. €, m³, oder kWh etc.
Hast du das alles erstellst nu ein neues Blockly, bei mir heißt das Gaszähler.
Markiere mein Blockly und kopiere es mit Strg+C
Gehe auf dein neu angelegtes Skript und klicke zum Import oben rechts auf diesen Button.
Mit Strg+V kopierst du das Skript in das geöffnete Fenster.
Jetzt solltest du mein Skript als Blockly sehen.
Zuerst passt du den Triggerdatenpunkt Gaszähler open auf deinen Kontakt an:
. Wie der bei dir heißt kann ich dir nicht sagen.
Abschließend überprüfst du die rechtlichen Datenpunkte, ob sie auf die von die angelegten Datenpunkte verweisen. Danach sollte das laufen, sofern dein Zählerkontakt Daten liefert.Hab es mal etwas ausführlicher gemacht, weil du das Blockly schreiben wolltest und ich dachte, die geht es wie mir vor 2 Monaten.

-
-
Ralf super danke du bist der beste ich werde es morgen gleich ausprobieren vielen vielen dank
@Stefan1bd melde, wenn es geklappt hat oder du noch Fragen hast.
-
@Stefan1bd melde, wenn es geklappt hat oder du noch Fragen hast.
-
@RalfTh ja werde ich machen bin dir echt mega dankbar bin ja auch erst mit angefangen einzubinden und alles noch sehr viel Neuland
@Stefan1bd Dachte ich mir. Ich kenne diese Fragen.

-
@Stefan1bd Dachte ich mir. Ich kenne diese Fragen.

-
@RalfTh hi sag mal die kammen Achte darauf, dass bei den Attributen zu den Datenobjekten das so aussieht: in allgemein anlegen oder unter native
@Stefan1bd Wenn du auf das
drückst kommt das 
Objektnamen vergeben z.B.
Auf hinzufügen klicken. Jetzt siehst du das: 
Du bist also auf dem Tab Allgemein. Das Attribut maximaler Wert löschen und die Maßeinheit anpassen ...... fertig.
-
@Stefan1bd Wenn du auf das
drückst kommt das 
Objektnamen vergeben z.B.
Auf hinzufügen klicken. Jetzt siehst du das: 
Du bist also auf dem Tab Allgemein. Das Attribut maximaler Wert löschen und die Maßeinheit anpassen ...... fertig.
-
@RalfThja okay verstanden wie hast du den blocky geschriebe in pink Tagesverbrauch aktualiesiert ???
Sollte aber Bestandteil von meinem geposteten Blockly-Export sein.
-
@RalfThja okay verstanden wie hast du den blocky geschriebe in pink Tagesverbrauch aktualiesiert ???
@Stefan1bd Jetzt verstehe ich glaube ich deine Frage. Das ist eine so genannte Funktion ( mim Menü ganz untern ).
Du musst zuerst eine neue Funktion erstellen und dieser einen Namen geben. Darin verpackst du die Logik, welche du öfter verwenden willst. -
@Stefan1bd Jetzt verstehe ich glaube ich deine Frage. Das ist eine so genannte Funktion ( mim Menü ganz untern ).
Du musst zuerst eine neue Funktion erstellen und dieser einen Namen geben. Darin verpackst du die Logik, welche du öfter verwenden willst. -
Würde das auch mit einem Gaszähler bk-g 2,5 funktionieren?
-
Würde das auch mit einem Gaszähler bk-g 2,5 funktionieren?
@Mac_Schmeck poste mal ein Bild vom Zähler. Normalerweise geben die Zähler alle 0,1m³ einen Impuls, meist mittels eines Magneten. Bei mir steht auf dem Zähler 1Imp. = 0,1m³. Wenn das bei deinem Zähler auch draufsteht geht das vermutlich.
-
Hallo miteinander,
das hier ist mein erster Beitrag in diesem Forum, deshalb bitte nicht gleich draufhauen, falls ich irgendwas falsch mache :-). Ich habe die Suchfunktion benutzt um herauszufinden, ob meine Lösung hier schon beschrieben ist, soweit ich sehen konnte, ist sie das nicht.
Ich bin schon länger am Überlegen, wie ich meinen Gaszähler ohne zuviel Aufwand auslesen soll. Anleitungen gibt es dazu viele, und eigentlich wollte ich das mit einem Reed-Kontakt oder Hallsensor an Siemens Logo oder einem Sonoff machen.
Meine Fenster und Türen habe ich alle mit den Aqara Zigbee Sensoren versehen, die ich mit dem Deconz-Adapter auslese. Da ich noch ein paar in Reserve habe, habe ich heute ausprobiert ob der Sensor, der ja einen Reed-Kontakt eingebaut hat, auch den Gaszähler auslesen könnte. Geht leider nicht, das Ding passt gerade so nicht in die Aussparung. Wenn man allerdings die Platine aus dem Gehäuse nimmt (vorsichtig gegenüber von der Batterie die Klipse aushebeln), passt die genau in den Zähler.

Ist bei mir jetzt erstmal provisorisch mit Klebeband fixiert und liefert bei jeder Umdrehung im Nulldurchgang einmal "false".Das war es erstmal, ich dachte diese Information ist es wert zu teilen. Im Moment summiere ich die Umdrehungen mit einem ganz simplen Javascript in ein Objekt und schreibe das bei jeder Änderung in eine influxDB. Falls jemand einen Tipp hat, wie man das besser machen kann, bin ich dankbar. Das Betriebsstundenscript habe ich mir allerdings schon angesehen, das ist mir noch zu kompliziert :-).
Gruß
Sven
-
@KarMa Ja ich habe einen Pipersberg Baujahr 2005 und das geht es. Aber es war viel probiererei, bis der Kontakt zählte. Ich habe den Kontakt ziemlich über der ersten Walze navh dem Komma positioniert und auch nicht bis ganz nach hinten geschoben. Und aus dem Gehäuse musst ich ihn auch entnehmen. Da die Zählung passiv, mittels eines Magneten gelöst ist, kann ich mir nicht recht vorstellen, dass es mit dem Reedkontakt nicht funktionieren soll.

@ralfth said in Gaszähler BK-G4 auslesen mit Zigbee-Fensterkontakt:
ich habe einen Pipersberg Baujahr 2005 und das geht es
Ich bin jetzt auch auf diesen Thread gestoßen und wollte meinen neuen Gaszähler auswerten.
Dieses ist jedoch ebenfalls ein Pipersberg G4 RF1c, der anscheinend wirklich nicht mehr mit Reedkontakten auszulesen ist.Ich hatte beim Einbau den Monteur des GVU gefragt, der meinte ich solle mich an Pipersberg wenden.
Jetzt habe ich nochmals das Netz durchstöbert und sowohl bei FHEM, als auch IP-Symcon gelesen, dass es eben nicht mehr mit Reed geht.
Die Anleitung von Pipersberg schreibt von einem Zählwerk für Encoder-Nachrüstung, in dem darin beschriebene Sichtfenster bewegt sich bei mir aber schon mal etwas, etwa alle 0,005m³
Das Lesegerät war mir definitiv zu teuer, jetzt finde ich es nicht mehr.
Es muss wohl wirklich ein induktiver Näherungssensor verwendet werden, im Thread von IP-Symcon wird ein LJ12A3-4-Z/BX verwendet.
-
@ralfth said in Gaszähler BK-G4 auslesen mit Zigbee-Fensterkontakt:
ich habe einen Pipersberg Baujahr 2005 und das geht es
Ich bin jetzt auch auf diesen Thread gestoßen und wollte meinen neuen Gaszähler auswerten.
Dieses ist jedoch ebenfalls ein Pipersberg G4 RF1c, der anscheinend wirklich nicht mehr mit Reedkontakten auszulesen ist.Ich hatte beim Einbau den Monteur des GVU gefragt, der meinte ich solle mich an Pipersberg wenden.
Jetzt habe ich nochmals das Netz durchstöbert und sowohl bei FHEM, als auch IP-Symcon gelesen, dass es eben nicht mehr mit Reed geht.
Die Anleitung von Pipersberg schreibt von einem Zählwerk für Encoder-Nachrüstung, in dem darin beschriebene Sichtfenster bewegt sich bei mir aber schon mal etwas, etwa alle 0,005m³
Das Lesegerät war mir definitiv zu teuer, jetzt finde ich es nicht mehr.
Es muss wohl wirklich ein induktiver Näherungssensor verwendet werden, im Thread von IP-Symcon wird ein LJ12A3-4-Z/BX verwendet.
Ich habe den Gaszähler Pipersberg RF1 (ohne "c") verbaut, und bei diesem lassen sich mit einem einfachen Reed-Kontakt (z.B: KY-025) die Impulse (alle 0,1 m3) auslesen. Ich lasse den Reed-Kontakt von einen WLAN-fähigen ESP32-Controller auslesen, der dann wiederum per MQTT ein Signal an den iobroker schickt. Dieser zählt schließlich die Impule, wie oben schon beschrieben. So funktioniert das auch ohne Zigbee.
-
Ich habe den Gaszähler Pipersberg RF1 (ohne "c") verbaut, und bei diesem lassen sich mit einem einfachen Reed-Kontakt (z.B: KY-025) die Impulse (alle 0,1 m3) auslesen. Ich lasse den Reed-Kontakt von einen WLAN-fähigen ESP32-Controller auslesen, der dann wiederum per MQTT ein Signal an den iobroker schickt. Dieser zählt schließlich die Impule, wie oben schon beschrieben. So funktioniert das auch ohne Zigbee.
@bellhouse Ich habe das mit einem modifizierten Aqara-Türsensor gemacht. Einfach zwei Pins, parallel zum internen Reedkontakt, durch das Gehäuse nach außen geführt und daran einen, mit zwei Drähten verlängerten, externen Reedkontakt angeschlossen. Dieser lässt sich exakt bei meinem G4 Rf1 positionieren. Ich wollt auch schon auf WLAN und damit auf einen ESP umsteigen. Es stört mich daran, dass der ESP eine externe Spannungsversorgung braucht und eigentlich in ein Gehäuse verbaut werden müsste. Wie hast du das gelöst?

