Drehstromzwischenzähler in FHEM integrieren

Begonnen von Dr. Boris Neubert, 31 Mai 2022, 16:31:34

Vorheriges Thema - Nächstes Thema

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

LutzG

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
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy.
Intranet: J5005 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

KölnSolar

Hallo Lutz,

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

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

LutzG

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
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy.
Intranet: J5005 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

LutzG

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!
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy.
Intranet: J5005 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

Mnl

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
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/
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
CUL433, CUL868, JeeLink, Somfy, IT, GT-WT-01, GT-WT-02, Lacrosse, CUL_WS, Bravia, FritzBox, FritzDect, 1-wire, MQTT, BDKM, EnOcean, HUEDevice