Stromzähler S0 → ESP8266 mit ESPEasy → MQTT → FHEM

Begonnen von pink99panther, 30 November 2016, 23:33:50

Vorheriges Thema - Nächstes Thema

pink99panther

Hi,
habe bei mir den Pin auf Default stehen. Bei der stellung Input ist da glaube ich auch, ein Pullup aktiv.
Kleine Anmerkung: die Anzeige der Devices aktualisiert sich nicht alleine.
Um Zählergebnisse zu sehen Seite neu laden!

LG
p99p

B.Stromberg

Danke Jungs für die Rückantworten! :)

Das mit Default und Input habe ich jetzt so noch nicht ausprobiert.

Bin gespannt, was dabei herauskommt, wenn der ESP am Zähler hängt...

Ja, dass ich erst F5 drücken muss um Ergebnisse zu sehen hatte ich schon gemerkt.

Parallel hatte ich auch Tasmota installiert, da kam dann beim Zählen eine ziemliche Katastropher heraus.
Kann also durchaus sein, das Espeasy den internen Widerstand default (oder per Option "input") nutzt und Tasmota nicht.

Bin zumindest soweit erst einmal happy, dass sich überhaupt was getan hat.
Man schlägt sich die Nacht um die Ohren und hat nicht einmal einen kleinen Erfolg...
Dann zweifelt man schon an sich selbst.

B.Stromberg

Zitat von: pink99panther am 25 Mai 2020, 10:46:37
Hi,
habe bei mir den Pin auf Default stehen. Bei der stellung Input ist da glaube ich auch, ein Pullup aktiv.
Kleine Anmerkung: die Anzeige der Devices aktualisiert sich nicht alleine.
Um Zählergebnisse zu sehen Seite neu laden!

LG
p99p

So, ich habe nun meinen S0 Stromzähler eingebaut.

Zählen tut dieser (Bild zähler1)

Über Mqtt kommen auch Werte:

Client mosqsub|2668-ubuntuOSca received PUBLISH (d0, q0, r0, m0, 'Stromcount/Watt/Count', ... (4 bytes))
Stromcount/Watt/Count 0.00
Client mosqsub|2668-ubuntuOSca received PUBLISH (d0, q0, r0, m0, 'Stromcount/Watt/Total', ... (6 bytes))
Stromcount/Watt/Total 228.00
Client mosqsub|2668-ubuntuOSca received PUBLISH (d0, q0, r0, m0, 'Stromcount/Watt/Time', ... (8 bytes))
Stromcount/Watt/Time 80264.00


Allerdings wird in FHEM nichts gezählt (Anhang readings)

Wo ist der Denkfehler?

Hier der Auszug aus meiner fhem.cfg

define PulsStrom MQTT_DEVICE
setuuid PulsStrom 5ed169a0-f33f-0855-ba07-abaf32c92accd2d8
attr PulsStrom IODev myBroker
attr PulsStrom stateFormat transmission-state
attr PulsStrom subscribeReading_Count /Stromcount/Watt/Count
attr PulsStrom subscribeReading_Time /Stromcount/Watt/Time
attr PulsStrom subscribeReading_Total /Stromcount/Watt/Total
define Strom dummy
setuuid Strom 5ed16a6f-f33f-0855-72ea-83c71f62c8325150
attr Strom event-on-change-reading StromverbrauchStd,StromverbrauchTag,zaehler_jetzt
attr Strom readingList StromverbrauchStd StromverbrauchTag zaehler_jetzt
attr Strom room Technik
attr Strom userReadings zaehler_jetzt:StromverbrauchTag.* monotonic {ReadingsVal($name,'StromverbrauchTag',0)}
define StromverbrNoti notify PulsStrom {\
my $StromUmlaufzeit = ReadingsVal("PulsStrom","Time","0") / 1000;;\
my $count = ReadingsVal("PulsStrom","Count","0");;\
my $StromProStd=0;;\
if ($StromUmlaufzeit > 0){\
$StromProStd=3.6/$StromUmlaufzeit;;\
}\
my $StromProStdRounded=0;;\
if($count > 0){\
$StromProStdRounded=int(1000 * $StromProStd + 0.5) / 1000;;\
}\
my $StromProTag = ReadingsVal("PulsStrom","Total","0") / 1000;;\
fhem("set Strom StromverbrauchStd $StromProStdRounded");;;;\
fhem("set Strom StromverbrauchTag $StromProTag");;;;\
}
setuuid StromverbrNoti 5ed16b02-f33f-0855-94fe-5555d49cb8472e72
define ESP_reboot at *00:00:00 { system "wget -O /dev/null -q 192.168.2.70/?cmd=reboot";; }
setuuid ESP_reboot 5ed16b4f-f33f-0855-4b71-2046732e50043a1d
define FileLog_Stromverbrauch FileLog ./log/Stromverbrauch-%Y-%m.log Strom:StromverbrauchStd:.*|Strom:StromverbrauchTag:.*|Strom:zaehler_jetzt:.*
setuuid FileLog_Stromverbrauch 5ed16b75-f33f-0855-b82c-56f84cb38b6e1c8f
define Stromvervbauch readingsGroup Strom:zaehler_jetzt Strom:StromverbrauchStd
setuuid Stromvervbauch 5ed16b8d-f33f-0855-7fbd-5ec2fb0f5ebef72c
attr Stromvervbauch mapping {"zaehler_jetzt" => "Zählerstand", "StromverbrauchStd" => "Momentanverbrauch"}
attr Stromvervbauch nameStyle style="font-weight:bold"
attr Stromvervbauch notime 1
attr Stromvervbauch style style="font-size:20px"
attr Stromvervbauch valueFormat {zaehler_jetzt => "%.3f KW/h", StromverbrauchStd => "%.3f KW/h"}
attr Stromvervbauch valueStyle style="text-align:right"





