Skip to end of metadata
Go to start of metadata

Eigentlich sollte die Kommunikation zwischen Loxone und Kostal Wechselrichtern "out-of-the-box" funktionieren, ist bei mir leider nicht der Fall.

Loxone will scheinbar auch keine Energie in die Weiterentwicklung der Anbindung von Kostal stecken, daher muss man sich nach alternativen Wegen umsehen.
Ich konnte über den integrierten Webserver relativ einfach die Werte des Wechselrichters auslesen und Loxone zur Verfügung stellen, wie das funktioniert, möchte ich hier beschreiben:

Abfragen kann man die Werte über folgende Url: http://<ip des Wechselrichter>/api/dxs.json
An diese Url werden dann die Parameter angehängt, die man erfahren will, zum Beispiel die aktuelle PV Leistung: http://<ip des Wechselrichter>/api/dxs.json?dxsEntries=33556736

Hier eine Auflistung einiger Werte, die der Wechselrichter zur Verfügung stellt:

TitelUrl-ParameterEinheit
Leistungswerte

DC-Leistung33556736W
67109120W
PV Gesamtproduktion
251658753
kW
Betriebsstatus167800320 = Aus
1 = Leerlauf
2 = Anfahren
3 = Einspeisen MPP
4 = abgeregelt
5 = Einspeisen
6 = ??
7 = ??
8 = ??

Batterie

Ladezustand33556229%
Ladezyklen33556228Int
Temperatur33556227Grad °
Stromspannung33556226V
Stromstärke33556238A
Laden/Entladen33556230bool
Energieversorger

bezogene Energie
(Hausverbrauch)

83886848W
Eigenverbrauch83888128W

In der Loxone Config legt man nun einen "Virtuellen HTTP Eingang" an und fügt die zusammengebaute URL ein, will man z.B. die Werte Ausgangsleistung und Ladezustand wissen, sieht die URL wie folgt aus:

http://<ip des Wechselrichter>/api/dxs.json?dxsEntries=67109120&dxsEntries=33556229

Innerhalb des Eingangs legt man dann die entsprechenden Befehle "Virtueller HTTP Eingang Befehl" an. Die Befehlserkennung lautet dann: "dxsId":<Url-Parameter>,"value":\v:

Nun kann man den Energiemonitor entsprechend "füllen", wobei man zuvor einige Berechnungen machen muss, bevor man die passenden Werte erhält.

Energiemonitor Eingang Ps

Wir multipizieren Spannung und Stärke des Stroms der Batterie um die Leistung zu erhalten.
Im Viruellen Eingangsbefehl zum Laden/Entladen der Batterie geben wir bei den Eigenschaften im "Zielwert 1" der Korrektur -1 an.
Nun können wir die Leistung der Batterie mit dem Wert aus Laden/Entladen multiplizieren und erhalten entweder eine negative (laden) oder eine positive (entladen) Leistung.
Da das Ergebnis noch in Watt ist, müssen wir das Ganze (z.B. mit einem Skalierer) noch in kW umrechnen, danach landet der Wert dann im Ps Eingang des Energiemonitors.


  • No labels

