Erweiterung des Victron Shunt bezogenes Codes #539
Replies: 4 comments 7 replies
-
Das sieht mir stark danach aus als hättest du nicht |
Beta Was this translation helpful? Give feedback.
-
@swingstate Super, das wird ein richtig nützliches Feature! Das sollte aber auch 2 * 12 V Batteriebänke berücksichtigen, auch da ist die Mittelpunktspannung ein nützlicher Wert. Wenn du dir diese Mühe machst, könntest du die Anzeigen für die Batteriewerte an die tatsächlich vom Smartshunt gelieferten Werte anpassen? Derzeit wird da unnötig abgeschnitten bzw. falsch gerundet: |
Beta Was this translation helpful? Give feedback.
-
Hallo ,
Die Nachkommastellen werden mit ziemlicher Sicherheit durch eine Integer
Division abgeschnitten. Wenn in
```
shuntData.H17 / 100;
```
beide Variablen Integer sind, wird das Ergebnis auch ein Integer mit
abgeschnittenen Nachkommastellen:
~~~
10234 / 100 ergibt dann 100
~~~
Probier doch mal mit Typecast
```
_dischargedEnergy = (float)shuntData.H17 / 100.0;
```
ggf. alternativ:
```
_dischargedEnergy = (float)shuntData.H17 / (float)100;
```
Falls _dischargedEnergy eine floating point Variable ist, kommt dann beim
Beispiel 100.24 raus.
Grüsse, Markus
swingstate ***@***.***> schrieb am Mo., 18. Dez. 2023, 23:24:
… @schlimmchen <https://github.com/schlimmchen> ich arbeite momentan primär
an dem Ve.Direct MQTT Thema und habe ein paar Fragen dazu.
*Erstes Thema - MQTT Details:*
Wo werden die Details der Nachkommastellen für z.B. discharged &
chargedenergy abgeschnitten? Wenn ich mir die Rohdaten von H17 über MQTT
senden lasse und ansehe bekomme ich z.B: 37604 angezeigt (lt. Datenblatt
wird in 0.01 kWh gemessen). Der Code in den Releases in Batterystats.cpp
macht daraus mittels / 100 376 kWh.
void VictronSmartShuntStats::updateFrom(VeDirectShuntController::veShuntStruct const& shuntData) {
...
...
...
_dischargedEnergy = shuntData.H17 / 100;
Durch 100 dividieren macht also Sinn. Nur wo bleiben dann die "04"
Nachkomma Details? Via MQTT wird ja nur ein String gesendet. Dieser String
muss ja vorher schon inkl. Nachkomme Details vorhanden sein, oder?
Für getLiveViewData kann ich zwar die Nachkommastellen auf 2 erhöhen,
Beispiel: addLiveViewValue(root, "dischargedEnergy", _dischargedEnergy,
"KWh", 2); jedoch bleibt es dann im LiveView bei zwei Nullen hinter dem
Komma, obwohl dort 04 angezeigt werden müsste.
*Zweites Thema - MQTT Autodiscovery:*
Ich würde den Abschnitt sensor/dtu_ in MqttHandleHass.cpp gerne um einige
Battery Felder (Midpoint, Midpoint Abweichung, Power etc.) erweitern,
welche ich bereits erfolgreich über MQTT senden kann. Wo genau muss ich das
machen?
Ich habe den Eindruck dass Ve.Direct auch MqttHandlePylontechHass.cpp
verwendet, denn nur dort finde ich den Teil des Strings der sich auch in
den Ve.Direct Battery MQTT Topics zeigt dtu_battery_.
Bildschirmfoto.2023-12-18.um.23.23.48.png (view on web)
<https://github.com/helgeerbe/OpenDTU-OnBattery/assets/73672554/bbd7a625-f0ba-4e0e-bc68-85dc850679ae>
Für Tipps wäre ich dankbar.
—
Reply to this email directly, view it on GitHub
<#539 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOKANWRTGCQJGR52U2TIDULYKC7DXAVCNFSM6AAAAAA73DIZSSVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TQOJRGQYDK>
.
You are receiving this because you commented.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
All current MQTT related changes are included in this test release: https://github.com/swingstate/OnBattery-dev/releases/tag/2023.12.19-beta |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Ich habe mich weiter in GitHub und VScode eingelesen und ein Fork erstellt um meine Änderungen lokal zu testen.
Kontext: Die Victron Smartshunt Unterstützung in Zusammenhang mit einer 2x 25,6V Batteriebank.
Mein Ansinnen ist es den Code der den Victron Shunt betrifft dahingehend zu erweitern, dass folgende Dinge aus Nutzersicht abgedeckt sind:
Ich würde das Batterie Config Menü des SmartShunts gerne ähnlich wie für das JK BMS anpassen und eine Checkbox einfügen, mit der der Benutzer bestätigen kann, dass die Batterie eine Bank aus mindestens 2 Batterien ist. Nur wenn diese Checkbox aktiv ist sollen dann VM und DM im Liveview angezeigt werden.
Ich habe mich dazu am Menü für das JKBMS orientiert, jedoch wird die gewünschte Checkbox nicht angezeigt. Dies ist der Code aus der BatteryAdminView.vue:
Ich habe dann noch weitere Anpassungen vorgenommen, die ich hier nicht alle auflisten möchte - sieht man ja gut im Fork.
Meine 1. Frage ist nun - Gibt es irgendwo im Code noch weitere Punkte die angepasst werden müssen, damit sich das Menü für den Shunt entsprechend anpasst?
Meine 2. Frage ist, Wo muss der Code geändert werden um im LiveView die gewünschten Text und nicht den Namen einer Variablen anzuzeigen?
Aktuell sehe ich nur das Konstrukt aus battery + Variable, obwohl ich die
de.json
angepasst habe.Aus der de.json:
Vielleicht habt ihr ja Tipps?
Beta Was this translation helpful? Give feedback.
All reactions