Otto123

Was zeigt denn dein Eventmonitor bei diesem Filter? PulsStrom.*
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

Zitat von: Otto123 am 29 Mai 2020, 22:59:09
Was zeigt denn dein Eventmonitor bei diesem Filter? PulsStrom.*

Oh hallo Otto :)

ähm
Da kommt gar nichts...

Otto123

Na dann kann da auch kein notify gehen. ;)

Dann würde ich sagen musst Du beim Gerät PulsStrom weitersuchen, das muss für Dein Konstrukt Events werfen.

ich kenn mich allerdings mit MQTT_DEVICE nicht aus, hab nur MQTT2...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

Der "/" war der Übeltäter

attr PulsStrom subscribeReading_Count Stromcount/Watt/Count
attr PulsStrom subscribeReading_Time Stromcount/Watt/Time
attr PulsStrom subscribeReading_Total Stromcount/Watt/Total


vorher war es so:

attr PulsStrom subscribeReading_Count /Stromcount/Watt/Count
attr PulsStrom subscribeReading_Time /Stromcount/Watt/Time
attr PulsStrom subscribeReading_Total /Stromcount/Watt/Total



B.Stromberg

Eine Frage hätte ich allerdings noch.

Gibt es die Möglichkeit den Zählerstand anzupassen?

Otto123

Du meinst den kontinuierlichen Zählerstand? Ich weiß jetzt nicht welches Reading es bei Dir  ist, aber ich mach das bei mir einfach mit setreading Zählerstand aktuellerWert

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

Ich meinte den Zählerstand des Drehstromzählers...
Um diesen mit FHEM "gleich" zu haben.


Otto123

Meinte ich auch.
Du musst einfach ein kontinuierlich zählendes Reading der Impulse machen (monotonic)
Das setzt Du mit setreading auf den aktuellen Wert, dein Impuls Zähler zählt dann weiter.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

Aaaaah....
Wieder einmal danke an dich Otto!

Wäre dann quasi bei mir:

setreading Strom zaehler_jetzt x.x

Jetzt müsste das nur noch mit dem aktuellen Verbrauch in Watt implementiert werden.

Habe das mit der Variable "time" noch nicht so ganz kapiert.

Time wäre hier der aktuelle Verbrauch, wenn ich den Wert durch 1000 (die Impulse pro KW bei meinem Zähler) Teile?


Otto123

Aber time klingt nach etwas anderem.
Das muss ja dann die Zeit zwischen den Impulsen sein? Damit kannst Du die aktuelle Leistung errechnen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

B.Stromberg

#133
Ja genau...

Guuut, das Thema hattest du hier sogar schon mal.

Zitat
Wenn Du momentan 1 kW angeschlossen hast und das für eine Stunde, dann hast Du 1 kWh verbraucht und 1000 Impulse erzeugt.
Also 1000 Impulse in 3600 sec - die Zeit von 3,6 sec entspricht also 1000 Watt momentaner Leistung.
7,2 s entsprechen 500 Watt usw.
1,8 s entsprechen 2000 Watt.

Ist das hier auch anwendbar? Die Parameter sind ja die Gleichen.
In meinem Anhang oben habe ich einen Wert bei Time von 80490.
Das sind Millisekunden oder? Also rund 80 Sekunden.
(Zur kurzen Erläuterung, mein Wechselstromzähler hängt nur an meiner Wärmepumpe. Diese läuft zur Zeit nicht, also wohl nur Standby Strom)

Also müsste die Formel für den Momentanverbrauch ja so aussehen:

1000 x 3,6 / Wert von Time

= 1000 x 3,6 / 80490

Wäre dann der Wert in kW.

x 1000 wäre dann Watt?


Richtig?





Otto123

Der Zähler liefert 1000 Impulse pro kWh
Wenn Du 3000 Impulse hast, hast Du 3 kWh verbraucht.
Wenn diese 3000 Impulse in einer Stunde gezählt wurden/werden, hättest Du momentan 3 kW Leistung eingeschaltet.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz