[23_BYDBox] - Modul für BYD Box Battery

Begonnen von MiniBlister, 14 Juni 2021, 18:37:02

Vorheriges Thema - Nächstes Thema

MadMax

Zitat von: THW am 22 Dezember 2024, 17:57:27Hallo Max,

ja, sind 16 Spannungen und 10 Temperaturen, auch im log file 10 Temperaturen, wobei die letzten 2 Temperature-Werte deutlich außerhalb der anderen liegen, also vermutlich keine Zell-Temperaturen sind.

T0 bis T7 sind um die 35°C, T8 und T9 um die 40°C

Das System ist in Harare, Simbabwe installiert, daher die ungewöhnlichen Temperaturen :-)

Danke & Gruß,
Thomas.

Es gibt noch eine 11. Temperatur ähnlich der T8 und T9. Vermutlich BMS und so.

Ja die Temperaturen hatten mich schon gewundert aber da wo das System läuft relativ normal.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

MadMax

Hallo,

_Imp_ ist aufgefallen das die Reinfolge der Balancing Zellen nicht mit dem tool von Oli übereinstimmt, ich habe das heute mal gegen geprüft.
Er hat recht und die Anzeige vom BYD-Logger ist definitiv plausiebler.

Im Anhang die Angepasste Version.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

appi

Hallo

ich benutze das Modul und es funktioniert soweit sehr gut. Allerdings bekomme ich bei jedem Update einen Fehler im Log:
PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 124133) line 1.
2025.05.02 07:26:01 1: eval: {BYDBox_UpdateDone('myBYDBox|1|1|QllEU2VyaWVubnVtbWVyIFAwMzBUMDIwWjIzMDgyODIzNjd8Qk1VRmlybXdhcmVWZXJzaW9uIFYzLjI2LUJ8Qk1TRmlybXdhcmVWZXJzaW9uIFYzLjMxLUF8Qk1TQ29uZmlnIE9mZiBHcmlkfFNPQyA1fFNPSCA5OXxCYXR0ZXJ5TWF4Vm9sdCAzLjJ8QmF0dGVyeU1pblZvbHQgMy4xOHxCYXR0ZXJ5Q3VycmVudCAwfEJhdHRlcnlWb2x0IDUxMS44fEJhdHRlcnlNYXhUZW1wIDE5fEJhdHRlcnlNaW5UZW1wIDE2fEJhdHRlcnlUZW1wIDE3fEVycm9yIDB8UGFyYW1UIDkuMnxCYXR0ZXJ5T3V0Vm9sdGFnZSA1MTQuNXxCYXR0ZXJ5UG93ZXIgMC4wMHxDZWxsRGlmZlZvbHRhZ2UgMC4wMnxFcnJvck1zZyBubyBFcnJvcnxQaGFzZSBTaW5nbGV8TnVtYmVyT2ZCTVMgMXxOdW1iZXJPZk1vZHVsZXMgNXxCYXR0ZXJ5VHlwZSBIVlN8QmF0dGVyeVR5cGVWIEhWfEludmVydGVyVHlwZSBTTUEgU1RQIDUuMC0xMC4wIFNFIEhWfEJhdHRlcnlOdW1DZWxscyAxNjB8QmF0dGVyeU51bVRlbXBzIDYwfEJhdHRlcnlfMV9DaGFyZ2VFIDEwNDEzMDN8QmF0dGVyeV8xX0NoYXJnZUVfdG9kYXkgMHxCYXR0ZXJ5XzFfRGlzY2hhcmdlRSA5NDg5NzZ8QmF0dGVyeV8xX0Rpc2NoYXJnZUVfdG9kYXkgMTc3fEJhdHRlcnlfMV9NYXhtVm9sdCAzMjA0fEJhdHRlcnlfMV9NaW5tVm9sdCAzMTgxfEJhdHRlcnlfMV9NYXhtVm9sdENlbGxOciAwfEJhdHRlcnlfMV9NaW5tVm9sdENlbGxOciAxNDN8QmF0dGVyeV8xX01heFRlbXBDZWxsTnIgMXxCYXR0ZXJ5XzFfTWF4VGVtcENlbGwgMTl8QmF0dGVyeV8xX01pblRlbXBDZWxsTnIgNDh8QmF0dGVyeV8xX01pblRlbXBDZWxsIDE2fEJhdHRlcnlfMV9DZWxsRGlmZm1Wb2x0YWdlIDIzfEJhdHRlcnlfMV9TT0MgNS4xfEJhdHRlcnlfMV9TT0ggOTl8QmF0dGVyeV8xX091dFZvbHRhZ2UgNTE0LjV8QmF0dGVyeV8xX0N1cnJlbnQgMHxCYXR0ZXJ5XzFfU3RhdHVzIHxCYXR0ZXJ5XzFfQk1TZXJpZW5udW1tZXIgUDAzMFQwMjBaMjMwODI4MjM2Nw==')}
2025.05.02 07:26:01 1: stacktrace:
2025.05.02 07:26:01 1:     main::__ANON__                      called by (eval 124133) (1)
2025.05.02 07:26:01 1:     (eval)                              called by ./FHEM/98_DOIF.pm (188)
2025.05.02 07:26:01 1:     main::DOIF_UpdateCell               called by ./FHEM/98_DOIF.pm (3596)
2025.05.02 07:26:01 1:     main::DOIF_Notify                   called by fhem.pl (3988)
2025.05.02 07:26:01 1:     main::CallFn                        called by fhem.pl (3900)
2025.05.02 07:26:01 1:     main::DoTrigger                     called by fhem.pl (5017)
2025.05.02 07:26:01 1:     main::readingsEndUpdate             called by ./FHEM/23_BYDBox.pm (1761)
2025.05.02 07:26:01 1:     main::BYDBox_UpdateDone             called by (eval 124131) (1)
2025.05.02 07:26:01 1:     (eval)                              called by fhem.pl (1180)
2025.05.02 07:26:01 1:     main::AnalyzePerlCommand            called by fhem.pl (1209)
2025.05.02 07:26:01 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.05.02 07:26:01 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2025.05.02 07:26:01 1:     main::telnet_Read                   called by fhem.pl (3988)
2025.05.02 07:26:01 1:     main::CallFn                        called by fhem.pl (789)

Habt ihr das auch und was kann ich dagegen tun?

remo

Prof. Dr. Peter Henning

Erstens ist das eben kein "Fehler" - sondern eine Warnung.
Zweitens bitte einfach lesen, was dort steht: Offenbar kommt das aus dem DOIF, mutmaßlich aus irgendeinem Tabellenschmonzes.

LG

pah

MadMax

Zitat von: appi am 02 Mai 2025, 07:36:11Hallo

ich benutze das Modul und es funktioniert soweit sehr gut. Allerdings bekomme ich bei jedem Update einen Fehler im Log:
PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 124133) line 1.
2025.05.02 07:26:01 1: eval: {BYDBox_UpdateDone('myBYDBox|1|1|QllEU2VyaWVubnVtbWVyIFAwMzBUMDIwWjIzMDgyODIzNjd8Qk1VRmlybXdhcmVWZXJzaW9uIFYzLjI2LUJ8Qk1TRmlybXdhcmVWZXJzaW9uIFYzLjMxLUF8Qk1TQ29uZmlnIE9mZiBHcmlkfFNPQyA1fFNPSCA5OXxCYXR0ZXJ5TWF4Vm9sdCAzLjJ8QmF0dGVyeU1pblZvbHQgMy4xOHxCYXR0ZXJ5Q3VycmVudCAwfEJhdHRlcnlWb2x0IDUxMS44fEJhdHRlcnlNYXhUZW1wIDE5fEJhdHRlcnlNaW5UZW1wIDE2fEJhdHRlcnlUZW1wIDE3fEVycm9yIDB8UGFyYW1UIDkuMnxCYXR0ZXJ5T3V0Vm9sdGFnZSA1MTQuNXxCYXR0ZXJ5UG93ZXIgMC4wMHxDZWxsRGlmZlZvbHRhZ2UgMC4wMnxFcnJvck1zZyBubyBFcnJvcnxQaGFzZSBTaW5nbGV8TnVtYmVyT2ZCTVMgMXxOdW1iZXJPZk1vZHVsZXMgNXxCYXR0ZXJ5VHlwZSBIVlN8QmF0dGVyeVR5cGVWIEhWfEludmVydGVyVHlwZSBTTUEgU1RQIDUuMC0xMC4wIFNFIEhWfEJhdHRlcnlOdW1DZWxscyAxNjB8QmF0dGVyeU51bVRlbXBzIDYwfEJhdHRlcnlfMV9DaGFyZ2VFIDEwNDEzMDN8QmF0dGVyeV8xX0NoYXJnZUVfdG9kYXkgMHxCYXR0ZXJ5XzFfRGlzY2hhcmdlRSA5NDg5NzZ8QmF0dGVyeV8xX0Rpc2NoYXJnZUVfdG9kYXkgMTc3fEJhdHRlcnlfMV9NYXhtVm9sdCAzMjA0fEJhdHRlcnlfMV9NaW5tVm9sdCAzMTgxfEJhdHRlcnlfMV9NYXhtVm9sdENlbGxOciAwfEJhdHRlcnlfMV9NaW5tVm9sdENlbGxOciAxNDN8QmF0dGVyeV8xX01heFRlbXBDZWxsTnIgMXxCYXR0ZXJ5XzFfTWF4VGVtcENlbGwgMTl8QmF0dGVyeV8xX01pblRlbXBDZWxsTnIgNDh8QmF0dGVyeV8xX01pblRlbXBDZWxsIDE2fEJhdHRlcnlfMV9DZWxsRGlmZm1Wb2x0YWdlIDIzfEJhdHRlcnlfMV9TT0MgNS4xfEJhdHRlcnlfMV9TT0ggOTl8QmF0dGVyeV8xX091dFZvbHRhZ2UgNTE0LjV8QmF0dGVyeV8xX0N1cnJlbnQgMHxCYXR0ZXJ5XzFfU3RhdHVzIHxCYXR0ZXJ5XzFfQk1TZXJpZW5udW1tZXIgUDAzMFQwMjBaMjMwODI4MjM2Nw==')}
2025.05.02 07:26:01 1: stacktrace:
2025.05.02 07:26:01 1:     main::__ANON__                      called by (eval 124133) (1)
2025.05.02 07:26:01 1:     (eval)                              called by ./FHEM/98_DOIF.pm (188)
2025.05.02 07:26:01 1:     main::DOIF_UpdateCell               called by ./FHEM/98_DOIF.pm (3596)
2025.05.02 07:26:01 1:     main::DOIF_Notify                   called by fhem.pl (3988)
2025.05.02 07:26:01 1:     main::CallFn                        called by fhem.pl (3900)
2025.05.02 07:26:01 1:     main::DoTrigger                     called by fhem.pl (5017)
2025.05.02 07:26:01 1:     main::readingsEndUpdate             called by ./FHEM/23_BYDBox.pm (1761)
2025.05.02 07:26:01 1:     main::BYDBox_UpdateDone             called by (eval 124131) (1)
2025.05.02 07:26:01 1:     (eval)                              called by fhem.pl (1180)
2025.05.02 07:26:01 1:     main::AnalyzePerlCommand            called by fhem.pl (1209)
2025.05.02 07:26:01 1:     main::AnalyzeCommand                called by fhem.pl (1136)
2025.05.02 07:26:01 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (263)
2025.05.02 07:26:01 1:     main::telnet_Read                   called by fhem.pl (3988)
2025.05.02 07:26:01 1:     main::CallFn                        called by fhem.pl (789)

Habt ihr das auch und was kann ich dagegen tun?

remo


Konntest du den Ursprung finden?
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

appi

sieht so aus, als ob der Fehler im Doif BYD.Box_viev (aus dem Wiki) steckt, habe das Doif mal deaktiviert und der Log ist clean....
Sobald ich den Fehler gefunden habe, melde ich mich

MadMax

Poste doch bitte mal das doif und den link wo du das her hast.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

appi

hier mal mein doif:
defmod BYD.Box_viev DOIF ##
attr BYD.Box_viev alias BYD.Box_viev
attr BYD.Box_viev disable 1
attr BYD.Box_viev room Energie
attr BYD.Box_viev uiTable {package ui_Table;;}\
"myBYDBox"| ring2([myBYDBox:BatteryPower],-6000,6000,120,0,"W",200,[(0,120,500,90,6000,60)],"1,font-weight:normal",[myBYDBox:Battery_1_SOC],0,100,0,120,"%",undef,"1,font-weight:normal",undef,undef,"0,,1,0,1") |\
ring2([myBYDBox:BatteryCurrent],-20,20,120,0,"A",200,undef,"1,font-weight:normal",[myBYDBox:BatteryOutVoltage],300,400,0,120,"V",undef,"1,font-weight:normal",undef,undef,"0,,,0,1") |\
ring2([myBYDBox:Battery_1_MaxmVolt],2800,3500,120,0,"mV",200,undef,"1,font-weight:normal",[myBYDBox:Battery_1_MinmVolt],2800,3500,0,120,"mV",undef,"1,font-weight:normal") |\
ring2([myBYDBox:BatteryMaxTemp],10,30,120,0,"°C",200,undef,"1,font-weight:normal",[myBYDBox:BatteryMinTemp],10,30,0,120,"°C",undef,"1,font-weight:normal")|\
ICON("time_statistic\@".([myBYDBox:Battery_1_Balancing] == "0" ? "white":"blue")),\
ICON("message_tendency_upward\@".([myBYDBox:Battery_1_S_cellsvoltage_high] == "0" ? "white":"orange")),\
ICON("message_tendency_downward\@".([myBYDBox:Battery_1_S_cellsvoltage_low] == "0" ? "white":"orange"))|\
ICON("message_attention\@".([myBYDBox:Battery_1_S_charging_stop] == "0" ? "white":"orange")),\
ICON("measure_battery_100\@".([myBYDBox:Battery_1_S_batteryvoltage_high] == "0" ? "white":"orange")),\
ICON("measure_battery_0\@".([myBYDBox:Battery_1_S_batteryvoltage_low] == "0" ? "white":"orange"))|\
ICON("message_attention\@".([myBYDBox:Error] == "0" ? "white":"red")),\
[myBYDBox:ErrorMsg],\
ICON("message_attention\@".([myBYDBox:Battery_1_Status] == "" ? "white":"orange")),\
[myBYDBox:Battery_1_Status]

