ioBroker Tutorial-Reihe - Gaszähler per Reed-Kontakt integrieren
Zählerstände erfassen ist eine der Haupt-Aufgaben im Smarthome. In diesem Video möchte ich Dir daher eine Möglichkeit zeigen, wie man den Gaszähler mit Zählerschnittstelle in den ioBroker integrieren könnte. Dafür brauchen wir nichts weiter, als die GPIO-Pins vom Raspberry Pi. Denn am Ende ist der Reed-Kontakt ja nichts anderes, als ein Taster, welcher bei jedem Zähl-Impuls kurz geschlossen wird. Wie man diese Impulse mit Blockly zählen kann und wie man den Wert dann in kWh umrechnen könnte, erfährst Du in diesem Video!
Video
Schaltung
»ioBroker Gaszähler Reed-Kontakt«
Blockly-Script
In diesem Beispiel wurde der Reed-Kontakt an GPIO 22 angeschlossen, welcher im RPI2-Adapter als Eingang konfiguriert wurde (siehe Video).
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="create" id="O0.%:4f-:Pqkysp}DPdK" x="63" y="-37">
<field name="NAME">gaszaehlerStand</field>
<value name="VALUE">
<block type="math_number" id="DhL1vz/Iy1;/}/)[k9FO">
<field name="NUM">0</field>
</block>
</value>
<value name="COMMON">
<block type="text" id="$(AthiGYY3W!+XI%po/t">
<field name="TEXT">{"type": "number", "unit": "m³"}</field>
</block>
</value>
<next>
<block type="create" id="kt:st]g_7HQ~1,AVg(+C">
<field name="NAME">gaszaehlerStandkWh</field>
<value name="VALUE">
<block type="math_number" id="#Pt*uq1EN[v.o|eC$}9c">
<field name="NUM">0</field>
</block>
</value>
<value name="COMMON">
<block type="text" id="bWM6wLsF^Y~MSK#E$4}0">
<field name="TEXT">{"type": "number", "unit": "kWh"}</field>
</block>
</value>
<next>
<block type="on" id="[Aae;WUw?/GQLLaSi|YP">
<field name="OID">rpi2.0.gpio.22.state</field>
<field name="CONDITION">true</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="update" id="{Fr+[nvsyzsRW=R)4u{|" inline="false">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.gaszaehlerStand</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id="J$]R.`;08=+yt0]}Ii|*" inline="false">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="(8#e7nEvA)961d@}=f1e">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="CUh_iTk5%z6jmF=-I~}Y">
<field name="ATTR">val</field>
<field name="OID">javascript.0.gaszaehlerStand</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="UpA:b_2XlkBjbm_gL8bq">
<field name="NUM">0.01</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="on" id="|6!Nh%NKoNreoIx{kE(B">
<field name="OID">javascript.0.gaszaehlerStand</field>
<field name="CONDITION">ne</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="comment" id="gz7=_OL%2?bU~j;XKk%R">
<field name="COMMENT">m³ * Zustandszahl * Brennwert</field>
<next>
<block type="update" id="8$E,+yL|3cVhOf:%4~@W" inline="false">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.gaszaehlerStandkWh</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_rndfixed" id=":a7CEg1}#$XfI]rAO}2/">
<field name="n">1</field>
<value name="x">
<shadow type="math_number" id="Cm#rg^1=.kzHerEE(q1G">
<field name="NUM">3.1234</field>
</shadow>
<block type="math_arithmetic" id="P~7p{TAN8J!hbi}wF=,s" inline="false">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="_zw?QIdjf[qQd_(c(X(V">
<field name="NUM">1</field>
</shadow>
<block type="math_arithmetic" id="h/K]6epkq4eEmczq#XW4" inline="false">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="cr[7/qN25UTSH_]kjR/S">
<field name="NUM">1</field>
</shadow>
<block type="on_source" id="-Vo;;;BDSiGRGu.Y~q0L">
<field name="ATTR">state.val</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="UNm.pI?(Vmrk*-{~Q!hs">
<field name="NUM">0.9595</field>
</shadow>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="K=xmEI^vFAvsM0@aV]/G">
<field name="NUM">10.247</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>
Transparenz-Hinweis (Level 1)
An diesem Beitrag ist kein Hersteller beteiligt! Sämtliche Produkte habe ich selbst gekauft und trage die kompletten Kosten für diesen Beitrag alleine! Die Inhalte wurden somit von niemandem gesehen oder abgestimmt. Es handelt sich zu 100% um meine persönliche Meinung und Erfahrung!