-
Notifications
You must be signed in to change notification settings - Fork 66
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
Support for VE.Direct HEX protocol #833
Conversation
* show charge controller temperature in live view * send hex requests right after decoding a frame. this seems to have the best chance of getting an answer to all requests. * deem 0xFFFFFFFF value of network total DC power as invalid indicator. neither network state, nor network info, nor network mode seem to indicate that the charge controller is part of a VE.Smart network. for that reason, we revert to always querying the network total DC power value, but testing it for max(uin32_t) value, which seems to indicate that the charge controller is not part of a VE.Smart network. * improve (verbose) logging, e.g., use _logId, and print names of response codes and known registers, always print error messages, add additional tests to prevent overly verbose messages. * move hex protocol definitions to VeDirectData.h header and use enum classes * define register addresses in enum class * move values retrieved through hex protocol into main MPPT data struct * do not send HEX requests if the serial interface cannot send data * detect whether smart battery sense temperature is available * web app: make all VE.Direct sub-cards iterable. this makes addind more values much simpler and saves a bunch of code in the web app. * make VeDirectFrameHandler state a type-safe enum class * unindent MPPT controller loop() * whitespace cleanup
1. makes the DPL use the power generated by all connected charge controllers for calculations based on solar passthrough. 2. makes the network total DC power appear as "MPPT Total Power" in the live view at the top. 3. shows the network total DC power in the VE.Direct live data card.
@SW-Niko Magst du das einmal testen? Ich bin sehr zufrieden. Die Netzwerk-Gesamtleistung wird zuverlässig abgefragt, die MPPT Temperatur ebenso. Ich habe meinen zweiten, noch nicht an Module angeschlossenen Laderegler ins VE.Smart network gesteckt mit dem ersten, und beide sehen die gleiche "network DC input power". Da der eine keine Leistung liefert, entspricht der Wert stets der Eingangsleistung des ersten. |
Klar, mach ich.... |
Ich habe den Branch #833 lokal gezogen, compiliert und eingespielt. Hier ein kleiner Ausschnitt aus dem Log:
|
Hast du etwa vergessen, die Web App zu bauen vorm Kompilieren der Firmware? 🧐 |
Ja genau, Noch nie gemacht. Ich schau mir mal an wie das geht. PS: Unknown text data 'IL' (value '3300') Kommt nur von MPPTs mit Lastausgang. |
https://www.opendtu.solar/firmware/compile_webapp/ Das IL sollten wir einfach noch parsen. Müssen es ja nicht weiterverarbeiten. Bzgl. SmartShunt gibt es auch noch Werte zu parsen, die sonst bemängelt werden, siehe #834. |
Ok, Das sind Historische Daten, die werden (noch) nicht bearbeitet. Mir ist bis jetzt nur nicht aufgefallen, das die automatisch als asynchrone Daten gesendet werden. Die Web App kann ich nicht bauen. Anscheinend wird yarn nicht gefunden.
|
Jaaaaaa 😄 |
Nice! Danke für die Rückmeldung, dann nehmen wir das mal in den development Branch. |
Hallo @schlimmchen , |
Sehr gerne. Hast du einen SmartShunt um zu testen! Von mir aus können wir auch nach Auge implementieren und jemand anders testen lassen (hab vergessen, wer berichtete, aber derjenige z.B. könnte es testen). |
Nein, ich habe keinen Smart Shunt. Wir finden schon jemanden der das testen kann. |
Ich weiß nicht ob’s hilft, aber es gibt einen DIY smartshunt https://github.com/kscholty/SmartShuntINA226 den kann man auf nem esp laufen lassen. So einen würde ich mir wohl zusammen basteln, wenn ich mal ne Batterie brauche :) |
Danke für die Info @spcqike . |
Hallo SW-Nico, |
Hallo @tonibbb, Falls du die FW selber bauen magst dann google mal nach "Yarn" |
@tonibbb Mein Vorschlag lautet, dass du dir ein Github Build Artefakt vom dem development Branch nimmst, z.B. jenes basierend auf 1d4bea2. Dann musst du gar nichts bauen. Die Funktionalität ist darin enthalten (weil diese Firmware auf Bais des development Branches gebaut wird). Mit einem neuem Firmware-Release darfst du innerhalb der nächsten Woche rechnen. |
Da warte ich doch gerne auf das nächste Release (schneller wäre ich wohl ohnehin nicht). |
Da ich mir leider das vorgestern veröffentlichte Update wegen inkompatiblem ESP nicht einspielen konnte, habe ich mir der/die/das Build aus #1156 gezogen. Kann mir einer sagen, ob hierbei "automatisch" die Gesamtleistung der Victrons für Solarpassthrough herangezogen wird oder ob dies noch i-wo eingestellt wird? Gibt ja ne Menge neue Einstellmöglichkeiten im DPL und vielleicht wird dieses nur über bestimmte Einstellungen diverser Start-/Stoppspannungen erreicht? |
Hallo @tonibbb , |
Ja, kann ich inzwischen bestätigen, dass in diesem upstream die Gesamtleistung automatisch Verwendung findet. |
Sehr schön, Dank an alle Beteiligten! |
Gemeint ist womöglich der Build Run 1156: https://github.com/helgeerbe/OpenDTU-OnBattery/actions/runs/8739875857 Der Text
OpenDTU (das Upstream-Projekt) kennt keinerlei Unterstützung für VE.Direct.
Bitte einfach das Release 2024.05.06 oder jünger verwenden, das ist die Verwendung der VE.Smart Netzwerkgesamtleistung drin. |
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns. |
Adds decoding and encoding methods for handling HEX protocol data, by @SW-Niko. Requests MPPT temperature, battery sense temperature (if part of VE.Smart network) and VE.Smart network total DC input power using HEX protocol from supported MPPT charge controller (TX pin must be defined, firmware must be sufficiently recent). Uses the new info in DPL and web app.