ich will das Thema Gaspreise nicht thematisieren, dafür gibt es ja den parallelen Thread. Aber um eine nerdige Note ins Thema reinzubringen: Ich habe einen kleinen ESP8266 Gaszähler-Sensor für den iobroker gebastelt. Ihr findet ihn hier, inklusive Aufbauanleitung.
Das hast du wirklich toll dokumentiert, Danke für deine Mühe! Ich habe bei mir ähnliches aufgebaut, als Sensor aber einen Zigbee Aqara Tür- und Fenstersensor genommen. Den musste ich aus dem Gehäuse holen und habe ihn dann genau in die Aussparung am Gaszähler kleben können.
Die Auswertung im ioBroker erfolgt bei mir mit einem Script, was auch das Entprellen macht.
var entpreller, zaehlerstand, timeout;
createState("Gaszaehler.Stand", function () {
});
entpreller = 0;
on({id: "deconz.0.Sensors.12.open"/OpenClose 12 open/, change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (entpreller == 0) {
// FALLS Entpreller AUS, dann los
entpreller = 1;
// Entpreller einschalten
if (getState("deconz.0.Sensors.12.open").val) {
zaehlerstand = Math.round(getState("javascript.0.Gaszaehler.Stand").val100)/100;
zaehlerstand = (typeof zaehlerstand == 'number' ? zaehlerstand : 0) + 0.01;
zaehlerstand = Math.round(zaehlerstand100)/100;
setState("javascript.0.Gaszaehler.Stand"/Gaszaehler.Stand/, zaehlerstand, true);
console.log(zaehlerstand);
}
}
// ODER Entpreller ist EIN, also Wartezeit
timeout = setTimeout(async function () {
entpreller = 0;
// Entpreller ausschalten
}, 2000);
});
Dreh und Angelpunkt ist die Funkversorgung am Gaszähler. Um das Zigbee bis dort hin zu bekommen, musste ich noch zwei Zigbee Steckdosen als Repeater kaufen. Trotzdem fehlen immer mal wieder ein paar Impulse und ich muss händisch nachtragen. Deine Lösung dürfte da deutlich zuverlässiger und damit empfehlenswerter sein.
Wer auf Influxdb und Grafana verzichten möchte, kann auch schon eine erste Auswertung innerhalb von IO Broker mit dem Adapter SourceAnalytix machen.
für den Gaspreis habe ich dann z.B. den Zählerverbrauch mit dem Umrechnungsfaktor "m3 in kw" und dem aktuellen Gaspreis multipliziert, dazu rechne ich noch den anteiligen Betrag der monatlichen Grundkosten. Das sieht dann so aus:
Das aktuelle System kann leider noch nicht mit Preiserhöhungen umgehen, da ich den Gaspreis fix in der Berechnungsformel hinterlegt habe. Wenn ich zum 1.11. neue Preise angebe, dann ändert sich auch rückwirkend die Preisberechnung. Dazu müsste man auch diese Werte im IOBroker tagesgerecht in der Datenbank mitführen.
Ich selber nutze für den Wasserzähler dieses Projeket mit einer ESP32 Cam. https://github.com/jomjol/AI-on-the-edge-device Das sollte auch mit anderen Zählern gut funktionieren wenn man eine passende Halterung hat/baut.
Ich selbst habe einen Gaszähler BK-G4. Die Gaszähler haben meistens an der letzten Stelle beim Nulldurchgang einen kleinen Magneten hängen. Somit wäre 1 Umlauf = 1 Liter. Ich bin dann hingegangen und habe mir aus dem Arduino Baukasten einen GY-271 HMC5883L (3-Achsen Kompassmodul) für kleines Geld geschossen. Der klemmt in der kleinen Aussparung beim Gaszähler und wir dann auf allen Achsen ausgelenkt wenn sich das Zählwerk dreht. Man muss nur einmal den Nulldurchgang definieren und dann einfach durchzählen. Da meine Homeautomation mit Openhab auf einem PI läuft und der in der Nähe hängt befeuert dieser den Kompass über die GPIO Pins mit Strom und die Daten werden per kleines Python Skript gezählt und per MQTT an Openhab gesendet.
Wenn Ihr noch einen Wasserzähler mit dieser kleinen halben silbernen Scheibe habt, dann könnt ihr z.B. TCRT5000 reflektierende IR Lichtschranke nutzen und die Durchläufe zählen. Ist auch jeweils 1Liter meistens.
Bei den D1mini usw. brauch man auch nicht viel selbst programmieren. Einfach Tasmota flashen und einen Schalter definieren und per MQTT über WLan alles zum MQTT Server schicken und dort auswerten oder direkt an der Weboberfläche anzeigen lassen.
Die TCRT5000 funktionieren auch bei den alten Stromzählern mit der drehenden Scheibe. Wenns rot wird dann zählt der Sensor hoch und es sind je nach Teilung x kWh. Bei den neuen Stromzählern einfach d1mini + Tasmota mit Widerstand und IR Diode dran. Sieht dann wie hier aus
Mann kann dann noch z.B. DS18B20 in den Heizungsrohren und Warmwasserbehältern verteilen und per 1-wire an einen d1mini oder so klemmen und hat auch direkt zum Gasverbrauch die Wärmeüberwachung.
Benutze auch im Iobroker.vis einen Aquara Türkontakt. Bis jetzt 100% akkurat. Dazu so ein Javascript zum rechnen (nicht von mir, schafft mein Hirn nicht ). Den Halter gibt es bei Thingiverse (suchen nach BK-G4). Gucke mir das zwar ab und zu in Influx.DB an aber finde es so übersichtlicher.
EIn interessanter Ansatz. Viele Zähler sind aber bereits für die Fernablesung vorbereitet. An der vorletzten oder letzten Rolle ist ein Permanentmagnet befestigt und dieser kann per Reed-Kontakt gemessen werden. Die fernablesbaren Gaszähler haben häufig unterhalb der Rolle eine Ausbuchtung an der ein Sensor montiert werden kann und diese Kontakte sind für teures Geld auch beim Netzbetreiber/Hersteller zu erwerben.
Der Mini arbeitet wie beschrieben, aber die Einträge erscheinen nicht im IOBroker.
Der Sensor erzeugt auf dem MQTT-Server die Datenpunkte
/gassensor_XXXXXX/counter Dieser Wert wird mit jedem Reed-Schaltvorgang an den MQTT-Broker versendet.
/gassensor_XXXXXX/perminuteusag Dieser Wert wird alle 60 Sekunden an den MQTT-Broker versendet.
Wie schon per PN versendet. Der Sensor wird in den ioBroker per "MQTT Broker/Client"-Adapter eingebunden, als Sonoff oder Shelly funktioniert es nicht.