FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Dr. Boris Neubert am 31 Mai 2022, 16:31:34

Titel: Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Dr. Boris Neubert am 31 Mai 2022, 16:31:34
Hallo,

demnächst kommt der Elektriker und arbeitet am Zählerschrank. Die Gelegenheit will ich nutzen, eine Lösung zur Messung des Gesamtstromverbrauchs des Hauses mit FHEM zu realisieren.

Verbaut ist ein dummer Zähler mit Ferraris-Scheibe, ein Austausch ist nicht absehbar. In einem anderen Haus hatte ich vor einigen Jahren einen Drehstromzwischenzähler von B+G e-tech (Eastron) verbaut und die Impulse aus dessen S0-Schnittstelle über einen Arduino mit einem kleinen Programm kumuliert und über ein schlichtes Protokoll mit ECMD an FHEM geschickt.

Ich will den Frickelgrad verringern und den Zähler (Zählerstand, Momentanleistung und weitere Parameter) direkt in FHEM auslesen. Geräte mit LAN- oder WLAN-Anbindung sind mir zu teuer. Ich will bei einem Budget für Hardware unter 100 € bleiben.

Als Lösung stelle ich mir einen Drehstromzwischenzähler mit Modbus über RS485 vor (SDM72DM-V2 von Eastron), der über ein ca. 10 Meter langes vierpoliges Kabel zu einem RS485/USB-Tranceiver am Hausautomationsserver geführt wird. Auf FHEM soll das Modbus-Modul zu Einsatz kommen.


Viele Grüße
Boris
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: isy am 31 Mai 2022, 17:27:57
Moin Boris,
im Photovoltaik Forum wurde mir  der "Eastron SDM630 Modbus" empfohlen. Das ist vermutlich ein ähnliches Teil, was du beschrieben hast.
Allerdings dort im Forum zur Integration mit SolarView (nutze ich zur Photovoltaik).

Gruß Helmut
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Dr. Boris Neubert am 31 Mai 2022, 18:03:31
Zitat von: isy am 31 Mai 2022, 17:27:57
im Photovoltaik Forum wurde mir  der "Eastron SDM630 Modbus" empfohlen. Das ist vermutlich ein ähnliches Teil, was du beschrieben hast.

Danke, Helmut! Das Teil ist für zwei Wege gedacht und geeicht. Das ist mehr als ich brauche.
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Dr. Boris Neubert am 31 Mai 2022, 18:06:20
Ergänzung: ich werde wohl statt eines RS485/USB-Transceivers auf den RS485/Ethernet-Transceiver von Waveshare i.V.m. 12V-Netzteil für Hutschiene gehen. Ich muss dann zwar immer noch das Ethernet-Kabel zum Zählerkasten legen, aber kann die Logik in den Transceiver legen, der zwischen Modbus und MQTT übersetzen kann. Außerdem hoher Spielwert ;-), der rechtfertigt, das Budget etwas zu überschreiten.
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Nobbynews am 31 Mai 2022, 18:34:32
Zitat von: isy am 31 Mai 2022, 17:27:57
im Photovoltaik Forum wurde mir  der "Eastron SDM630 Modbus" empfohlen.

Der SDM 72-V2 ist auch ein Zweirichtungszähler. Ich habe den bei mir als Zwischenzähler für den Herd eingebaut.
Weiterhin habe ich ein Modul dafür erstellt:
https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182 (https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182)
Ich bin bisher begeistert.
Einbindung ist total einfach. Als Adapter zum Pi habe ich z.B:
https://www.makershop.de/module/kommunikation-module/rs485-adapter/ (https://www.makershop.de/module/kommunikation-module/rs485-adapter/)
Zunächst erst einmal Modbus definieren:
defmod ModBusLine Modbus /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0@9600
attr ModBusLine room 10_I/O-Geräte

setstate ModBusLine opened
setstate ModBusLine 2022-05-18 12:58:08 state opened


Und dann noch den Zähler definieren:
defmod SDM72 ModbusSDM72DMV2 1 30

