Daly BMS kann nicht gelesen werden

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Benutzeravatar
simon.s
Beiträge: 39
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von simon.s »

Ulrich hat die Funktion Daly auslesen vermutlich nach den Vorgaben des Daly-Protokolls erstellt.
Dies passt soweit auch, jedoch wird dort eine max Anzahl (48) von Zellen verwendet.
In der Funktion "function eSmart3_auslesen" werden die ankommenden Daten auf Länge
geprüft. Da diese jedoch von den Zellen (BMS-Typ) abhängig sind, werden die Daten verworfen
wenn sie nicht der Prüfung "Datenlänge" entsprechen und eine Fehlermeldung generiert.
Die Antwort vom Daly-BMS ist immer 13 Byte. Ausgenommen sind die Zellspannungen.
siehe viewtopic.php?p=13012#p13012

Der Code muss so aussehen: kleinstes Ganzzahliges vielfaches von Zellen des BMS und 3.
genaue oder nächstgrößere Anzahl durch 3 teilbar.

10 Zellen /3 =3.333 -----> 4 (4*13)
16 Zellen /3 =5,333 ----> 6 (6*13)
24 Zellen /3 = 8 ------> ok 8 (8*13)

Dieser Wert wird dann mit 13 multipliziert und so eingetragen werden (XX)

Code: Alles auswählen

elseif (strlen( $Ergebnis ) == XX) {     // Hier muß XX eingetragen werden 
     1-3        $Ergebnis1 = substr( $Ergebnis, 4, 8 );     so viele Zeilen wie laut Rechnung (16Zellen ---> 6Zeilen)
     4-6        $Ergebnis1 .= substr( $Ergebnis, 17, 8 );
     7-9        $Ergebnis1 .= substr( $Ergebnis, 30, 8 );
    10-12      $Ergebnis1 .= substr( $Ergebnis, 43, 8 );
     .....       $Ergebnis1 .= substr( $Ergebnis, 56, 8 );
    .....        $Ergebnis1 .= substr( $Ergebnis, 82, 8 );
            
            immer fortlaufend , mit einer Folge von 13
            
            
            $Dauer = 0; // Ausgang vorbereiten..
            $OK = true;
            $Ergebnis = $Ergebnis1;
          }
          
Ulrich hätte sicherlich eine automatische Lösung als Vorschlag?

Gruß
8-) Ich wohne da wo Ihr Urlaub macht 8-)
5,12KWp / Axpert III 5048 / 16x Winston 160Ah LiFePo4

Obi70
Beiträge: 1
Registriert: Do 20. Aug 2020, 18:46

Re: Daly BMS kann nicht gelesen werden

Beitrag von Obi70 »

Hallo,
ich bin schon 2 Jahre dabei, lief alles sehr gut.
Zur Zeit bin ich gerade am verzweifeln, vielleicht kann mir ja einer weiterhelfen.
Mein Daly Bms ist ein Li-on 14S 160P wird gekannt, leider keine Daten.
Denke gleiches Problem wie bei einigen meiner Vorredner.
Meine Rechnung war 14:3= 4,66 > 5x13= 65 = xx
Dateianhänge
Screenshot (29).png
Screenshot (28).png

Benutzeravatar
Ulrich
Administrator
Beiträge: 3567
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 59 Mal
Danksagung erhalten: 290 Mal
Kontaktdaten:

Re: Daly BMS kann nicht gelesen werden

Beitrag von Ulrich »

Bitte melde dich einmal hier:
viewtopic.php?f=22&t=1470
--------------------------------------
Ulrich [Admin]

Benutzeravatar
simon.s
Beiträge: 39
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von simon.s »

Hallo @OBI70

versuch folgendes:

in der Daly_bms.php Zeile 136

Code: Alles auswählen

    $Adresse = "80"; // 80 = BMS Adresse  
    
auf folgendes zu ändern

Code: Alles auswählen

    $Adresse = "40"; // 80 = BMS Adresse  40 NEUE ADRESSE!!!
Dann:
in der Datei "\www\html\phpinc\funktionen.inc.php" die Funktion "eSmart3_auslesen" erweiterten Code so:

Code: Alles auswählen

