[Modul] JoTKPP - Solar-Wechselrichter Kostal PLENTICORE plus & PIKO IQ

Kostal PLENTICORE plus & PIKO IQ

Beschreibung
Das Modul „JoTKPP“ stellt eine Instanz zur Abfrage der Werte von Kostal-Wechselrichtern zur Verfügung. Die Daten werden mittels ModBus abgefragt. Der Benutzer kann frei entscheiden, welche Werte abgefragt werden und ob dafür eine Instanz-Variable angelegt werden soll. Über IPS Ereignisse oder einen Aufruf der verschiedenen RequestRead-Funktionen können individuelle Abfrage-Muster realisiert werden (nur bei Bedarf, einmal am Tag, alle x Sekunden, usw.). Das Modul prüft zudem, ob online eine neue FW-Version für den Wechselrichter verfügbar ist.

Voraussetzungen

[ul]
[li]IPS 5.2 oder höher
[/li][li]Kostal Wechselrichter mit aktivierter ModBus-Schnittstelle
[/li][/ul]

Unterstützte Geräte
Das Modul wird grundsätzlich für einen Kostal PLENTICORE Plus 7.0 programmiert / getestet. Da Kostal aber für alle Geräte der Serien „PLENTICORE plus“ & „PIKO IQ“ dieselben ModBus-Spezifikationen herausgibt, sollten auch andere Geräte dieser Serien funktionieren (bin gespannt auf euer Feedback).

Installation
Das Modul steht ab sofort im Module-Store zur Verfügung. Einfach nach „JoTKPP“ oder „Kostal“ suchen & installieren.

Dokumentation
Die aktuellste Doku ist auf GitHub verfügbar.

Freue mich auf alle Feedbacks zum Modul.

Kleiner Tipp: In der Doku steht PREFIX_ anstatt deinem echten Prefix :slight_smile:

paresy

Danke für den Hinweis. Habe ich soeben gefixt.

Danke schon mal für das Modul auch wenn ich kein Kostal besitzte, nach Kostal in der Suche im Modul Store zu suchen wäre aber definitiv einfacher um das Modul auch zu finden, aber wie ich sehe hast Du das schon korrigiert. Vielleicht kannst Du das ja auch noch im Thread selber korrigieren, das man nach Kostal Piko suchen sollte.

Das Modul „Kostal Piko“, welches aktuell im Modul Store gefunden wird, ist ein anderes Modul, welches nicht von mir entwickelt wird. Meines Wissens ist es für eine ältere Generation der PIKO Serie von Kostal programmiert und liest die Daten über das Web-Interface aus (@Bernhard Engelmaier - Hau mich, wenn ich was falsches schreibe :cool:).

Mein Modul lässt sich aktuell nur mit „JoTKPP“ im Store finden, da es noch BETA ist (Einschränkung vom Store). Sobald das Modul Stable ist, wird es auch unter den Suchbegriffen Kostal, Plenticore, usw. auffindbar sein (hoffe ich wenigstens :rolleyes:)

Leider kann ich aktuell meine Beiträge hier im Forum noch nicht bearbeiten, da ich noch nicht genügend davon geschrieben habe (bin aktuell halt noch „ein Spamer“ :))

Habe soeben BETA 0.9 im Store veröffentlicht.
ChangeLog:

[ul]
[li]Messwerte für Powermeter hinzugefügt
[/li][li]Verbesserungen beim DeviceDiscovery
[/li][li]Änderung des Gateways wird nun erkannt und verarbeitet
[/li][/ul]

Ist immer noch BETA, daher im Store nach „JoTKPP“ suchen.
Feedbacks sind willkommen :slight_smile:

Habe soeben Version 1.1 im Store veröffentlicht.

ChangeLog:

[ul]
[li]Timer für FW-Update-Check in Konfigurationsformular integriert
[/li][li]Default-Positionen auf 10er-Zahlen angepasst, damit Sortierung auch innerhalb einer Gruppe möglich ist
[/li][li]Zusätzliche Meldung im Debug-Log
[/li][li]Bezeichnungen für Powermeter-Werte angepasst
[/li][li]Verbesserte Fehlerausgabe ModBus
[/li][/ul]

Dies ist die erste STABLE-Version, wartet allerdings im Moment noch auf die Freigabe durch IPS.
Als BETA im Store bereits unter „JoTKPP“ verfügbar.

