Gaszähler mit Tasmota/NodeMCU

Begonnen von John, 03 August 2017, 23:26:09

Vorheriges Thema - Nächstes Thema

John

Ich habe eine NodeMCU mit Tasmota geladen und erfasse damit meinen Gasverbrauch.

Das funktioniert offensichtlich ausgezeichnet, da der Counter innerhalb von FHEM exakt mit dem physischen Gaszähler über Tage hinweg übereinstimmt.

* mit dem Elster Impulsnehmer IN-Z65 werden die Impulse des Gaszählers erfasst
* der schliessende Kontakt des Reed-Relais wird auf GPIO 4/D2 der NodeMCU gelegt
* die NodeMCU wird mit dem Tasmota-Image geflasht
* die Konfiguration wird entsprechend Bild B01 eingestellt
* der Parameter  CounterDebounce wird auf 3200 gestellt; damit erreicht man dass nur das Schliessen und nicht auch das Öffnen des Kontaktes gezählt wird
* in FHEM wird ein passendes MQTT_DEVICE eingerichtet
* die JSON-Werte lassen sich mit expandJSON in die gewünschten Readings extrahieren
* ein HOURCOUNTER übernimmt das Zählen der Count-Ereignisse
* hier werden noch die UserReadings für die Verbräuche angelegt  (1 Count = 0.01 m2)
* diese werden aufgezeichnet und können somit in Charts dargestellt werden (siehe B02)

* anbei noch die Darstellung B03 vom Impulsnehmer
* B04 zeigt die Verteilerdose, in der die NodeMCU verbaut ist. linkes Kabel zum Impulsaufnehmer, rechtes Kabel ist die Spannungsversorgung
* ich habe zusätzlich noch einen DHT22 (Temperatur/Feuchte) und einen Bewegungsmelder integriert, aber dies eher zum Evaluieren

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

kleines-licht

Hallo John,
Habe gleiches Setup. Wärst Du vielleicht so nett, deine HourCounter-Definition zu posten ?
Danke

John


Zitatdefmod CN.Gas HourCounter Sonoff_Counter:count:.*
attr CN.Gas event-min-interval tick.*:0,.*:3600
attr CN.Gas event-on-change-reading .*
attr CN.Gas room Energy
attr CN.Gas stateFormat Counter:countsOverall Cons.Day:appConsumptionPerDayTemp
attr CN.Gas userReadings appConsumptionPerDayTemp:countsPerDay.* {ReadingsNum($NAME,"countsPerDay",0)*0.01;;},\
appConsumptionPerHour:appCountsPerHour.* {ReadingsNum($NAME,"appCountsPerHour",0)*0.01;;},\
appConsumptionPerDay:appCountsPerDay.* {ReadingsNum($NAME,"appCountsPerDay",0)*0.01;;},\
appConsumptionPerWeek:appCountsPerWeek.* {ReadingsNum($NAME,"appCountsPerWeek",0)*0.01;;},\
appConsumptionPerMonth:appCountsPerMonth.* {ReadingsNum($NAME,"appCountsPerMonth",0)*0.01;;}
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

kleines-licht

Herzlichen Dank,
Da wäre ich nieeee drauf gekommen

kleines-licht

Hallo John,
Noch eine kleine Frage ?
Mein früherer Counter (ESPEASY) gab immer "0" und "1" aus. Damit kam der Hourcounter sehr gut zurecht.
Nun habe ich allerdings immer mehrere Impulse, deren Summe der TASMOTA im 5 min Rhytmus sendet.

Logfile :
2018-03-17_12:39:29 GasSensor sensor-counter1: 4409
2018-03-17_12:44:57 GasSensor sensor-counter1: 4420
2018-03-17_12:50:25 GasSensor sensor-counter1: 4421
2018-03-17_12:55:54 GasSensor sensor-counter1: 4437
2018-03-17_13:01:23 GasSensor sensor-counter1: 4441

Wenn ich deine Definition verwende, liest der Hourcounter aber nicht die absoluten Werte, sondern zählt nur die Anzahl der Events.
Mach ich was falsch, oder habe ich was übersehen ?

Vielen Dank,







John


Ich habe die Übertragung an MQTT (TelePeriod)  so  parametriert, daß HourCounter jede Änderung mitbekommt.

Der Hourcounter ist nicht dafür vorgesehen Zählerstände zu verarbeiten, sondern Ereignisse bzw. Impulse

20:31:25 CMD: TelePeriod
20:31:25 MQT: stat/sonoffCounter/RESULT = {"TelePeriod":"30"}


Der Gaszähler benötigt also deutlich länger als 30 Sekunden um einen weiteren Puls zu generieren.
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

kleines-licht

Das hat mir noch gefehlt.
Vielen Dank für die Erklärungen , damit kann ich die Konfiguration erfolgreich nachbauen.
Schönen Abend noch.

skycrack

Zitat von: John am 13 März 2018, 00:07:53

Hallo
tauchen die appConsumptionPerHour Userreadings bei dir unter den Readings mit auf?
Bei mir tun sie es leider nicht und ich weiß nicht warum.
MfG Rene

Heatseeker

Moin,

magst du nochmal was zum "CounterDebounce" schreiben, in der Tasmota Config finde ich dazu nix.

Macht es dir was aus, deine komplette Config hier zu posten?

Danke
Heatseeker

Gerold

CounterDebounce ist ein Tasmotakommando. Näheres dazu findest Du hier:

https://tasmota.github.io/docs/Commands/