NEWS
[Neuer Adapter] BYD HVS
-
@tueftler17 Habe dir den Mitschnitt Link per PN gesendet
-
Hallo,
eine Frage: Die Werte für die Zellspannungen (Cells min und max) werden doch in mV ausgelesen, richtig?
Zumindest wird es in Be Connect so angezeigt.
in io broker sehe ich das nur in Volt, daher nur in 10mV Auflösung.
Lässt sich das umstellen?
Danke vorab!
LG Robert -
@tueftler17 Deine Spannungsgrenzwerte sind m.E. schon sehr vernünftig gewählt.
Allerdings hast du wenn du den Ladestop selbst auch von außen steuerst den Effekt, dass ja dann quasi nie 100% erreicht werden.
Denn nur wenn die Zellspannungen einen Warnschwellwert der BYD erreichen, wird eine "End SOC calibration ausgelöst, die dann dien SOC auf 99% (bei Erreichen von Warnschwelle 1) bzw. 100% (bei Erreichen von Warnschwelle 2) setzt.
Daher mache ich das ganze folgendermaßen:
Ich lade so wie du es beschreibst bis 3,4V Zellspannung mit Normal- bzw. Maximalstrom und lade bei 3,4V mit Konstanter Spannung weiter.
Im Unterschied habe ich aber einen minimalen Ladestrom eingestellt, bis wohin die Regelung den Ladestrom nur drosseln darf um die 3,4V zu halten. Ist die Grenze erreicht, wird weitergeladen mit diesem Strom und die Zellspannung steigt an.
Dann habe ich über die Parameter- Table die Warn- (und damit die Abschaltschwellen) so angepasst, dass sie knapp über diesen 3,4V liegen.
Also er zieht die Zellspannung dann nicht wirklich höher, ist auch irgendwann mal fertig mit laden und zeigt dann auch mal 100% SOC an.
Gleiches lässt sich natürlich auch für die Zellminimal- Spannungen realisieren.
Bei Interesse an einer entsprechend geänderten Parameter- Table gern melden.
LG Robert -
Sehr interessant zu lesen. Ich habe auch so einen Speicher der seine SOC Abschaltung offensichtlich nur anhand der Daten von einer einzigen Zelle (es ist immer Zelle Nr.1) durchführt.
Schaut man sich die anderen Zellenspannungen an, ist da noch reichlich Luft nach oben, was die Kapazität betrifft, welche in den Speicher eingeladen werden könnte. Je nach vorherrschendem Ladestrom kurz vor Ende, schaltet der Speicher zwischen 94% und 97% ab und rechnet dann nur noch bis 100% hoch ohne irgend etwas in den Speicher zu laden.
Manchmal besinnt er sich auch und schiebt dann nochmal etwas hinterher.
Heute z.B. mit moderater Sonne und nur ~ 480W Ladeleistung, sieht das ganze so aus.
Gestern hingegen mit fast 2,8 kw Ladeleistung kurz vor Ende, hat er kurz nach seiner ersten Abschaltung dann nochmal nachgelegt. Der Trigger für die Abschaltung ist aber immer Zelle 1 mit 3,65V. Die anderen Zellen hingegen, liegen zu dem Zeitpunkt erst bei ~ 3,50V. Auf die Gesamtkapazität des Speichers gesehen, wäre da durchaus noch mehr möglich.
Am liebsten würde ich Zelle 1 rauswerfen und gegen eine andere ersetzen. Meiner Meinung nach funktioniert die Zelle 1 nicht 100%ig.
-
@jb_sullivan Ja genau beim Laden geht er nach der Zelle mit der höchsten Spannung, in deinem Fall offenbar (fast) immer Zelle 1.
Aber 3,65V ist eben schon ziemlich viel und auch 3,5V ist ziemlich hoch, auch da liegst du schon im stärkeren Spannungsanstieg gegenüber der Kapazität. Also der Kapazitätsunterschied ist nicht so hoch an sich zwischen 3,5 und 3,65V, allerdings - und das ist der einzige Grund für so hohe Zellspannungen - hast du einen Zeitgewinn beim Laden, also du kriegst halt die Kapazität x schneller rein, als wenn du bei <3,5V schon spannungsstabil lädtst, also "absorbtion" machst.
Aber da es eben nicht so zellschonend ist, auf >3,5V zu gehen ist die Idee der quasi extern gestützten Laderegelung die, dass man:
-wenn genügend Ladezeit ist, (fast) die volle Kapazität trotzdem (also auch mit geringeren Zellspannungen) zu bekommen
-wenn die Zeit nicht reicht, mit der kleinen Kapazitätseinbuße von bis zu etwa 10% zu leben.
Diesen "Trade-off" kann man aber selbst bestimmen über die Verschiebung der von mir erwähnten Ladestromuntergrenze zusammen mit den Zellspannungsgrenzwerten in der Param- Table.
LG Robert
P.S. Und in deinem Fall mit der "Ausreißerzelle" 1 dürftest du mit der Ladestromregelung - vorausgesetzt es ist genügend Zeit - sogar vielleicht noch einen minimalen Kapazitätsvorteil (mindestens aber +/-0) haben gegenüber jetzt, da bei den am Schluss dann um sehr viel geringeren Ladeströmen auch das Balancing wesentlich besser wird. -
@torosa2000 Hast du an der Parameter Tabelle selber "rum geschraubt"? Das ist doch eine *.bin Datei. Offensichtlich hast du die Möglichkeiten diese zu dekomplieren?
Wie muss man sich diese Tabelle vorstellen? So wie eine Excel Tabelle?
-
@jb_sullivan Ja genau, ich hab sie und deren Codierung "reverse engineered", entschlüsselt und in ein (Excel-) Format übertragen (welches auch die entsprechende Prüfsumme via VB- Script mit errechnet), das die Be Connect Software im Admin- Modus einliest und wieder zu der .bin verschüsselt, die dann via "P/T- Update" eingespielt werden kann.
Somit kann ich die Werte komfortabel ändern und einspielen.
LG Robert -
@tueftler17 Hallo, ich nutze mit Erfolg deinen Adapter mit einer HVS 10.2.
Nur eine kurze Frage bzw. Anmerkung: Wäre es möglich, den SOC auch unter "Diagnosis" mit aufzunehmen?
Weil dort ist er 1/10 % aufgelöst, sonst nur 1%.
Das wär Klasse!
LG Robert -
@jb_sullivan sag mal den SOC hast du auch nur mit der 1% Auflösung, ja?
Könnt ja sein, dass ich irgendwas übersehen hab...:)
LG Robert -
Der SoC ist doch bei "State" mit drin. Warum soll der bei Diagnosis noch mal rein?
Bezgl. der Nachkommastellen, hatte ich mir von einem Entwickler, bei irgend einem Adapter mal die Reduzierung der Nachkommastellen gewünscht. Wenn das dieser Adapter war, wäre das reversibel - aber ehrlich gesagt weiß ich nicht mehr ob es der BYD Adapter war - hatte auf jeden Fall was mit der ganzen PV Geschichte zu tun.
Wenn du auch einen Fronius WR am Start hast, bekommst du den SoC von dort mit einer Nachkommastelle
fronius.0.powerflow.inverter1.SOC
Bzgl. deiner Tabelle - ist die Geheim, oder kannst du mal einen Screenshot davon posten? Nur so rein Interesse halber.
-
@torosa2000 Ich habe mir gerade einmal die Rohdaten angesehen. Es kommen zwei Bytes an, da steht bei mir im Augenblick bei mir 00 62. Das ist "nur" 98, ich bekomme keine genaueren Daten. Insofern: Das kann ich leider nicht ändern.
-
@tueftler17 OK aber woher nimmt denn dann BE connect die zehntel Prozente beim SOC unter Diagnosis?
-
@jb_sullivan Ja ich hab mir da jetzt auch so beholfen, den SOC über Modbus vom Fronius zu holen.
Zur Tabelle:
Hm, na an sich bin ich da ja nicht so der Geheimniskrämer, aber ein Screenshot würde dann doch zu viel Informationen preisgeben, denn die Werte müssen in der Excel natürlich an bestimmten Stellen stehen usw.
Aber wenn du was bestimmtes wissen möchtest, also Zellspannungsgrenzwerte etc. geb ich dir gern die Infos. -
@torosa2000 Das muss dann aus einer anderen Stelle kommen als die aus der ich es jetzt auslese. (OK, das war fast albern). Ist auf jeden Fall eine interessante Aufgabe die ich mir gerne auf die todo-Liste packe. Die Zahl ist sicher nicht interessant "in der Mitte", also ob der Speicher zu 50 oder zu 50,5% voll ist. ABER: Bei fast voll und bei fast leer ist dann schon etwas anderes.
Es gibt noch diverse Bytes in den Antworten vom Speicher die ich bisher nicht verstanden habe.
Der erste Versuch war jedenfalls nicht erfolgreich, meine 8.4% die ich zur Sekunde habe finde ich nicht in den Bytes vom Speicher. Ich schau aber noch mal mit anderen Füllständen.
Schönen Sonntag!
VIele Grüße, Tueftler17 -
@tueftler17 Habs gefunden, scheinen zwei Bytes zu sein in dem der SOC mit einer Dezimalstelle und mit 10 mulitpliziert übertragen wird. Also: Statt 8,4 --> 84 und statt 11.6 --> 116.
Ich mache mich an eine neue Version ran in der das enthalten ist
-
@torosa2000 Neue Version ist erstellt, war auch nur Kleinkrams nachdem ich die Position in den Daten gefunden habe.
Kann jemand von Euch bitte einmal testen ob der Adapter auch bei Euch funktioniert?
Die neue Version ist erst einmal nur bei github zu finden, also von dort installieren. Eine neue Versionsnummer habe ich noch nicht vergeben - und warum das Änderungsprotokoll nicht im ioBroker angezeigt wird kann ich gerade noch nicht nachvollziehen. Bei mir sieht es jetzt wie folgt aus:
Den Value SOC gibt es jetzt also zwei Mal, einmal unter State und einmal bei Diagnosedaten. Dort könnte ich es bei Bedarf noch total easy umbenennen, diejenigen die sich den Adapter von github installieren können auch noch ein Objekt löschen, nur wenn die Version draußen ist möchte ich da nicht mehr ran. Also: Gerne Kommentare dazu.
Sonnigen Sonntag! -
@tueftler17 Wow! Super, hab ihn bei mir gerade installiert - and works perfect!
Lieben Dank! Ging ja echt fix! Bin sehr begeistert.
Ja das Ding ist ich brauche es nämlich in Zehnteln, weil ich damit auch die SOC calibration überwache bzw. gerade anpasse.
Ich hab nur bei mir lokal in der main.js die Minimalgrenzwerte der Auslesehäufigkeit runtergesetzt, weil ich gerade den SOC in Zehnteln jetzt mal minütlich sehen möchte...:)
Nochmal vielen Dank,!!! -
Funktioniert auch bei mir - mit den Einheiten (unit "%") stehst du aber auf Kriegsfuss oder ?
Gibt es einen Grund dafür, das du den DP bei State nicht auch geändert hast? So hätte man über Influxdb den gleichen alten DP weiter in die Tabelle schreiben lassen können und würde im Diagramm, Stand heute, halt einen feinere Differenzierung bekommen.
Wenn man diese feinere Differenzierung in Grafana haben will, muss man nun alles auf den neuen Datenpunkt umschreiben Ist zwar nicht viel Arbeit, aber dann hat man zwei Datentabellen für die gleichen Daten (historisch betrachtet)
...... und ich habe gerade noch etwas gesehen - die Diagnose Daten werden ja nur in den Aktualsierungsraten abgeholt, die man in der Instanz eingestellt hat - bei mir z.B. 100
Somit ist eine kontinuierliche Überwachung des Wertes aus der Diagnosis heraus gar nicht aussagekräftig, da der State Wert kontinuierlich getrackt wird, der Digagnosis Wert (also der feinere) nur so oft wie es in der Instanz eingestellt ist - ist das Sinnvoll?
-
@jb_sullivan
Mit den Einheiten stehe ich offensichtlich wirklich auf Kriegsfuß, habe aber erst mal das aktuelle Scharmützel gewonnen. Im Github ist eine neue Version mit der Einheit. Kann nur leider sein das für das automatische Eintragen der neue Datenpunkt gelöscht werden muss, ohne dem hat es bei mir nicht geklappt. Für die wenigen unter uns die aus dem Github installiert haben und schon Logik angeschlossen haben geht sicher sonst auch ein manuelles Ändern.
Zu Deiner anderen Anmerkungen (doppelter Eintrag einmal bei State und einmal bei Diagnose). Klar könnte ich das ändern - wenn ich denn nur wüsste was das Richtige ist.
Bei der Analyse der Kommunikation zwischen der beConnect App und dem Speicher ist mir aufgefallen, das offensichtlich einige Sekunden Zeit vergehen müssen zwischen dem Senden der ersten Anfrage nach den Diagnosdaten bis zur Antwort. Wenn ich mich richtig erinnere waren es rund 3 Sekunden, daher habe ich im Adapter einfach mal 4 Sekunden festgelegt - diese Zeit wird gewartet. Ich hab damals gedacht (und tue es auch immer noch), dass in dieser Zeit eine Messung des Speichers stattfindet und wollte die Messung nicht so häufig starten. Aus diesem Grund existiert die Einstellmöglichkeit alle wie viele Lesezyklen auch die Diagnosedaten abgeholt werden sollen - ist also rein zur Vorsicht. Und: Den genaueren SOC-Wert gibt es leider nur zusammen mit den Diagnosedaten, nicht mit den Daten die man jederzeit aus dem Speicher ohne Messtrigger (?) abrufen kann.
Weiß jemand ob man das alle Minuten tun kann? Macht das etwas am Speicher kaputt?
Jedenfalls habe ich wegen dieser Gedanken die Objekte getrennt, dann gibt es die genaueren Daten nur alle n Messungen und man kann beides so wie man es möchte verwenden. Mutige stellen eine "1" bei Batterie Details - alle .. Lesezyklen ein und ja, so wie es jetzt ist müsste dann die Datenquelle bei Grafana angepasst werden.
Ich bin da guten Vorschlägen sehr zugänglich und würde auch gerne die Logik anpassen.
-
@tueftler17 Also zur Auslesehäufigkeit, ich hab es bei mir jetzt schon den ganzen Tag lang so:
generelles Ausleseintervell = 60 Sekunden, Details auslesen alle "1" Messungen, also auch jede Minute.
(Ich hab wie gesagt in der Quelldatei das Limit dafür von 10 auf 1 herabgesetzt)
Funktioniert bisher ohne Probleme und es wird auch immer alles ausgelesen.
LG Robert