21 Comments

  1. Hallo in die Runde.

    Bin neu hier habe aber Loxone schon länger im einsatz und schon einiges umgesetzt.

    Jetzt wollte ich meinen Kostal Piko 5.5 ver.3.75 auslesen.

    Wie beschrieben bekomme ich beim Energie-Monitor den Port 81 fehler.

    Jetzt Wollte ich diese http Lösung umsetzten da bekomme ich aber keine Werte zurück bzw. wenn ich auf die Weboberfläche gehe folgenden Fehler:

    http://10.0.0.150/api/dxs.json  → Sorry, the requested file does not exist on this server

    Kennt jemand diesen Fehler? Muss ich vorher am Wechselrichter noch etwas aktivieren?

    Danke im Voraus

  2. Hallo Bernd,

    Was passiert, wenn Du im Browser nur  http://10.0.0.150/ aufrufst?
    Bekommst Du dann die Webseite Deines Wechselrichters zu Gesicht?
    Wenn das so ist, dann rufe die Entwicklertools Deines Browsers auf. (Meistens Taste F12 oder rechte Maustaste und dann "Element untersuchen" oder ähnliches).
    Im Reiter Netzwerk sollte kontinuierlich eine Url aufgerufen werden, eben die  http://10.0.0.150/api/dxs.json.

    Viele Grüße
    Sascha 

  3. Hallo Sascha

    Danke für die Antwort.

    Mit der 10.0.0.150 komme ich auf die ganz normale Weboberfläche von meinem Kostal Wechselrichter.

    Im Entwicklertool kommt nicht wirklich viel daher, siehe Foto.

    Wenn ich die IP+/api/dxs.json eingebe kommt wie gesagt nur dieser Fehler daher.

    Habe Testweise ein OpenHabian Client auf einen Raspberry installiert da das ein Kollege im einsatz hat und er gemeint hat es gibt dort ein Kostal Binding → siehe da, OpenHab kann meinen Kostal auslesen.


    Hast du sonst noch eine Idee?


    MfG

    Bernd



    1. Ich denke ich weiß woran es liegt: ich habe auch noch einen alten Piko 3.0 mit Firmware 3.71 und da ist es das gleiche. Die Webseite ist noch auf fhtml nicht auf json Standard.

      Leider klappt m

      Leider klappt bei mir aktuell auch das Firmwareupdate nicht, das man bei Kostal runterladen kann, also weiß ich hier auch nicht weiter.


  4. Hallo Bernd,

    tut mir leid, dann weiß ich auch nicht weiter.
    Wenn sich auf der Webseite des WR kontinuierlich die Werte ändern, dann muss es auch eine kontinuierliche Kommunikation zwischen Browser und Wechselrichter geben, die man im Entwicklertool mitverfolgen kann.

    Was mich bei Deinem Screenshot etwas wundert, man sieht überhaupt kein Stylesheet oder Javascript, das geladen wurde.
    Ist die Weboberfläche bei deinem Screenshot bereits komplett geladen gewesen und Du konntest Werte ablesen?

    Viele Grüße
    Sascha

  5. Hallo Sascha,

    besten Dank für diese Vorlage. Funktioniert bestens, endlich wird unser Kostalspeicher auch im Energiemonitor angezeigt.


    Beste Grüße

    Marcus

  6. Hi Sascha,

    ich habe einen neuen Piko 10 BA und ich bekomme auch keine Werte.

    Aus dem Entwicklertool sehe ich alle Werte, auch welche, die du nicht geschrieben hast: http://192.168.15.132/api/dxs.json?dxsEntries=33556736

    Die URL stimmt 100%

    Wie bist du auf desen String gekommen: "dxsId":<Url-Parameter>,"value":\v:

    Kann man das irgenwo testen? Vielleicht hat Kostal was geändert.

    Gruß, Oliver

  7. Hallo Oliver,

    wo liegt nun eigentlich Dein Problem? Bekommst Du keine Werte in Loxone?

    Meine Url, wie ich sie in der Loxone Config verwende, sieht z.B. so aus:

    http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=33556736&dxsEntries=33556229&dxsEntries=83886592&dxsEntries=83886848&dxsEntries=67109120&dxsEntries=33556226&dxsEntries=33556238&dxsEntries=33556230&dxsEntries=83888128&dxsEntries=83886336&dxsEntries=251658753

    Rufe ich diese Url in einem Browser auf, bekomme ich folgendes JSON-Array zurück:

    {"dxsEntries":[{"dxsId":33556736,"value":355.240540},{"dxsId":33556229,"value":10.000000},{"dxsId":83886592,"value":0.000000},{"dxsId":83886848,"value":888.526367},{"dxsId":67109120,"value":298.006989},{"dxsId":33556226,"value":256.200012},{"dxsId":33556238,"value":0.000000},{"dxsId":33556230,"value":0},{"dxsId":83888128,"value":298.006989},{"dxsId":83886336,"value":298.006989},{"dxsId":251658753,"value":4287.360352}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}

    Genau diesen String bekommt auch Loxone vorgeworfen und ich denke, jetzt sollte klar sein, wie ich auf "dxsId":<Url-Parameter>,"value":\v: komme?!!

    Konnte ich Dir damit weiterhelfen?

    Viele Grüße
    Sascha


  8. Nein, alle Werte sind Null (sad)
    wo kannst du den gesamten String sehen, den der MS an den WR schickt?

    Wenn ich meinen String von oben im Browser eingebe, bekomme ich

    {"dxsEntries":[{"dxsId":33556736,"value":81.259453}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}

    zurück.

    Scheint deinem 1:1 zu entsprechen.

    Nochmal zur Sicherheit: im HTTP Eingang steht lediglich:      http://192.168.15.132/api/dxs.json?          ←habs auch ohne fragezeichen und ohne http:// versucht

    Im Eingangsbefehl entsp.:     "dxsId":33556736,"value":\v:


    Danke schonmal

    Gruß, Oliver

  9. Hallo Oliver,

    selbstverständlich musst du im HTTP Eingang bei URL die gesamte Url eingeben, also mit Fragezeichen "?" und allem was dahinter steht.
    In Deinem Fall also http://192.168.15.132/api/dxs.json?dxsEntries=33556736

    Wenn Du alles nach dem ? wegläßt, dann bekommst Du auch keine Ergebnisse, genauso ist es auch, wenn Du die Url im Browser aufrufst.
    Deine Befehlserkennung im Eingangsbefehl sollte stimmen!

    Gruß
    Sascha

  10. Öh, ich dachte, der MS setzt quasi die Basis http://192.168.15.132/api/dxs.json?     dann mit den einzelnen http-befehlen zusammen?

    Muss man quasi einen riesigen Befehl mit allen Codes generieren und diesen beim Eingang eingeben?

    Dann wird klar, das es nicht geht, sorry, mir war die Funktionalität nicht klar.

    Vielen Dank für deine Mühe!

    Oliver

  11. Hallo Sascha,


    jetzt hab ichs!

    Der Doppelpunkt am Ende des Eingangsbefehls ist falsch! es muss

    "dxsId":33556736,"value":\v

    heißen.

    Außerdem scheint es nicht zu klappen alle Werte in einem langen Befehl auszulesen. Ich habe daher einen 2. HTTP Eingang angelegt und die Befehle entsp. gekürzt.

    Gruß

  12. Hallo Sascha,

    danke für die tolle Anleitung. Leider funktioniert das bei mir nicht, obwohl ich es exakt "nachgebaut" habe (alle Werte sind 0). Der WR PIKO 6.0 funktioniert zwar mit den Kostal-Voreinstellungen des Energiemonitors, ich habe aber Probleme mit den angezeigten Werten (insb. aktuelle Gesamtproduktion), da diese offensichtlich die Ladung/Entladung der angeschlossenen Batterie enthalten. Deshalb wollte ich zusätzlich einen reinen PV-Produktionswert um einmal zu vergleichen.

    Für jeden Hinweis dankbar.

    Herzlichen Gruß, Andreas

  13. Hi Andreas,

    beachte, das Saschas Anleitung nur für die letzte Piko "bewährte Generation" gilt, die hellgrauen, fast quadratischen Gehäuse!

    Kannst du die Werte denn im Firefox mit dem Entwicklertool sehen?

    Gruß, Oliver

  14. Hallo Oliver,

    danke für den Hinweis! Ich konnte letzteres noch nicht testen, da ich gerade nicht vor Ort bin.

    Prinzipiell müßte ja eine http-Abfrage mit jedem Kostal WR möglich sein - oder?

    Werde mir mal das Entwicklertool ansehen und weitere Versuche starten. Danke.

    Gruß, Andreas

  15. Hi Andreas, nein! -eben nicht! Jede Kostal Serie hat einen anderen Aufbau des Webinterfaces.

    Wenn du die Werte über den Loxone Energiemonitor bekommst, wird die hier beschriebene Methode nicht klappen. Dann müßte deiner noch die Vor-Generation sein, mit sehr einfachem Webinterface (kaum Unterseiten, wenig Einstellungen).

    Daher siehst du ja links im Menue schon 3 Anleitungen für 3 verschiedene Serien.

    Gruß, Oliver

  16. Hallo

    Ich bekomme im Dezember einen Kostal Plenticore 5.5 plus WR. Sind bei diesem Gerät die API bzw. URL Parameter die gleichen wie beim Piko.

    Könnte ev. ein Besitzer eines Plinticore mal  http://<ip des Wechselrichter>/api/dxs.json?dxsEntries=33556736 abfragen? Damit sollte die DC Leistung abgefragt werden.

    Danke für die Unterstützung.

    LG Dieter

  17. Hallo zusammen,

    Dieter Längle laut Kostal wird das beim Plenticore 5.5 plus nicht mehr unterstützt. Man bekommt so keine Werte ausgelesen. Sie verweisen auf die Modbus Steuerung.

    Oder funktioniert das bei jemanden mit einen Plenticoe X plus?

    danke und Grüße

    Kilian

  18. Hallo Zusammen,


    ich habe seit kurzen einen Plenticore 7.0 Plus.  Mit http://<IP Wechselrichter>/api/v1/processdata komme ich auf folgende Seite:

    Kann man hier erfolgreich Daten auslesen?

    Bzw. hier ein Foto vom Entwicklertool vom Wechselrichter:


    Kann mir hier jemand weiterhelfen?

    Vielen Dank!


    Dominik

  19. ******** LÖSUNG ***************

    Hallo Loxone-Bastler,

    Habe mit meinem Piko 5.5 (Firmware-Version 3.77) dass Problem, dass dieser kein .json liefert sondern lediglich eine .fhtml

    Ich hoffe ich kann den ein oder anderen mit meiner Lösung helfen.

    Was mir bei der Konfiguration geholfen hat, war folgender Beitrag: https://www.loxone.com/dede/kb/virtueller-http-eingang/ 


    Wie ich die Daten trotzdem in die Loxone bekommen habe könnt ihr in folgender Beschreibung lesen:

    1) Erstellen eines "Virtueller HTTP Eingang" mit folgenden Einstellungen:

    bei der URL kein "http://" etc. Sondern lediglich "nutzername:passwort@IP-Adresse" wobei der Nutzername und das Passwort die Eingaben sein müssen, welche bei der normalen Anmeldung über den Webbrowser auch eingegeben werden (siehe Bild 2). Abfragezyklus, Timeout und Anzahl der erlaubten Timeouts kann frei gewählt werden.

    Bild 1 - Virtueller HTTP EingangBild 1 - Virtueller HTTP Eingang

    Bild 2 - AnmeldefensterBild 2 - Anmeldefenster



    2) Herausfinden der Zeilen für die Befehlserkennung:

    im Webbrowser die Ip-Adresse des Wechselrichters eingeben und auf der Seite anmelden. Dann mit der Taste "F12" die Entwicklertools einschalten, auf Network, die IP-Adresse und Response klicken (siehe Bild 3):  Dort sollte dann ein ähnliches HTML File angezeigt werden (eventuell nach dem öffnen der Entwicklertools noch auf die Schaltfläche "Anzeigen/Aktualisieren" klicken). In diesem HTML File gilt es nun die gewünschte Zahl zu finden, im Fall meines Beispiels der Wert der Aktuellen Produktion. die Zahl in Zeile 46 ist mein gesuchter Wert. Diese 3 Zeilen nun kopieren und in Schritt 3 einfügen.

    Bild 3 - Website mit EntwicklertoolsBild 3 - Website mit Entwicklertools



    3) Erstellen eines "Vitueller HTTP Eingang Befehl" mit folgenden Einstellungen:

    bei der Befehlserkennung muss rechts im Feld auf die drei Punkte geklickt werden, wodurch sich ein Fenster (Bild 5) öffnet. In diesem Fenster werden nun die 3 Zeilen aus Schritt 2 eingefügt und die Stelle an der der gesuchte Wert steht "\v" eingefügt (Bild 5).

    Bild 4 - Virtueller HTTP Eingang BefehlBild 4 - Virtueller HTTP Eingang BefehlBild 5 - BefehlserkennungBild 5 - Befehlserkennung


    Nun noch mit OK Bestätigen und der Eingang ist fertig. Die Schritte 2 und 3 können nun sinngemäß für alle Werte die auf der Website des Wechselrichters angezeigt werden angepasst und kopiert werden.


    Ich hoffe die Beschreibung ist einigermaßen verständlich und hilft dem Ein oder Anderen bei seiner Umsetzung.

    Ansonsten stehe ich euch gerne für Fragen zur Verfügung. 


    Mit freundlichen Grüßen

    Fabian

  20. Hallo zusammen,

    ich füge gerade diese Lösung auch bei mir ein, dafür danke an Sascha für die tolle Vorarbeit. Ich habe mir aus dem Code ziemlich alle URL-Parameter herausgeschrieben. Anbei eine Liste.

    Gruss

    Hubert