KACO Wechselrichter verbinden

Prima, 1000 Dank.
Dann wäre meine Zusammenfassung, dass das, was ich mir wünsche, mit openEMS wohl nicht oder nur schwer klappen wird - dumm, dass ich schon auf Version 8 bin :sob:. Ich schaue mir den code dennoch an, dümmer werde ich davon sicher nicht.
Ich schaue einfach, ob und wie ich eine ähnliche oder gleiche COM zwischen der Win-Applikation und meinem WR emulieren kann. Ich muss es ja nur für meinen eigenen WR schaffen und nicht für die Allgemeinheit. Im Notfall lasse ich irgendwo die Win-Applikation laufen und sniffe die COM, die Ordnung des TCP/IP-Payloads und die wenigen Werte, die mich interessieren, kenne ich ja bereits.
Danke noch mal für die Hilfe.

1 Like

FYI: Hab’s jetzt, den WR ohne fremden code und Partner ID anzusprechen und Daten auszulesen.


Jetzt muss ich “nur” noch meinen Python-Code in SmarthomeNG integrieren …

1 Like

Hallo @Ebse ,
Da ich genau das gleiche Problem habe. Würde es mich jetzt brennend interessieren wie du bis zu diesem Punkt gekommen bist. Leider hatte ich bisher keinen Erfolg.
Danke schonmal im Voraus.

Hi @MichaISP , freut mich, wenn ich helfen kann. Gleichwohl habe ich gelernt, dass das Forum hier eisern an OpenEMS hängt und meine Lösung ja quasi dem entgegen spricht. Ich bin da wohl eher ein Fremdkörper :wink:
Egal. Mein Vorgehen:

  1. Mit Wireshark die IP des WR mit dem Port 9760 aufgezeichnet. Das habe ich für mich in 3 Phasen geordnet. Start der Win-APP ohne den gefundenen WR anzuklicken, nach dem Klicken auf den gefundenen WR und dann beim Schließen der Win-APP. Daraus konnte ich dann auch den erforderlichen TCP/IP-Handshake “ablesen”
  2. Dann habe ich mir die Daten des Wireshark-Mitschnitts angeschaut und auf Basis der Anfragen der Win-APP die Antworten versucht zu “lesen”. Das ist mir zu einem gewissen Teil gelungen. Offen sind noch die Energiewerte. Die Leistungswerte, PV, und Bat-Daten habe ich.
  3. mit den gewonnenen Erkenntnissen habe ich angefangen mir ein python-script zu schreiben, um die COM zum WR “zu emulieren” und Daten auszulesen. Da ich vorher kein Python konnte, war das eine willkommene Aufgabe, um mir wenigstens ein paar grundlegende Programmierkenntnisse beizubringen. Dabei musste ich auch noch ein paar ordentliche Wissenslücken zum TCP/IP-Protokoll und dem Hanshake schließen.
  4. Mein Script läuft bei mir, offnet die COM, liest die Daten und schließt die COM auch wieder. Da das Ganze nur mit meiner WR-Seriennummer und MAC-Adresse funktioniert, nehme ich an, dass wir das für Deinen WR anpassen müssen. Einen Versuch sollte es aber wert sein. Am Wochenende komme ich wieder zum programmieren, dann ertüchtige ich mal mein Script, so dass wir es damit versuchen können, dass Du in den Parametern einfach Deine Daten einträgst und es bei Dir mal ausprobierst. Was meinst Du?

das hört sich super an! lass uns mal direkt Daten austauschen da wir hier keine privaten Nachrichten schreiben können.

Hallo Ihr 2 !

Ihr könnt sehr wohl Private Nachrichten Schreiben ! :slight_smile:
Grüße !

Hi Ebse,
Ein OpenEMS Forum, das “eisern an OpenEMS” hängt, ja komisch sowas :).
Ja wir sind an Lösungen für alle Interessiert. Da die wenigsten leute Skripte etc. bedienen können oder das als dauerhafte Lösung ansehen ;).

Deshalb bauen wir Komponenten ;). Ich vermute mal ganz stark, dass du mit deinem Verfahren eine “Partner-ID” ausliest oder zumindest eine ID, die pro Wechselrichter gültig ist.
du kannst ja einfach mal versuchen, deine erwiresharkte ID in die Komponente einzutragen und schauen, ob damit Werte vom Wechselrichter kommen.

1 Like