das doif ist aus diesem Thread

appi

gelöst, es waren die ICON Einträge im Doif......

Danke für die Hilfe

Parallix

Wäre es möglich, das Modul um ein (automatisch gesetztes) Reading

  • Capacity_Wh

zu erweitern, sodass auf Basis dieses Wertes eine Ladesteuerung z.B. die Energiemenge ausrechnen kann, die in den Speicher verbracht werden muss, um ihn auf einen targetSOC zu bringen?
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

MadMax

Hallo,
du meinst also SOC x nenn kWh um zuzu sehen wie viele kWh im Speicher sind?

Wäre machbar mit der Anzahl und dem Typ der Module.
Jedoch weiß das Modul ja nicht wie weit dein Wechselrichter den Speicher entlädt.
Manche Wechselrichter lassen 5-10% im Speicher.

Wenn du das brauchst erstell dir doch ein userReading aber besser im Wechselrichter mit der Berücksichtigung des DOD.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Prof. Dr. Peter Henning

Der Restladestand, den der WR im Speicher lässt, ist in der Regel im WR einstellbar.

Eine generelle Lösung im Modul halte ich für nicht sinnvoll. Denn die verschiedenen Speichersysteme haben einen sehr unterschiedlichen Wirkungsgrad (also das Verhältnis aus herausholbarer zu hineingesteckter Energie). Darüber hinaus hängt dieser noch ab vom
- gegenwärten Ladestand
- der Ladeleistung und ihrem zeitlichen Verlauf
- der Temperatur
Es ist also nur eine grobe Abschätzung möglich, wieviel "jetzt noch fehlt". Die kann man sich aber sehr schnell über ein Userreading beschaffen

$missingEnergy = (1-$SOC)*$maxEnergy/$eta
Mein Wirkungsgrad ($eta im Mittel) liegt bei 91%, für einen Test kann man $eta=0.9 ansetzen.

LG

pah

Parallix

#327
Zitat von: MadMax am 10 August 2025, 10:25:47Hallo,
du meinst also SOC x nenn kWh um zuzu sehen wie viele kWh im Speicher sind?

Ja! Es geht mir nur um die Aufnahme der Nennkapaziät, die bislang leider noch nicht als Reading zur Verfügung steht.

Meinerseits brauche ich die, um das Laden über den Tag so einzustellen, dass er Speicher möglichst punktgenau bei Sonnenuntergang einen vorher eingestellten Zielladezustand (aka targetSOC) erreicht.

Zitat von: MadMax am 10 August 2025, 10:25:47Wäre machbar mit der Anzahl und dem Typ der Module.

... und damit hoffentlich relativ einfach als unmittelbar vom Modul geliefertes Reading aufzunehmen.

PS: Es geht mir nicht um irgendwelche Effizienzbetrachtungen oder Degenerationseffekte. Anstelle des von pah genannten fixen etas kann auch ein dynamisches, z.B.  aus dem BYD-Modul heraus via Battery_1_DischargeE / Battery_1_ChargeE, berechnet werden. Achtung: Die Werte sind aufgrund der relativ unpräzisen Messung der Ströme in den BYDs natürlich mit etwas Vorsicht zu genießen.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

MadMax

Die Nennkapazität müsstest du doch von deinem Speicher kennen oder über die Anzahl der Blöcke mal 2,56 bei HVS und 2,76 bei HVM berechnen. Die Anzahl der Module gibt es als Reading.

Die enthaltenen Energiemenge kannst du über ein userReading wie von pah beschrieben berechnen.

Ich würde das auch nicht wirklich sls funktionieren des Moduls sehen.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Parallix

Zitat von: MadMax am 10 August 2025, 12:23:44Die Nennkapazität müsstest du doch von deinem Speicher kennen oder über die Anzahl der Blöcke mal 2,56 bei HVS und 2,76 bei HVM berechnen. Die Anzahl der Module gibt es als Reading.

Die Angabe der Nennkapaziät eines BYD-Speichers unmittelbar aus dem BYD-Modul heraus fände ich schon sehr sinnvoll. Immerhin werden aus diesem ja auch für den Betrieb nun wirklich nicht relevante Daten geliefert, wie z.B. die BYD-Seriennummer ;-)
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS