Ich habe das Kostal Piko Modul installiert. Bisher funktionierte das wunderbar. Am Freirag habe ich den Wechselrichter mit der neuen Firmware und der aktuellen UI versehen. Mit der neuen UI Version ist eine komplett überarbeitete Weboberfläche installiert worden. Seitdem erhalte ich, verständlicherweise, keine Werte mehr über das Modul.
Wird das Modul dementsprechend angepasst?
Gruß wolfdell
Hallo wolfdell,
das vorliegende Modul ist im Prinzip ein HTML-Parser, d.h. die HTML-Seite nach bestimmten Signaturen untersucht, an denen die
interessierenden Zahlenwerte erwartet werden.
Damit ist klar, daß jede Änderung der Seite durch den Hersteller auch eine Änderung von diesem Modul bedeuten würde.
Mein Wechselrichter kann bezüglich Firmware nicht aktualisiert werden, so daß sich jemand finden muß der die neue Aufgabe übernimmt.
Eine offene Schnittstelle des Herstellers zur Datenübetragung an externe Systeme wäre eine wesentliche Verbesserung, da diese
unabhängig von der Gestaltung der Oberfläche wäre.
Ich rate dazu diesbezüglich Kontakt mit der Hersteller aufzunehmen, ob dieser seine Daten-Schnittstelle offenlegen würde.
(die Kostal-Software kommuniziert ja auch mit dem Wechselrichter).
Du kannst aber vorab den HTML-Abzug deiner der neuen Seiten hier reinstellen, vielleich sind die Änderungen ja nicht so gravierend.
John
Hallo,
ein kleines Zwischenergebnis. Ich habe Kostal angeschrieben mit der Bitte über die Schnittstelleninformation. Diese würde mir auch nach der Unterzeichnung einer Geheimhaltungsverpflichtung zugesandt. Das geht natürlich nicht, da Fhem Open Source ist. Aktuell habe ich bei Kostal noch einmal nachgefragt ob es eine andere Möglichkeit gibt. Die Antwort ist noch offen, ich informiere hier wenn ich weitere Informationen habe.
Des Weiteren habe ich mal drei Bildschrimabzüge hier an gehangen. Vielleicht kann John ja etwas damit anfangen. Sonst können alle interessierten einen Eindruck von der neuen Oberfläche bekommen. Wie schon eingangs beschrieben ist die Weboberfläche komplett überarbeitet worden. Sie ist dem Portal von Kostal sehr ähnlich.
Gruß wolfdell
Hallo,
Erstmal vielen Dank für Deine Mühe und tatkräftige Unterstützung. Leider ist es aber so das ein Entwickler mit den Bildern nichts anfangen kann. Was wir brauchen ist die Seite als HTML Code.
Also Seite aufrufen wo die Daten enthalten sind und dann, bei Firefox zum Beispiel, rechte Maustaste Seitenquelltext anzeigen. Und genau das dann in Code Tags hier bitte posten oder als Anhang hier rein.
Grüße
Leon
...habe den Quellcode in der txt Datei angehangen. Bei der Erstellung bin ich auf mehrer menüpunkte gegangen und habe die codes in die Datei eingetragen. Aus meiner Sicht sehen die alle gleich aus. Wenn ich unterstützen kann, dann bitte melden, ich versuche mit meinem wenigen Wissen so gut zu unterstützen wie es geht. ;D
Hallo, auf meiner Suche nach einer Lösung bin ich auf ein Python Script gestoßen. Dieses habe ich auf meinem Raspberry kopiert und getestet. Es liefert die Werte wie in der Beschreibung angegeben. Das script mit der Beschreibung befindet sich im Anhang. Vielleicht hilft das.
wolfdell
Guten Morgen,
Das ist sehr gut. Gib John etwas Zeit um das ganze um zu setzen. Er ist der Modulentwickler. Leider bin ich zur Zeit etwas eingespannt sonst hatte ich ihm ein Patch einreichen können. Also bitte etwas Geduld.
Grüße
...na klar, kein Thema. Wenn ich testen soll, dann meldet euch bitte.
Neue Installationen, bei denen der neue UI und die neue Firmware standardmäßig installiert sind, werden ja erst nach dem Winter beginnen. Es bleibt also ein wenig Zeit. :)
hallo,
1. post als neuling und fhem /kostal noob hoffe es hilft :)
kostal webserver => ui 06.11
anfrage:
http://xxxxxx.de/api/dxs.json?dxsEntries=33555202&dxsEntries=33555201&dxsEntries=33555203&dxsEntries=33555458&dxsEntries=33555457&dxsEntries=33555459&sessionId=xxxxx
raw antwort
{"dxsEntries":[{"dxsId":33555202,"value":744.586548},{"dxsId":33555201,"value":0.140991},{"dxsId":33555203,"value":105.541122},{"dxsId":33555458,"value":745.179932},{"dxsId":33555457,"value":0.000000},{"dxsId":33555459,"value":0.000000}],"session":{"sessionId":xxxxxx,"roleId":2},"status":{"code":0}}
z.B.
dxsID: 33555202 = Spannung DC1
33555201 = Strom DC1
67109120 = Ausgangsleistung
usw.
und jetzt meine frage hat schon jemand das ganze im modul umgesetzt?
Nachtrag:
man könnte natürlich auch mittels 98_HTTPDMOD.pm alle werte des webservers ui 06.11 per GET/PUT ->json auslesen. eine pw bzw. session wird dafür nicht benötigt. (anfrage dazu an hersteller steht noch aus)
z.B. http://xxxxxx/api/dxs.json?dxsEntries=33555202&dxsEntries=33555201
die gültigen ids und die umrechnung sind im webserver (javascript) z.B. http://ip-adresse-des-wr/assets/kbApp-1.0.6.js zu finden. bei bedarf kann ich sie auch posten ist ja kein geheimniss :)
für alle die ein portforwarding ins i-net zum wr machen, rate ich kein portforarding ins i-net da jeder der die ip und port kennt die werte auslesen kann und evtl. auch noch mehr :(
..ich melde mich mal wieder zu dem Thema, gibt es schon eine angepasste Version?
MfG
wolfdell
glaube nicht,
aber man kann es ganz einfach per httpmod umsetzen
z.B.
def: http://kostal.ip/api/dxs.json?dxsEntries=33555202&dxsEntries=33555201&dxsEntries=33555203&dxsEntries=33555458&dxsEntries=33555457&dxsEntries=33555459&dxsEntries=67109120&dxsEntries=83888128&&dxsEntries=83886848&dxsEntries=83886336&dxsEntries=83887106&dxsEntries=83887362&dxsEntries=83887618&dxsEntries=251658754&dxsEntries=251658753 60
gibt folgende werte alle 60 sec aus:
Spannung P1
Strom P1
Leistung P1
Spannung P2
Strom P2
Leistung P2
Ausgangsleistung
Eigenverbrauch
aktl. Verbrauch Netz
akt.Verbrauch PV
Hausverbrauch P1
Hausverbrauch P2
Hausverbrauch P3
Erzeugung Tag
Erzeugung gesamt
andere werte sind natürlich auch möglich aber mir reicht das :)
Hallo zusammen,
seit heute ist ein Piko 8.5 Dauergast in meinem Haus... 8)
Nun möchte ich mir dort gern die Ausgangsleistung per HTTPMOD abholen.
Dazu also folgendes definiert:
http://ip.des.piko.wr/api/dxs.json?dxsEntries=67109120 60
list des entsprechenden httpmods:
Internals:
BUSY 0
CFGFN
CHANGED
DEF http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=67109120 60
GetSeq 0
HTTPHEADER
Interval 60
LASTSEND 1461001433.93469
MainURL http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=67109120
NAME httpmod_piko
NR 902
STATE ???
TRIGGERTIME 1461001493.93401
TRIGGERTIME_FMT 2016-04-18 19:44:53
TYPE HTTPMOD
addr http://xxx.xxx.xxx.xxx:80
buf HTTP/1.0 200 OK
Content-Type: text/plain
Expires: Sun, 02 Jan 2000 11:11:11 GMT
{"dxsEntries":[{"dxsId":67109120,"value":46.909782}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
code 200
conn
data
displayurl http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=67109120
header
host XXX.XXX.XXX.XXX
httpheader HTTP/1.0 200 OK
Content-Type: text/plain
Expires: Sun, 02 Jan 2000 11:11:11 GMT
hu_blocking 0
hu_filecount 2
ignoreredirects 0
loglevel 4
path /api/dxs.json?dxsEntries=67109120
protocol http
redirects 0
timeout 2
url http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=67109120
QUEUE:
Readings:
Request:
data
header
ignoreredirects 0
retryCount 0
type Update
url http://xxx.xxx.xxx.xxx/api/dxs.json?dxsEntries=67109120
Sslargs:
Attributes:
Dann habe ich versucht, mir den Artikel im Wiki anzueignen, aber da scheitere ich leider...wegen Englisch und wegen Verständnis :-[
Kann mir vielleicht jemand helfen, wie ich mir daraus ein Reading/State bauen kann, welches mir den aktuellen Wert zeigt?
Interessanter Teil ist ja wohl dieser Abschnitt: "value":46.909782, oder?
Vielen Dank schonmal für jegliche Hilfe!
Gruß
Andreas
Hallo zusammen,
konnte die Aufgabe nun doch selbst lösen...nachdem ich den thread zu httpmod hier im Forum gefunden habe... :-[
Also, zunächst hab ich mir alle Sachen von der Seite mit "extractAllJSON" abgeholt und mir dann die für mich interessanten Sachen mit "readingXXJSON" und "readingXXName" zusammengebaut.
Gruß
Andreas
Hallo Andreas,
ich habe auch einen Piko (7) und würde den gerne via FHEM auslesen. Kannst du deine Lösung hier posten?
Danke, Karsten
Hallo Karsten,
die Lösung steht schon fast komplett in den beiden posts darüber.
Lies doch mal im Wiki den Artikel zu Httpmod, dort ist eigentlich alles sehr gut beschrieben, und du kannst dir das dann nach deinen Wünschen zusammenbauen.
Wenn du konkrete Fragen oder Probleme hast, meld dich einfach...
Gruß
Andreas
Das mit den extractAllJSON klappt nicht, ich bekomme immer "unbekanntes Attribut".
Habe jetzt eigene Readings definiert, z.B.
reading01Name Ausgangsleistung
reading01Regex 67109120,"value":([\d\.]+)
Der PIKO ist als Typ HTTPMOD definiert.
So bekomme ich es auch hin.
Hi Karsten,
extractAllJSON habe ich, wie ich geschrieben habe, nur kurz genutzt, um mir die Bezeichnung der Parameter zeigen zu lassen.
Danach hab ich das wieder rausgenommen und mir die Readings so gebaut:
Beispiel
reading01Format %.0f
reading01JSON dxsEntries_01_value
reading01Name Ausgangsleistung
Warum extractAllJSON bei dir nicht funktioniert, weiß ich nicht...welche Version von HTTPMOD hast du denn? Und wie sieht dein Url-Aufruf aus?
Gruß
Andreas
Hallo Andreas,
ich habe das fhem Paket ganz frisch herunter geladen, also 5.7.
Die Url (DEF) ist:
http://###/api/dxs.json?dxsEntries=33555202&dxsEntries=33555201&dxsEntries=33555203&dxsEntries=33555458&dxsEntries=33555457&
dxsEntries=33555459&dxsEntries=67109120&dxsEntries=83888128&&dxsEntries=83886848&dxsEntries=83886336&dxsEntries=83887106&
dxsEntries=83887362&dxsEntries=83887618&dxsEntries=251658754&dxsEntries=251658753&dxsEntries=251659010&dxsEntries=251659265&
dxsEntries=251658496&dxsEntries=251659266 60
Das Ergebnis ist dann
HTTP/1.0 200 OK Content-Type: text/plain Expires: Sun, 02 Jan 2000 11:11:11 GMT {"dxsEntries":[{"dxsId":33555202,"value":355.741699},
{"dxsId":33555201,"value":1.437378},{"dxsId":33555203,"value":511.641998},{"dxsId":33555458,"value":351.884644},{"dxsId":33555457,"value":1.534424},
{"dxsId":33555459,"value":540.658936},{"dxsId":67109120,"value":1002.201660},{"dxsId":83888128,"value":178.646225},
{"dxsId":83886848,"value":0.000000},{"dxsId":83886336,"value":178.646225},{"dxsId":83887106,"value":31.990232},{"dxsId":83887362,"value":-10.643232},
{"dxsId":83887618,"value":157.299225},{"dxsId":251658754,"value":8612.517578},{"dxsId":251658753,"value":128.683289},
{"dxsId":251659010,"value":2378.735352},{"dxsId":251659265,"value":1.902259},{"dxsId":251658496,"value":88},
{"dxsId":251659266,"value":1902.258789}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
Mit den Regulären Ausdrücken fische ich mir dann die Werte für die Readings raus
Jau, so geht's natürlich auch... ;)
Wenn HTTPMOD aktuell ist, solltest du extractAllJSON direkt im WebIF als Attribut auswählen und auf 1 oder 0 setzen können...
Gruß
Andreas
So, jetzt ist das HTTPMOD aktuell, und schon geht das extractAllJSON auch ;)
Ich bin mit dem FHEM Konzept noch nicht so vertraut...
Danke für diesen Thread und an Jeden, der sich eingebracht hat. Habe das Auslesen meines Pikos damit recht gut hinbekommen.
Falls jemand eine Übersicht aller möglichen DXS Entries wünscht, siehe Attachment. Habe auch eine Formel eingebaut, die aus den gewünschten Values gleiche eine URL generiert, einfach nur noch die IP anpassen :-)
Viele Grüße
Marc
Hallo,
ich möchte gerne aus dem Piko via JSON die Werte für die aktuellen Ausgangsleistungen pro Phase auswerten.
Laut der Excel Tabelle sind das:
Leistung DC-In 1 | 33555203 |
Leistung DC-In 2 | 33555459 |
Leistung DC-In 3 | 33555715 |
Leider sind die gelesenen Werte nicht plausibel, besonders der Wert Leistung DC-In 3 ist immer null
bei mir. Verglichen habe ich das mit den Werten aus der Piko Webseite.
Hat jemand von Euch eine aktuelle Liste der dxs Schlüssel?
Danke, Karsten