Hi @p.wimmer, das ist natürlich ne super Idee und wenn man so engstirnig unterwegs ist wie ich, übersieht man das gerne mal.
Wenn ich mal soweit bin, dass das Eine zuverlässig funktioniert, probiere ich das gerne mal aus. Dann bin ich am Ende doch im richtigen Forum, wenn ich das via OpenEMS mal ausprobiere :wink:. Aber eins nach dem anderen - ich brauche halt recht lange für derlei, weil ich noch sehr unerfahren bin und nur am Wochenende dazu komme. Dennoch Danke für den guten Vorschlag

Ich denke eher, dass er den “RAW-TCP Payload” ausliest und daraus die Werte entnimmt…

Das wird dann wiederrum nicht funktionieren. Bin aktuell auch dran, das ganze mit Mikrowechselrichtern zu machen, um Sie ins OpenEMS zu bringen, indem ich die Keys der Wechselrichter (Hardcoded) rausfiltere und verwende um die TCP nachrichten zu entschlüsseln :smiley:

ne so wie ich ihn verstanden habe, hat er einen für seinen “WR” spezifischen Code gefunden und mit dem python script ruft er das jetzt ab :).
@Ebse, musst du bei jedem Request einen speziellen ‘Schlüssel’ mitschicken?
ich hab im code auf die schnelle gar nicht gefunden, was die Partner-id macht :slight_smile:

Hi @p.wimmer,
tatsächlich schicke ich keinen Schlüssel. Die Vermutung von @Sn0w3y ist korrekt - ich sniffe einfach die TCP/IP-com zwischen der Win-Applikation und dem WR. Sowohl was den Payload betrifft als auch die Art und Weise wie die Kommunikation aufgebaut und geschlossen wird.

Allerdings habe ich bislang keinen Fokus darauf gelegt, ob im Datenstrom ein „Schlüssel“ oder ähnliches ausgetauscht wird. Daher würde ich Deine Idee schon mal bei Gelegenheit aufgreifen wollen und schauen, ob ich da was finde und es irgendwie dann auch entsprechend nutzen.
Wie oben geschrieben, wäre das für mich aber „Projekt-Teil 2“ :wink:

Viele Grüße

DAS wäre aber SEHR interessant, da wir dann eventuell einen “Generalschlüssel” hätten (was zu prüfen wäre).

Grüße !

Siehe hier:

KacoBlueplanetHybrid10CoreImpl → openems/io.openems.edge.kaco.blueplanet.hybrid10/src/io/openems/edge/kaco/blueplanet/hybrid10/core/KacoBlueplanetHybrid10CoreImpl.java at develop · OpenEMS/openems · GitHub

und dann hier:

Client → openems/io.openems.edge.katek.edcom/src/com/ed/edcom/Client.java at develop · OpenEMS/openems · GitHub

Ich vermute auch, dass man aus diesem “RAW-TCP Payload” den Schlüssel relativ einfach extrahieren kann. Dieser muss ja in der Win-APP auch hinterlegt sein. Ab dann wäre der Weg über die bestehende OpenEMS-Komponente sicherlich am bequemsten, um nicht alles neu programmieren zu müssen.

1 Like

Das denke ich auch, aber dieser wird halt denke ich verschlüsselt vorliegen…
Ich Reverse aktuell einige “günstige” China Komponenten mit IoT Dongles (GoodWe, Sungrow, etc.) Goodwe nutzt z.B. einen HF-LPT100 und Sungrow einen ESP32 zur Übertragung :smiley:

Da könnte man ja eventuell auch mal beim Kostal schauen, welches Device da drin hängt, die Firmware dumpen und da drin mal kucken, was das Device da so macht :smiley:

Guten Tag,

mich haben die teilweise proprietären Elemente, also der fehlende identkey beim KACO Blueplanet Hybrid 10.0 TL3 auch sehr gestört.
Aber der Reihe nach:
Bei der Wechselrichter Firmware 8.x können zwar über die Hy-Sys Software ohne EMS Ladezeiten/SoC-Ziele für die Batterie eingestellt werden, jedoch werden PV-Leistungen >10kW abgeregelt, anstatt das Regelziel der Zeit/SoC-Vorgabe in dieser Situation zu überschreiben und die überschüssige PV-Leistung einzuspeichern.

Daher wollte ich das FEMS in Betrieb nehmen und stieß auf die Problematik mit der Firmwareversion 8.x

Statt einem Downgrade (ist das überhaupt möglich?), suchte ich im Speicher nach dem identkey und wurde fündig:

sorry, ich muss das zensieren (stefan.feilmeier)

Damit kann das System mit OpenEMS betrieben werden. Alle nötigen Module sind inzwischen in OpenEMS verfügbar (Danke Fenecon, Katek, Kaco, …) Das zu ändernde Passwort ist auch kein Problem, nur der identkey / Partner ID fehlte bislang. Userkey und identkey können einfach in der apache felix config des Kaco OpenEMS Moduls eingetragen werden und der Hybridwechselrichter lässt sich mit vielen OpenEMS Modulen steuern. In meinem Fall über ein eigenes Modul, das netzfreundlich den Mittagspeak inkl. PV-Leistungen > 10kW in den Abend verschiebt.
Was ich noch nicht entdeckt hab, ist ein Abschalt/Standby Befehl, sodass bei leerer Batterie der Umrichter vom Netz geht und nicht mit schätzungsweise 30-50W Leistungsaufnahme vor sich hin taktet. Vlt probier ich mal den Leistungswert bei 0W Sollwert im Treiber von 0.0001 auf tatsächlich 0 zu ändern, um damit die ‘compensator normal operation’ des Wechselrichters zu starten.

Grüße
Philip

PS: Ich bitte alle Firmen damit aufzuhören, mit Einschränkungen die Energiewende zu verkomplizieren und zu verzögern.
Vielen Dank an Ebse für das python tool :slight_smile:

1 Like

Hallo Philip,

denke nicht, dass es sinn und Zweck ist (legalerweise) die PARTNER id von Fenecon? Kaco? in einem öffentlichen Forum (OpenEMS) zur Verfügung zu stellen.

Stelle mir da die Frage, wie du an den Speicher der FEMS gekommen bist?

Meinst du ist es eine gute Idee, das hier so öffentlich zu posten?

Ich bin auch kein Fan von geschlossenen Systemen, aber Hersteller ist nun mal Hersteller und Lizenzen sind nun mal Lizenzen.

Grüße

Hallo Sn0w3y,

noch glaube ich, dass es eine gute Idee ist. Das System mit FEMS wurde legal erworben und soll nach nur ca. 2 Jahren nicht mehr mit der aktuellen Wechselrichterfirmware funktionieren? Das ist nicht sinnvoll.
In 20 Jahren werden wir uns wünschen, jeden kleinen Baustein für die Energiewende genutzt zu haben.
Falls es aber nicht erwünscht ist, kann das Forum meinen Post löschen oder zensieren. Ich habe es ja direkt bei openEMS gepostet und Fenecon ist Gründungsmitglied.

Ich möchte niemandem damit schaden, eher im Gegenteil. Es ist schade, dass ein solides deutsches/schweizer Produkt wie der Kaco blueplanet hybrid wegen fragwürdiger Softwarekonzepte in Foren so schlecht da steht. Evtl. würde das heute auch besser laufen.
Den key zu bekommen ist nicht schwer: sdcard mit standard beaglebone Image auf dem FEMS booten und im eMMC in einer .jar Datei den key finden. Es wurde keine Cryptobarriere gebrochen.

Nicht dass das hier falsch rüberkommt:
Ich bin von Fencon und deren Konzept überzeugt und plane für ein neues Projekt die Anschaffung von zwei Fencon Home 30. Ich hoffe die muss man sich nicht zuerst zurecht “hacken”.

Grüße

Hallo @Philip,

erstmal willkommen in der Community. Ich kann alle deine Argumente nachvollziehen und sehe sie genauso. Aus der Vision, die Energiewende mit freier open-source Software zu ermöglichen und zu beschleunigen, schöpfe ich seit über 8 Jahren die Motivation, OpenEMS voranzutreiben.

Ich werde euch nicht davon abhalten, privat diesen Key auszutauschen. Im Gegenteil, es wäre toll, wenn es weitere Entwicklungen und Optimierungen zum KACO Wechselrichter geben würde und diese zu OpenEMS zurückfließen. Es ist nach wie vor ein tolles Gerät und ich habe selbst einen im Keller stehen. (Mittlerweile als reinen PV-Wechselrichter neben einem FENECON Home 10).

Ich muss den Key aber leider hier zensieren, weil wir uns trotz allem an bestehende Verträge und NDAs halten müssen. Wenn du den Key hier veröffentlichst, schadest du nämlich am Ende nur den Leuten, die für Offenheit eintreten.

Ich hoffe diese Erklärung ist nachvollziehbar.
Gruß,
Stefan

1 Like

Hallo @Sn0w3y,
leider finde ich nicht, wie man hier private Nachrichten schreiben kann. Kannst du mir hier helfen?

Hallo,

tippe auf mein Bild und auf Message :slight_smile: