ESPEasy PulseCounter -- Leistungszähler S0

Begonnen von sash.sc, 05 Februar 2017, 18:47:11

Vorheriges Thema - Nächstes Thema

Marlen

Ne, bin nicht "beratungsresistent".....ich hab an der Bridge eben nur GPIO 2 & 11 -15 herausgeführt. Und 11-14 sind schon belegt!

Und mehr GPIO's sind glaub ich auch nicht auf der Bridge!


Mitch

Zitat von: tpm88 am 05 Dezember 2017, 16:08:39
Ich berechne die momentane Leistung und den Zählerstand ( Gesamt KWh ) direkt im  ESP PulseCounter Device "S0_Strom" mit folgenden userReadings:


TotalKWh:Total.* monotonic { ReadingsVal("S0_Strom","Total",0)/120 },
currentPower:Time.* { 1000 * 3600 / ( 120 * ReadingsVal("S0_Strom","Time",20000) / 1000)}


Mein Zähler liefert 120 Impulse pro KWh, d.h. du mußt jeweis 120 durch 1000 ersetzen.

Hallo Tobias,

ich hänge mich hier mal dran.

Folgender Aufbau:
1. IR Lichtchranke an ESP
2. ESP liefert jede Minute den Count
3. Stromzähler hat 75U/kWh

Könntest Du mir mal bitte deine Formel näher erklären?

Ich habe mit gedacht, mit diesem Reading den Momentanverbrauch zu berechnen:
actual {sprintf("%.3f",ReadingsNum("ESPEasy_Stromzaehler","Count",0)*60/75);;;;}

Irgendwie blicke ich es nicht  :-[

und ich habe noch gas und Wasser vor mir...
FHEM im Proxmox Container

tpm88

Zitat von: Mitch am 22 Januar 2018, 22:26:18
Folgender Aufbau:
1. IR Lichtchranke an ESP
2. ESP liefert jede Minute den Count
3. Stromzähler hat 75U/kWh

Könntest Du mir mal bitte deine Formel näher erklären?

Meine Formel funktioniert nur unter folgenden Bedingungen:
- ESP PulseCounter Type: Delta/Total/Time
- Delay (sehr kurz), bei mir: 1s

=> dann ist sichergestellt, dass jeder Impuls sofort an FHEM übertragen wird ( d.h. es gilt stets COUNT=1 ). Im Reading Time erhalte ich also die Zeit in ms zwischen den letzten beiden Impulsen

Und das userReading, welches durch das Reading Time getriggert wird, berechnet dann für jeden Einzelimpuls über die Formel

currentPower:Time.* { 1000 * 3600 / ( 120 * ReadingsVal("S0_Strom","Time",20000) / 1000)}

daraus die momentane Leistung in Watt (W) bezogen auf meinen Zähler, der 120 Impulse pro kWh liefert.

Zitat
Ich habe mit gedacht, mit diesem Reading den Momentanverbrauch zu berechnen:
actual {sprintf("%.3f",ReadingsNum("ESPEasy_Stromzaehler","Count",0)*60/75);;;;}

Deine Formel basiert auf dem festen Intervall 60s und berechnet den Verbrauch eben gemittelt über 60 Sekunden. Spricht auch nichts dagegen.

Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Mitch

Danke, hat mir sehr geholfen.
Habe es jetzt mit deinem Input und einer Formel aus dem Web entsprechend umgebaut.
FHEM im Proxmox Container

smoudo

#19
Ich nutze den Ansatz mit State Format und UserReadings für meinen Gaszähler. Im Gegensatz zum Stromzähler läuft der nicht dauernd. Beim Errechnen des aktuellen Verbrauchs bleibt er auf dem letzten Wert stehen. gibt es eine Möglichkeit das reading nach Zeit X zu nullen?
mein Userreading:
Zaehlerstand monotonic {ReadingsVal("ESPEasy_ESP_Zaehler_Gas","Total",0)/100.0},
Momentanverbrauch:Time.* {ReadingsVal("ESPEasy_ESP_Zaehler_Gas","Time",0)/3600}


device liefert per espeasy alle 60 sek. die readings "Time", "Total" "Count"

Viele Grüße

Matze

Mitch

Nimm doch Count als Momentanverbrauch, dann geht das auch auf 0
FHEM im Proxmox Container

smoudo

unterliegt der Wert count auch dem 60 sek interval bis zur nullung?
Hab da meistens nur 0,1,2 oder 3 stehen was stellenweise Zu wenig wäre?

Mitch

Ja, der Count wird nach der Übertragung gelöscht.
Klar steht da nur 0,1,2 oder auch mal 3, sind ja die Umdrehungen.

Bei mir sieht das userreading so aus:
actual {sprintf("%.3f",ReadingsNum("ESPEasy_Gas2","Count",0)/100);;;;}

und dazu das Stateformat:
Momentanverbrauch: Count Liter/min. - actual m³/min.

Ich messe an der letzten Stelle, sprich 1x Count = 0,01 m3 = 1 Liter
FHEM im Proxmox Container

smoudo

Hallo Mitch,

ich habe jetzt mal testweise den Stromzähler mit der Formel versorgt. da kommen aber nur 19Watt raus.
Ich denke der zeit aspekt von 60 sek interval muss noch berücksichtigt werden oder?
Momentanverbrauch {ReadingsVal("ESPEasy_ESP_Zaehler_Strom","Count",0)/1000}

Was ist der Unterschied zwischen ReadingsVal und ReadingsNum ? ergebnis ist das selbe.

grüße

Matze

Mitch

Zitat von: smoudo am 24 Januar 2018, 20:02:58
Hallo Mitch,

ich habe jetzt mal testweise den Stromzähler mit der Formel versorgt. da kommen aber nur 19Watt raus.
Ich denke der zeit aspekt von 60 sek interval muss noch berücksichtigt werden oder?

Strom ist ja wieder etwas anderes, du hattest Gas geschrieben.
Strom wurde ja hier schon alles aufgezeigt.

Zitat von: smoudo am 24 Januar 2018, 20:02:58
Was ist der Unterschied zwischen ReadingsVal und ReadingsNum ? ergebnis ist das selbe.

Num für Zahlen, schau mal ins CommandRef
FHEM im Proxmox Container

smoudo

ich denke ich habs jetzt für den Strom
Momentanverbrauch {ReadingsVal("ESPEasy_ESP_Zaehler_Strom","Count",0)*60/1000}

Ja Strom ist anders. Aber da seh ich das ergebnis sofort :)


viele Grüße

Matze

smoudo

ergänzend mein stateFormat:

{sprintf(Momentanverbrauch: %.3f KW", (ReadingsVal($name, "Momentanverbrauch",0)) ) }

grüße

Matze

Mitch

Zitat von: smoudo am 24 Januar 2018, 20:16:18
ich denke ich habs jetzt für den Strom
Momentanverbrauch {ReadingsVal("ESPEasy_ESP_Zaehler_Strom","Count",0)*60/1000}

Ja Strom ist anders. Aber da seh ich das ergebnis sofort :)

Hatte ich doch in #17 geschrieben  ???

Das Ergebnis sehe ich auch sofort bei Gas  ;) und Wasser  ;D
FHEM im Proxmox Container

smoudo

mein thermchen läuft nicht so häufig  ;)

Mitch

meine auch nicht, hat damit ja auch nichts zu tun  ;)
Ich will ja das mir angezeigt wird, wenn Gas verbraucht wird
FHEM im Proxmox Container