KOSTAL Smart Energy Meter auslesen

Begonnen von uwek, 01 April 2020, 08:23:41

Vorheriges Thema - Nächstes Thema

uwek

Liebes Forum,

ich versuche einen KOSTAL Smart Energy Meter direkt auszulesen, komme aber nicht weiter.
Ich habe versucht mich an dem scheinbar verwandten Gerät EM 300 zu orientieren und per HTTPMOD zuzugreifen, leider ohne Erfolg.

Wer kann mir auf die Sprünge helfen?

Danke und Gruß
Uwe

ch.eick

#1
Hallo Uwe,

was ist das bitte genau fuer ein Geraet?

fuer den Kostal EM300 gibt es ein Modul, der neue KSEM (EM410) spricht Modbus/TCP

Ich gehe dann mal davon aus, dass Du auch einen Kostal Wechselrichter hast :-)

Photovoltaik mit Eigenverbrauch Steuerung (Kostal plenticore; EM410)
hier lese ich die Statistiken aus
Hier geht es um die API des Kostal Plenticore
Kostal Plenticore, EM410 (KSEM), BYD, Solarprognose, Forecast

An den python Skripten arbeite ich noch und es geht schon folgendes:
  - API Auslesen
  - Statistiken auslesen
  - MinSOC setzen

Und an der Bilanz arbeite ich auch noch...

Gruss
   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

uwek

Hallo Christian,

es ist ein KSEM, er meldet sich so:
Produktname KOSTAL Smart Energy Meter
Version 1.1.2

Ich hatte inzwischen auch bereits Dein EM410 Beispiel dazu gefunden, bekomme aber keine Verbindung hin. Möglicherweise liegt es an der Passwortabfrage, die ich nicht deaktivieren kann (?)

Das sind meine ersten Versuche mit MODBUS, muss/will aber dann außerdem noch einen MODBUS RTU Zähler integrieren.

Viele Grüße,
Uwe

ch.eick

#3
Hallo nochmal.

Bei dem KSEM musst Du in die Modbus/TCP Settings.
Dort habe ich den Kostal Wechselrichter als Master mit Port 1502 eingetragen. Diese Verbindung dient momentan nur zur zusaetzlichen Datenuebermittlung und reicht noch nicht fuer die Steuerung des WR. Zusaetzlich wird die RS485 fuer den WR benoetigt.

Zum Auslesen des KSEM muss dann noch "Enable Slave" aktiviert werden.

Nun kann man mit dem Modbus TCP Modul von FHEM die Verbindung zum KSEM aufbauen und die Register auslesen, so wie ich es schon verlinkt habe.
Zu beachten ist, das die Slave Verbindung ueber Port 502 laeuft. Ich habe jedoch erst nur das Prinzip ueberprueft und noch nicht alle Register mit allen Formatierungen fertig.

Solltest Du einen Plenticore WR haben, dann brauchst Du der KSEM nicht direkt auszulesen, da die Daten im WR auch angezeigt werden und somit auch synchron zu den WR Daten sind.
Die Statistiken werden auch schon im WR erstellt, muessen jedoch ueber die API ausgelesen werden.

Bei Fragen melde Dich einfach nochmal.
    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

uwek

Hallo Christian,

herzlichen Dank für Deine Erläuterungen, die mir sehr geholfen haben.

Mein WR ist ein Piko 20, der per LAN mit dem KSEM kommuniziert.
Den Piko lese ich per HTTPMOD aus (JSON API); den KSEM kann ich inzwischen mit Deinem Code und Deinen Hinweisen per ModbusAttr lesen. Offenbar muss ich beide Geräte auslesen, um alle Informationen zu bekommen; am WR sehe ich nichts zum Hausverbrauch (?)

Jetzt beschäftige ich mit meinem Zähler ABB B23, der über einen RS485-USB-Stick am Raspberry hängt und über MODBUS RTU gelesen werden soll. Vermutlich werden dabei weitere Fragen auftauchen;-)

Nochmals vielen Dank und viele Grüße, Uwe

ch.eick

Zitat von: uwek am 03 April 2020, 10:13:11
Mein WR ist ein Piko 20, der per LAN mit dem KSEM kommuniziert.
Den Piko lese ich per HTTPMOD aus (JSON API); den KSEM kann ich inzwischen mit Deinem Code und Deinen Hinweisen per ModbusAttr lesen. Offenbar muss ich beide Geräte auslesen, um alle Informationen zu

Den Piko kenne ich nicht, aber Pico hoert sich nsch klein an, da ist sicherlich auch die Steuerung klein ausgelegt ;-)

Fuer die Steuerung des Eigenverbrauches hast Du ja jetzt auch schon Hinweise. Das laeuft bei mir jetzt echt super.

Melde Dich einfach, wenn Fragen auftauchen. Ich bin recht frisch im Thema.

Gruss
   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

uwek

Zitat von: ch.eick am 03 April 2020, 12:59:16
Den Piko kenne ich nicht, aber Pico hoert sich nsch klein an, da ist sicherlich auch die Steuerung klein ausgelegt ;-)

Naja, der hat entspannte 20kW;-)

Gruß
Uwe

ch.eick

Ups, meiner hat nur 10 KWp, ist aber etwas geschwaetziger :-)
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

ch.eick

Hallo nochmal,

kannst Du mir bitte mal die Definition fuer
ZitatDen Piko lese ich per HTTPMOD aus (JSON API)
hier bereit stellen?

Danke
    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

uwek

#9
Hallo Christian,

ich habe die Definition aus einem Beitrag von ahermann86 übernommen.
Zitat von: ahermann86 am 29 August 2019, 09:34:54Modul für den Kostal PIKO Wechselrichter V2.04

Diese scheinen jedoch auf meinen Piko nicht richtig zu passen. Nun versuche ich, dass anzupassen - die erforderlichen Codes habe ich hier gefunden:
https://www.msxfaq.de/sonst/iot/kostal15.htm

Wenn ich meinen Piko20 mal komplett lesen kann, stelle ich die Definition gerne zur Verfügung.

Viele Grüße, Uwe

ch.eick

Und an welcher Stelle harpert's noch?
Das direkte Lesen bei meinem Plenticore ueber die API habe ich mit einem Pyhton Muster Skript hin bekommen. Da werden diverse Keys und halt ein Userid/Passwort ausgetauscht.
Hast Du bei dem Pico mal geschaut, ob man Modbus TCP aktivieren kann?

Gruss
   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

uwek

Ich denke es ist jetzt nur noch Fleißarbeit, die entsprechenden dxsId einzufügen und zuzuordnen.
Per Hand kann ich die Werte im Webbrowser abfragen.

Modbus TCP wird nicht explizit genannt. Es gibt Konfigurationen für
- Netzwerk (TCP/IP) ohne die typischen Modbus Parameter wie Slave-Adressen und Port, und
- RS485.

Ältere Forumseinträge lassen mich vermuten, dass die Abfrage über ModbusAttr mal ging und es gab sogar ein Modul dafür. Aber seit der Piko Softwareversion 6.00 funktioniert das wohl nicht mehr.

Gruß,
Uwe

ch.eick

Zitat von: uwek am 05 April 2020, 10:24:09
Modbus TCP wird nicht explizit genannt. Es gibt Konfigurationen für
- Netzwerk (TCP/IP) ohne die typischen Modbus Parameter wie Slave-Adressen und Port, und
- RS485.

Ältere Forumseinträge lassen mich vermuten, dass die Abfrage über ModbusAttr mal ging und es gab sogar ein Modul dafür. Aber seit der Piko Softwareversion 6.00 funktioniert das wohl nicht mehr.
Ich habe da auch mal was von einem Datenlogger gelesen, ist das ein zusaetliches, kostenpflichtiges Geraet?
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

uwek

Hallo Christian,
von einem weiteren Datenlogger weiß ich nichts (?)

Ich habe gerade versucht in Deiner Definition PV_EM410 einige Readins zu ergänzen, das gelingt mir aber nicht.
Ich möchte gerne erst mal M_Exported und M_Imported entsprechend der Geräte-Doku hinzufügen.

Hierfür habe ich userattr ergänzt um:
obj-h40107-reading obj-h40107-type
obj-h40115-reading obj-h40115-type

und ich habe Attribute hinzugefügt
attr PV_EM410 obj-h40107-reading M_Exported
attr PV_EM410 obj-h40107-type UINT32

attr PV_EM410 obj-h40115-reading M_Imported
attr PV_EM410 obj-h40115-type UINT32

Leider bekomme ich nur unsinnige Werte zurück: 65535 und 1

Was mache ich falsch?

Viele Grüße,
Uwe

ch.eick

#14
Zitat von: uwek am 06 April 2020, 08:48:49
Ich habe gerade versucht in Deiner Definition PV_EM410 einige Readins zu ergänzen, das gelingt mir aber nicht.
Ich möchte gerne erst mal M_Exported und M_Imported entsprechend der Geräte-Doku hinzufügen.

Hierfür habe ich userattr ergänzt um:
obj-h40107-reading obj-h40107-type
obj-h40115-reading obj-h40115-type

und ich habe Attribute hinzugefügt
attr PV_EM410 obj-h40107-reading M_Exported
attr PV_EM410 obj-h40107-type UINT32

attr PV_EM410 obj-h40115-reading M_Imported
attr PV_EM410 obj-h40115-type UINT32

Leider bekomme ich nur unsinnige Werte zurück: 65535 und 1
Moin, Du hast den Finger direkt in die Wunde gelegt :-) Genau die Definition habe ich noch nicht verwendet/entschluesselt. Ich war noch an den anderen Basiswerten.
Die Kunst ist es das richtige Format mit den passenden Laenge, signed oder unsigned und und und zu kombinieren. Das %s waere ein String und ich verwende es, um erst mal
einen Eindruck von dem Modbus Feld zu bekommen. Da mein Plenticore mir bereits alle Werte des KSEM liefert hatte ich mich zuerst auf den konzentriert. Ich schaue mir den
KSEM jetzt aber auch nochmal an, bin aber fuer Deinen Input immer offen. Jedes Feld zaehlt :-)


dev-type-UINT32-format %s
dev-type-UINT32-len 2


Zur Historie des KSEM ist noch zu sagen, dass erst ab der Version 1.1.2 die Modbus Felder gefuellt wurden. Davor konnte man sie zwar schon abfragen, es stand jedoch immer "0" drin. Ich hatte da bei Kostal
ein Ticket auf und etwas gedraengelt. Mein Ziel war den KSEM mit dem Plenticore nur ueber LAN zu koppeln, jedoch geht das bis heute immer noch nicht, wodurch die RS485 immer noch verwendet werden muss.

EDIT:
Und hier noch den Link zur KSEM Modbus Beschreibung, wie immer keine Gewaehr fuer Inhalte fremder WebSeiten "kostal_interface_ksem" . Ich habe Seite 6+7 Kapitel 3.5 versucht umzusetzen, jedoch noch nicht vollstaendig.

Gruss
     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