elseif (strlen( $Ergebnis ) == 65) {
            $Ergebnis1 = substr( $Ergebnis, 4, 8 );
            $Ergebnis1 .= substr( $Ergebnis, 17, 8 );
            $Ergebnis1 .= substr( $Ergebnis, 30, 8 );
            $Ergebnis1 .= substr( $Ergebnis, 43, 8 );
            $Ergebnis1 .= substr( $Ergebnis, 56, 8 );
            $Dauer = 0; // Ausgang vorbereiten..
            $OK = true;
            $Ergebnis = $Ergebnis1;
          }
          
Gruß
Simon
8-) Ich wohne da wo Ihr Urlaub macht 8-)
5,12KWp / Axpert III 5048 / 16x Winston 160Ah LiFePo4

WulleOnTour
Beiträge: 8
Registriert: Fr 27. Aug 2021, 17:32
Danksagung erhalten: 1 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von WulleOnTour »

Hallo zusammen,

ich versuche seit 2 tagen mein Daly BMS auszulesen. Wenn man von der Materie kein plan hat, dauert es was länger zu verstehen was hier gemacht wurde. Jetzt ist mir klar wo ich was machen musste, aber es läuft noch immer nicht.
Das Hauptproblem wird sein, das ich ein 4s Daly BMS benutze und ich weiß das die 8s und mehr anders arbeiten.
Jetzt hatte ich noch folgendes Projekt gefunden: https://github.com/dreadnought/python-daly-bms hier wird mit pythen ein 4s ausgelesen.

Wenn ich in der Konsole "daly-bms-cli -d /dev/ttyUSB0 --sinowealth --all" eingebe, bekomme ich die wichtigsten infos.

Code: Alles auswählen

/var/www/html/python-daly-bms/bin$ daly-bms-cli  -d /dev/ttyUSB0 --sinowealth --all
{
  "soc": {
    "total_voltage": 13.312,
    "current": 0.0,
    "soc_percent": 0.0
  },
  "mosfet_status": {
    "full_capacity_ah": 150.0,
    "remaining_capacity_ah": 0.0,
    "pack_state": [
      "FAST_DSG: Fast Discharging",
      "DSGMOS: Discharging enabled",
      "CHGMOS: Charging enabled"
    ]
  },
  "status": {
    "cycles": 2
  },
  "cell_voltages": {
    "1": 3.328,
    "2": 3.328,
    "3": 3.328,
    "4": 3.328
  },
  "temperatures": {
    "external1": 13.8,
    "external2": 0.1
  },
  "errors": []
}
Mit dem Projekt ist es auch möglich eine Ausgabe an einen mqtt Server zu schicken.
Einen mqtt Server hätte ich am laufen im iobroker.
Mein Problem ist, das ich keine Ausgabe hin bekomme. Egal wie ich es ausprobiere, immer der selbe Fehler.

Code: Alles auswählen

/var/www/html/python-daly-bms/bin$ daly-bms-cli  -d /dev/ttyUSB0 --sinowealth --mqtt
Traceback (most recent call last):
  File "/usr/local/bin/daly-bms-cli", line 4, in <module>
    __import__('pkg_resources').run_script('dalybms==0.3.0', 'daly-bms-cli')
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 666, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1453, in run_script
    exec(script_code, namespace, namespace)
  File "/usr/local/lib/python3.7/dist-packages/dalybms-0.3.0-py3.7.egg/EGG-INFO/scripts/daly-bms-cli", line 82, in <module>
ModuleNotFoundError: No module named 'paho'
Vielleicht hat einer eine idee und kann mit helfen.

Da es Leute gibt die ein 4s Systeme im Einsatz haben und auch 8s und mehr, macht es vielleicht sinn 2 verschiede Geräte Configs anzulegen.
z.B. DalyBMS 4s und DalyBMS8s+ (für mehr als 8 Zellen)
Vielleicht hilft dem Programmiere das Github projekt, die Wichtigsten infos werden ja ausgegeben.

Gruß Wulle

Benutzeravatar
simon.s
Beiträge: 39
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von simon.s »

Hallo Wulle,

willst du jetzt die Daten mit Solaranzeige haben oder dem Python-Script?
Falls mit Solaranzeige, zeig uns mal die Log-Datei.

Gruß
Simon
8-) Ich wohne da wo Ihr Urlaub macht 8-)
5,12KWp / Axpert III 5048 / 16x Winston 160Ah LiFePo4

WulleOnTour
Beiträge: 8
Registriert: Fr 27. Aug 2021, 17:32
Danksagung erhalten: 1 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von WulleOnTour »

Erstmal sry das es so lange gedauert hat, mit der Antwort.
Möchte es schon über Solaranzeige am laufen haben. Wollte nur damit nur zeigen, dass das BMS richtig angeschlossen ist und Daten empfangen werden können.
Ich weiß aber auch, dass das 4S von Daly eine anderes Protokoll hat, als die 8s Varianten und mehr.
4S = Sinowealth und 8S< = BMS Monitor.
Deshalb der Vorschlage, ob man nicht das Github projekt hier einbinden kann, für 4S Systeme.

Hier einmal einen Auszug aus der Log Datei:

Code: Alles auswählen

30.03. 00:02:01 |------------   Start  daly_bms.php    ---------------------------- 
30.03. 00:02:01    -USB Port: /dev/ttyUSB0
30.03. 00:02:03 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:05 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:07 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:09 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:11 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:13 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:15 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:17 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:19 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:21 !! -Datenfehler, nochmal... a54090080000000000000000
30.03. 00:02:21 !! -Keine gültigen Daten empfangen.
30.03. 00:02:21 |------------   Stop   daly_bms.php    ---------------------------- 
 
Danke schonmal für die Hilfe
Gruß Wulle

Benutzeravatar
simon.s
Beiträge: 39
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von simon.s »

kannst du mal den TraceLevel im daly.php auf 10 setzen und den Log nochmal uns zeigen?
8-) Ich wohne da wo Ihr Urlaub macht 8-)
5,12KWp / Axpert III 5048 / 16x Winston 160Ah LiFePo4

WulleOnTour
Beiträge: 8
Registriert: Fr 27. Aug 2021, 17:32
Danksagung erhalten: 1 Mal

Re: Daly BMS kann nicht gelesen werden

Beitrag von WulleOnTour »

Hier einmal ein Auszug aus dem Log:

Code: Alles auswählen

05.04. 10:50:32 |------------------- Start wetterdaten.php --------------------
05.04. 10:50:32 o---Wetterdaten ausgeschaltet.
05.04. 10:50:32 |------------------- Stop  wetterdaten.php ---------------------
05.04. 10:51:01 |------------   Start  daly_bms.php    ---------------------------- 
05.04. 10:51:01    -Zentraler Timestamp: 1649148661
05.04. 10:51:01 o  -Hardware Version: 3B
05.04. 10:51:01    -USB Port: /dev/ttyUSB0
05.04. 10:51:01 +  -Die Daten werden ausgelesen...
05.04. 10:51:04 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:04 +  -Die Daten werden ausgelesen...
05.04. 10:51:06 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:06 +  -Die Daten werden ausgelesen...
05.04. 10:51:08 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:08 +  -Die Daten werden ausgelesen...
05.04. 10:51:10 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:10 +  -Die Daten werden ausgelesen...
05.04. 10:51:12 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:12 +  -Die Daten werden ausgelesen...
05.04. 10:51:14 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:14 +  -Die Daten werden ausgelesen...
05.04. 10:51:16 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:16 +  -Die Daten werden ausgelesen...
05.04. 10:51:18 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:18 +  -Die Daten werden ausgelesen...
05.04. 10:51:20 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:20 +  -Die Daten werden ausgelesen...
05.04. 10:51:22 !! -Datenfehler, nochmal... a54090080000000000000000
05.04. 10:51:22 !! -Keine gültigen Daten empfangen.
05.04. 10:51:22 |------------   Stop   daly_bms.php    ---------------------------- 
Gruß Wulle

Andy12350
Beiträge: 4
Registriert: Fr 18. Mär 2022, 07:43

Re: Daly BMS kann nicht gelesen werden

Beitrag von Andy12350 »

Hallo zusammen.

An dieser Stelle erst mal ein DANKE an dieses tolle Projekt

Ich möchte die Solaranzeige gerne mit einem Daly BMS nutzen
Ist ein 16S 48v Lifepo4.
Das BMS funktioniert am Windows-PC mit der Software BMS Tool von Daly. Baudrate: 9600
BMS wird auch erkannt,bekomme den Fehler nicht weg.
Kann es an denn fehlende Spannung an Zelle 16 ligen?
Danke
raspi3.jpg
paspi2.jpg
paspi.jpg

Antworten