Damit hat man z.B. folgende Readings:
setstate SDM72 2022-05-31 18:29:18 Current_Avr__A 0.0 A
setstate SDM72 2022-05-31 18:29:47 Current_L1__A 0.00 A
setstate SDM72 2022-05-31 18:29:47 Current_L2__A 0.02 A
setstate SDM72 2022-05-31 18:29:47 Current_L3__A 0.02 A
setstate SDM72 2022-05-31 18:29:49 Current_N__A 0.02 A
setstate SDM72 2022-05-31 18:29:48 Current_Sum__A 0.04 A
setstate SDM72 2022-03-26 16:42:04 DOffset 0
setstate SDM72 2022-05-30 23:59:00 DTage 65
setstate SDM72 2022-05-31 18:28:48 Energy_export__kWh 0.001 kWh
setstate SDM72 2022-05-31 18:28:48 Energy_import__kWh 72.076 kWh
setstate SDM72 2022-05-31 18:28:50 Energy_total__kVArh 205.927 kVArh
setstate SDM72 2022-05-31 18:28:50 Energy_total__kWh 72.077 kWh
setstate SDM72 2022-05-31 18:28:48 Frequency__Hz 49.93 Hz
setstate SDM72 2022-05-30 23:59:00 Gesamtverbrauch 71.473
setstate SDM72 2022-05-18 12:59:38 KPPA_authorization not_authorized
setstate SDM72 2022-05-18 12:59:39 Modbus_Node_adr 1
setstate SDM72 2022-05-18 12:59:38 Modbus_Parity_Stop 1stop.bit_no.parity
setstate SDM72 2022-05-18 12:59:39 Modbus_Speed__baud 9600
setstate SDM72 2022-05-31 18:28:48 PowerFactor 0.8
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L1 0.0
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L2 0.8
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L3 0.6
setstate SDM72 2022-05-31 18:29:47 Power_L1__VA 0.0 VA
setstate SDM72 2022-05-31 18:29:47 Power_L1__VAr 0.0 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L1__W 0 W
setstate SDM72 2022-05-31 18:29:47 Power_L2__VA 2.1 VA
setstate SDM72 2022-05-31 18:29:47 Power_L2__VAr 0.0 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L2__W 2 W
setstate SDM72 2022-05-31 18:29:47 Power_L3__VA 4.3 VA
setstate SDM72 2022-05-31 18:29:47 Power_L3__VAr 3.7 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L3__W 2 W
setstate SDM72 2022-05-31 18:29:48 Power_Sum__VA 5.8 VA
setstate SDM72 2022-05-31 18:29:48 Power_Sum__VAr 3.6 VAr
setstate SDM72 2022-05-31 18:29:48 Power_Sum__W 4.6 W
setstate SDM72 2022-05-18 12:59:40 Pulse_1_Energy_Type TotalActiveEnergy
setstate SDM72 2022-05-18 12:59:39 Pulse_constant 1000imp/kWh
setstate SDM72 2022-05-18 12:59:41 System_Meter_Code 00890000
setstate SDM72 2022-05-18 12:59:39 System_Password 1000
setstate SDM72 2022-05-18 12:59:38 System_Pulse_Width__ms 35 ms
setstate SDM72 2022-05-18 12:59:41 System_Serial_Nr 0
setstate SDM72 2022-05-18 12:59:38 System_Type 3p4w
setstate SDM72 2022-05-18 12:59:40 Time__bl 60 min
setstate SDM72 2022-05-30 23:59:00 VDurchschnitt 1.09958
setstate SDM72 2022-05-30 23:59:00 Verbrauch 1.14900
setstate SDM72 2022-05-30 23:59:00 Verbrauch_gestern 70.324
setstate SDM72 2022-05-31 18:29:19 Voltage_Avr_L_to_L__V 404.6 V
setstate SDM72 2022-05-31 18:29:18 Voltage_Avr__V 233.6 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L1__V 234.1 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L1_to_L2__V 405.6 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L2__V 232.8 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L2_to_L3__V 403.2 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L3__V 234.0 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L3_to_L1__V 405.0 V
setstate SDM72 2022-05-31 18:28:50 energyTotal 72.077
setstate SDM72 2022-05-31 18:29:48 power.av 4.614
setstate SDM72 2022-05-31 18:29:48 power_neu 4.6
setstate SDM72 2022-05-18 12:59:40 scrollDisplaytime 5 sec
setstate SDM72 2022-05-18 12:58:08 state opened


Norbert
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Papa Romeo am 31 Mai 2022, 19:37:25
Zitat von: Dr. Boris Neubert am 31 Mai 2022, 16:31:34
... oder WLAN-Anbindung sind mir zu teuer. Ich will bei einem Budget für Hardware unter 100 € bleiben

Hallo Boris,

knapp über 100 Euro ... Shelly 3em

LG
Papa Romeo
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Gisbert am 07 Juni 2022, 17:39:55
Hallo Papa Romeo,

hast du deinen Shelly 3EM bereits verbaut?
Meiner läuft seit gestern vormittag, und ich bekomme die Daten per MQTT in Fhem hinein, teilweise im Sekundentakt. Für das Statistikmodul ElectricityCalculator ist das deutlich zu häufig; Werte, die in der Zwischenzeit reinkommen werden laut commandref wohl verworfen. Mir ist auch aufgefallen, dass mein Server deutlich mehr ausgelastet ist mit dem neuen MQTT-Device, das ich für den Shelly definiert habe.

Wie bekommst du die Werte in Fhem hinein?

Viele​ Grüße​ Gisbert​
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Papa Romeo am 07 Juni 2022, 20:35:45
Hallo Gisbert,

hab ihn noch nicht verbaut. Er läuft noch im Testaufbau. Wird noch ne Weile dauern bis er dann da sitz wo er hinkommen soll. Ich warte im Moment noch auf den MPP-Tracker und dem Wechselrichter muss ich dann erst noch beibringen, dass er auch ohne "Netz" arbeiten darf. Sozusagen "Hybridfähig" machen.

LG
Papa Romeo

PS: Daten empfange ich im Moment über die Web-Oberfläche und MQTT.
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Gisbert am 07 Juni 2022, 21:05:49
Hallo Papa Romeo,

ich hab's jetzt mit dem Shelly-Modul gemacht, und dann werden die Messwerte im Modul ElectricityCalculator ausgewertet.
Hier meine Definitionen:
define myShelly3EM Shelly 192.168.xx.yy
setuuid myShelly3EM 629f7261-f33f-e986-529e-7b561afd5bb840ff
attr myShelly3EM event-on-change-reading .*
attr myShelly3EM group ElectricityCalculator
attr myShelly3EM icon measure_power
attr myShelly3EM interval 30
attr myShelly3EM model shelly3em
attr myShelly3EM room Network
attr myShelly3EM sortby 1
attr myShelly3EM stateFormat current power: [$name:total_power:r3] kW</br>voltage: [$name:Spannung] V</br>\
<div style='vertical-align: middle;; font-size: 85%'>[$name:Zeitstempel]</div></br>[$name:IPaddress]
attr myShelly3EM userReadings Zeitstempel {substr(ReadingsTimestamp($name,'power_0',''),0,19)}, \
total_power {(ReadingsNum($name,'power_0',0)+ReadingsNum($name,'power_1',0)+ReadingsNum($name,'power_2',0))/1000}, \
Spannung {round((ReadingsNum($name,'voltage_0',0)+ReadingsNum($name,'voltage_1',0)+ReadingsNum($name,'voltage_2',0))/3,1)}, \
total_energy {(ReadingsNum($name,'energy_0',0)+ReadingsNum($name,'energy_1',0)+ReadingsNum($name,'energy_2',0))/1000}, \
IPaddress {"<a href='http://192.168.xx.yy' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.xx.yy</a>"}

define myShelly3EMCalculator ElectricityCalculator myShelly3EM:total_energy.*
setuuid myShelly3EMCalculator 629f901a-f33f-e986-a2b8-7ea79b0d1c271145
attr myShelly3EMCalculator BasicPricePerAnnum 0
attr myShelly3EMCalculator Currency €
attr myShelly3EMCalculator DecimalPlace 3
attr myShelly3EMCalculator ElectricityCounterOffset 104668.31
attr myShelly3EMCalculator ElectricityKwhPerCounts 1
attr myShelly3EMCalculator ElectricityPricePerKWh 0.2567
attr myShelly3EMCalculator MonthOfAnnualReading 6
attr myShelly3EMCalculator MonthlyPayment 0
attr myShelly3EMCalculator ReadingDestination CalculatorDevice
attr myShelly3EMCalculator SiPrefixPower W
attr myShelly3EMCalculator group ElectricityCalculator
attr myShelly3EMCalculator room Network
attr myShelly3EMCalculator sortby 2
attr myShelly3EMCalculator stateFormat {'today: '.round(ReadingsVal($name,'myShelly3EM_total_energy_EnergyDay',''),1).' kWh</br>\
reading: '.substr(int(ReadingsVal($name,'myShelly3EM_total_energy_CounterCurrent','')),0,3).\
'.'.substr(int(ReadingsVal($name,'myShelly3EM_total_energy_CounterCurrent','')),3,3).\
'<span style="vertical-align: +4px;; font-size: 75%;;">'.\
substr(round(ReadingsVal($name,'myShelly3EM_total_energy_CounterCurrent','')\
-int(ReadingsVal($name,'myShelly3EM_total_energy_CounterCurrent','')),2),2,2).'</span> kWh</br>'.\
'<span style="vertical-align: +0px;; font-size: 85%;;">'.ReadingsVal('myShelly3EM','Zeitstempel','').'</span></br>'}


Viele Grüße Gisbert
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Papa Romeo am 07 Juni 2022, 21:58:19
Das Shelly-Modul hab ich gar nicht drauf, da alle meine Shelly´s, bis jetzt auf den 3EM, mit Tasmota oder eigener Soft laufen.

LG
Papa Romeo
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Dr. Boris Neubert am 08 Juni 2022, 09:37:32
Es gibt über die readingFn-Attribute (https://fhem.de/commandref.html#readingFnAttributes) die Möglichkeit, die Aktualisierungsrate zu drosseln (event-aggregator, event-min-interval).
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Gisbert am 09 Juni 2022, 14:33:00
Zitat von: Dr. Boris Neubert am 08 Juni 2022, 09:37:32
Es gibt über die readingFn-Attribute (https://fhem.de/commandref.html#readingFnAttributes) die Möglichkeit, die Aktualisierungsrate zu drosseln (event-aggregator, event-min-interval).

Hallo Boris,

diese Option klingt interessant, überfordert mich etwas. Kann ich deinen Thread missbrauchen, um eine Lösung zu finden? Falls, dann melde ich mich hier wieder.

Der Shelly 3EM mit den weiter oben angegeben Definitionen mit dem ElectricityCalculator läuft sehr schön. Ich stelle gegenüber einem analogen Stromzähler eine Abweichung von ca. 0.4% fest. Die Frage ist, ob der analoge Zähler genauer ist als der Shelly 3EM.

Viele​ Grüße​ Gisbert​
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Dr. Boris Neubert am 09 Juni 2022, 16:18:34
Zitat von: Gisbert am 09 Juni 2022, 14:33:00
diese Option klingt interessant, überfordert mich etwas. Kann ich deinen Thread missbrauchen, um eine Lösung zu finden? Falls, dann melde ich mich hier wieder.

Die Überschrift des Threads gibt das her :-) Also kannst Du den Thread für Deine Fragen gebrauchen.

Übrigens:
Nachdem ich mit dem Messstellenbetreiber geklärt habe, dass ich auch schon sofort (und nicht erst 2032 ;-) einen smarten Zähler bekommen kann, warte ich noch die Rückmeldung meines Elektrikers ab, welches Modell verbaut wird, damit ich die Anbindung an FHEM prüfen kann. Das wäre nämliche die cleverere Lösung im Vergleich zu einem eigenen Zwischenzähler mit Modbus über RS485.
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Papa Romeo am 09 Juni 2022, 21:32:30
Zitat von: Dr. Boris Neubert am 09 Juni 2022, 16:18:34
Das wäre nämliche die cleverere Lösung im Vergleich zu einem eigenen Zwischenzähler mit Modbus über RS485.

... wäre natürlich ganz klar die beste Option. Da dann die Daten des Versorgers und die Eigenen eigentlich identisch sind.

LG
Papa Romeo
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: LutzG am 28 September 2022, 02:08:31
Ich hätte dazu gern noch ein Problem, ???
Zitat von: Gisbert am 07 Juni 2022, 21:05:49
Hier meine Definitionen:

sobald ich diese Zeile von @Gisbert einfüge:
total_energy {(ReadingsNum($name,'energy_0',0)+ReadingsNum($name,'energy_1',0)+ReadingsNum($name,'energy_2',0))/1000}, \

hab ich im Log:
2022.09.28 01:14:16.684 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 18135) line 1.
2022.09.28 01:14:16.686 1: PERL WARNING: substr outside of string at (eval 18136) line 1.
2022.09.28 01:14:16.686 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 18136) line 1.
2022.09.28 01:14:16.687 1: PERL WARNING: substr outside of string at (eval 18137) line 1.


Auch mein Versuch mit "round" funktioniert nicht (hab nur 1 Phase, energy_0 ist gesammt):
total_energy {round((ReadingsNum($name,'energy_0',0))/1000,1)},

"energy_0" wird aktualisiert, da kann sie doch nicht das: "uninitialized value" sein, oder? ???

Ich verstehe nicht, was das Problem ist / wo ich noch suchen soll / kann. Könnte mir bitte jemand auf die Sprünge helfen?

Noch Mal "mein" Raw, es ist fast 1:1 von @Gisbert:
defmod myShelly3EM Shelly 192.168.178.5
attr myShelly3EM DbLogExclude .*
attr myShelly3EM comment https://forum.fhem.de/index.php/topic,127860.msg1224360.html#msg1224360
attr myShelly3EM event-on-change-reading .*
attr myShelly3EM group Test Shelly 3em WEB
attr myShelly3EM icon measure_power
attr myShelly3EM interval 30
attr myShelly3EM model shelly3em
attr myShelly3EM room Geräte->Shelly
attr myShelly3EM stateFormat Gesammt: [$name:total_energy:r3] kW</br>voltage: [$name:Spannung] V</br>\
<div style='vertical-align: middle;; font-size: 85%'>[$name:Zeitstempel]</div></br>[$name:IPaddress]
attr myShelly3EM userReadings Zeitstempel {substr(ReadingsTimestamp($name,'power_0',''),0,19)}, \
Spannung {round((ReadingsNum($name,'voltage_0',0)+ReadingsNum($name,'voltage_1',0)+ReadingsNum($name,'voltage_2',0))/3,1)}, \
total_energy {round((ReadingsNum($name,'energy_0',0))/1000,1)}, \
IPaddress {"<a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>"}

setstate myShelly3EM Gesammt: 90.800 kW</br>voltage: 235.3 V</br>\
<div style='vertical-align: middle;; font-size: 85%'>2022-09-28 01:54:56</div></br><a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>
setstate myShelly3EM 2022-09-28 01:54:56 IPaddress <a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>
setstate myShelly3EM 2022-09-28 01:54:56 Spannung 235.3
setstate myShelly3EM 2022-09-28 01:54:56 Zeitstempel 2022-09-28 01:54:56
setstate myShelly3EM 2022-09-28 00:05:23 cloud disabled
setstate myShelly3EM 2022-09-28 01:54:26 energy_0 90810.1
setstate myShelly3EM 2022-09-28 01:50:25 energy_1 4082.7
setstate myShelly3EM 2022-09-28 01:54:26 energy_2 13188.7
setstate myShelly3EM 2022-09-28 00:05:23 firmware v1.12
setstate myShelly3EM 2022-09-28 00:57:41 network <html>connected to <a href="http://192.168.178.5">192.168.178.5</a></html>
setstate myShelly3EM 2022-09-28 01:54:56 power_0 276.25
setstate myShelly3EM 2022-09-28 00:46:27 power_1 0
setstate myShelly3EM 2022-09-28 01:54:56 power_2 3.93
setstate myShelly3EM 2022-09-28 00:08:24 relay off
setstate myShelly3EM 2022-09-28 00:57:41 state OK
setstate myShelly3EM 2022-09-28 01:54:56 total_energy 90.8
setstate myShelly3EM 2022-09-28 00:26:31 total_power 0.30078
setstate myShelly3EM 2022-09-28 01:54:56 voltage_0 235.29
setstate myShelly3EM 2022-09-28 01:54:56 voltage_1 235.3
setstate myShelly3EM 2022-09-28 01:54:56 voltage_2 235.31


Vielen Dank schon Mal!
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Gisbert am 28 September 2022, 08:57:15
Hallo Lutz,

schau dir Mal diese Zeile an:
total_energy {round((ReadingsNum($name,'energy_0',0))/1000,1)},
Ein Klammerpaar um ReadingsNum ist meiner Meinung nach zuviel; keine Ahnung, ob es daran liegt.

Du kannst jede Definition einzeln in die Fhem-Kommandzeile eingeben, also alles, was zwischen  den geschweiften Teile steht (inkl. der {}) und $name durch den Devicenamen ersetzen (in Hochkomma). Damit müsstet du rausfinden können, ob das gewünschte Ergebnis oder ein Fehler ausgespuckt wird.

Viele Grüße Gisbert
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: LutzG am 28 September 2022, 23:52:56
Hallo Gisbert,

vielen Dank für die schnelle Antwort!
Zitat von: Gisbert am 28 September 2022, 08:57:15
schau dir Mal diese Zeile an:
total_energy {round((ReadingsNum($name,'energy_0',0))/1000,1)},

Ich habe viele Varianten ausprobiert, auch noch deinen Vorschlag:
total_energy {round(ReadingsNum($name,'energy_0',0)/1000,1)},
Sobald ich total_energy eintrage, bekomme ich die Fehlermeldung. Meine Vermutung ist, dass 'energy_0' keinen Inhalt hat oder nicht gelesen werden kann?  :-\ 'energy_0' wird aber regelmäßig aktualisiert - ich verstehe es nicht.

In der Fhem-Kommandzeile:
{round((ReadingsNum('myShelly3EM','energy_0',0))/1000,3)}

bekomme ich einen Wert und keine Fehlermeldung im Log. (/1000,3 rundet jetzt auf 3 Nachkommastellen)

Herzliche Grüße,

Lutz
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: KölnSolar am 29 September 2022, 10:57:55
Hallo Lutz,

ich denke auch, dass das die Ursache ist. Log doch mal energy_0.

Grüße Markus
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: frank am 29 September 2022, 11:56:12
2022.09.28 01:14:16.686 1: PERL WARNING: substr outside of string at (eval 18136) line 1.
die substr fehler kommen doch sicherlich vom ersten userreading

attr myShelly3EM userReadings Zeitstempel {substr(ReadingsTimestamp($name,'power_0',''),0,19)}, \

warum hier überhaupt substr?
und wenn, sollte der defaultwert auch die passende länge haben und nicht '' sein.
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: LutzG am 29 September 2022, 20:15:28
Zitat von: frank am 29 September 2022, 11:56:12
warum hier überhaupt substr?
und wenn, sollte der defaultwert auch die passende länge haben und nicht '' sein.

Danke, ich glaub das wars! Keine Fehlermeldung mehr.  :D

Hier mein funktionierendes Device noch Mal als Raw:
defmod myShelly3EM Shelly 192.168.178.5
attr myShelly3EM DbLogExclude .*
attr myShelly3EM comment https://forum.fhem.de/index.php/topic,127860.msg1224360.html#msg1224360
attr myShelly3EM event-on-change-reading .*
attr myShelly3EM group Test Shelly 3em WEB
attr myShelly3EM icon measure_power
attr myShelly3EM interval 30
attr myShelly3EM model shelly3em
attr myShelly3EM room Geräte->Shelly
attr myShelly3EM stateFormat Gesammt: [$name:total_energy:r3] kW</br>voltage: [$name:Spannung] V</br>\
<div style='vertical-align: middle;; font-size: 85%'>[$name:Zeitstempel]</div></br>[$name:IPaddress]
attr myShelly3EM userReadings Zeitstempel {ReadingsTimestamp($name,'power_0','0')}, \
Spannung {round((ReadingsNum($name,'voltage_0',0)+ReadingsNum($name,'voltage_1',0)+ReadingsNum($name,'voltage_2',0))/3,1)}, \
total_energy {round(ReadingsNum($name,'energy_0',0)/1000,3)}, \
IPaddress {"<a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>"}

