iTob hat geschrieben: 6. Mär 2026 15:52
Der Gaszähler hat keinen digitalen Ausgang. Er kann bei jeder Umdrehung einen reed-Kontakt auslösen.
Viel digitaler als ein Impulsausgang geht es nicht.
Du zählst Impulse, wobei ein Impuls einer vollen Umdrehung der letzten Stelle des Zählwerks entspricht, also üblicherweise 10 Litern Gas (die dritte Nachkommastelle zeigt Liter an, eine Umdrehung entspricht also 10 Liter)
Durch das tägliche Zurücksetzen des Zählers kannst Du (ohne zusätzlichen Aufwand) nur die tägliche Gasmenge anzeigen (und für den aktuellen Tag die seit 0 Uhr kumulierte Gasmenge).
Sinnvoller wäre vermutlich, den Zähler gar nicht, oder nur selten zurückzusetzen. Dazu muss der Zähler in BigInteger zählen, oder Long oder so was in der Richtung. Dafür kannst Du aber auch den aktuellen Zählerstand direkt im Arduino hinterlegen, und vorausgesetzt, der Impuls wird zuverlässig erkannt, erhältst Du die korrekte Zähleranzeige. Der Arduino braucht nur wenig Energie, Du kannst ihn also auch bequem mit einer Batterie puffern, so dass selbst bei einem längeren Stromausfall der Zählerstand nicht verloren geht, lediglich die zeitliche Auflösung funktioniert dann nicht, aber wenn der Strom wieder da ist (und der mqtt-Server und openHAB wieder laufen) bekommst Du den aktuellen Zählerstand übermittelt und alles passt.
Nun musst Du in openHAB nur den Zahlenwert mit everyChange persistieren und kannst danach ab dem ersten erfassten Zeitpunkt beliebige Zeiträume betrachten, also z.B. Monatsverbrauch letzter Februar verglichen mit Monatsverbrauch dieser Februar, oder auch den durchschnittlichen stündlichen Verbrauch der letzten 7 Tage usw.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.6 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte