Ob eine Batterie vorhanden ist, wird dem System ja mitgeteilt, indem eine entsprechende Komponente angelegt wird.stefan_o hat geschrieben: ↑Mi Mär 13, 2024 4:11 pmZumindest ob eine vorhanden ist und dann gibt es verschiedene Typen, die an unterschiedlichen Stellen ausgelesen werden (wobei die Batterie 1. Generation in Deutschland vermutlich extrem selten ist und die 3. Generation noch nicht auf dem Markt in D). Im Moment wird bei V2 ja auch immer probiert /ivp/livedata/status zu lesen, auch ohne Speicher, bei mir gibt es die gar nicht, weiß nicht ob es an der alten Firmware liegt oder daran, das kein Speicher vorhanden ist.
Die Abfrage von "livedata" kann dann wirklich in die Komponente wandern bzw. nur ausgeführt werden, wenn ein Speicher konfiguriert wurde, da hast Du Recht.
Das Webinterface kann das nicht machen, da es dann einen CORS Fehler gibt und der Browser die Anfrage blockiert. Es ist in Planung, dass solche Aktionen an das Backend durchgereicht werden können. Dafür müssen aber erst noch ein paar Voraussetzungen geschaffen werden. Daher würde ich diesen Punkt vorerst noch nicht umsetzen.stefan_o hat geschrieben: ↑Mi Mär 13, 2024 4:11 pmDas kann man in der /ivp/meters auslesen. Die Frage ist, ob das Webinterface das über xmlhttprequest macht oder das Web-Interface das backend irgendwie abfragt und das in Python gemacht wird. Meine Idee wäre da einen Button zu haben "automatische Erkennung" oder so, der das ausführt.
Ok, da der Teil noch nicht umgesetzt ist, hatte ich da nur als Platzhalter etwas "Dummy-Code" reingeschrieben. Natürlich muss der Token noch auf Gültigkeit geprüft werden.stefan_o hat geschrieben: ↑Mi Mär 13, 2024 4:11 pmJein, die Aktualisierung kommt ja nur wenn kein Token vorhanden ist so wie ich den Code lese, wenn der Token ungültig ist, passiert erstmal nichts. Es wäre wohl auch sinnvoll den Token rechtzeitig zu aktualisieren (also z.B. 24 Stunden vor Ablauf) und nicht darauf zu warten bis er nicht mehr funktioniert. Und einen counter zu haben, das falls die Zugangsdaten zu Enphase nicht mehr passen, das er nicht alle 10 Sekunden wieder probiert ein Token zu erstellen, sondern irgendwann aufgibt.LutzB hat geschrieben: ↑Mi Mär 13, 2024 6:21 am Das wäre gut. Wenn der Abruf eines Tokens mit Benutzer/Kennwort funktioniert, ist die Aktualisierung ebenfalls schon fertig. Im Gegensatz zu anderen OAuth Implementierungen gibt es hier kein "Refresh Token", mit dem ein neues abgerufen werden kann. Es wird immer zwingend Benutzer/Kennwort benötigt. Du kannst also entweder den Zeitstempel des Abrufen mit dem Token speichern oder das JWT decodieren und die Gültigkeit auslesen.
Darfst Du gerne mit anfangen.