setstate myShelly3EM Gesammt: 107.276 kW</br>voltage: 234.9 V</br>\
<div style='vertical-align: middle;; font-size: 85%'>2022-09-29 20:11:09</div></br><a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>
setstate myShelly3EM 2022-09-29 20:11:09 IPaddress <a href='http://192.168.178.5' style='color: green;; text-decoration: underline;;' target='_blank' rel='noopener noreferrer'>http://192.168.178.5</a>
setstate myShelly3EM 2022-09-29 20:11:09 Spannung 234.9
setstate myShelly3EM 2022-09-29 20:11:09 Zeitstempel 2022-09-29 20:11:09
setstate myShelly3EM 2022-09-28 00:05:23 cloud disabled
setstate myShelly3EM 2022-09-29 20:11:09 energy_0 107275.7
setstate myShelly3EM 2022-09-29 20:04:07 energy_1 5424.5
setstate myShelly3EM 2022-09-29 20:11:09 energy_2 16830.9
setstate myShelly3EM 2022-09-28 00:05:23 firmware v1.12
setstate myShelly3EM 2022-09-29 19:58:24 network <html>connected to <a href="http://192.168.178.5">192.168.178.5</a></html>
setstate myShelly3EM 2022-09-29 20:11:09 power_0 2809.32
setstate myShelly3EM 2022-09-29 19:34:01 power_1 0
setstate myShelly3EM 2022-09-29 20:11:09 power_2 2091.39
setstate myShelly3EM 2022-09-28 00:08:24 relay off
setstate myShelly3EM 2022-09-29 19:58:36 state OK
setstate myShelly3EM 2022-09-29 20:11:09 total_energy 107.276
setstate myShelly3EM 2022-09-28 00:26:31 total_power 0.30078
setstate myShelly3EM 2022-09-29 20:11:09 voltage_0 234.92
setstate myShelly3EM 2022-09-29 20:11:09 voltage_1 234.93
setstate myShelly3EM 2022-09-29 20:11:09 voltage_2 234.94


Vielen Dank an Alle!

Herzliche Grüße,

Lutz
Titel: Antw:Drehstromzwischenzähler in FHEM integrieren
Beitrag von: LutzG am 29 September 2022, 21:27:25
Kleine Schönheitskorrektur, in "DEF" steht ja die IP. Damit man die bei Änderung nicht mehrmals ändern muss, hab ich "IPaddress" geändert:
IPaddress {"<a href='http://".InternalVal($name, 'DEF','none')."' style=\'color: green\;;;; text-decoration: underline;;;;\' target=\'_blank\' rel=\'noopener noreferrer\'>IP: ".InternalVal($name, 'DEF','none')."</a>"}\

Nochmal Danke an alle!
Titel: Aw: Drehstromzwischenzähler in FHEM integrieren
Beitrag von: Mnl am 06 Mai 2023, 15:24:49
Zitat von: Nobbynews am 31 Mai 2022, 18:34:32
Zitat von: isy am 31 Mai 2022, 17:27:57im Photovoltaik Forum wurde mir  der "Eastron SDM630 Modbus" empfohlen.

Der SDM 72-V2 ist auch ein Zweirichtungszähler. Ich habe den bei mir als Zwischenzähler für den Herd eingebaut.
Weiterhin habe ich ein Modul dafür erstellt:
https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182 (https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182)
Ich bin bisher begeistert.
Einbindung ist total einfach. Als Adapter zum Pi habe ich z.B:
https://www.makershop.de/module/kommunikation-module/rs485-adapter/ (https://www.makershop.de/module/kommunikation-module/rs485-adapter/)
Zunächst erst einmal Modbus definieren:
defmod ModBusLine Modbus /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0@9600
attr ModBusLine room 10_I/O-Geräte

setstate ModBusLine opened
setstate ModBusLine 2022-05-18 12:58:08 state opened

Und dann noch den Zähler definieren:
defmod SDM72 ModbusSDM72DMV2 1 30
Damit hat man z.B. folgende Readings:
setstate SDM72 2022-05-31 18:29:18 Current_Avr__A 0.0 A
setstate SDM72 2022-05-31 18:29:47 Current_L1__A 0.00 A
setstate SDM72 2022-05-31 18:29:47 Current_L2__A 0.02 A
setstate SDM72 2022-05-31 18:29:47 Current_L3__A 0.02 A
setstate SDM72 2022-05-31 18:29:49 Current_N__A 0.02 A
setstate SDM72 2022-05-31 18:29:48 Current_Sum__A 0.04 A
setstate SDM72 2022-03-26 16:42:04 DOffset 0
setstate SDM72 2022-05-30 23:59:00 DTage 65
setstate SDM72 2022-05-31 18:28:48 Energy_export__kWh 0.001 kWh
setstate SDM72 2022-05-31 18:28:48 Energy_import__kWh 72.076 kWh
setstate SDM72 2022-05-31 18:28:50 Energy_total__kVArh 205.927 kVArh
setstate SDM72 2022-05-31 18:28:50 Energy_total__kWh 72.077 kWh
setstate SDM72 2022-05-31 18:28:48 Frequency__Hz 49.93 Hz
setstate SDM72 2022-05-30 23:59:00 Gesamtverbrauch 71.473
setstate SDM72 2022-05-18 12:59:38 KPPA_authorization not_authorized
setstate SDM72 2022-05-18 12:59:39 Modbus_Node_adr 1
setstate SDM72 2022-05-18 12:59:38 Modbus_Parity_Stop 1stop.bit_no.parity
setstate SDM72 2022-05-18 12:59:39 Modbus_Speed__baud 9600
setstate SDM72 2022-05-31 18:28:48 PowerFactor 0.8
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L1 0.0
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L2 0.8
setstate SDM72 2022-05-31 18:27:17 PowerFactor_L3 0.6
setstate SDM72 2022-05-31 18:29:47 Power_L1__VA 0.0 VA
setstate SDM72 2022-05-31 18:29:47 Power_L1__VAr 0.0 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L1__W 0 W
setstate SDM72 2022-05-31 18:29:47 Power_L2__VA 2.1 VA
setstate SDM72 2022-05-31 18:29:47 Power_L2__VAr 0.0 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L2__W 2 W
setstate SDM72 2022-05-31 18:29:47 Power_L3__VA 4.3 VA
setstate SDM72 2022-05-31 18:29:47 Power_L3__VAr 3.7 VAr
setstate SDM72 2022-05-31 18:29:47 Power_L3__W 2 W
setstate SDM72 2022-05-31 18:29:48 Power_Sum__VA 5.8 VA
setstate SDM72 2022-05-31 18:29:48 Power_Sum__VAr 3.6 VAr
setstate SDM72 2022-05-31 18:29:48 Power_Sum__W 4.6 W
setstate SDM72 2022-05-18 12:59:40 Pulse_1_Energy_Type TotalActiveEnergy
setstate SDM72 2022-05-18 12:59:39 Pulse_constant 1000imp/kWh
setstate SDM72 2022-05-18 12:59:41 System_Meter_Code 00890000
setstate SDM72 2022-05-18 12:59:39 System_Password 1000
setstate SDM72 2022-05-18 12:59:38 System_Pulse_Width__ms 35 ms
setstate SDM72 2022-05-18 12:59:41 System_Serial_Nr 0
setstate SDM72 2022-05-18 12:59:38 System_Type 3p4w
setstate SDM72 2022-05-18 12:59:40 Time__bl 60 min
setstate SDM72 2022-05-30 23:59:00 VDurchschnitt 1.09958
setstate SDM72 2022-05-30 23:59:00 Verbrauch 1.14900
setstate SDM72 2022-05-30 23:59:00 Verbrauch_gestern 70.324
setstate SDM72 2022-05-31 18:29:19 Voltage_Avr_L_to_L__V 404.6 V
setstate SDM72 2022-05-31 18:29:18 Voltage_Avr__V 233.6 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L1__V 234.1 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L1_to_L2__V 405.6 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L2__V 232.8 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L2_to_L3__V 403.2 V
setstate SDM72 2022-05-31 18:27:47 Voltage_L3__V 234.0 V
setstate SDM72 2022-05-31 18:29:19 Voltage_L3_to_L1__V 405.0 V
setstate SDM72 2022-05-31 18:28:50 energyTotal 72.077
setstate SDM72 2022-05-31 18:29:48 power.av 4.614
setstate SDM72 2022-05-31 18:29:48 power_neu 4.6
setstate SDM72 2022-05-18 12:59:40 scrollDisplaytime 5 sec
setstate SDM72 2022-05-18 12:58:08 state opened

Norbert

Super Norbert !

ich habe den SDM72-Zähler für meine Wärmepumpe eingebaut und das Modul, wie beschrieben in FHEM integriert.
Es hat Alles auf Anhieb funktioniert; nicht mal 1 h Arbeit.

Danke sehr

Michael