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.
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
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?
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...
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
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
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
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.
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
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
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)