Version 1.1 STABLE ist nun offiziell im Store verfügbar und kann nun auch über die Begriffe „Kostal, Plenticore, Piko, usw.“ gefunden werden.

Leider kann ich meinen ersten Eintrag noch nicht anpassen, da ich immer noch Junior-Member bin…
Kann einer der Admins das für mich erledigen?

Version 1.2 ist per sofort im Store verfügbar.

Changelog:

[ul]
[li]Überprüfung der übergeordneten Instanzen optimiert
[/li][li]Fehler bei Umrechnung von SInt-Werten (z.B. Actual Battery Power) behoben, wenn diese einen negativen Wert haben
[/li][li]Zusätzlicher Wert „Actual Inverter Generation power“ hinzugefügt
[/li][/ul]

Hallo zusammen,

ich versuche gerade das Modul einzurichten, komme aber leider bei der Verbindung zum Kostal SEM nicht weiter.
Beim Konfigurieren des Client Socket erhalte ich „Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte. (Code: -32603)“
Als Slave-Adresse habe ich meinen Server eingetragen auf dem Symcon läuft.
Hat jemand einen Tip für mich?

Grüße

cypher0815

error.JPG

Hallo cypher0815,

toll, das du mein Modul testen möchtest :slight_smile:
Damit ich (oder ev. auch andere) dir helfen können, benötigen wir etwas mehr Angaben:

  • Welchen Wechselrichter verwendest du?
  • Welche FW hast du auf dem Wechselrichter?
  • Gibt es zwischen dem Wechselrichter und IP-Symcon eine Firewall? Falls ja, muss dort der ModBus-Port des Wechselrichters offen sein.

Du versuchst anscheinend die Verbindung auf den Smart Energy Meter (Kostal SEM) herzustellen. Dieser ist anscheinend relativ neu, den mir hat Kostal noch einen Smart Energy Meter eines Drittherstellers geliefert. Dieser dient aber wohl immer noch als reines Messgerät für den Wechselrichter und wird von diesem als Slave via ModBus RTU oder neu wohl auch ModBus TCP ausgelesen.

Du musst das Modul aber direkt auf die Daten (IP, Port, Geräte-ID) des Wechselrichters konfigurieren. Dieser hat noch viel mehr Infos als der SEM (ausser Kostal hat das nach einem Jahr bereits wieder komplett „umgekrempelt“).

In IP-Symcon richtest du die Instanz wie folgt ein:

  • neue Instanz hinzufügen
  • nach Kostal suchen und entweder „Kostal PLENTICORE“ oder „Kostal PIKO“ auswählen
  • falls gewünscht den Namen anpassen (optional)
  • nun richtet IP-Symcon automatisch eine ModBus-Gateway-Instanz sowie eine Client-Socket-Instanz ein (falls nicht bereits vorhanden)
  • Client-Socket Instanz: IP-Adresse deines Wechselrichters sowie ModBus-Port (normalerweise 1502)
  • ModBus Gateway Instanz: ModBus TCP und Geräte-ID deines Wechselrichters (Standard ist 71) - SWAP ist egal, da es vom Modul überschrieben wird.

Geräte-ID und ModBus-Port solltest du auf deinem Wechselrichter angezeigt bekommen. Bei mir (PLENTICORE plus) sieht das so aus:
ModBus-Konfiguration PLENTICORE plus.png

Mit diesen Daten versucht das Modul SerienNr, Modell und Bezeichnung deines Wechselrichters auszulesen. Wenn Dies klappt, werden die Daten entsprechend angezeigt und du kannst danach konfigurieren, welche Werte abgefragt werden sollen.

Hallo jotata,

ja Du hast Recht - ich habe mich auf das Smart Energy Meter verbunden und nicht auf den Wechselrichter :banghead:
Jetzt ist der Client Socket mit dem Wechselrichter verbunden und die Daten fließen…:smiley:

Vielen Dank!

Gruß cypher0815

Hallo cypher0815,

toll das es klappt :slight_smile:
Darf ich wissen, welchen Wechselrichter du verwendest. Da ich bisher nur auf meinem PLENTICORE plus 7.0 testen konnte, wäre ich interessiert an der korrekten Funktion auf anderen Modellen.

