Nicht in jedem Haushalt ist bereits eine Heizung mit einem passenden Internet-Adapter verbaut, über den Verbrauchswerte ausgelesen werden können. Möchte man aber dennoch den Verbrauch der Heizung dokumentieren, könnte in Haushalten mit Gasanschluss der Gaszähler die Lösung sein. Viele Gaszähler haben haben am Zählwerk einen Magnet eingebaut, der beim Null-Durchlauf der dritten Nachkommastelle abgefragt werden kann. Unterhalb der Zählereinheit lässt sich eine Aussparung erkennen, in der im Original von den meisten Herstellern eine Lesemodul mit Reed-Kontakt eingesetzt werden kann.

Aussparung für Reed Kontakt in Gaszähler

Aussparung für Reed Kontakt in Gaszähler

Über diese Möglichkeit, können wir den Zählerstand über Impulse des Nulldurchlaufs erfassen. Wir brauchen hierfür nicht mehr als einen Tür- oder Fensterkontakt, der magnetisch arbeitet. Z.B. kostengünstig den Türkontakt von Aqara. Die Hauptplatine lässt sich einfach aus dem Gehäuse lösen und passt in diesem Fall, ein Gaszähler des Herstellers elster, genau in die Aussparung.

Xiaomi Aqara Türkontakt für den Gaszähler

Xiaomi Aqara Türkontakt für den Gaszähler

In den Gaszähler eingesetzt, sieht die Lösung wie folgt aus:

Elster Gaszähler mit Aqara Türkontakt zur Verbrauchsmessung

Elster Gaszähler mit Aqara Türkontakt zur Verbrauchsmessung

Leider ist die Genauigkeit der Lösung deutlich unter 100%, nach ca. 6 Monaten beläuft sich die Abweichung, offenbar durch fehlende bzw. ausgesetzte Impulse durch den Aqara Türkontaktsensor, auf ca. 6%. Dennoch reicht dies für eine grundlegende Ermittlung des Gasverbrauchs unserer Meinung nach aus.

In ioBroker müssen jetzt nur die Impulse erfasst und ein virtueller Zählerstand hochgezählt werden:

ioBroker Blockly Script für Gaszähler

ioBroker Blockly Script für Gaszähler

Als ioBroker Script:

var zaehlerstand;
createState("Gaszaehler.Stand", function () {
});
on({id: "mihome.0.devices.magnet_158d000276c4e7.state"/*Is opened*/, change: "ne"}, function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  if (getState("mihome.0.devices.magnet_158d000276c4e7.state").val) {
    zaehlerstand = Math.round(getState("javascript.0.Gaszaehler.Stand").val*100)/100;
    zaehlerstand = (typeof zaehlerstand == 'number' ? zaehlerstand : 0) + 0.01;
    zaehlerstand = Math.round(zaehlerstand*100)/100;
    setState("javascript.0.Gaszaehler.Stand"/*Gaszaehler.Stand*/, zaehlerstand, true);
    console.log(zaehlerstand);
  }
});

Möchte man den Verbrauch stündlich, täglich, wöchentlich, monatlich und jährlich protokollieren, kann dieses Script dazu genutzt werden.