-
-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bosch bpts5 hybrid #3029
Bosch bpts5 hybrid #3029
Conversation
Danke für Deinen PR! Bis Du Dir sicher, dass:
Letztlich ist es bei Go üblich, Fehler nur 1x zu behandeln- entweder loggen oder zurück geben. Wenn Du Beides machst werden sie doppelt gelogt was nicht notwendig ist (Hinweis: fmt.Errorf um Loginfos zu ergänzen). |
Hi,
|
das ist ne Menge Code. Liegts denn wirklich an mehreren Verbindungen (das sind ja auch nur Http Requests?) oder einfach an der Häufigkeit der Zugriffe oder einer Wartezeit dazwischen? Häufigkeit hättest Du ja max. 3x parallel. Wartezeit lässt sich ganz einfach über ein time.Ticker machen. ich würde den Code gerne deutlich vereinfachen bevor wir den einchecken… |
Leider kann ich aufgrund des closed sources des Bosch Systems nicht sagen, was dort zum Fehler führt. Ich hatte nur beobachtet, dass bei mehreren Connections und häufigeren Anfragen das PV-System dazu neigt in einen Fehlerzustand zu wechseln, der die gesamte Stromproduktion lahm legt und einen Neustart der gesamten Anlage erfordert. Der genutzte Endpoint des Systems ist hier ja auch nicht wirklich als offener Standard (wie z. B. JSON) zum Datenabruf gedacht, sondern eigentlich nur für die Darstellung der Übersicht auf einer Webseite, den ich hier abgreife. Ich gehe davon aus, dass hier die Umsetzung im Gerät nicht für die permanente und häufige Abfrage konzipiert ist. Der meiste Code ist denke ich für das parsing des speziellen Rückgabewertes. Gerne können wir hier weiter optimieren. |
Ich hab auch einen Schwung Vereinfachung ergänzt, da geht aber noch mehr.
Könntest Du das probieren? Der aktuelle Code ist immer noch sehr komplex und v.a. racy- wenn wir auf parallele Zugriffe umstellen wird das nicht mehr funktionieren. Rate limiting kannst Du ganz einfach so machen:
Dann vor jedem HTTP Request einfach
Damit kannst du das ganze Singleton sparen bzw. auf einen einfachen Channel reduzieren. Auch das API kann dann entfallen. |
Bei
ist auch noch was faul. Das wird nie aktualisiert. |
Hi, Das mit dem limiter versuche ich in den nächsten Tagen nochmal auszuprobieren. |
Cool- wäre Klasse wenn Du das ausprobieren könntest. Dann wirds noch einfacher wenn das API verschwindet. |
Hi, |
habe jetzt das singleton und die API entfernt (alles wieder in die bosch_bpts5_hybrid umgezogen von der API. Baue das gleich mal und lasse es laufen. Bin gespannt, ob sich die Bosch beschwert und wann. |
Nach ca. 6h Betriebszeit antwortete die Bosch nach dem Umbau (ohne Singleton) leider erst mit einem i/o timeout->no route to host->und anschließend mit einem 400er Error beim Versuch des Relogins :-(. |
Gut. Dann git reset auf den commit vorher und dann lassen wi das so 👍🏻 |
Oder besser git revert! |
This reverts commit bf1f91f.
Make member method
done! |
LGTM. Können wir Namen und Logger vielleicht noch auf
verkürzen? |
Klar. Gerne. |
Ist drin- vielen Dank :) |
Super! Gerne. Mein nächstes Projet ist eine WearOS App, die die Daten von der evcc-API auf der Smart-Watch anzeigen kann :) |
Woah... dann wirds aber langsam Zeit, dass Du Dich bei Slack anmeldest! |
Also der Link unter https://docs.evcc.io/docs/Home ist hier leider nicht mehr valide: "Der Link ist nicht mehr aktiv" |
/cc @naltatis könntest Du nochmal helfen? |
Schräg. Ich hatte nach Ablauf unseres Slack Pro Trails extra noch mal die Invite Links überprüft. Da funktionierten die noch. |
@waldtraut1981 Die Slack-Invite Links sind nun aktualisiert. Versuch gerne noch mal. |
Added support of PV battery system Bosch BPT-S 5 Hybrid