Seite 1 von 2

Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 18:44
von Don_Esteban
Hallo in die Runde,

vorneweg. Richtig tolles Projekt, welches mich stärker in den Bann gezogen hat als geplant :shock: :mrgreen: ;-)

Rahmenbedingungen:

1x Fronius Gen24 mit Smart Meter und BYD Speicher per IP per LAN und WLAN erreichbar.
2x Fronius Symo 15K mit einer Datamanger 2.0 Karte + Sensorcard als ID3, die den zweiten WR via RS485 mit abfragt. Datamanager ist per IP per LAN und WLAN erreichbar.

Beide Solar-API Abfragen per Browser funktionieren einwandfrei.

{
"APIVersion" : 1,
"BaseURL" : "/solar_api/v1/",
"CompatibilityRange" : "1.6-3"
}


{
"APIVersion" : 1,
"BaseURL" : "/solar_api/v1/",
"CompatibilityRange" : "1.6-2"
}

Alle Updates auf dem WR und Komponenten sind aktuell.

Bevor Ihr sagt: Nimm die Multiregler Version - Richtig! Habe ich auch schon mit herumgebastelt, jedoch hänge ich an der stelle, dass ich die Symos an dem Datamanger nicht per Skript abgefragt bekomme. Per "Regler 12" [Fronius] funktioniert das wunderbar.

Bei den Symos hingegen nicht. ?!

Daher die Anfrage für die Single-Regler Version: Um die Funktionsfähigkeit zu testen habe ich erstmal alles für den Gen24 eingerichtet. - Daten kommen soweit.

Passe ich dann die IP und die BUS_ID an, um zu den Symos zu kommen, scheitert es. Das Skript scheint ins Leere zu laufen "keine gültigen Daten". Stelle ich die IP wieder auf den Gen24 -alles gut.

Die HTTP Queries laufen bei beiden Geräten vom Browser aus wie erwartet. Sämtliche IP, Geräte IDs etc. So wie es soll.

Kann sich hier jemand einen Reim darauf machen? - Habe heute 6 Stunden gebastelt, komme aber nicht weiter.

Zielsetzung ist natürlich die Erstellung eines Dahboards für das gesamte Erzeugungssystem. Zwei OpenWBs sind bestellt und werden dann auch noch eingebunden ^^.

Bin gespannt auf Eure Ideen :-)

P.S. Das liebste wäre mir: Einer zeigt mir mal "eben wie doof" ich war :lol:

Danke Euch!! - Stephan

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 19:13
von solarfanenrico
Herausgelesen habe ich, daß auf Gen24 eine single-Version läuft.

Einfaches Umstellen auf den anderen Gerätetyp ist fraglich und dauert eigentlich erstmal solange, wie es beim ersten Gerät gedauert hat. Nur die IP umschreiben ist kontraproduktiv.
Ich würde ein Symos auch erstmal als Single einrichten, um es zum Auslesen zu bewegen.

Dann weißt Du, daß es auch gelesen werden kann.
Bis dahin hast Du es selbst bemerkt, welche Fehler sich bei der multi_version eingeschlichen haben.

Enrico

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 19:38
von Don_Esteban
Hi Enrico,

da hast du Recht! Genau an der Stelle bin ich "hängen geblieben" - ich versuchte jeden WR erstmal für sich in der Single-Verison ans laufen zu bekommen.

Ergebnis: Gen24 läuft, die Symos nicht. (bzw. der Datamanager, der diese Beiden Gerät nach aussen vertritt)

Und dann habe ich angefangen alles durchzutesten: HHTP-queries, Ports geöffnet, etc, etc. (siehe oben)

Sorry, wenn das nict deutlich rauskam.

Ich bin wirklich ratlos.

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 19:52
von solarfanenrico
die symos müssen erst als single ausgelesen werden können, wenn es anders herum nicht klappt,

Gen24 komplett vom System trennen und Schritt für Schritt nach Anleitung. Zeit ist ein wichtiger Faktor, gerade bei IP.
Ports öffnen soll wohl ein riskantes Manöver sein.

Manchmal hilft es alle betroffenen Geräte, (Router, WR, Raspberry) neu zu starten, damit jeder mit der angesagten IP zurecht kommt. Wenn alles mal von jedem erkannt wurde ist es einfacher.
Enrico

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 19:55
von Don_Esteban
Hi Enrico,

auch hier zur Klarstellung. Habe nur per Portscan abgesichert, dass die Ports 80 für die JSON API abfragen geöffnet sind. Daran ist wohl nichts riskantes, solange ich komplett im LAN bin. Ein WAN--> LAN Freigabe ist nicht eingerichtet. Das bleibt alles schön "zu Hause und intern" :-)

VG Stephan

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Fr 14. Mai 2021, 20:10
von solarfanenrico
trotzdem müssen bisher nicht lesbare Geräte erst lesbar werden. Sonst kannst Du Multiregler vergessen.

Wenn ich jetzt weiter spinne, hättest Du wahrscheinlich nicht einmal die Chance mit drei eigenständigen Raspberrys. Oder sehe ich dies falsch?
Ich kam ursprünglich auch mit der Multi_version nicht zurecht, und baute eine Doppellösung.
Die Überleitung in die Multi... war dann schnell gemacht. TeamO hat mit mir teleoniert und hat geholfen. Bei mir lag es jedoch an der eindeutigen Zuordnung der USB-Adapter.

IP sollte jedoch einfacher gehen, es sei denn diese würden von solaranzeige.de nicht unterstützt. Dies sollte jedoch bei Dir nicht der Fall sein.
Enrico

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Sa 15. Mai 2021, 08:46
von solarfanenrico
drücke in Deinem Kopf bitte den Restknopf und vergiß vorerst den GEN24.

Beginne von vorn mit der Einrichtung symos als reine single-Version. Bastele solange an dieser Variante und stelle nur hierzu Fragen, bis Du ihn in der solaranzeige drin hast.

Die direkte Abfrage über http://.... im Browser ist etwas völlig anderes, und Du könntest Dir daraus eine eigen solaranzeige programmieren.

Enrico

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Sa 15. Mai 2021, 08:55
von Don_Esteban
Lieber Enrico,

danke für deine Tips, bin dir wirklich dankbar, aber ...

1.) Die Abfrage ist nichts vollständig anderes - ganz im Gegenteil. Das php-Skript fragt exakt diese "Datenstellen" der API ab.
2.) Ich habe schon mehrfach geschrieben: Ich habe mit einer Single-Version schon mehrfach neu angefangen. Gerade eben erst, da ich für Ulrich den Zugriff vorbereite. Regler 12 eingestellt. IP vergeben, Port 80, ID:1 - et voila. --> Gen24 da. Log OK!
3.) IP umgestellt auf Datamanger Card (gleiche API) - Log "Keine gültigen Daten empfangen"
4.) IP wieder umgestellt auf den Fronius Gen24 - Daten wieder da. Log OK!

Ich kann es mir auch nicht erklären.... spooky :-)
VG Stephan

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Sa 15. Mai 2021, 09:26
von TeamO
Ich kann mir nur vorstellen, dass bei der Datamanager Card die ID für die beiden Symo eine andere sind. Da kannst Du mal ID 2 und/oder 3 versuchen.

@Enrico:
Ich finde es ja super, wenn Du hier vielen versuchst zu helfen. Leider muss ich Dich hier mal ein wenig einbremsen. Oft schreibst Du auf gut Glück irgendwelche Vorschläge ohne wirklich helfen zu können. Das hilft doch keinem. Wenn Du nicht wirklich helfen kannst, weil Du es nicht weißt, dann lass es bitte und überlass es denen, die hier helfen können. Es geht hier im Forum nicht darum mit einer hohen Anzahl an Beiträgen zu glänzen, sondern darum anderen wirklich zu helfen. Wenn ich bei einem Thema nicht helfen kann, dann schreibe ich auch nichts. Du dagegen scheinst in jedem Thread mit einer Frage gleich als erstes zu antworten ohne wirklich helfen zu können. Wir war die Aussage von Dir: "Gefährliches Halbwissen".
Bitte überleg Dir das mal. Es hilft ja keinem, wenn man die eigentliche Lösungsfindung nur verkompliziert und unnötige Texte schreibt.
PS: Das nicht nicht böse, sondern wirklich nett gemeint und eine liebevolle "Bitte" :oops:

Re: Fronius API Abfragen per HTTP erfolgreich, aber per Skript nicht

Verfasst: Sa 15. Mai 2021, 09:33
von Don_Esteban
Hi TeamO,

Gute Idee! - die kam mir gestern nach Stunde 1 auch :-)

Daher habe ich über die Abfrage: http://[DATAMANAGER-IP]/solar_api/v1/GetInverterInfo.cgi die WR-IDs ausgelesen.

{
"Body" : {
"Data" : {
"1" : {
"CustomName" : "WR02 WESTDACH Master (re)",
"DT" : 115,
"ErrorCode" : 0,
"PVPower" : 17490,
"Show" : 1,
"StatusCode" : 7,
"UniqueID" : "4**425"
},
"2" : {
"CustomName" : "WR01 OSTDACH Slave (li)",
"DT" : 115,
"ErrorCode" : 0,
"PVPower" : 17490,
"Show" : 1,
"StatusCode" : 7,
"UniqueID" : "4*68*7"
}
}
},
"Head" : {
"RequestArguments" : {},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2021-05-15T09:28:08+02:00"
}
}


Diese stimmten mit meinen versuchten IDs überein.

Fronius Datamanager Card 2.0:

LAN IP: [DATAMANAGER-IP] erreichbar und Webinterface funktioniert
WLAN IP: [DATAMANAGER-IP] erreichbar und Webinterface funktioniert

Port: 80
API CHECK: OK
CHECK URL: http://[DATAMANAGER-IP]/solar_api/GetAPIVersion.cgi

Geräte am Datamanager:

ID1: Symo 15.0.3 - WR01
ID2: Symo 15.0.3 - WR02
ID3: Fronius Sensor Card mit Einstrahlung, Wind und Temperatursensoren

.... es gibt wohl noch eine "Datamanger-ID" - damit identifiziert sich das Teil auch am Fronius-Portal. Dabei handelt es sich aber eigentlich lediglich um eine "Seriennummer" des Datamanagers.

VG Stephan