[ERLEDIGT] Gaszähler dreht sich schneller als MQTT sendet

Begonnen von chriss1006, 14 September 2022, 11:40:22

Vorheriges Thema - Nächstes Thema

chriss1006

Hallo zusammen,

ich habe heute meinen Gaszähler über einen Reed-Kontakt an einen Wemos D1 mini mit Tasmota angeschlossen. Ist auch alles konfiguriert und läuft soweit so gut. Ich übertrag die Impulse ein MQTT Device in FHEM und mit einem hourcounter zähle ich die "Ticks". Allerdings habe ich nun das Problem, dass Tasmota maximal alle 10 sekunden eine Aktualisierung des Status sendet, mein Gaszähler sich aber bei Volllast der Heizung innerhalb der 10 sekunden mehr als einmal dreht und somit natürlich der Hourcounter weniger zählen kann als sich der Gaszähler wirklich dreht.

Hat hier evtl. jemand eine Idee wie ich das lösen könnte?


chriss1006

Ich habe mir das durchgelesen, aber dafür reichen irgendwie meine Kenntnisse nicht, dass ich das umgesetzt bekomme.

Wenn ich das richtig verstehe müsste ich mir eine eigene Tasmota binary kompilieren und dort code ändern und zusätzlichen code aus einem anderen git hinzufügen.

Soetwas wollte ich eigentlich vermeiden...

DetlefR

Keine Angst. Das ist alles Standard.
In der Konfiguration, kannst du einen GPIO als Counter defienieren. Die Befehle gibst du einfach auf der Web Konsole ein.

chriss1006

Ich habe es versucht, aber der Counter bewegt sich nicht. :-(

DetlefR

Schade.

Bei mir läuft das schon eine geraume Weile an der Wasseruhr.

sledge

Counter ist definitiv der richtige Weg. Läuft hier mit einer Gasuhr mit Reed-Kontakt seit Jahren - Genauigkeit liegt bei >95% (was mir genügt).

Geht Counter bei Dir "gar nicht" - auch nicht auf dem Test-Setup?
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

chriss1006

Also ich habe es so gemacht wie beschrieben im Thread.

Ich nehme in Tasmota einen Freien GPIO und stelle da Counter ein. Auf dem GPIO auf dem der Reed liegt stelle ich switch ein. Beides mit der Zahl 1 am Ende.

Nach meiner Vorstellung sollte dann bei jedem anziehen des Reedkontaktes der Counter 1 hoch zählen. Es passiert aber einfach gar nichts.


Muss man den Counter irgendwie anders mit dem GPIO verknüpfen? Irgendwie muss der Counter ja gesagt bekommen auf was er reagieren soll. bzw was er zählen soll, oder nicht?

DetlefR

Der Counter und der Reed sollten schon auf dem gleichen GPIO liegen.

Die Nummer verbindet nur, wenn überhaupt, Relais mit Button automatisch.

chriss1006

O.k., evtl. war das mein Fehler.

Hab es jetzt aber hinbekommen mit einem Tipp aus einem anderen Forum.

Anbei der Code in der Tasmota Console:

switchmode1 1
counter1 <Geben Sie hier den Anfangszählerwert ein>
rule1 on switch1#state=0 do Counter1 +1 endon
rule1 5
rule1 1

DetlefR

#10
Das geht auch.  ;)

Was mich noch interessieren würde. Kommt der Switch ohne MQTT mit dem zählen hinterher.