Einbindung des EM 300 Smart Meter von B-control gelöst

Begonnen von zwehn, 21 April 2019, 00:39:34

Vorheriges Thema - Nächstes Thema

zwehn

Hallo zusammen,

nachdem schon einige hier gepostet hatten, dass eine Einbindung des EM 300 gewünscht wäre, habe ich dies nun über die JSON Schnittstelle gelöst.
Die Modbus Abfrage über fhem funktioniert in der Regel nicht, wenn parallel noch ein Wechselrichter über Modbus verbunden  ist.

Zur Zeit läuft es nur, wenn die Passwortabfrage im EM deaktiviert wurde, bzw kein Passwort gesetzt wurde.
Folgende Zeilen sind in fhem einzubinden (IP-Adresse muss angepasst werden):

define EnergyManager HTTPMOD http://192.168.28.83/mum-webservice/data.php 60
attr EnergyManager userattr get01JSON get01Name get02JSON get02Name get03JSON get03Name get04JSON get04Name getHeader1 reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name sid01Data sid01URL
attr EnergyManager enableCookies 1
attr EnergyManager getHeader1 Content-Type: application/json
attr EnergyManager reAuthRegex "authentication":false
attr EnergyManager reading01JSON 1-0:1.4.0*255
attr EnergyManager reading01Name Wirkleistung_Bezug_W
attr EnergyManager reading02JSON 1-0:1.8.0*255
attr EnergyManager reading02Name Wirkenergie_Bezug_Wh
attr EnergyManager reading03JSON 1-0:2.4.0*255
attr EnergyManager reading03Name Wirkleistung_Einspeisung_W
attr EnergyManager reading04JSON 1-0:2.8.0*255
attr EnergyManager reading04Name Wirkenergie_Einspeisung_Wh
attr EnergyManager room Energie
attr EnergyManager sid01Data " "
attr EnergyManager sid01URL http://192.168.28.83/start.php
define FileLog_EnergyManager FileLog ./log/EnergyManager-%Y-%m-%d.log  EnergyManager
attr FileLog_EnergyManager room Energie


Ich selbst benutze den Em 300 in Verbindung mit einem kostal plenticore Wechselrichter. Dieser bekommt vom em 300 zwar Daten und ist auch selbst über Modbus abrufbar, aber die Netzeinspeisung und der Netzbezug sind nicht  auslesbar.

Danke nochmal an amenomade, der mir bei der Authentifizierungsabfrage geholfen hat.
Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

Heimweh

da bist Du aber echt ehrgeizig dran geblieben... Ich hatte mich zu dem Thema Freitag noch bei Kostal darüber informiert. Den Wert gibt es anscheinend im Plenticore, allerdings nicht über Modbus abrufbar. Es gäbe wohl ein Openhab Modul welches es kann aber das bringt uns ja nicht weiter ... Toll - ich werde Deinen Code gleich heute Abend testen. Vielen Dank für Deine Mühe

Gesendet von meinem LYA-L29 mit Tapatalk

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

zwehn

#2
Freue mich, wenn Du nach der Einbindung Feedback geben könntest.
Mich verwirrt noch der Unterschied der nicht saldierten Gesamtdartellung von Bezug und Einspeisung, die mit der 2ten Maske des Em 300 zum Zählerstand Einspeisung Bezug abweichen.
Kannst Du Dir/mir den Unterschied erklären?
Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

Heimweh

#3
Hallo zwehn,

Dein Code spuckt was aus bei mir. Ich lasse aber morgen früh mal die Energiestoppuhr mitlaufen (im EM 300) und schreibe mir die Zählerstände auf,
dann kann ich Dir Feedback geben....

Aber toll das sich endlich der EM300 auslesen lässt! Danke für diese Arbeit!!!

Hier mal mein List:


Internals:
   .getList   
   .setList   
   .updateRequestHash 1
   BUSY       0
   DEF        http://192.168.178.75/mum-webservice/data.php 60
   FUUID      5cbcbd25-f33f-05e1-2e72-e9b0cf15aedbb64d
   Interval   60
   JSONEnabled 1
   LASTSEND   1555873250.03732
   LastAuthTry 2019-04-21 20:57:53
   MainURL    http://192.168.178.75/mum-webservice/data.php
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       EnergyManager
   NOTIFYDEV  global
   NR         1820
   NTFY_ORDER 50-EnergyManager
   STATE      ???
   TRIGGERTIME 1555873310.03573
   TRIGGERTIME_FMT 2019-04-21 21:01:50
   TYPE       HTTPMOD
   addr       http://192.168.178.75:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://192.168.178.75/mum-webservice/data.php
   header     Cookie: PHPSESSID=5ffa05dbeeee7c743566958d4114e7dc
   host       192.168.178.75
   httpheader HTTP/1.0 200 OK
X-Frame-Options: DENY
X-Content-Security-Policy: allow 'self'
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: application/json
Content-Length: 1402
Connection: close
Date: Sun, 21 Apr 2019 19:00:52 GMT
   httpversion 1.0
   hu_blocking 0
   hu_filecount 6
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /mum-webservice/data.php
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.178.75/mum-webservice/data.php
   value      0
   .attraggr:
   .attrminint:
   .readingParseList:
     01
     02
     03
     04
   HTTPCookieHash:
     PHPSESSID;/:
       Name       PHPSESSID
       Options    path=/
       Path       /
       Value      5ffa05dbeeee7c743566958d4114e7dc
   QUEUE:
   READINGS:
     2019-04-21 21:00:52   Wirkenergie_Bezug_Wh 1700807.1
     2019-04-21 21:00:52   Wirkenergie_Einspeisung_Wh 1785515.3
     2019-04-21 21:00:52   Wirkleistung_Bezug_W 5987.3
     2019-04-21 21:00:52   Wirkleistung_Einspeisung_W 0
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.178.75/mum-webservice/data.php
     value      0
   defptr:
     readingBase:
       Wirkenergie_Bezug_Wh reading
       Wirkenergie_Einspeisung_Wh reading
       Wirkleistung_Bezug_W reading
       Wirkleistung_Einspeisung_W reading
     readingNum:
       Wirkenergie_Bezug_Wh 02
       Wirkenergie_Einspeisung_Wh 04
       Wirkleistung_Bezug_W 01
       Wirkleistung_Einspeisung_W 03
     readingOutdated:
     requestReadings:
       update:
         Wirkenergie_Bezug_Wh reading 02
         Wirkenergie_Einspeisung_Wh reading 04
         Wirkleistung_Bezug_W reading 01
         Wirkleistung_Einspeisung_W reading 03
   sslargs:
Attributes:
   enableCookies 1
   getHeader1 Content-Type: application/json
   reAuthRegex "authentication":false
   reading01JSON 1-0:1.4.0*255
   reading01Name Wirkleistung_Bezug_W
   reading02JSON 1-0:1.8.0*255
   reading02Name Wirkenergie_Bezug_Wh
   reading03JSON 1-0:2.4.0*255
   reading03Name Wirkleistung_Einspeisung_W
   reading04JSON 1-0:2.8.0*255
   reading04Name Wirkenergie_Einspeisung_Wh
   room       Energie
   sid01Data  " "
   sid01URL   http://192.168.178.75/start.php
   userattr   get01JSON get01Name get02JSON get02Name get03JSON get03Name get04JSON get04Name getHeader1 reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name sid01Data sid01URL


Was meinst Du mit 2ter Maske? Die im EM die die Zählerstände anzeigt? Die Werte 1.8.0 und 2.8.0 stimmen bei mir überein und das ist ja das wichtigste.
Ich hatte ja bereits erwähnt das der EM300 fast exakt gleich misst wie mein Stromzähler des Energieversorgers, also lässt sich mit Deinen Werten ja sehr viel anfangen...

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

