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.
-
@RalfTh bei id kommt der sensor von mir rein ???
-
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 Ralf okay noch mal ganz von vorne also ich gehe in Objekte lege dann erst unter javascribt dein ersten Post an
und dann gehe ich ihn Blocky und schriebe das noch mal so wie du es mir geschrieben hast -
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.
-
@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.
-
@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.
-
@RalfThja okay verstanden wie hast du den blocky geschriebe in pink Tagesverbrauch aktualiesiert ???
-
Sollte aber Bestandteil von meinem geposteten Blockly-Export sein.
-
@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. -
@RalfTh hi ralf okay danke ich werde es noch mal veruschen man diese scribte zum kotzen
-
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.
-
@kook Ich wollte mich rechtherzlich bedanken. Die hier beschriebene Art und Weise den BK-G4 smart zu machen ist super und hat genial funkioniert. Vielen vielen Dank
LG Martin https://twitter.com/MartinMueller_
-
@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.