ioBroker Tutorial-Reihe - Gaszähler per Reed-Kontakt integrieren

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

ioBroker Tutorial-Reihe - Gaszähler per Reed-Kontakt integrieren
ioBroker Tutorial-Reihe - Gaszähler per Reed-Kontakt integrieren
  • Matthias Kleine
  • 28.02.2021
  • Grundlagen
  • Blockly
  • Verbrauchsmessung

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

ioBroker-Kurs

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>
Ich will mehr

Smart-Home-Training von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte!

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
NodeRed-Kurs

NodeRed-Kurs

Mehr Infos