zwehn

#4
Bez 2 ter maske meine ich die Differenz folgender Webseiten und den Vergleich der Werte:
Beim Totalen Zählerstand beziehe ich mich auf die errechnete Differenz fuer den selben zeitraum tag/gesamt
Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

Heimweh

Jetzt weiß ich was Du meinst. Wenn man die Einzelwerte von 2.8.0 addiert für jeden Monat dann stimmt die Summe nicht überein mit dem angezeigten Zählerstand. Das stimmt bei mir auch nicht überein. Die Summen sind um 200 kW/h mehr....
Ich werde morgen mal bei TQ nachfragen. Wie gesagt, der Zählerstand unter 2.8.0 stimmt mit dem Netzbetreiber Zähler überein (im Verhältnis). Ich kann es mir auch nicht erklären, aber ich gebe Bescheid sobald mir TQ antwortet....

Gesendet von meinem LYA-L29 mit Tapatalk

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

ch.eick

#6
Hallo, es ist zwar schon lange her...

Zitat
Ich selbst benutze den Em 300 in Verbindung mit einem kostal plenticore Wechselrichter. Dieser bekommt vom em 300 zwar Daten und ist auch selbst über Modbus abrufbar, aber die Netzeinspeisung und der Netzbezug sind nicht  auslesbar.

Ich habe einen Plenticore 10 und frage diesen mit modbus tcp ab.

Ist nicht dieser Wert der den Du haben wolltest?
Home_own_consumption_from_grid 14.80 2019-11-13 09:27:34

Gibt es auch schon eine Möglichkeit den KSEM abzufragen? Das ist ein EM410.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Heimweh

Hallo Christian,

Home_own_consumption_from_grid 14.80 2019-11-13 09:27:34

ja das wäre einer der Werte die wir gesucht hatten, nur vermute ich da werden nur Watt angezeigt oder? Also W oder KW...
kW/h wären toll oder auch W/h.

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

ch.eick

#8
Das sind Watt. Für die anderen Werte gibt es natürlich auch readings.
Und es gibt im fhem auch ein Strom Kalkulationsmodul.

Gesendet von meinem SM-G930F mit Tapatalk
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

jnewton957

Wir haben seit ein paar Tagen nun auch eine PV Anlage mit einem Kostal WR und dem EnergyMeter EM300.

Somit stand ich vor den ähnlichen Problemen der Einbindung des Wechselrichters aber insbendere auch des EM300.

Über den Modbus erhält man ja aus dem WR viele Werte - aber nicht die der Wirkenergie und schon granicht der Einspeisung.

Also habe ich es mit dem o.a. define probiert
Leider erhalte ich ein
.setList  interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue

Ich erhalte zwar die richtigen Attribute wie

reading04JSON 1-0:2.8.0*255
reading04Name Wirkenergie_Einspeisung_Wh

Aber leider keine readings / Werte.

Wo ist mein Fehler/Gedankenfehler ? define EnergyManager HTTPMOD http://192.168.2.60/mum-webservice/data.php 60

Danke für die Hilfe
Jörg

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

ch.eick

Zitat von: jnewton957 am 02 April 2021, 18:55:41
Über den Modbus erhält man ja aus dem WR viele Werte - aber nicht die der Wirkenergie und schon granicht der Einspeisung.
Hallo Jörg,
die Tageseinspeisung kannst Du über die API von Plenticore abfragen und berechnen.

Statistic_EnergyFeedInGrid_Day:Statistic_Yield_Day.* {round((ReadingsVal("$NAME","Statistic_Yield_Day", "")-ReadingsVal("$NAME","Statistic_EnergyHomeBat_Day", "0")-ReadingsVal("$NAME","Statistic_EnergyHomePv_Day", "0")),2)}


Die momentane Einspeisung (-) oder Bezug (+)  ist

Total_Active_P_EM -4723.60   <== das war das Reading Total_active_power_(powermeter)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick