Seite 2 von 3

Re: Solaranzeige und Joulie-16

Verfasst: Di 29. Nov 2022, 09:13
von Ulrich
Hallo Stefan,

die Solaranzeige funktioniert immer so, dass eine Anfrage an das Gerät gestellt wird und eine Antwort vom Gerät kommt. Ein Gerät darf niemals eigenständig, ohne Aufforderung, Daten senden.

Natürlich kann es sein, dass das Protokoll in der Zwischenzeit einmal geändert wurde. Dann müsste der BMS neu implementiert werden.
Hat jemand anderes noch damit Erfahrungen gemacht?

Re: Solaranzeige und Joulie-16

Verfasst: Di 29. Nov 2022, 10:26
von Stefan75
Hallo Ulrich,

vielen Dank für die schnelle Antwort. Was ich beobachte ist aber genau das, dass wenn der Trace einmal gestartet wurde das BMS nonstop Daten sendet. Sollte das nicht gewünscht sein, müsste nach meinem Verständnis der Trace mit dem Befehl FWTRACE OFF wieder ausgeschaltet werden. Oder wurde hier die Befehlssysntax geändert?

Viele Grüße, Stefan75

Re: Solaranzeige und Joulie-16

Verfasst: Di 29. Nov 2022, 18:37
von Stefan75
Neue Beobachtung!

Ich habe heute den ganzen Tag den RaspberryPi am Joulie-16 hängen lassen, obwohl er gemeldet hat, dass keine gültigen Daten empfangen werden (.log-Datei). Und eben schaue ich mir das Grafana Dashboard an und zu meiner Überraschung werden da Werte angezeigt.

Genau genommen hat es aus irgendwelchen Gründen im Laufe eines knappen Tages 7 mal funktioniert, dass Daten empfangen und in die InfluxDB geschrieben wurden.

Die Frage ist jetzt, warum hat das sporadisch geklappt? Ich vermute, dass da durch Zufall ein "vermurkster" Datensatz vom BMS beim RaspberryPi angekommen ist, der aber dem erwarteten Format entsprochen hat. Ist das plausibel?

Angehängt noch 2 Sreenshots von der .log-Datei, wo ein solcher erfolgreicher Moment dokumentiert wurde und ein Datenabruf von der InfluxDB mit den 7 Datensätzen. Ist der Zeitstempel so korrekt? Ich kann damit nämlich nichts anfangen.

Hat hier jemand mit tieferen Kenntnissen vielleicht noch eine Vermutung, woran das liegen könnte? Ich logge jetzt mal noch den USB EIngang mit und schaue mal, ob ich so einen erfolgreich übertragenen Datensatz erwische.

Re: Solaranzeige und Joulie-16

Verfasst: Di 29. Nov 2022, 19:11
von Ulrich
Hat die Verbindung eventuell einen Wackelkontakt?

Re: Solaranzeige und Joulie-16

Verfasst: Di 29. Nov 2022, 20:15
von Stefan75
Nein. Die Vermutung hatte ich auch zuerst. Habe alle USB Ports des RaspberryPi getestet. Bei allen das selbe Phänomen. Und wenn ich den PC direkt an das BMS anschließe (mit dem selben USB Kabel) bekomme ich sehr zuverlässig Daten. Austausch des USB Kabels hat auch nichts gebracht. Kannst Du mir verraten, was die Solaranzeige zu welchem Zeitpunkt an das BMS sendet? Irgendwie habe ich den Eindruck, die Befehle kommen eher zufällig und teilweise unvollständig. Zum Beispiel habe ich jetzt schon mehrfach beobachtet, dass der Befehl OUTB gesendet wurde. Das BMS meckert dann aber mit dem Hinweis, dass zuerst das Balancing gestoppt werden muss (mit dem Befehl STOPB). STOPB (bzw. STARTB zum erneuten Aktivieren des Balancings) habe ich aber bisher nirgends gesehen.

Re: Solaranzeige und Joulie-16

Verfasst: Mi 30. Nov 2022, 09:14
von Ulrich
In dem Script joulie_16_bms.php findest du alle Befehle und wie sie hintereinander gesendet werden. Es kann schon sein, dass das Protokoll sich mit einer anderen Firmware geändert hat. Dazu müsste man das aktuelle Protokoll erst einmal bekommen.

Re: Solaranzeige und Joulie-16

Verfasst: Do 1. Dez 2022, 16:38
von meins0273
Auf welcher Firmwareversion basiert das alte Script. Dann könnte man beim Hersteller ja mal anfragen was sich da auf die neue Version geändert hat.

Re: Solaranzeige und Joulie-16

Verfasst: Do 1. Dez 2022, 17:34
von Ulrich
Das kann ich leider nicht sagen. Die Firmware muss aber mindestens 5 Jahre alt sein. Die Implementierung fand vor mehr als 4 Jahren statt.

Re: Solaranzeige und Joulie-16

Verfasst: Sa 3. Dez 2022, 21:08
von Stefan75
Hallo,

ich habe mal noch ein bisschen recherchiert und rumprobiert und weitere (für mich neue) Dinge herausgefunden. Leider verstehe ich mangels Programmierkenntnis nicht so genau, was ich da jetzt getan habe, aber es ist vielleicht eine wichtige Info für die "echten" Programmierer, um das Joulie_16 wieder mit Solaranzeige auslesbar zu machen.

Zuallererst habe ich bei Autarctech angerufen und nach einer aktuellen Dokumentation zur Shell vom Joulie-16 gefragt. Diese habe ich auch bekommen. Leider ist sie nicht ganz aktuell. Im Trace werden noch ein paar Datenfelder mehr gesendet als in der Doku erwähnt werden.

Ich möchte hier kurz erklären, wie man an Daten des Joulie-16 kommen kann. Es gibt nämlich 2 Möglichkeiten:

1. mit dem Befehl FWTRACE ON startet man die Trace Ausgabe an die USB Schnittstelle. Alle 500ms sendet das BMS dann einen Datensatz im .csv Format (solange, bis man die Ausgabe mit FWTRACE OFF wieder stoppt)

die Ausgabe sieht dann so aus (alles in einer Zeile):

22-12-02 16:52:26;3264;I;3264;I;3267;I;3265;I;3268;I;3267;I;3264;I;3264;I;3265;I;3268;I;3267;I;3270;I;3270;I;3268;I;3268;I;3264;I;-2867;276.38;45758;52263;869760;57600;110000;46400;110000

Die Werte sind: Zeitstempel; Zelle 1 Spannung; Zelle 1 aktueller Balancerstatus;......Zelle 16 Spannung; Zelle 16 aktueller Balancerstatus; Strom; Kapazität; irgendeine untere Spannung; die aktuelle Spannung des Akkublocks; ....und noch weitere Werte, von denen ich bisher nicht genau weiß, was sie bedeuten.

2. mit dem Befehl OUTB

die Ausgabe sieht dann so aus:

Cells:
[ 1] 3249mV (I) [ 2] 3250mV (I) [ 3] 3250mV (I) [ 4] 3249mV (I)
[ 5] 3252mV (I) [ 6] 3250mV (I) [ 7] 3250mV (I) [ 8] 3252mV (I)
[ 9] 3252mV (I) [10] 3252mV (I) [11] 3252mV (I) [12] 3252mV (I)
[13] 3252mV (I) [14] 3253mV (I) [15] 3252mV (I) [16] 3250mV (I)
Temperatures:
[ 0] 8.816degC [ 1] 8.150degC [ 2] 8.455degC [ 3] 8.194degC
[ 4] 7.721degC [ 5] 8.574degC [ 6] 8.949degC [ 7] 8.129degC
[ 8] 8.221degC [ 9] 8.647degC [10] 8.340degC [11] 8.691degC
[12] 8.215degC [13] 7.738degC [14] 8.231degC [15] 8.427degC
Current : -36mA (001A)
Voltage : 52094mV

Ist selbsterklärend. Hier bekommt man aber weniger Informationen als über die Traceausgabe (SOC und Kapazität fehlen). Außerdem ist hier der aktuelle Balancerstatus der einzelnen Zellen immer I(dle), da man den Balancer zum Ausführen des Befehls "OUTB" mit "STOPB" zuvor anhalten muss. In der Dokumentation steht auch drin, dass es nicht zu empfehlen ist, den Befehl "STOPB" auszuführen, wenn der Balancer grad aktiv ist, da dadurch "unerwünschte Effekte" auftreten können (steht so in der Doku).

Also scheint es mir sinnvoll, das Auslesen über die Traceausgabe zu machen.

In der Datei joulie_16_bms.php habe ich die Befehle zum Auslesen gefunden. So wie ich das verstehe wird da unter anderem mit OUTB gearbeitet. Das sehe ich auch, wenn ich die Schnittstellendaten anzeigen lasse.

Das sieht dann so aus:
Trace_mit_Befehlen_von_solaranzeige.jpg
Hier fällt die Fehlermeldung auf, dass das Balancen vor dem Ausführen des Befehls "OUTB" nicht gestoppt wurde. Das kann also nicht funktionieren und dementsprechend gibt es auch eine Fehlermeldung im Log und es wird auch nichts in die Datenbank geschrieben:
log_USB_keinegültigenDaten.jpg
Daraufhin habe ich in der Datei joulie_16_bms.php einfach mal ein bisschen die Befehle vertauscht, und siehe da, plötzlich werden Daten empfangen und in die InfluxDB geschrieben.

Der geänderte Skriptteil sieht so aus:
Änderung_joulie_16_bms_php.jpg
Und im Log sieht es so aus:
Log_nach_Änderung.jpg
So funktioniert zumindest mal etwas. Aber dummerweise die Lösung, die ich nicht haben wollte (weil über "OUTB" und nicht über die Trace-Daten und ohne SOC und Kapazität und keine Infos zum Balancerstatus).

Kann mit diesen Infos jemand was anfangen? Würde mich riesig freuen!

Zum Schluss noch zwei Infos:
- Ich betreibe das Joulie-16 zusammen mit einem SMA Sunny Island 6.0H-11.
- Die aktuelle Firmware des Joulie-16 BMS ist 1.18 vom 03.02.2021. Die mir vorliegende Doku bezieht sich auf FW Version 1.16, sieht aber passend aus (bis auf die letzten Werte im Trace, die wohl noch hinzugekommen sind).

Re: Solaranzeige und Joulie-16

Verfasst: So 4. Dez 2022, 09:23
von Ulrich
Bitte melde dich einmal per eMail.