Gesendet von meinem Nokia 6.1 mit Tapatalk

Hallo jotata,

ich nutze den Plenticore Plus 8.5.

Gruß cypher0815

Kurze Info von meiner Seite.
Habe das Modul gerade ohne Probleme mit einem Plenticore Plus 5.5.
Mal schauen wie ich das jetzt für die Visualisierung aufbereitet bekomme sind ja mehr als genügend Variablen befüllt.

Grüße
Markus

Hallo jotata,

ich benutze dein Modul erfolgreich mit meinem Kostal PLENTICORE plus 7.0.
An sich funktioniert alles, danke für die tolle Arbeit.
Allerdings stürzt mein Symcon ab wenn ich einen Trend vom Batterieladestand öffnen möchte.
Das passiert sowohl beim öffnen eines angefertigten Trends als auch beim Öffnen einen Trends aus der archivierten Variable.
Ich starte dann den Symcon Service auf meinem Raspberry neu und alles läuft wieder.

Werte sind im Archiv vorhanden.
Ich benutze Version 1.2 des Moduls.
Hast du eine Idee woran das liegen kann?

Anbei zwei Screenshots.

MFG Henning

JoTKPP Bsp Archiv.png

Allerdings stürzt mein Symcon ab wenn ich einen Trend vom Batterieladestand öffnen möchte.
Das passiert sowohl beim öffnen eines angefertigten Trends als auch beim Öffnen einen Trends aus der archivierten Variable.

Hallo Henning,

ich habe das Problem mit dem Crash beim Laden von Diagrammen im Webfront manchmal auch. Allerdings auch bei Diagrammen, welche nicht auf Variablen vom Modul JoTKPP zugreifen. Vermutlich handelt es sich hierbei um einen Bug von IPS selber, hatte aber noch keine Zeit das genauer anzuschauen…

Grundsätzlich werden alle Variablen des Moduls als ganz normale Variablen von IPS abgelegt und auch mittels IPS-Funktionalität archiviert (kein Code dafür im Modul), wenn du dies aktiviert.

Hast du das Problem nur beim Batterie-Ladestand oder auch bei anderen Variablen? Hast du das Problem ev. auch bei Variablen von anderen Modulen? Kannst du allenfalls einmal prüfen, ob es am Variablen-Profil (JoTKPP.Battery.Charge) liegt (einfach im Diagramm für diese Variable ein anderes Profil angeben). Obiges Profil verwendet unterschiedliche Texte & Farben je nach Ladezustand. Ev. kommt IPS damit nicht klar.

Ich werde es bei mir auch testen, sobald ich dazu komme.

@Henning: Magst du dies mal ausprobieren? Debugging für Experten (Raspberry Pi, Linux)

Dann hätten wir mehr Informationen warum der Dienst beim Anzeigen abstürzt.

paresy

Hallo paresy &jotata,

bisher hatte ich noch nie Abstürze von Symcon auf meinem Raspberry.
Ich hatte auch noch keine Probleme bei der Darstellung von einzelnen Variablen.
Alle von mir archivierten Werte aus dem JoTKPP Module kann ich in Trends anzeigen und kombinieren.
Ich habe den Trend mit „JoTKPP.Battery.Charge“, „JoTKPP.Percent“, „~Valve.F“ und einem selbst angelegten Profil (nur 0-100, keine Extras oder Formatierungen) probiert.
Das Resultat war immer ein Symcon Service Crash.

Im Anhang die gdb.txt vom ersten Crash mit „JoTKPP.Battery.Charge“.
@paresy: muss man noch etwas nach dem Schreiben der Daten in die Datei machen? Ich hatte danach über sudo /etc/init.d/symcon start versucht Symcon zu starten. Da wurde mir gesagt der Service läuft noch. Allerdings waren Konsole und Visu nicht verfügbar.

MFG, Henning.

gdb.txt (27.5 KB)

Sorry, kleiner Nachtrag. Ich hatte fälschlicherweise das Profil nur im Graph angepasst. :banghead:
Jetzt habe ich es direkt an der Variable geändert und siehe da die Daten werden korrekt angezeigt!
Es funktioniert auch mit „JoTKPP.Percent“, also muss es am Profil „JoTKPP.Battery.Charge“ selbst liegen.

MFG, Henning.