FHEM Forum

FHEM - Energiemanagement und Energieerzeugung => Solaranlagen => Thema gestartet von: satprofi am 06 Januar 2021, 11:49:11

Titel: Modul PylonTech
Beitrag von: satprofi am 06 Januar 2021, 11:49:11
Hallo.
Vielleicht geht es im anderen Thread unter, hier gibts die akt. Version des Moduls für PylonTech US2000 u. US3000.
Dank an den Modulersteller fürs Grundgerüst.
Ich habe das Modul für die US2000 erweitert um einige Funktionen wie ChargeManagmentInfo, SerialNummer in orig. Bezeichnung, Softwareversion, etc.
Dank auch an User Audi_Coupe_S für die Anpassung der US3000 Serie.
Titel: Antw:Modul PylonTech
Beitrag von: abc2006 am 23 Februar 2022, 09:50:14
ja, cool. Gibt es einen Grund dafür, dass nur 6 Module unterstützt werden? Möglich wären (mindestens) 8?

Grüße,
Stephan
Titel: Antw:Modul PylonTech
Beitrag von: satprofi am 23 Februar 2022, 10:00:18
werden ja 8 unterstützt.musst für jedes neues device anlegen.
Titel: Antw:Modul PylonTech
Beitrag von: kschi am 09 Mai 2022, 13:32:45
Hi, darf ich mal ganz kurz fragen, wo man eine Installationsanleitung für das Modul Pylontech herbekommt? In der CommandRef ist kein Modul vorhanden... Wie kann ich am einfachsten meine Pylonbatterien und evtl auch noch meinen Growatt Wechselrichter in FHEM einbinden?

Danke für Tipps,
Karsten
Titel: Antw:Modul PylonTech
Beitrag von: satprofi am 09 Mai 2022, 14:41:53
https://forum.fhem.de/index.php/topic,126361.0/all.html
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 Mai 2023, 16:07:23
Hallo,

ich lese zur Zeit die Pylontech via Cerbo GX (Victron) mit MQTT aus.
Es fehlen allerdings die Werte für /History/DischargedEnergy bzw. /History/ChargedEnergy.

So wie ich die Doku und das Modul verstehe gibt es damit diese Werte aber auch nicht oder habe ich etwas übersehen ?

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 August 2023, 23:06:23
Hallo zusammen,

durch meine fortschreitende Victron Energy Installation mit Pylontech US3000C habe ich mich intensiver mit diesem Modul beschäftigt.
Ich war so frei und habe die hervorragende Arbeit der User, die an 70_Pylontech.pm mitgewirkt haben, als Grundlage für ein neues Modul 70_PylonLowVoltage.pm genommen.
Ich habe einen neuen Namen gewählt um 1. das Original nicht zu verändern und 2. können vermutlich (nachweisen kann ich es nicht) nur die Low Voltage Batterietypen von Pylontech ausgelesen werden, da sich die Protokolldoku darauf bezieht. Dieser Umstand sollte sich im Namen wiederfinden.

Was ist in 70_PylonLowVoltage.pm geändert/neu:

- der Typ US3000C und vermutlich auch US5000 werden unterstützt
- programmtechnisch wurde das Modul in ein eigenes Perl Package überführt
- es gibt die Attribute interval und timeout statt Angabe im DEF
- mit dem Attribut interval kann sowohl eine automatisch zyklische Abfrage oder eine Abfrage "On demand" realisiert werden
- mit dem Attribut "gatewayPermLink" kann gewählt werden ob eine permanente Verbindung zum RS485 Gateway verwendet werden soll oder nicht
- das Format der Definition ist geändert "define ... PylonLowVoltage <hostname/ip>:<port> [<bataddress>]"
- das Modul kann mit dem Attribut disable wie in FHEM üblich disabled werden
- der Support von Meta.pm ist eingebaut sowie eine Versionierung
- mit der Getter Drucktaste "get ... data" können die Daten manuell abgerufen werden
- die Validierung empfangener Daten ist der Protokolldoku angepasst
- die chargeManagmentInfo ist erweitert, der Abruf der System Parameter ist eingebaut und Readings eigener Berechnungen wie packImbalance, packState ist eingebaut
- die Logausgaben sind erweitert
- es gibt mehr Readings (siehe Anhang)

Ich hoffe die Erweiterungen treffen auf allgemeine Zustimmung und bereichern unsere Möglichkeiten mit FHEM.
Das Modul kann aus meinem contrib (siehe Fußtext) geladen werden.

Außerdem ziehe ich in Erwägung das Modul nach Überarbeitung/Anpassung der Commandref in das offizielle Repository einzuchecken. Natürlich bleiben die Angaben zum ursprünglichen Autor von 70_Pylontech.pm im Copyright erhalten.
Ich hoffe auf eure Unterstützung; vor allem von satprofi und anderen Users die sich schon lange mit dem Protokoll auseinandergesetzt haben; und euer Interesse. Wer andere Pylontechs wie US5000 u.a. im Einsatz hat kann gern mal den Kompatibilitätscheck wagen. Ich habe nur die US3000C.

LG,
Heiko

Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 20 August 2023, 18:57:16
Zitat von: DS_Starter am 04 Mai 2023, 16:07:23ich lese zur Zeit die Pylontech via Cerbo GX (Victron) mit MQTT aus.
Es fehlen allerdings die Werte für /History/DischargedEnergy bzw. /History/ChargedEnergy.
Ich habe seit Januar einen Victron MP + Pylontech US5000 + US3000 + RPi mit Venus OS am Start.
Die Batterien sind via CAN Bus Adapter am RPi angebunden und ich lese nicht via MQTT sondern Modbus aus ( da gibt es die beiden fehlenden Werte DischargedEnergy / ChargedEnergy.
Ich würde gerne mal deine Version testen, wie hast du die Pylontechs angebunden da in deinem Sreenshot eine IP steht. ( RS485 Adapter auf LAN ? )
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 August 2023, 21:58:08
Nabend Wzut,

ja die Kommunikation läuft über einen RS485 to ETH Adapter.
Ich benutze diesen hier: https://www.amazon.de/dp/B07S2K41MS?psc=1&ref=ppx_yo2ov_dt_b_product_details

Bei mir ist der Victron Cerbo GX im Einsatz. Da wüßte ich jetzt auf Anhieb nicht wie ich den per Modbus auslesen sollte. Aber ich habe mir inzwischen eine Datenbanklösung erstellt indem ich die tägliche Lade/Entladeenergie logge. Die Werte kann ich dann nach Belieben aggregieren bzw. auswerten.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 09 September 2023, 12:23:52
Zitat von: DS_Starter am 19 August 2023, 23:06:23Hallo zusammen,

durch meine fortschreitende Victron Energy Installation mit Pylontech US3000C habe ich mich intensiver mit diesem Modul beschäftigt.
Ich war so frei und habe die hervorragende Arbeit der User, die an 70_Pylontech.pm mitgewirkt haben, als Grundlage für ein neues Modul 70_PylonLowVoltage.pm genommen.
Ich habe einen neuen Namen gewählt um 1. das Original nicht zu verändern und 2. können vermutlich (nachweisen kann ich es nicht) nur die Low Voltage Batterietypen von Pylontech ausgelesen werden, da sich die Protokolldoku darauf bezieht. Dieser Umstand sollte sich im Namen wiederfinden.

Was ist in 70_PylonLowVoltage.pm geändert/neu:

- der Typ US3000C und vermutlich auch US5000 werden unterstützt
- programmtechnisch wurde das Modul in ein eigenes Perl Package überführt
- es gibt die Attribute interval und timeout statt Angabe im DEF
- mit dem Attribut interval kann sowohl eine automatisch zyklische Abfrage oder eine Abfrage "On demand" realisiert werden
- mit dem Attribut "gatewayPermLink" kann gewählt werden ob eine permanente Verbindung zum RS485 Gateway verwendet werden soll oder nicht
- das Format der Definition ist geändert "define ... PylonLowVoltage <hostname/ip>:<port> [<bataddress>]"
- das Modul kann mit dem Attribut disable wie in FHEM üblich disabled werden
- der Support von Meta.pm ist eingebaut sowie eine Versionierung
- mit der Getter Drucktaste "get ... data" können die Daten manuell abgerufen werden
- die Validierung empfangener Daten ist der Protokolldoku angepasst
- die chargeManagmentInfo ist erweitert, der Abruf der System Parameter ist eingebaut und Readings eigener Berechnungen wie packImbalance, packState ist eingebaut
- die Logausgaben sind erweitert
- es gibt mehr Readings (siehe Anhang)

Ich hoffe die Erweiterungen treffen auf allgemeine Zustimmung und bereichern unsere Möglichkeiten mit FHEM.
Das Modul kann aus meinem contrib (siehe Fußtext) geladen werden.



LG,
Heiko



cool.
habe gerade das originalmodul um 2 weitere einträge erweitert.
habe jetzt 8 Racks, die ich auslesen müsste.
werde deines mal checken.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 09 September 2023, 16:11:57
Zitat von: DS_Starter am 19 August 2023, 23:06:23Hallo zusammen,

durch meine fortschreitende Victron Energy Installation mit Pylontech US3000C habe ich mich intensiver mit diesem Modul beschäftigt.
Ich war so frei und habe die hervorragende Arbeit der User, die an 70_Pylontech.pm mitgewirkt haben, als Grundlage für ein neues Modul 70_PylonLowVoltage.pm genommen.


LG,
Heiko



Hi.
Welche Kabelbelegung hast du für RS485?

bei mir kommt mit selben Kabel von US2000B auf US2000C "invalid data received ... discarded"
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 09 September 2023, 21:02:38
klappt schon. gnd abgeklemmt u. 120ohm widerstand eingesetzt
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 09 September 2023, 21:55:02
Nabend satprofi,

Zitathabe gerade das originalmodul um 2 weitere einträge erweitert.
Was hast du denn erweitert?

Zitatbei mir kommt mit selben Kabel von US2000B auf US2000C "invalid data received ... discarded"
klappt schon. gnd abgeklemmt u. 120ohm widerstand eingesetzt
Also ist das Modul sowohl mit US2000B als auch US2000C kompatibel?
Das würde ich in der ComRef ergänzen.

Ja, GND ist bei mir auch nicht angeschlossen, nur data+ und data-.

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 10 September 2023, 07:44:40
hallo.
2 stk. US2000C erweitert.
die B erkennt er als C, und die CellTemperatur bei den B pasdt auch nicht, dürfte ein Bit zuviel reinspucken.
weiters dürfte der SOC von den US2000B auch nicht passen. alle akku voll, nur die C zeigen 100% , die B aber 95,55%

vielleicht find ich die fehler.

Modul auf 8 Packs erweitert. Fehler bzgl. bmsTemp noch am eruiren.

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 10 September 2023, 13:21:38
Hallo Meister.
Habe jetzt mit BatteryView gegengecheckt, und da muss es einen zusammenhang mit Stringlänge geben.
Ich tippe das der USx000C darauf reagiert:
Answer from US2000 = 128bytes, from US3000 = 140bytes
      # Remain capacity US2000 hex(substr($res,109,4), US3000 hex(substr($res,123,6)
      # Module capacity US2000 hex(substr($res,115,4), US3000 hex(substr($res,129,6)

dadurch verschieben sich beim US2000B+ einige ergebnisse.
Die Daten vom USx000C passen, aber die vom B+ nicht wirklich.
sehe auch das du den SOC berechnest, der wird doch auch ausgelesen. Deine Berechnung sollte eigentlich SOH sein, noch verfügbare Kapa.

ich wollte schon einige werte damit auswerten, aber das modul meldet dann fehler beim reload.
vielleicht kommst du dem etwas näher.

LG Manfred
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 10 September 2023, 20:02:42
Hallo Manfred,

ich habe dir die Dokumentation für das verwendete Protokoll angehängt (vllt. kennst du sie schon?).
Es ist die aktuellste mir vorliegende Version.
Vllt. gibt es eine neuere, muss Pylontech mal anschreiben.
Jedenfalls wird US2000B etwas anders behandelt, siehe /get analog value auf Seite 15. Da wäre anzusetzen.
Der Unterschied ob 128 oder 140 Byte von der Bat kommt, ist auch von deren Kapazität abhängig. <=65Ah oder >65Ah. Ist auch dort erläutert.

Bin zur Zeit noch mit SolarForevast befasst und schaue mir das hier auch bald mal wieder an.
In der aktuellen Protokollversion V3.3 (ist aber auch schon von 2018) wird kein SOC mehr als Auslesewert dokumentiert. Deswegen berechne ich sie um protokollkonform zu implementieren.

LG,
Heiko


Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 10 September 2023, 21:38:16
Hallo Heiko.
Ich vermute das der 2000C auch 140Byte sendet, und diese beim Empfang von B genullt sind.Hat dein US3000 nicht 18 Zellen?
Das Dokument kenn ich, hab es studiert. werde mir mit terminal mal genauer ansehen was als antwort von den pylons kommt.

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 10 September 2023, 21:40:11
ZitatHat dein US3000 nicht 18 Zellen?
Nein, hat 15 Zellen (US3000C).
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 15 September 2023, 15:54:43
Hallo,

Ich lese schon seit Jahren mit Battery View über ein USB Adapter aus.
Wenn ich mir die *.pm ansehe, stoße ich auf:
  define <name> Pylontech <deviceaddress> <host> <port> [<interval> [<timeout>]]";

Muss hier zwingend ein USB zu TCP Adapter verwendet werden?

Danke
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 15 September 2023, 15:59:47
Nicht USB, sondern LAN->RS 485 Gateway, z.B. dieses: https://www.amazon.de/dp/B07S2K41MS?psc=1&ref=ppx_yo2ov_dt_b_product_details
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 15 September 2023, 16:11:24
Zitat von: DS_Starter am 15 September 2023, 15:59:47Nicht USB, sondern LAN->RS 485 Gateway, z.B. dieses: https://www.amazon.de/dp/B07S2K41MS?psc=1&ref=ppx_yo2ov_dt_b_product_details

Danke, sorry, meinte ich: LAN >RS 485 GW.

Wollte da eigentlich nicht noch so ein Ding dreinhängen, aber es nimmt ja nur <1 Watt hab ich gesehen. OK, wäre eine Notlösung.
Ich habe aber in der Garage wo die Pylontechs stehen, ohnehin einen Raspi mit FHEM am laufen und würde gerne direkt per USB RS485 Adapter drauf gehen, das ich für Battery View verwende.

Gibt es auch irgendwo ein FHEM Modul auf was über USB läuft?

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 16 September 2023, 08:01:51
vielleicht hilft dir da weiter
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 September 2023, 18:01:54
Bin gerade dabei den Code nochmal durchzugehen.
Habe wahrscheinlich einen Fehler bei den Temperaturen gefunden wenn die Batterie mehr als 15 Zellen hat.
Meine US3000C haben 15 Zellen, aber andere Typen könnten vermutlich 16 haben?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 September 2023, 22:31:26
Ich habe die V 0.1.6 in mein contrib geladen.
Batterien mit mehr als 15 Zellen werden unterstützt, d.h. insbesondere Zellspannungen und Temperaturen sollten bei den betroffenen Typen korrigiert sein.

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 09:00:18
Moin,

eine Frage.
Pylontech unterstützt ja soviel ich weiß in einer Gruppe 16 Batterien, 1 Master und max. 15 Slaves.
Im Modul haben können wir bisher bis 6 addressieren, d.h. also Batterie 1 (Master) bis 6 (Slaves).
Ich würde es auch bis ADR 16 ausbauen.
Allerdings kann ich den Erfolg nicht testen, da ich nur 4 Batterien in der Group habe.
Gibt es jemenden der mehr als 4 Batterien in einer Group betreibt und wenn ja wieviele?

Grüße
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 20 September 2023, 11:01:11
Hallo Heiko.

Ich habe 8 in einer Gruppe. Hoffe du hast dies auch in deiner neuen Version berücksichtigt :-;
Das mit 16 stimmt so? dachte max. 8 pro Gruppe. Adresse btaucht ja nur der Master, Slaves werden autom. adressiert.

Grüsse Manfred

[edit]
sah gerade das du immer noch nur 6 Packs abfr4ägst.
Habe dein Modul auf 8Stk. erweitert.
Klappt weiterhin, nur die US2000B+ passt die Temp. immer noch nicht.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 11:27:01
Hallo Manfred,

ZitatIch habe 8 in einer Gruppe. Hoffe du hast dies auch in deiner neuen Version berücksichtigt :-;
Geht eben nur bis 6 zur Zeit (bataddress 1-6 im DEF) in einer Gruppe. Mehrere Gruppen können zur Zeit ja auch nicht angesprochen werden. Kann ich nicht testen.
Aber ich würde es kurzfristig auf 8 Bat erweitern.
Dann kannst du es gerne mal testen, wäre super und würde mir helfen. Geht bei mir halt nicht.

Wenn du mehrere Batterien hast, definierst du entprechend viele Devices.
Hier ein Beispiel für meine 4 Bat:

define Pylon1 PylonLowVoltage 192.168.2.86:9000 1
define Pylon2 PylonLowVoltage 192.168.2.86:9000 2
define Pylon3 PylonLowVoltage 192.168.2.86:9000 3
define Pylon4 PylonLowVoltage 192.168.2.86:9000 4

Jede Instanz spricht die adressierte Batterie an.
Über eine Readingsgroup kann man sich dann eine schöne Übersicht anfertigen (Anhang).

ZitatDas mit 16 stimmt so? dachte max. 8 pro Gruppe. Adresse btaucht ja nur der Master, Slaves werden autom. adressiert.
Ich bin mir unsicher ob es für alle Typen gilt.
In meiner US3000C Doku steht explizit beschrieben, dass man 16 Batterien (1 Master + 15 Slaves) in einer Gruppe verschalten kann.
Pylontech gibt zum Beispiel folgende Möglichkeit an:

Master (1)   - US3000C/US2000C
Slave 2-8    - US3000C/US2000C/US3000/US2000
Slave 9-16   - US3000C/US2000C

Kannst ja mal in die Doku deiner Bat schauen. Wäre interessant.

LG,
Heiko


Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 11:33:59
Ah, hast schon auf 8 erweitert. :)  Super, das übernehme ich dann.

Wegen der Temperaturen könntest du mal verbose 5 einschalten. Im Log erscheint dann zur Analyse der Part "analogValue".

2023.09.20 11:30:32.460 4: Pylone1 - retrieve battery info: analogValue
2023.09.20 11:30:32.460 4: Pylone1 - request command (ASCII): ~20024642E00202FD33
2023.09.20 11:30:32.461 5: Pylone1 - request command (HEX): 7e3230303234363432453030323032464433330d
2023.09.20 11:30:32.478 5: Pylone1 - data returned raw: ~20024600F07A00020F0D270D270D270D270D270D260D260D270D270D270D270D280D280D280D28050BC00BAF0BAE0BAC0BB20044C54BFFFF04FFFF000B00E421012110E2C3
2023.09.20 11:30:32.479 5: Pylone1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 44323730 44323730 44323730  20F0D270D270D270
0x00000020 (00032)  44323730 44323730 44323630 44323630  D270D270D260D260
0x00000030 (00048)  44323730 44323730 44323730 44323730  D270D270D270D270
0x00000040 (00064)  44323830 44323830 44323830 44323830  D280D280D280D280
0x00000050 (00080)  35304243 30304241 46304241 45304241  50BC00BAF0BAE0BA
0x00000060 (00096)  43304242 32303034 34433534 42464646  C0BB20044C54BFFF
0x00000070 (00112)  46303446 46464630 30304230 30453432  F04FFFF000B00E42
0x00000080 (00128)  31303132 31313045 3243330d           1012110E2C3.

Es müssten die Readings

bmsTemperature
cellTemperature_0104
cellTemperature_0508
cellTemperature_0912
cellTemperature_1316  (bei 16 Zellen, sonst cellTemperature_1315)

erstellt werden.
Kannst deine Readings gerne mal posten.

Edit: Ich habe übrigens Pylon wegen einer neuren RS485 Doku angeschrieben. Sie haben mir geantwortet dass diese Doku nicht der Allgemeinheit zugänglich gemacht wird. :( Vllt. taucht mal etwas neueres im I-Net auf.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 12:52:38
@Manfred, ich habe deine Ergänzung auf 8 Bat übernommen und als V0.1.7 in mein contrib geladen.

Weiterhin habe ich in der V noch etwas gefixt, was ich gestern Abend zur späten Stunde vergessen hatte.  ::) Vllt. klappen jetzt auch deine Temps.

Ich habe auch noch das angehängte Dok gefunden. Die Anzahl der möglichen Batterien in einer Gruppe ist wohl tatsächlich vom Typ anhängig, Single string quantity(pcs) -> US2000B Plus = 8.
Ich gehe davon aus, das der Typ des Masters relevant ist.

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 13:16:05
Noch eine Frage ... welchen Wert hat bei dir das reading numberTempPos?
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 20 September 2023, 17:25:40
Zitat von: DS_Starter am 20 September 2023, 13:16:05Noch eine Frage ... welchen Wert hat bei dir das reading numberTempPos?

5
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 September 2023, 18:08:09
Passt.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 21 September 2023, 17:27:46
Zitat von: DS_Starter am 20 September 2023, 11:33:59Ah, hast schon auf 8 erweitert. :)  Super, das übernehme ich dann.

Wegen der Temperaturen könntest du mal verbose 5 einschalten. Im Log erscheint dann zur Analyse der Part "analogValue".



Es müssten die Readings

bmsTemperature
cellTemperature_0104
cellTemperature_0508
cellTemperature_0912
cellTemperature_1316  (bei 16 Zellen, sonst cellTemperature_1315)

erstellt werden.
Kannst deine Readings gerne mal posten.

Edit: Ich habe übrigens Pylon wegen einer neuren RS485 Doku angeschrieben. Sie haben mir geantwortet dass diese Doku nicht der Allgemeinheit zugänglich gemacht wird. :( Vllt. taucht mal etwas neueres im I-Net auf.

US2000B+

READINGS:
     2023-09-21 17:24:18   Manufacturer    Pylon---------------
     2023-09-21 17:24:18   averageCellVolt 3.321
     2023-09-21 17:24:18   batteryType     US2000C
     2023-09-21 17:24:18   bmsTemperature  29
     2023-09-21 17:24:18   cellTemperature_0104 27
     2023-09-21 17:24:18   cellTemperature_0508 27
     2023-09-21 17:24:18   cellTemperature_0912 27
     2023-09-21 17:24:18   cellTemperature_1315 -100

US2000C

READINGS:
     2023-09-21 17:26:17   Manufacturer    Pylon---------------
     2023-09-21 17:26:17   averageCellVolt 3.316
     2023-09-21 17:26:17   batteryType     US2000C
     2023-09-21 17:26:17   bmsTemperature  28.4
     2023-09-21 17:26:17   cellTemperature_0104 26.7
     2023-09-21 17:26:17   cellTemperature_0508 27
     2023-09-21 17:26:17   cellTemperature_0912 26.6
     2023-09-21 17:26:17   cellTemperature_1315 27.1

Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 09:50:02
Moin,

da fällt mir momentan nichts dazu ein.
Man könnte nochmal manuell die verbose 5 Ausgaben überprüfen von:

2023.09.22 09:11:18.148 4: Pylone1 - retrieve battery info: manufacturerInfo
2023.09.22 09:11:18.149 4: Pylone1 - request command (ASCII): ~20024651E00202FD33
2023.09.22 09:11:18.149 5: Pylone1 - request command (HEX): 7e3230303234363531453030323032464433330d
2023.09.22 09:11:18.161 5: Pylone1 - data returned raw: ~20024600C04055533330303043000000010750796C6F6E2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEFBC
2023.09.22 09:11:18.162 5: Pylone1 - data returned:
0x00000000 (00000)  7e323030 32343630 30433034 30353535  ~20024600C040555
0x00000010 (00016)  33333333 30333033 30343330 30303030  3333030304300000
0x00000020 (00032)  30303130 37353037 39364336 46364532  0010750796C6F6E2
0x00000030 (00048)  44324432 44324432 44324432 44324432  D2D2D2D2D2D2D2D2
0x00000040 (00064)  44324432 44324432 44324432 44454642  D2D2D2D2D2D2DEFB
0x00000050 (00080)  430d                                 C.

Für den Batterienamen ab Position 13, Länge 20 Zeichen. (hier US3000C -> 55533330303043000000)

Beziehungsweise für die Temperaturen:

2023.09.22 09:11:18.221 4: Pylone1 - retrieve battery info: analogValue
2023.09.22 09:11:18.222 4: Pylone1 - request command (ASCII): ~20024642E00202FD33
2023.09.22 09:11:18.222 5: Pylone1 - request command (HEX): 7e3230303234363432453030323032464433330d
2023.09.22 09:11:18.241 5: Pylone1 - data returned raw: ~20024600F07A00020F0CCE0CCE0CCE0CCE0CCE0CCF0CCF0CCF0CCE0CCE0CCF0CCE0CCE0CCE0CCD050BB30B980B960B950BA5FFF8C015FFFF04FFFF000C007C2C012110E0FE
2023.09.22 09:11:18.242 5: Pylone1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 43434530 43434530 43434530  20F0CCE0CCE0CCE0
0x00000020 (00032)  43434530 43434530 43434630 43434630  CCE0CCE0CCF0CCF0
0x00000030 (00048)  43434630 43434530 43434530 43434630  CCF0CCE0CCE0CCF0
0x00000040 (00064)  43434530 43434530 43434530 43434430  CCE0CCE0CCE0CCD0
0x00000050 (00080)  35304242 33304239 38304239 36304239  50BB30B980B960B9
0x00000060 (00096)  35304241 35464646 38433031 35464646  50BA5FFF8C015FFF
0x00000070 (00112)  46303446 46464630 30304330 30374332  F04FFFF000C007C2
0x00000080 (00128)  43303132 31313045 3046450d           C012110E0FE.

Die Anzahl der gelieferten Temperaturpositionen ergibt sich ab Position 79 , 2 Zeichen -> 05 -> 5 Positionen.
Ab Postion 81 beginnt die erste Temperaturposition (bmsTemperature) mit Länge 4 die entsprechend der Doku S.15 umzurechnen sind -> 0BB3 -> (2995 - 2731)/10 -> 26,4 °C.
Die nächste Temp begint dann ab Pos. 85 die nach dem gleichen Schema zu berechnen sind.
Die letzte Temperatur (5), deine fehlerhafte Temp, beginnt dann ab Position 97.
Bei mir ist die letzte Temp (cellTemperature_1315) dann entsprechend-> 0BA5 -> (2981 - 2731)/10 -> 25 °C.

Vllt. kannst du damit mal die Antworten deiner US2000B+ analysieren.

Lg
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 13:55:57
Hallo Manfred,

schau mal, hier hat im PV-Forum jemand das gleiche Problem mit US2000B Plus als Slaves und der Temp-Ausgabe 5 mit -100 -> https://www.photovoltaikforum.com/thread/130061-pylontech-us2000b-daten-protokolle-programme/?postID=3240215#post3240215

Leider konnte ich eine Antwort oder Lösung dazu in dem Thread nicht finden.
Hast du in deinem Stapel die aktuellste Batterie als Master eingesetzt?

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 September 2023, 14:57:55
Hallo Heiko.
Habe jetzt die Daten aufgebröselt. Beim US2000B+ gibts koimischerweise einen unerklärlichen wert, bei Temp N .
Hab dir die Tabellen per PN gesendet.

Gruss Manfred
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 15:16:08
Die Zeile 20 (M+3) ist eigentlich die Temperatur des BMS, nicht Temp. Zelle 1-4.
Ist aber eigentlich unwichtig. Dadurch verschiebt es sich bloß.
In der Zeile 24 (M+N+2) steht dann die Temp für Zelle 13-15/16.
In meinem Post oben hatte ich einen Beitrag von jemanden mit genau identischen Problem gefunden. Leider ohne Lösung/Reaktion.

In welcher Reihenfolge sind denn deine Batterien (Master->Slaves) gestapelt?
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 September 2023, 17:02:07
US2000C - US2000B
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 September 2023, 17:03:13
Zitat von: DS_Starter am 22 September 2023, 15:16:08Die Zeile 20 (M+3) ist eigentlich die Temperatur des BMS, nicht Temp. Zelle 1-4.
Ist aber eigentlich unwichtig. Dadurch verschiebt es sich bloß.
In der Zeile 24 (M+N+2) steht dann die Temp für Zelle 13-15/16.
In meinem Post oben hatte ich einen Beitrag von jemanden mit genau identischen Problem gefunden. Leider ohne Lösung/Reaktion.

In welcher Reihenfolge sind denn deine Batterien (Master->Slaves) gestapelt?

habe die doku als vorlage genommen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 17:06:16
Das passt m.M. auch zu den Empfehlungen von Pylontech.
Möglicherweise ein Thema der Firmware. Aber das würde ich deswegen nicht machen oder nur wenn man genau weiß was man tut. Gibt einige Hinweise im Netz zu diesem Thema.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 September 2023, 17:17:37
haben wir was übersehen?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 18:00:46
Nicht dass ich wüsste. Ist so implementiert wie dokumentiert. Hmm... wie geschrieben, auch ein anderer User hat dieses Prob mit us2000b plus und dem Temp 5 Wert = -100 (-1000 / 10). Und er hat sicherlich andere Software benutzt.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 19:42:13
@Manfred, wenn es dir nicht zuviel ist hätte ich noch den Vorschlag dass du die US2000C mal aus der Kommunikationskette rausnimmst, also die Link-Verbindung trennst, sodass nur noch US2000B aktiv sind.
Dann natürlich die RS485 Verbindung auf die oberste US2000B setzen und den Stapel abfragen.
Möglicherweise stellt sich das Ganze dann anders dar.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 September 2023, 20:46:47
nee nee nee, ich lass das system so. rennt ja bestens, diese abfrage ist nur reine spielerei.
vielleicht komm ich ja auf irgendeine Lösung.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 September 2023, 21:27:37
Verständlich ;)

Wenn du aber möchtest, könntest du im PV-Forum (mein geposteter Link) nachfragen ob der User dieses Problem bei sich lösen konnte und wenn ja wie. Das könntest du bei deiner Batterie nachprüfen.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 September 2023, 10:36:19
Hallo Heiko.
Habe mich jetzt doch gespielt.
Ergebnis:

US2000B+ allein alles sauber !

Screenshot 2023-09-23 at 09-34-54 Home Sweet Home.png

Screenshot 2023-09-23 at 09-34-32 Home Sweet Home.png

Dann US2000C als weitere Pakete dazu, keine Verbindung mehr, weil Die C einen Abschlusswiderstand benötigen, der aber bei den B+ nicht eingesetzt werden darf. Wechselrichter hat aber keine Probleme mit dieser Kombi.

Dann wieder US2000C als Master, und gewohntes Verhalten.
Was mich stört ist, das die US2000B als C ausgeworfen werden, aber allein sehr schön als B+

Aber egal, ich lasse die Kombi so, dein Proggi rennt schön, und vielleicht finde ich eine Lösung

LG Manfred
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 September 2023, 11:12:46
Moin Manfred,
Super dass du dich getraut hast.  8)
Das Ergebnis habe ich ehrlich erwartet. War/bin mir sicher dass die Implementierung entsprechend der Doku korrekt ist.
Kann eigentlich nur im Zusammenspiel der Bat Typen bzw. der Firmware liegen.

Aber wenn alles läuft, würde ich da auch nichts ändern.
Würde es dir helfen wenn das Modul ein Attr hätte mit dem man manuell den Batterietyp überschreiben kann zur richtigen Darstellung in FHEM?
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 September 2023, 11:18:11
Hallo.
wie willst das machen? normalerweise genügt es dies nur einmalig abzufragen, weil ändern tut sich das ja nie. dann könnte man ja selbst das reading überschreiben.


Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 September 2023, 12:04:20
Krieg ich schon hin. 🙂 Frage ist ob es hilfreich ist in solchen Spezialfällen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 September 2023, 20:25:28
Hallo Manfred,

bezüglich der Batterietyp-Erkennung hat es mir keine Ruhe gelassen und ich habe nochmal etwas geändert.
Die Version 0.1.8 ist in mein contrib geladen.

Schau mal ob sich damit bei dir etwas ändert.
Wenn nicht, hat diese Version ein Attribut "userBatterytype" eingebaut um den Typ manuell anpassen zu können.
Diese Möglichkeit kann ohnehin nützlich sein um etwas im Typ zu ergänzen.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 September 2023, 16:32:14
läuft, aber unverändert beim auslesen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 24 September 2023, 17:26:55
Danke Manfred. Naja einen Versuch war es wert. Dafür gibt es ja jetzt das Attr bei Bedarf.

LG
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 25 September 2023, 10:48:04
hallo Heiko.

Es hat sich ein fehler eingeschlichen, Zeile 377
if ($hash->{BATADDRESS} !~ /[123456]/xs) {
      return "Define: bataddress must be a value between 1 and 6";

müsste so lauten

if ($hash->{BATADDRESS} !~ /[12345678]/xs) {
      return "Define: bataddress must be a value between 1 and 8";
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 September 2023, 11:06:01
Moin Manfred,

aja, danke. Die Änderung ist bei der letzten Erweiterung auf 8 Bat durchgerutscht.
Habe es nachgezogen und wieder ins contrib geladen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 30 September 2023, 08:10:37
Moin,
ich habe das Modul initial eingecheckt und wird morgen früh im Update enthalten sein.
@Manfred, falls du noch weitere Erkenntnisse erlangst in deiner speziellen Konstellation arbeiten wir sie in das Modul mit ein.

LG,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 30 September 2023, 12:13:10
aha, danke.
bin am überlegen, warum die c serie den SOC immer ganze Zahl ausgibt, die B aber mit komma.
hats damit was auf sich, wegen der zelltemperatur?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 30 September 2023, 13:18:52
Moin,

ich kann deinen Gedanken leider nicht folgen.

Zitatbin am überlegen, warum die c serie den SOC immer ganze Zahl ausgibt, die B aber mit komma.
Welches Reading meinst du?

Die Zelltemperatur wird mit der Genauigkeit 1, also eine Stelle hinter dem Komma geliefert.

Der einzige spezifische Hinweis aus der Doku zur US2000B Plus auf S.15:

ZitatFor US2000B/US2000B-Plus, still send user defined items = 2. And use remain capacity 1 and
module total capacity 1.
wird auch im Modul erfüllt, da die "capacity 1" generell für Batterien < 65Ah verwendet wird.

Aber vllt. meinst du etwas anderes.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 30 September 2023, 14:03:22
Zitat von: DS_Starter am 30 September 2023, 13:18:52Moin,

ich kann deinen Gedanken leider nicht folgen.

Zitatbin am überlegen, warum die c serie den SOC immer ganze Zahl ausgibt, die B aber mit komma.
Welches Reading meinst du?



packSOC
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 30 September 2023, 17:56:29
ah, ok.
pasckSOC wird nicht geliefert, sondern aus den gelieferten Werten packCapacity und packCapacityRemain berechnet.
Die Werte packCapacity und packCapacityRemain entsprechen den "Remain capacity 1" bzw. "Module total capacity 1" beschrieben auf S.15 des Dok. Bei Batterien > 65Ah ist es dann aber "Remain capacity 2" / "Module total capacity 2".

Die Zweistelligkeit kommt durch die Formatierung -> sprintf "%.2f"


Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 30 September 2023, 21:01:49
Zitat von: DS_StarterDie Zweistelligkeit kommt durch die Formatierung -> sprintf "%.2f"




is mir schon klar. aber die berechnung ergibt mit C immer volle Zahl, bei B aber mit hundertstel. heist dann, 2 byte müssen immer gleich sein bei C
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 30 September 2023, 22:03:08
Hmm, blöderweise gibt es lt. der Doku nur die Unterscheidung gößer bzw. kleiner 65Ah. Mehr ist leider nicht beschrieben.
Und wenn ich es richtig sehe, ist sowohl US2000C als auch US2000B Plus kleiner 65Ah und werden in dem Fall auch gleich behandelt.

Die Kapazitäten für Batterien > 65Ah werden mit 3 Byte beschrieben, darunter mit 2 Byte.
Was mich stutzig macht, ist warum man in der Doku extra darauf hinweist die US2000B/US2000B-Plus mit capacity 1 zu behandeln, was ja eigentlich normal sein sollte wenn die S2000B/US2000B-Plus < 65 Ah haben.

Was denkst du?

Edit: Die Unterscheidung passiert in Zeile 1111 (Var $udi). Du kannst mal schauen ob bei dir für alle Batterien $udi==2 extrahiert wird. Das würde ich erwarten.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 01 Oktober 2023, 10:42:43
Zitat von: DS_Starter am 30 September 2023, 22:03:08Hmm, blöderweise gibt es lt. der Doku nur die Unterscheidung gößer bzw. kleiner 65Ah. Mehr ist leider nicht beschrieben.
Und wenn ich es richtig sehe, ist sowohl US2000C als auch US2000B Plus kleiner 65Ah und werden in dem Fall auch gleich behandelt.

Die Kapazitäten für Batterien > 65Ah werden mit 3 Byte beschrieben, darunter mit 2 Byte.
Was mich stutzig macht, ist warum man in der Doku extra darauf hinweist die US2000B/US2000B-Plus mit capacity 1 zu behandeln, was ja eigentlich normal sein sollte wenn die S2000B/US2000B-Plus < 65 Ah haben.

Was denkst du?

Edit: Die Unterscheidung passiert in Zeile 1111 (Var $udi). Du kannst mal schauen ob bei dir für alle Batterien $udi==2 extrahiert wird. Das würde ich erwarten.


2 wird extrahiert, passt.

Ist es bei dir 4 ?  Und die Doku dürfte fehler haben, denn :

M+7 temp. Cell 13-15
M+8 temp Mosfet (nur US3000B) , also deiner.
M+N+2  Temp. N (?)

in der Auswertung von US3000 aber kein M+7 ! auch kein M+8, der wert steht in M+N+2

Wie sieht dein String eigentlich aus?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 Oktober 2023, 13:15:44
Ja bei mir ist $udi=4. Ich habe US3000C, die haben 74Ah.

ZitatM+7 temp. Cell 13-15
M+8 temp Mosfet (nur US3000B) , also deiner.
M+N+2  Temp. N (?)
Dieses Zitat ist aus dem Kapitel "get alarm info" auf S.18.
Wir rufen und extrahieren allerdings mit "get analog value", was auf S.15 beschrieben ist.

Dann sieht es so wie hier und passt auch:
...
M+6   4: Avg. temperature of cell 9~12
M+7   5: Avg. temperature of cell 13~15/16
///
M+N+2 Temperature N
N ist dabei die Anzahl der gelieferten Temperaturen. Sie findet man im Reading numberTempPos (5 bei mir).
Die Länge pro Temperaturwert sind 2 Byte, d.h. 4 ASCII Zeichen. Bei 15 Zellen beginnen die Temp-Werte bei Postion 81 und enden bei Position 100 (inclusive) wenn 5 Werte geliefert werden.
Ab Pos 101 geht es dann weiter mit "Current".

ZitatWie sieht dein String eigentlich aus?
Bin mir nicht sicher, was du mit "String" meinst. Ein verbose 5 Ausgabe von "get analogValue" sieht so aus für die Master-Batterie:

2023.10.01 13:14:36.665 4: Pylon1 - retrieve battery info: analogValue
2023.10.01 13:14:36.666 4: Pylon1 - request command (ASCII): ~20024642E00202FD33
2023.10.01 13:14:36.666 5: Pylon1 - request command (HEX): 7e3230303234363432453030323032464433330d
2023.10.01 13:14:36.684 5: Pylon1 - data returned raw: ~20024600F07A00020F0D260D260D260D260D260D250D250D250D260D260D260D270D270D260D27050BB90BA90BA80BA50BAC003AC53AFFFF04FFFF001000F291012110E2E5
2023.10.01 13:14:36.686 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 44323630 44323630 44323630  20F0D260D260D260
0x00000020 (00032)  44323630 44323630 44323530 44323530  D260D260D250D250
0x00000030 (00048)  44323530 44323630 44323630 44323630  D250D260D260D260
0x00000040 (00064)  44323730 44323730 44323630 44323730  D270D270D260D270
0x00000050 (00080)  35304242 39304241 39304241 38304241  50BB90BA90BA80BA
0x00000060 (00096)  35304241 43303033 41433533 41464646  50BAC003AC53AFFF
0x00000070 (00112)  46303446 46464630 30313030 30463239  F04FFFF001000F29
0x00000080 (00128)  31303132 31313045 3245350d           1012110E2E5.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 01 Oktober 2023, 14:19:41
Hallo nochmals.

Mir lässt das keine Ruhe, habe jetzt BatteryView gestartet.
Da werden mir die SOC werte anders angezeigt, die US2000C passen mit der Formel aus dem Script zusammen, aber die US2000+ nicht. Battview zeigt mir 89%, FHEM aber nur 85%.
Irgendwo muss der wurm drinn liegen, spiesst sicvh mit der Anzeige von 13-15/16.

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 Oktober 2023, 14:27:11
Ich gebe dir Recht. Allerdings fehlt mir die Phantasie wo es haken könnte. Zumal wenn US2000B+ als Master eingesetzt werden es ja stimmt wie du probiert hast.
Nicht zu vergessen ist, dass BatteryView über Console (oder RS232?) angeschlossen wird. Vllt. hat Pylontech auch einen Bug in der eingesetzten Firmware bzgl. RS485, kann man nicht wissen.
Aber einen FW Update wegen dieser Sache riskieren würde ich keinesfalls machen!
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 Oktober 2023, 14:34:28
Wie sieht es denn eigentlich aus, wenn du das RS485 Gateway nicht an den Master, sondern z.B. die oberste US2000B+ ansteckst? Ändert sich da etwas?
Sollte eigentlich nicht m.M. nach, aber testweise umgesteckt ist es ja schnell.

LG

Edit: Bei mir gerade probiert. Die Kommunikation funktioniert bei mir nur bei Anschluß an den Master.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 01 Oktober 2023, 14:48:08
da muss ich wieder kabel umbauen, die plus arbeiten nur ohne Widerstand und masse.

ich lass es für heute

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 Oktober 2023, 14:59:28
Noch ein Gedanke ... haben deine beiden US2000B+ die gleiche Firmware? ->
Zitat aus Mamual "For same type of module always use the latest production unit as master".

Ich habe gerade in dem Manual für US2000C nachgelesen, das RS485 Interface der Bat arbeitet ohne Masseanschluß
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 01 Oktober 2023, 15:50:08
Ja, die B+ haben alle selbe FW.
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 11 Oktober 2023, 20:07:15
Hallo,
habe beschlossen auch den Waveshare RS485 to Ethernet Converter M0
https://www.amazon.de/dp/B07S2K41MS?ref=ppx_yo2ov_dt_b_product_details&th=1
zu verwenden.

Könnte jemand die Verkabelung zur RS485 am US3000C Pylontech Master nennen?
Einige schreiben, dass kein GND zu verwenden ist und ein 120 Ohm R zu verwenden ist..
Ich habe auch keine Pinbelegung von der RS485 der Pylontech.

Danke
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 11 Oktober 2023, 20:41:06
Gern.

Ich habe dir das US3000 Handbuch angehängt. Auf Seite 9 siehst du die Achlußbelegung des RS485 Ports.
Du verbindest Pin7 485A mit A+ des Konverters sowie Pin8 485B mit B- des Konverters. GND wird nicht angeschlossen.
120 Ohm sind connected, d.h. Dip-Schalter stehen alle auf off sofern man 115200 Baud benutzt (Standard).
Den Konverter mußt du auch entsprechend einstellen. Baudrate, IP-Adresse, Port im Servermode.
Weiterhin das Datenformat:

Format: start bit 1 bit
 Data bit 8 bit
 Stop bit 1 bit
 Without parity

LG
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 11 Oktober 2023, 23:03:57
vielen Dank
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 29 Oktober 2023, 21:41:28
Ich habe das Waveshare RS485 to Ethernet nun da und erstmal unter Windows ausgetestet, um eines meiner Modbus RTU Geräte auszulesen.
Das ganze natürlich nativ, da das Modul kein echtes Modbus Protokoll unterstützt.
Hab so ein Modul noch nie in den Händen gehabt und bin ein absoluter dau.

Funktioniert alles, mit diversen Stellschrauben.

Unter Windows muss man einen extra Treiber installieren und eine virtuelle COM Schnittstelle erstellen, die nicht persistent ist. D.h., nach dem reboot dürfte die weg sein, wenn man keinen Service oder ähnliches laufen läßt ..

Frage:
Muss man sich unter fhem (linux) um irgend welche diesbezüglichen Konfigurationen kümmern, wenn man das Modul PylonTech nutzt?

Danke
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 29 Oktober 2023, 21:50:54
ZitatMuss man sich unter fhem (linux) um irgend welche diesbezüglichen Konfigurationen kümmern, wenn man das Modul PylonTech nutzt?
Nein. Das Gateway braucht natürlich IP-Adresse, Port usw. die im Define vom Modul PylonTech angegeben werden müssen. Das Datenformat muß auch stimmen wie oben geschrieben (habe die Info jetzt auch in der Hilfe drin).
Das war es schon.

Edit: Die im Gateway eingestellte Baudrate muß natürlich auch mit der Einstellung der Pylontech Batterien übereinstimmen.
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 31 Oktober 2023, 14:28:58
danke für die Info.

Unter Windows musste ich noch an den Kommunikationseinstellungen am Waveshare schrauben:

D.h., diese Parameter waren bei meinem Gerät auf AUS und erst nach dem Einschalten ging es, was allerdings
nur try and error war, kurz bevor ich aufgeben wollte.

Buffer Data Before Connected: EIN
UART Set Parameter: EIN

erst dann hat die Kommunikation mit dem Modbusgerät (in meinem Fall eine Hoymiles DTU Pro) funktioniert.
Hierfür benötigt man eigentlich ein Waveshare mit zusätzlicher Modbusfunktionalität, da ich die Modbuskommunikation in C# eh von Hand geschrieben habe, klappte das trotzdem
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 15 Dezember 2023, 11:53:20
Hallo.
Das Modul ist jetzt auf 14 Akkus erweitert.
Danke an DS_Starter für die Hilfe.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 15 Dezember 2023, 12:37:51
Vielen Dank an satprofi für die Erweiterung!  :)
Ich mache noch einen 4-Augen Check und stelle die neue V sodann ins Repo.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 17 Februar 2024, 14:30:36
Ich habe heute meine Pylontechs mit dem Modul einbinden wollen, aber so richtig will es nicht.
Ich habe 1x US3000C (Master), 2x USB2000C und US2000 Plus.

DIe Kommunikation steht soweit mit einem USR-TCP232-304, aber ich erhalte immer nur:
insufficient response length 52 of minimum length 82 received
Könnt ihr mir hier weiterhelfen?

Achja, Verbindung geht nur mit 9600bps, bei 115200bps bekomme ich gar keine Verbindung...
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 17 Februar 2024, 18:46:51
Wenn 115200bps nicht funktioniert, kontrolliere bitte ob deine Batterie wo der USR angeschlossen ist auch auf 115200bps eingestellt ist. Die DIP Schalter meiner Batterierien stehen alle auf "OFF".

Das Kabel wird beim Master am RS485 Port angeschlossen. Weiterhin muss das Kabel auch die richtigen PINs belegen. Das habe ich etwas weiter oben beschrieben, ist aber auch im US3000 Handbuch beschrieben.

Bei dem Setup des USR hake die beiden Einstellungen "Link" und "Similar RFC2217" an.
Anbei die Einstellung bei mir.

Im Modul gibt verbose 5 mehr Auskunft:

024.02.17 18:33:00.942 4: Pylon1 - start request cycle to battery number >1< at host:port 192.168.2.86:9000
2024.02.17 18:33:00.943 4: Pylon1 - Cycle started in main process
2024.02.17 18:33:00.947 4: Pylon1 - retrieve battery info: alarmInfo
2024.02.17 18:33:00.948 4: Pylon1 - request command (ASCII): ~20024644E00202FD31
2024.02.17 18:33:00.948 5: Pylon1 - request command (HEX): 7e3230303234363434453030323032464433310d
2024.02.17 18:33:00.966 5: Pylon1 - data returned raw: ~20024600A04200020F000000000000000000000000000000050000000000000000000E00000000F109
2024.02.17 18:33:00.967 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30413034 32303030  ~20024600A042000
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303530 30303030 30303030 30303030  0050000000000000
0x00000040 (00064)  30303030 30304530 30303030 30303046  000000E00000000F
0x00000050 (00080)  3130390d                             109.

2024.02.17 18:33:00.967 4: Pylon1 - retrieve battery info: chargeManagmentInfo
2024.02.17 18:33:00.967 4: Pylon1 - request command (ASCII): ~20024692E00202FD2E
2024.02.17 18:33:00.968 5: Pylon1 - request command (HEX): 7e3230303234363932453030323032464432450d
2024.02.17 18:33:01.024 5: Pylon1 - data returned raw: ~20024600B01402D002AFC80172FE8EC0F91C
2024.02.17 18:33:01.024 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 31373246 45384543  002AFC80172FE8EC
0x00000020 (00032)  30463931 430d                        0F91C.

2024.02.17 18:33:01.025 4: Pylon1 - retrieve battery info: analogValue
2024.02.17 18:33:01.025 4: Pylon1 - request command (ASCII): ~20024642E00202FD33
2024.02.17 18:33:01.026 5: Pylon1 - request command (HEX): 7e3230303234363432453030323032464433330d
2024.02.17 18:33:01.043 5: Pylon1 - data returned raw: ~20024600F07A00020F0CE20CE10CE20CE40CE20CE10CE30CE20CE20CE30CE10CE30CE20CE20CE1050B730B5D0B5C0B580B620000C13FFFFF04FFFF000F00454E012110E248
2024.02.17 18:33:01.044 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 43453230 43453130 43453230  20F0CE20CE10CE20
0x00000020 (00032)  43453430 43453230 43453130 43453330  CE40CE20CE10CE30
0x00000030 (00048)  43453230 43453230 43453330 43453130  CE20CE20CE30CE10
0x00000040 (00064)  43453330 43453230 43453230 43453130  CE30CE20CE20CE10
0x00000050 (00080)  35304237 33304235 44304235 43304235  50B730B5D0B5C0B5
0x00000060 (00096)  38304236 32303030 30433133 46464646  80B620000C13FFFF
0x00000070 (00112)  46303446 46464630 30304630 30343534  F04FFFF000F00454
0x00000080 (00128)  45303132 31313045 3234380d           E012110E248.

2024.02.17 18:33:01.045 4: Pylon1 - Socket/Connection to the RS485 gateway was closed
2024.02.17 18:33:01.045 4: Pylon1 - got data from battery number >1< successfully
2024.02.17 18:33:01.649 4: Pylon1 - start request cycle to battery number >1< at host:port 192.168.2.86:9000
2024.02.17 18:33:01.650 4: Pylon1 - Cycle started in main process
2024.02.17 18:33:01.657 4: Pylon1 - retrieve battery info: alarmInfo
2024.02.17 18:33:01.657 4: Pylon1 - request command (ASCII): ~20024644E00202FD31
2024.02.17 18:33:01.658 5: Pylon1 - request command (HEX): 7e3230303234363434453030323032464433310d
2024.02.17 18:33:01.675 5: Pylon1 - data returned raw: ~20024600A04200020F000000000000000000000000000000050000000000000000000E00000000F109
2024.02.17 18:33:01.676 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30413034 32303030  ~20024600A042000
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303530 30303030 30303030 30303030  0050000000000000
0x00000040 (00064)  30303030 30304530 30303030 30303046  000000E00000000F
0x00000050 (00080)  3130390d                             109.

2024.02.17 18:33:01.676 4: Pylon1 - retrieve battery info: chargeManagmentInfo
2024.02.17 18:33:01.677 4: Pylon1 - request command (ASCII): ~20024692E00202FD2E
2024.02.17 18:33:01.677 5: Pylon1 - request command (HEX): 7e3230303234363932453030323032464432450d
2024.02.17 18:33:01.684 5: Pylon1 - data returned raw: ~20024600B01402D002AFC80172FE8EC0F91C
2024.02.17 18:33:01.684 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 31373246 45384543  002AFC80172FE8EC
0x00000020 (00032)  30463931 430d                        0F91C.

2024.02.17 18:33:01.685 4: Pylon1 - retrieve battery info: analogValue
2024.02.17 18:33:01.685 4: Pylon1 - request command (ASCII): ~20024642E00202FD33
2024.02.17 18:33:01.685 5: Pylon1 - request command (HEX): 7e3230303234363432453030323032464433330d
2024.02.17 18:33:01.703 5: Pylon1 - data returned raw: ~20024600F07A00020F0CE20CE10CE20CE40CE20CE10CE30CE20CE20CE30CE10CE30CE20CE20CE1050B730B5D0B5C0B580B620000C13FFFFF04FFFF000F00454E012110E248
2024.02.17 18:33:01.703 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 43453230 43453130 43453230  20F0CE20CE10CE20
0x00000020 (00032)  43453430 43453230 43453130 43453330  CE40CE20CE10CE30
0x00000030 (00048)  43453230 43453230 43453330 43453130  CE20CE20CE30CE10
0x00000040 (00064)  43453330 43453230 43453230 43453130  CE30CE20CE20CE10
0x00000050 (00080)  35304237 33304235 44304235 43304235  50B730B5D0B5C0B5
0x00000060 (00096)  38304236 32303030 30433133 46464646  80B620000C13FFFF
0x00000070 (00112)  46303446 46464630 30304630 30343534  F04FFFF000F00454
0x00000080 (00128)  45303132 31313045 3234380d           E012110E248.

2024.02.17 18:33:01.704 4: Pylon1 - Socket/Connection to the RS485 gateway was closed
2024.02.17 18:33:01.704 4: Pylon1 - got data from battery number >1< successfully

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 17 Februar 2024, 18:55:24
Hilf mir mal auf die Sprünge DIP auf OFF heißt alle runter?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 17 Februar 2024, 19:16:51
Nein, alle oben. Die Schalter stehen auf dem Kopf, sind aber beschriftet. "ON" ist unten.
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 17 Februar 2024, 22:50:27
Ich hatte bis auf Similar RFC2217 alles probiert, aber genau der Haken hat gefehlt. Nun.läuft es  ;)

Vielen Dank!
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 18 Februar 2024, 10:07:42
Nachdem es mit dem USR-TCP nun läuft wollte ich es gerne mit einem ESP8266 und RS485 Modul auslesen. Dieser scheint jedoch nicht schnell genug zu arbeiten, oder kann es einen anderen Grund geben, wenn zu wenig Daten durchkommen?

2024.02.18 10:12:01 4: Pylon_1 - retrieve battery info: manufacturerInfo
2024.02.18 10:12:01 4: Pylon_1 - request command (ASCII): ~200246510000FDAC
2024.02.18 10:12:01 5: Pylon_1 - request command (HEX): 7e323030323436353130303030464441430d
2024.02.18 10:12:01 4: Pylon_1 - insufficient response length 49 of minimum length 82 received ... discarded
2024.02.18 10:12:01 4: Pylon_1 - Socket/Connection to the RS485 gateway was closed
2024.02.18 10:12:06 4: Pylon_1 - start request cycle to battery number >1< at host:port 192.168.0.102:8123
2024.02.18 10:12:06 4: Pylon_1 - Cycle BlockingCall PID "1093323" with timeout "20" started
2024.02.18 10:12:06 4: Pylon_1 - retrieve battery info: serialNumber
2024.02.18 10:12:06 4: Pylon_1 - request command (ASCII): ~20024693E00202FD2D
2024.02.18 10:12:06 5: Pylon_1 - request command (HEX): 7e3230303234363933453030323032464432440d
2024.02.18 10:12:06 5: Pylon_1 - data returned raw: ~20024600C0220259323231313138433330333430323732F6D6
2024.02.18 10:12:06 5: Pylon_1 - data returned:
0x00000000 (00000)  7e323030 32343630 30433032 32303235  ~20024600C022025
0x00000010 (00016)  39333233 32333133 31333133 38343333  9323231313138433
0x00000020 (00032)  33333033 33333433 30333233 37333246  330333430323732F
0x00000030 (00048)  3644360d                             6D6.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 Februar 2024, 11:07:15
Beim ESP bin ich raus. Aber wenn ich heute Abend dazu komme, könnte ich mit verbose 5 die fehlerhaften Daten ausdrucken lassen wenn "insufficient response length 49 of minimum length 82 received ... discarded" kommt.
Dann kannst du weiter forschen was falsch sein könnte.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 Februar 2024, 19:04:36
Morgen früh ist das Feature mit im Update enthalten. Falls du es eilig hast, kannst du dir die neue Version schon jetzt aus meinem contrib (Fußtext) laden. Neustart nicht vergessen.

LG,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 20 Februar 2024, 13:57:56
Vielen Dank nochmal Heiko. Dank deiner Hilfe habe ich den Fehler gefunden.

Falls es jemanden interessiert, die Kommunikation mittels ESPEasy geht nicht per Software Serial, nur Hardware Serial mit RX Receive Timeout (mSec):20 funktioniert.

Aktuell werden alle Akkus als US3000C angezeigt - ist mir aber nicht so wichtig...

Zudem ist mir aber etwas anderes aufgefallen:
Aktuell lese ich die Daten per USB aus der RS232 Schnittstelle aus.
Allerdings weichen die Werte ab?

SOC für
RS485   RS232
44%     44%   US3000C 
46%     46%   US2000C
54%     55%   US2000C
59%     67%   US2000 Plus
59%     67%   US2000 Plus

Kennt jemand das Problem.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 Februar 2024, 21:52:53
Über das RS485 Protokoll muß der SoC aus den gemeldeten Werten Ladungszustand und Nennkapazität berechnet werden. Problem wird sein, dass sich die Batterie als US3000C meldet, die eine größere Kapazität hat.
Möglichweise muß/kann man die US2000 Plus (evtl. auch 2000C) mit einer direkten Adresse versehen per Dip-Schalter versehen. Ich habe hier (https://www.photovoltaikforum.com/thread/151364-unterschied-pylontech-us2000-us2000b-und-us2000b-plus/?postID=2230059#post2230059) eine Info und Doku dazu gefunden.

Bei den US3000C gibt es das nicht.
Hier noch eine Info zum Mixen der Typen: https://community.victronenergy.com/storage/attachments/10425-us2000b-us2000-plus-us3000-difference-and-mixture.pdf

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 20 Februar 2024, 22:13:37
Ich habe die älteren 2000 Plus jetzt manuell adressiert, bin echt gespannt, ob das etwas ändert.

Grundsätzlich erkennt das Modul die richtige packCapacity, dürfte doch eigentlich nichts ausmachen, wenn sie als 3000C angezeigt werden.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 Februar 2024, 22:20:53
Stimmt auch wieder.

Im Prinzip kannst du den SoC aus den gemeldeten Readings packCapacity und packCapacityRemain selbst ausrechnen / überprüfen.
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 20 Februar 2024, 22:24:12
Zitat von: DS_Starter am 20 Februar 2024, 22:20:53Stimmt auch wieder.

Im Prinzip kannst du den SoC aus den gemeldeten Readings packCapacity und packCapacityRemain selbst ausrechnen / überprüfen.
Ich habe mir schon ein entsprechendes UserReading angelegt.
Jetzt bei 20% gibt es da keine großen Unterschiede...
Titel: Aw: Modul PylonTech
Beitrag von: sparkiie am 22 Februar 2024, 11:00:44
Auch der berechnete SoC passt nicht wirklich zu den Daten aus der RS232 Schnittstelle.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 Februar 2024, 21:59:20
Nun die entsprechenden Ausgangswerte werden durch das BMS geliefert. Daran kann man nichts ändern.
Zum SoC bei PylonTech findet man etliches im Photovoltaikforum, z.B.

Zitat....Auch die Schaltung über die Kapazitätswerte der Pylontechs ist nicht makellos. Wie vor mir schon erwähnt, lernt die Batterie ihre Kapazität bei ca 90% und bei 20% nach. Dadurch kommt es an diesen Punkten zu unphysikalisch langen Plateaus der Kapazität trotz realer (Ent)Ladung. Bei längerem Betrieb >20 und <90% wird der Kapazitätswert falsch, weil er auch nur durch Integration der Ströme gebildet werden kann. Besser wie eine spannungsgeführte Logik ist das allemal, aber präzise Vorrausberechnungen, wieviele Ladungen Wäsche noch "in der Batterie" stecken gehen hier in die Binsen. 10% Fehler hab ich schon beobachtet - vmtl. kann es auch deutlich mehr werden.

Quelle: https://www.photovoltaikforum.com/thread/118958-pylontech-us2000b-daten-%C3%BCber-konsole-rs232-auslesen/?postID=1700299#post1700299
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 18 März 2024, 23:12:07
Hallo,
ich hatte heute endlich Zeit, den "waveshare rs232 zu ethernet adapter" in fhem einzubinden.

leider bekomme ich keinerlei Kommunikation zum Waveshare Adapter hin.

define Batterien PylonLowVoltage 192.168.0.54:9000
attr Batterien interval 10
attr Batterien room PYLONTECH
attr Batterien timeout 2
attr Batterien verbose 5
#   BATADDRESS 1
#   DEF        192.168.0.54:9000
#   FUUID      65f89f55-f33f-71b5-f281-a1ca0a9e1442740b
#   FVERSION   70_PylonLowVoltage.pm:v0.2.2-s28538/2024-02-20
#   HOST       192.168.0.54
#   NAME       Batterien
#   NR         75
#   OPMODE     Automatic
#   PORT       9000
#   STATE      Timeout reading data from battery
#   TYPE       PylonLowVoltage
#   eventCount 396
#   HELPER:
#     PACKAGE    FHEM::PylonLowVoltage
#     VERSION    0.2.2
#     VERSION_API unused
#     VERSION_CTZ unused
#     VERSION_ErrCodes unused
#     VERSION_SMUtils 1.27.2
#   OLDREADINGS:
#   READINGS:
#     2024-03-18 22:56:00   nextCycletime   22:56:09
#     2024-03-18 22:56:00   state           Timeout reading data from battery
#
setstate Batterien Timeout reading data from battery
setstate Batterien 2024-03-18 22:56:00 nextCycletime 22:56:09
setstate Batterien 2024-03-18 22:56:00 state Timeout reading data from battery



der Waveshare liegt auf .54 (static dhcp reservation) und der fhem server auf .55 (static ip)

Screenshot 2024-03-18 225958.pngScreenshot 2024-03-18 225913.pngScreenshot 2024-03-18 225752.png

Anbei meine Einstellungen auf dem Waveshare.

Hat jemand eine Idee, welche Einstellung falsch ist?

Ein Startbit 1 konnte ich nicht einstellen, da ich die betreffende Einstellung nicht gefunden habe.
Rx Count geht auf dem Waveshare alle 10 Sekunden um 20 Byte hoch, Tx Count bleibt auf 0

Danke vorab ..

   
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 März 2024, 23:35:31
Ich habe

- UART Set Parameter NICHT gesetzt

Die Baudrate 115200 muß mit dem Setting der Batterien übereinstimmen.
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 18 März 2024, 23:42:03
Danke.
Dann probiere ich das morgen mal aus. Die DIP Schalter sind auf default bei mir bei den US3000C.

Letzte Frage für heute:
Wenn das Kabel aus der Pylontech gezogen ist, aber der Waveshare Adapter noch mit dem Ethernet verbunden ist, kommt dann auch:

" Timeout reading data from battery "

?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 März 2024, 23:51:57
Ja, weil keine Antwort vom Gateway bzw. der Batterie in der erwarteten Zeit.
Titel: Aw: Modul PylonTech
Beitrag von: ThomasFh am 19 März 2024, 17:42:48
UART Set Parameter [ ] habe ich raus genommen. Danach lief die ganze Sache.

Abschlusswidersände habe ich keine werwendet. Leitung ist bei mir momentan nur ein paar cm lang.


Bei der Angelegenheit hatte ich gleich zwei fatale Trugschlüsse:

1. Dass es laut Beshreibung irgendwo noch eine Einstellung für das erwähnte Startbit geben muss:
-Die gibt es beim Wavshare jedenfalls nicht

und der Haupttrugschluss:

2. Dass man die IP vom fhem server hier sehen muss, was natürlich nur der Fall ist, wenn man die connection offen hält.
pic2.png

Man sieht dieses Bild nur leider in 1 von 100 Fällen, da die connection vermutlich sofort wieder geschlossen wird.
(Habe mir den Perl Code nicht angesehen.)

3. bei meinem debian fhem von 2021 musste ich zumindest F5 drücken, bis mal was ankam im Firefox.
Zum Glück habe ich Tx und Rx im Waveshare hochzählen sehen ..

PS:
Man sollte doch mal diese Parameter in den Startthread reinsetzen, da einige den Waveshare aufgrund des günstiges Preises nutzen werden


TAUSEND DANK den Entwicklern ..
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 März 2024, 21:59:49
Ich habe eine Beispielkonfiguration des Waveshare Converters in die Commandref des Moduls aufgenommen.
Morgen früh ist die neue Version im Update enthalten.

LG
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 31 März 2024, 10:11:53
@DS_Starter, ich habe eine US5000 als Master + eine US3000 als Slave und bekomme bei beiden keine Werte.
hier die verbose 5 Logs :
US5000 :
2024.03.31 10:02:44 4: Batterien - start request cycle to battery number >1< at host:port 192.168.0.6:9000
2024.03.31 10:02:44 4: Batterien - Cycle started in main process
2024.03.31 10:02:44 4: Batterien - retrieve battery info: serialNumber
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024693E00202FD2D
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363933453030323032464432440d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600C0220259323230383137433530343430373935F6C4
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30433032 32303235  ~20024600C022025
0x00000010 (00016)  39333233 32333033 38333133 37343333  9323230383137433
0x00000020 (00032)  35333033 34333433 30333733 39333546  530343430373935F
0x00000030 (00048)  3643340d                             6C4.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: manufacturerInfo
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~200246510000FDAC
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e323030323436353130303030464441430d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600C04055533530303000000000010350796C6F6E2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEFC5
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30433034 30353535  ~20024600C040555
0x00000010 (00016)  33333533 30333033 30303030 30303030  3353030300000000
0x00000020 (00032)  30303130 33353037 39364336 46364532  0010350796C6F6E2
0x00000030 (00048)  44324432 44324432 44324432 44324432  D2D2D2D2D2D2D2D2
0x00000040 (00064)  44324432 44324432 44324432 44454643  D2D2D2D2D2D2DEFC
0x00000050 (00080)  350d                                 5.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: protocolVersion
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~0002464F0000FD9A
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e303030323436344630303030464439410d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~200246000000FDB2
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30303030 30464442  ~200246000000FDB
0x00000010 (00016)  320d                                 2.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: softwareVersion
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024696E00202FD2A
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363936453030323032464432410d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600400C020103000609FB46
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30343030 43303230  ~20024600400C020
0x00000010 (00016)  31303330 30303630 39464234 360d      103000609FB46.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: systemParameters
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024647E00202FD2E
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363437453030323032464432450d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600B032110E420BEA0AF00D030A4703E8D2F0B3B0A7F80D030A47FC18F27E
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30423033 32313130  ~20024600B032110
0x00000010 (00016)  45343230 42454130 41463030 44303330  E420BEA0AF00D030
0x00000020 (00032)  41343730 33453844 32463042 33423041  A4703E8D2F0B3B0A
0x00000030 (00048)  37463830 44303330 41343746 43313846  7F80D030A47FC18F
0x00000040 (00064)  3237450d                             27E.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: alarmInfo
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024644E00202FD31
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363434453030323032464433310d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600804400020F00000000000000000000000000000006000000000000000000000E80000000F0A7
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30383034 34303030  ~200246008044000
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45383030 30303030  00000000E8000000
0x00000050 (00080)  30463041 370d                        0F0A7.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: chargeManagmentInfo
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024692E00202FD2E
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363932453030323032464432450d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600B01402D002AFC80320FCE0C0F92B
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 33323046 43453043  002AFC80320FCE0C
0x00000020 (00032)  30463932 420d                        0F92B.

2024.03.31 10:02:44 4: Batterien - retrieve battery info: analogValue
2024.03.31 10:02:44 4: Batterien - request command (ASCII): ~20024642E00202FD33
2024.03.31 10:02:44 5: Batterien - request command (HEX): 7e3230303234363432453030323032464433330d
2024.03.31 10:02:44 5: Batterien - data returned raw: ~20024600B07E00020F0CA20C9E0C9D0CA10CA50CA00CA30CA60C9D0CA30CA70C930CA90CA20CA5060B350B2C0B260B260B240B2F0060BD76FFFF04FFFF0121002D900186A0E178
2024.03.31 10:02:44 5: Batterien - data returned:
0x00000000 (00000)  7e323030 32343630 30423037 45303030  ~20024600B07E000
0x00000010 (00016)  32304630 43413230 43394530 43394430  20F0CA20C9E0C9D0
0x00000020 (00032)  43413130 43413530 43413030 43413330  CA10CA50CA00CA30
0x00000030 (00048)  43413630 43394430 43413330 43413730  CA60C9D0CA30CA70
0x00000040 (00064)  43393330 43413930 43413230 43413530  C930CA90CA20CA50
0x00000050 (00080)  36304233 35304232 43304232 36304232  60B350B2C0B260B2
0x00000060 (00096)  36304232 34304232 46303036 30424437  60B240B2F0060BD7
0x00000070 (00112)  36464646 46303446 46464630 31323130  6FFFF04FFFF01210
0x00000080 (00128)  30324439 30303138 36413045 3137380d  02D900186A0E178.

2024.03.31 10:02:44 4: Batterien - wrong value retrieve analogValue -> user defined items: 255
2024.03.31 10:02:44 4: Batterien - Socket/Connection to the RS485 gateway was closed

US3000 :
2024.03.31 10:04:27 4: Batterien - start request cycle to battery number >2< at host:port 192.168.0.6:9000
2024.03.31 10:04:27 4: Batterien - Cycle started in main process
2024.03.31 10:04:27 4: Batterien - retrieve battery info: serialNumber
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034693E00203FD2B
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363933453030323033464432420d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600C0220348323230383230433330353230353431F6D8
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30433032 32303334  ~20034600C022034
0x00000010 (00016)  38333233 32333033 38333233 30343333  8323230383230433
0x00000020 (00032)  33333033 35333233 30333533 34333146  330353230353431F
0x00000030 (00048)  3644380d                             6D8.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: manufacturerInfo
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~200346510000FDAB
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e323030333436353130303030464441420d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600C04055533530303000000000010350796C6F6E2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEFC4
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30433034 30353535  ~20034600C040555
0x00000010 (00016)  33333533 30333033 30303030 30303030  3353030300000000
0x00000020 (00032)  30303130 33353037 39364336 46364532  0010350796C6F6E2
0x00000030 (00048)  44324432 44324432 44324432 44324432  D2D2D2D2D2D2D2D2
0x00000040 (00064)  44324432 44324432 44324432 44454643  D2D2D2D2D2D2DEFC
0x00000050 (00080)  340d                                 4.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: protocolVersion
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~0003464F0000FD99
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e303030333436344630303030464439390d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~200346000000FDB1
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30303030 30464442  ~200346000000FDB
0x00000010 (00016)  310d                                 1.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: softwareVersion
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034696E00203FD28
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363936453030323033464432380d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600400C030104000609FB43
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30343030 43303330  ~20034600400C030
0x00000010 (00016)  31303430 30303630 39464234 330d      104000609FB43.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: systemParameters
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034647E00203FD2C
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363437453030323033464432430d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600B032110E420BEA0AF00D030A4703E8D2F0B3B0A7F80D030A47FC18F27D
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30423033 32313130  ~20034600B032110
0x00000010 (00016)  45343230 42454130 41463030 44303330  E420BEA0AF00D030
0x00000020 (00032)  41343730 33453844 32463042 33423041  A4703E8D2F0B3B0A
0x00000030 (00048)  37463830 44303330 41343746 43313846  7F80D030A47FC18F
0x00000040 (00064)  3237440d                             27D.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: alarmInfo
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034644E00203FD2F
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363434453030323033464432460d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600804401030F00000000000000000000000000000006000000000000000000000E80000000F0A4
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30383034 34303130  ~200346008044010
0x00000010 (00016)  33304630 30303030 30303030 30303030  30F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45383030 30303030  00000000E8000000
0x00000050 (00080)  30463041 340d                        0F0A4.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: chargeManagmentInfo
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034692E00203FD2C
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363932453030323033464432430d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600B01403D002AFC80172FE8EC0F91A
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30423031 34303344  ~20034600B01403D
0x00000010 (00016)  30303241 46433830 31373246 45384543  002AFC80172FE8EC
0x00000020 (00032)  30463931 410d                        0F91A.

2024.03.31 10:04:27 4: Batterien - retrieve battery info: analogValue
2024.03.31 10:04:27 4: Batterien - request command (ASCII): ~20034642E00203FD31
2024.03.31 10:04:27 5: Batterien - request command (HEX): 7e3230303334363432453030323033464433310d
2024.03.31 10:04:27 5: Batterien - data returned raw: ~20034600B07E00030F0CA20CA70CA50CA50CA80CA20CA20C9F0CA00CA50CA50CA60CA20C9F0CA4060B380B240B240B210B230B310029BD93FFFF04FFFF010D0021C9012110E19E
2024.03.31 10:04:27 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30423037 45303030  ~20034600B07E000
0x00000010 (00016)  33304630 43413230 43413730 43413530  30F0CA20CA70CA50
0x00000020 (00032)  43413530 43413830 43413230 43413230  CA50CA80CA20CA20
0x00000030 (00048)  43394630 43413030 43413530 43413530  C9F0CA00CA50CA50
0x00000040 (00064)  43413630 43413230 43394630 43413430  CA60CA20C9F0CA40
0x00000050 (00080)  36304233 38304232 34304232 34304232  60B380B240B240B2
0x00000060 (00096)  31304232 33304233 31303032 39424439  10B230B310029BD9
0x00000070 (00112)  33464646 46303446 46464630 31304430  3FFFF04FFFF010D0
0x00000080 (00128)  30323143 39303132 31313045 3139450d  021C9012110E19E.

2024.03.31 10:04:27 4: Batterien - wrong value retrieve analogValue -> user defined items: 255
2024.03.31 10:04:27 4: Batterien - Socket/Connection to the RS485 gateway was closed
2024.03.31 10:04:29 4: Batterien - start request cycle to battery number >2< at host:port 192.168.0.6:9000
2024.03.31 10:04:29 4: Batterien - Cycle started in main process
2024.03.31 10:04:29 4: Batterien - retrieve battery info: serialNumber
2024.03.31 10:04:29 4: Batterien - request command (ASCII): ~20034693E00203FD2B
2024.03.31 10:04:29 5: Batterien - request command (HEX): 7e3230303334363933453030323033464432420d
2024.03.31 10:04:29 5: Batterien - data returned raw: ~20034600C0220348323230383230433330353230353431F6D8
2024.03.31 10:04:29 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30433032 32303334  ~20034600C022034
0x00000010 (00016)  38333233 32333033 38333233 30343333  8323230383230433
0x00000020 (00032)  33333033 35333233 30333533 34333146  330353230353431F
0x00000030 (00048)  3644380d                             6D8.

2024.03.31 10:04:29 4: Batterien - retrieve battery info: manufacturerInfo
2024.03.31 10:04:29 4: Batterien - request command (ASCII): ~200346510000FDAB
2024.03.31 10:04:29 5: Batterien - request command (HEX): 7e323030333436353130303030464441420d
2024.03.31 10:04:29 5: Batterien - data returned raw: ~20034600C04055533530303000000000010350796C6F6E2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEFC4
2024.03.31 10:04:29 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30433034 30353535  ~20034600C040555
0x00000010 (00016)  33333533 30333033 30303030 30303030  3353030300000000
0x00000020 (00032)  30303130 33353037 39364336 46364532  0010350796C6F6E2
0x00000030 (00048)  44324432 44324432 44324432 44324432  D2D2D2D2D2D2D2D2
0x00000040 (00064)  44324432 44324432 44324432 44454643  D2D2D2D2D2D2DEFC
0x00000050 (00080)  340d                                 4.

2024.03.31 10:04:29 4: Batterien - retrieve battery info: protocolVersion
2024.03.31 10:04:29 4: Batterien - request command (ASCII): ~0003464F0000FD99
2024.03.31 10:04:29 5: Batterien - request command (HEX): 7e303030333436344630303030464439390d
2024.03.31 10:04:29 5: Batterien - data returned raw: ~200346000000FDB1
2024.03.31 10:04:29 5: Batterien - data returned:
0x00000000 (00000)  7e323030 33343630 30303030 30464442  ~200346000000FDB
0x00000010 (00016)  310d                                 1.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 31 März 2024, 10:37:46
Moin Wzut,

Problem ist:  wrong value retrieve analogValue -> user defined items: 255

Es gibt nur die Werte 2 oder 4:
user defined item=Entscheidungskriterium -> 2: Batterien <= 65Ah, 4: Batterien > 65Ah

Ein anderer Wert kann/darf lt. PylonTech Protokollspezifikation nicht vorkommen.
Bekommst du heraus welche Firmwareversion auf den Batterien ist?
Oder anders gefragt wie alt sind Bats? Vllt. gibt uns das einen Hinweis.
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 31 März 2024, 10:41:55
ich habe einfach den error Block auskommentiert, dann gibt es diese Readings :
define Batterien2 PylonLowVoltage 192.168.0.6:9000 2
attr Batterien2 interval 0
attr Batterien2 room Pylontech
#   .FhemMetaInternals 1
#   BATADDRESS 2
#   CFGFN     
#   DEF        192.168.0.6:9000 2
#   FUUID      660920e1-f33f-cb2e-d1ad-9b29df2f0484262f
#   FVERSION   70_PylonLowVoltage.pm:v0.2.4-s28724/2024-03-29
#   HOST       192.168.0.6
#   NAME       Batterien2
#   NR         115
#   OPMODE     Manual
#   PORT       9000
#   STATE      connected
#   TYPE       PylonLowVoltage
#   eventCount 2
#   .attraggr:
#   .attrminint:
#   HELPER:
#     PACKAGE    FHEM::PylonLowVoltage
#     VERSION    0.2.4
#     VERSION_API unused
#     VERSION_CTZ unused
#     VERSION_ErrCodes unused
#     VERSION_SMUtils 1.27.2
#   READINGS:
#     2024-03-31 10:37:53   Manufacturer    Pylon
#     2024-03-31 10:37:54   averageCellVolt 4.354
#     2024-03-31 10:37:53   batteryType     US5000
#     2024-03-31 10:37:54   bmsTemperature  14.4
#     2024-03-31 10:37:54   cellTemperature_0104 12.4
#     2024-03-31 10:37:54   cellTemperature_0508 12.4
#     2024-03-31 10:37:54   cellTemperature_0912 12.1
#     2024-03-31 10:37:54   cellTemperature_1315 12.3
#     2024-03-31 10:37:54   cellVoltage_01  3.194
#     2024-03-31 10:37:54   cellVoltage_02  3.197
#     2024-03-31 10:37:54   cellVoltage_03  3.197
#     2024-03-31 10:37:54   cellVoltage_04  3.196
#     2024-03-31 10:37:54   cellVoltage_05  3.197
#     2024-03-31 10:37:54   cellVoltage_06  3.195
#     2024-03-31 10:37:54   cellVoltage_07  3.195
#     2024-03-31 10:37:54   cellVoltage_08  3.196
#     2024-03-31 10:37:54   cellVoltage_09  3.196
#     2024-03-31 10:37:54   cellVoltage_10  3.197
#     2024-03-31 10:37:54   cellVoltage_11  3.195
#     2024-03-31 10:37:54   cellVoltage_12  3.196
#     2024-03-31 10:37:54   cellVoltage_13  3.196
#     2024-03-31 10:37:54   cellVoltage_14  3.195
#     2024-03-31 10:37:54   cellVoltage_15  3.196
#     2024-03-31 10:37:54   chargeCurrentLimit 37.0
#     2024-03-31 10:37:54   chargeEnable    yes
#     2024-03-31 10:37:54   chargeFullRequest no
#     2024-03-31 10:37:54   chargeImmediatelySOC05 no
#     2024-03-31 10:37:54   chargeImmediatelySOC09 no
#     2024-03-31 10:37:54   chargeVoltageLimit 53.250
#     2024-03-31 10:37:54   dischargeCurrentLimit 37.0
#     2024-03-31 10:37:54   dischargeEnable yes
#     2024-03-31 10:37:54   dischargeVoltageLimit 45.000
#     2024-03-31 10:37:53   moduleSoftwareVersion_mainline V0.6.9
#     2024-03-31 10:37:53   moduleSoftwareVersion_manufacture V1.4
#     2024-03-31 10:37:54   nextCycletime   Manual
#     2024-03-31 10:37:54   numberTempPos   6
#     2024-03-31 10:37:54   packAlarmInfo   failure
#     2024-03-31 10:37:54   packCellcount   15
#     2024-03-31 10:37:54   packCurrent     287.100
#     2024-03-31 10:37:54   packCycles      65535
#     2024-03-31 10:37:54   packImbalance   0.069
#     2024-03-31 10:37:54   packPower       18752.22
#     2024-03-31 10:37:54   packState       charging
#     2024-03-31 10:37:54   packVolt        65.316
#     2024-03-31 10:37:53   paramCellHighVoltLimit 3.650
#     2024-03-31 10:37:53   paramCellLowVoltLimit 3.050
#     2024-03-31 10:37:53   paramCellUnderVoltLimit 2.800
#     2024-03-31 10:37:53   paramChargeCurrentLimit 100.000
#     2024-03-31 10:37:53   paramChargeHighTempLimit 60.0
#     2024-03-31 10:37:53   paramChargeLowTempLimit -10.0
#     2024-03-31 10:37:53   paramDischargeCurrentLimit 99.900
#     2024-03-31 10:37:53   paramDischargeHighTempLimit 60.0
#     2024-03-31 10:37:53   paramDischargeLowTempLimit -10.0
#     2024-03-31 10:37:53   paramModuleHighVoltLimit 54.000
#     2024-03-31 10:37:53   paramModuleLowVoltLimit 46.000
#     2024-03-31 10:37:53   paramModuleUnderVoltLimit 43.000
#     2024-03-31 10:37:53   protocolVersion V2.0
#     2024-03-31 10:37:53   serialNumber    H220820C30520541
#     2024-03-31 10:37:54   state           connected
#
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 31 März 2024, 10:58:33
Ja, nur fehlen jetzt die Infos zu packCapacity bzw. packCapacityRemain weil die installierte Batteriekapazität nicht bestimmt wird.
Hast du die neuste Batterie, also die mit der neuesten Firmware als Master eingesetzt?
Das ist wichtig weil Vorgabe von PylonTech bei einem Verbund von Batterien.

EDIT: Ich verbessere/ergänze die obige Aussage:
- besteht der Verbund aus gleichen Typen -> die neueste Bat bzw. mit der höchsten FW als Master einsetzen
- besteht der Verbund aus ungleichen Typen, dann ist die einzuhaltende Reihenfolge im entsprechenden Manual   
  der Batterie beschrieben.
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 31 März 2024, 11:06:06
Beide sind ca. 1 Jahr alt. Da ich die 5000er zuerst hatte ist sie auch der Master. Schaue ich mir aber die Readings beider an dann habe ich moduleSoftwareVersion_manufacture V1.3 bei der 5000er und 1.4 bei der 3000er. Also ist die 3000er vermutlich neuer. Ich werde dann am Dienstag mal umstecken.
Erstmal THX und frohe Ostern noch :)
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 31 März 2024, 11:08:54
Danke und ebenso  :)
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 01 April 2024, 19:21:59
Ich habe in einem anderen Forum gelsen etwas gefunden -> da hatten User Probleme mit einer Selbstbau Anzeige nachdem sie eine US5000 zusätzlich verbaut hatten. Der eine User hat dann doch entgegen dem Effekta Handbuch seine US2000er zum Master gemacht und das Prob war gelöst.

Aber ein anderer User hat herausgefunden das die US5000 keine 5 Temperatur Werte liefert sondern 6 !!
D.h das Modul liest zwar numberTempPos aus, verwendest den Wert aber weiter nicht ... und der ist bei der US5000 nicht fix 5 sondern 6 :)

Ich habe dann einfach noch einen cellTemperature Block eingefügt und $bpos um weitere 4 Byte erhöht.
Schaut gut aus, d.h der analogValue Fehler ist so erst mal weg.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 April 2024, 21:13:14
Hallo Wzut,

ZitatAber ein anderer User hat herausgefunden das die US5000 keine 5 Temperatur Werte liefert sondern 6 !!
was zeigt denn das Reading numberTempPos? 6 für die US5000?

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 01 April 2024, 23:09:17
@Wzut,

in meinem contrib liegt eine Version des Modul mit einer variablen Zählerverwerwendung der Temperatur.
Teste sie mal bitte in deiner Umgebung.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 02 April 2024, 09:29:16
Zitatwas zeigt denn das Reading numberTempPos? 6 für die US5000?
ja , allerdings auch für die US3000 als zweites Device.
Mit deiner contrib Version schaut das soweit gut aus, bei beiden ist jetzt pacAlarmInfo u.a. von fail auf ok gewechselt.
Was ist mit den vielen mlen Werten, müssen die nicht auch noch angepasst werden ?  [/quote]
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 02 April 2024, 09:52:31
Moin Wzut,

zeig mir mal bitte eine Listing der ganzen entstandenen Readings von beiden Devices.
Das sich die US5000 sowohl bei dem Typ als auch der Anzahl der Temp.Werte die US3000 überlagert ist sehr unschön.

ZitatWas ist mit den vielen mlen Werten, müssen die nicht auch noch angepasst werden ?
mlen = erwartete Minimum Length -> sollte passen

Bei meinen US3000C sieht es mit der contrib Version auch gut aus. Da passen auch die Temp.Anzahl:

   READINGS:
     2024-04-02 09:56:25   Manufacturer    Pylon
     2024-04-02 09:56:31   averageCellVolt 3.361
     2024-04-02 09:56:25   batteryType     US3000C
     2024-04-02 09:56:31   bmsTemperature  20.8
     2024-04-02 09:56:31   cellTemperature_0104 18.9
     2024-04-02 09:56:31   cellTemperature_0508 18.7
     2024-04-02 09:56:31   cellTemperature_0912 18.3
     2024-04-02 09:56:31   cellTemperature_1315 19.3
     2024-04-02 09:56:31   cellVoltage_01  3.361
     2024-04-02 09:56:31   cellVoltage_02  3.361
     2024-04-02 09:56:31   cellVoltage_03  3.361
     2024-04-02 09:56:31   cellVoltage_04  3.361
     2024-04-02 09:56:31   cellVoltage_05  3.361
     2024-04-02 09:56:31   cellVoltage_06  3.361
     2024-04-02 09:56:31   cellVoltage_07  3.361
     2024-04-02 09:56:31   cellVoltage_08  3.361
     2024-04-02 09:56:31   cellVoltage_09  3.361
     2024-04-02 09:56:31   cellVoltage_10  3.361
     2024-04-02 09:56:31   cellVoltage_11  3.362
     2024-04-02 09:56:31   cellVoltage_12  3.361
     2024-04-02 09:56:31   cellVoltage_13  3.361
     2024-04-02 09:56:31   cellVoltage_14  3.362
     2024-04-02 09:56:31   cellVoltage_15  3.362
     2024-04-02 09:56:31   chargeCurrentLimit 37.0
     2024-04-02 09:56:31   chargeEnable    yes
     2024-04-02 09:56:31   chargeFullRequest no
     2024-04-02 09:56:31   chargeImmediatelySOC05 no
     2024-04-02 09:56:31   chargeImmediatelySOC09 no
     2024-04-02 09:56:31   chargeVoltageLimit 53.250
     2024-04-02 09:56:31   dischargeCurrentLimit 37.0
     2024-04-02 09:56:31   dischargeEnable yes
     2024-04-02 09:56:31   dischargeVoltageLimit 45.000
     2024-04-02 09:56:25   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 09:56:25   moduleSoftwareVersion_manufacture V1.8
     2024-04-02 09:56:31   nextCycletime   09:56:37
     2024-04-02 09:56:31   numberTempPos   5
     2024-04-02 09:56:31   packAlarmInfo   ok
     2024-04-02 09:56:31   packCapacity    74.000
     2024-04-02 09:56:31   packCapacityRemain 60.497
     2024-04-02 09:56:31   packCellcount   15
     2024-04-02 09:56:31   packCurrent     2.800
     2024-04-02 09:56:31   packCycles      32
     2024-04-02 09:56:31   packImbalance   0.030
     2024-04-02 09:56:31   packPower       141.17
     2024-04-02 09:56:31   packSOC         81.75
     2024-04-02 09:56:31   packState       charging
     2024-04-02 09:56:31   packVolt        50.418
     2024-04-02 09:56:25   paramCellHighVoltLimit 3.650
     2024-04-02 09:56:25   paramCellLowVoltLimit 3.050
     2024-04-02 09:56:25   paramCellUnderVoltLimit 2.800
     2024-04-02 09:56:25   paramChargeCurrentLimit 90.000
     2024-04-02 09:56:25   paramChargeHighTempLimit 60.0
     2024-04-02 09:56:25   paramChargeLowTempLimit -10.0
     2024-04-02 09:56:25   paramDischargeCurrentLimit 89.900
     2024-04-02 09:56:25   paramDischargeHighTempLimit 60.0
     2024-04-02 09:56:25   paramDischargeLowTempLimit -10.0
     2024-04-02 09:56:25   paramModuleHighVoltLimit 54.000
     2024-04-02 09:56:25   paramModuleLowVoltLimit 46.000
     2024-04-02 09:56:25   paramModuleUnderVoltLimit 43.000
     2024-04-02 09:56:25   protocolVersion V2.0
     2024-04-02 09:56:25   serialNumber    K221206C31740079
     2024-04-02 09:56:31   state           connected
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 02 April 2024, 10:14:20
Internals:
   .FhemMetaInternals 1
   BATADDRESS 1
   DEF        192.168.0.6:9000 1
   FUUID      66083c76-f33f-cb2e-c53d-8fe92820d836e3f4
   FVERSION   70_PylonLowVoltage.pm:v1.1.1-s28724/2024-03-29
   HOST       192.168.0.6
   NAME       Bat1
   NR         114
   OPMODE     Manual
   PORT       9000
   STATE      connected
   TYPE       PylonLowVoltage
   eventCount 11
   .attraggr:
   .attrminint:
   HELPER:
     PACKAGE    FHEM::PylonLowVoltage
     VERSION    0.2.4
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.27.2
   READINGS:
     2024-04-02 09:56:35   Manufacturer    Pylon
     2024-04-02 09:56:35   averageCellVolt 3.235
     2024-04-02 09:56:35   batteryType     US5000
     2024-04-02 09:56:35   bmsTemperature  13.9
     2024-04-02 09:56:35   cellTemperature_0104 13
     2024-04-02 09:56:35   cellTemperature_0508 12.5
     2024-04-02 09:56:35   cellTemperature_0912 12.5
     2024-04-02 09:56:35   cellTemperature_1315 12.3
     2024-04-02 09:56:35   cellTemperature_add06 13.3
     2024-04-02 09:56:35   cellVoltage_01  3.234
     2024-04-02 09:56:35   cellVoltage_02  3.236
     2024-04-02 09:56:35   cellVoltage_03  3.233
     2024-04-02 09:56:35   cellVoltage_04  3.236
     2024-04-02 09:56:35   cellVoltage_05  3.235
     2024-04-02 09:56:35   cellVoltage_06  3.235
     2024-04-02 09:56:35   cellVoltage_07  3.235
     2024-04-02 09:56:35   cellVoltage_08  3.237
     2024-04-02 09:56:35   cellVoltage_09  3.234
     2024-04-02 09:56:35   cellVoltage_10  3.236
     2024-04-02 09:56:35   cellVoltage_11  3.235
     2024-04-02 09:56:35   cellVoltage_12  3.233
     2024-04-02 09:56:35   cellVoltage_13  3.236
     2024-04-02 09:56:35   cellVoltage_14  3.236
     2024-04-02 09:56:35   cellVoltage_15  3.235
     2024-04-02 09:56:35   chargeCurrentLimit 80.0
     2024-04-02 09:56:35   chargeEnable    yes
     2024-04-02 09:56:35   chargeFullRequest no
     2024-04-02 09:56:35   chargeImmediatelySOC05 no
     2024-04-02 09:56:35   chargeImmediatelySOC09 no
     2024-04-02 09:56:35   chargeVoltageLimit 53.250
     2024-04-02 09:56:35   dischargeCurrentLimit 80.0
     2024-04-02 09:56:35   dischargeEnable yes
     2024-04-02 09:56:35   dischargeVoltageLimit 45.000
     2024-04-02 09:56:35   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 09:56:35   moduleSoftwareVersion_manufacture V1.3
     2024-04-02 09:56:35   nextCycletime   Manual
     2024-04-02 09:56:35   numberTempPos   6
     2024-04-02 09:56:35   packAlarmInfo   failure
     2024-04-02 09:56:35   packCapacity    100.000
     2024-04-02 09:56:35   packCapacityRemain 11.652
     2024-04-02 09:56:35   packCellcount   15
     2024-04-02 09:56:35   packCurrent     4.400
     2024-04-02 09:56:35   packCycles      290
     2024-04-02 09:56:35   packImbalance   0.124
     2024-04-02 09:56:35   packPower       213.51
     2024-04-02 09:56:35   packSOC         11.65
     2024-04-02 09:56:35   packState       charging
     2024-04-02 09:56:35   packVolt        48.526
     2024-04-02 09:56:35   paramCellHighVoltLimit 3.650
     2024-04-02 09:56:35   paramCellLowVoltLimit 3.050
     2024-04-02 09:56:35   paramCellUnderVoltLimit 2.800
     2024-04-02 09:56:35   paramChargeCurrentLimit 100.000
     2024-04-02 09:56:35   paramChargeHighTempLimit 60.0
     2024-04-02 09:56:35   paramChargeLowTempLimit -10.0
     2024-04-02 09:56:35   paramDischargeCurrentLimit 99.900
     2024-04-02 09:56:35   paramDischargeHighTempLimit 60.0
     2024-04-02 09:56:35   paramDischargeLowTempLimit -10.0
     2024-04-02 09:56:35   paramModuleHighVoltLimit 54.000
     2024-04-02 09:56:35   paramModuleLowVoltLimit 46.000
     2024-04-02 09:56:35   paramModuleUnderVoltLimit 43.000
     2024-04-02 09:56:35   protocolVersion V2.0
     2024-04-02 09:56:35   serialNumber    Y220817C50440795
     2024-04-02 09:56:35   state           connected


Internals:
   .FhemMetaInternals 1
   BATADDRESS 2
   CFGFN     
   DEF        192.168.0.6:9000 2
   FUUID      660920e1-f33f-cb2e-d1ad-9b29df2f0484262f
   FVERSION   70_PylonLowVoltage.pm:v1.1.1-s28724/2024-03-29
   HOST       192.168.0.6
   NAME       Bat2
   NR         115
   OPMODE     Manual
   PORT       9000
   STATE      connected
   TYPE       PylonLowVoltage
   eventCount 5
   .attraggr:
   .attrminint:
   HELPER:
     PACKAGE    FHEM::PylonLowVoltage
     VERSION    0.2.4
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.27.2
   READINGS:
     2024-04-02 09:17:52   Manufacturer    Pylon
     2024-04-02 09:17:52   averageCellVolt 3.198
     2024-04-02 09:17:52   batteryType     US5000
     2024-04-02 09:17:52   bmsTemperature  14.2
     2024-04-02 09:17:52   cellTemperature_0104 12.5
     2024-04-02 09:17:52   cellTemperature_0508 12.5
     2024-04-02 09:17:52   cellTemperature_0912 12.3
     2024-04-02 09:17:52   cellTemperature_1315 12.4
     2024-04-02 09:17:52   cellTemperature_add06 13.4
     2024-04-02 09:17:52   cellVoltage_01  3.197
     2024-04-02 09:17:52   cellVoltage_02  3.203
     2024-04-02 09:17:52   cellVoltage_03  3.200
     2024-04-02 09:17:52   cellVoltage_04  3.199
     2024-04-02 09:17:52   cellVoltage_05  3.202
     2024-04-02 09:17:52   cellVoltage_06  3.196
     2024-04-02 09:17:52   cellVoltage_07  3.196
     2024-04-02 09:17:52   cellVoltage_08  3.193
     2024-04-02 09:17:52   cellVoltage_09  3.195
     2024-04-02 09:17:52   cellVoltage_10  3.199
     2024-04-02 09:17:52   cellVoltage_11  3.199
     2024-04-02 09:17:52   cellVoltage_12  3.200
     2024-04-02 09:17:52   cellVoltage_13  3.197
     2024-04-02 09:17:52   cellVoltage_14  3.193
     2024-04-02 09:17:52   cellVoltage_15  3.198
     2024-04-02 09:17:52   chargeCurrentLimit 37.0
     2024-04-02 09:17:52   chargeEnable    yes
     2024-04-02 09:17:52   chargeFullRequest no
     2024-04-02 09:17:52   chargeImmediatelySOC05 no
     2024-04-02 09:17:52   chargeImmediatelySOC09 no
     2024-04-02 09:17:52   chargeVoltageLimit 53.250
     2024-04-02 09:17:52   dischargeCurrentLimit 37.0
     2024-04-02 09:17:52   dischargeEnable yes
     2024-04-02 09:17:52   dischargeVoltageLimit 45.000
     2024-04-02 09:17:52   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 09:17:52   moduleSoftwareVersion_manufacture V1.4
     2024-04-02 09:17:52   nextCycletime   Manual
     2024-04-02 09:17:52   numberTempPos   6
     2024-04-02 09:17:52   packAlarmInfo   ok
     2024-04-02 09:17:52   packCapacity    74.000
     2024-04-02 09:17:52   packCapacityRemain 7.920
     2024-04-02 09:17:52   packCellcount   15
     2024-04-02 09:17:52   packCurrent     0.000
     2024-04-02 09:17:52   packCycles      270
     2024-04-02 09:17:52   packImbalance   0.313
     2024-04-02 09:17:52   packPower       0.00
     2024-04-02 09:17:52   packSOC         10.70
     2024-04-02 09:17:52   packState       idle
     2024-04-02 09:17:52   packVolt        47.967
     2024-04-02 09:17:52   paramCellHighVoltLimit 3.650
     2024-04-02 09:17:52   paramCellLowVoltLimit 3.050
     2024-04-02 09:17:52   paramCellUnderVoltLimit 2.800
     2024-04-02 09:17:52   paramChargeCurrentLimit 100.000
     2024-04-02 09:17:52   paramChargeHighTempLimit 60.0
     2024-04-02 09:17:52   paramChargeLowTempLimit -10.0
     2024-04-02 09:17:52   paramDischargeCurrentLimit 99.900
     2024-04-02 09:17:52   paramDischargeHighTempLimit 60.0
     2024-04-02 09:17:52   paramDischargeLowTempLimit -10.0
     2024-04-02 09:17:52   paramModuleHighVoltLimit 54.000
     2024-04-02 09:17:52   paramModuleLowVoltLimit 46.000
     2024-04-02 09:17:52   paramModuleUnderVoltLimit 43.000
     2024-04-02 09:17:52   protocolVersion V2.0
     2024-04-02 09:17:52   serialNumber    H220820C30520541
     2024-04-02 09:17:52   state           connected
ich sehe gerade beim Dev1 ist packAlarmInfo wieder auf failure und beim Dev2 noch auf ok inzwischen aber auch auf failure. Der Cerbo zeigt z.Z aber keinen Alarm.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 02 April 2024, 10:20:24
Wegen der Alarminfo müssen wir nochmal auf eine verbose 5 schauen.
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 02 April 2024, 10:23:51
Bitte sehr :
2024.04.02 10:21:44 4: Bat1 - start request cycle to battery number >1< at host:port 192.168.0.6:9000
2024.04.02 10:21:44 4: Bat1 - Cycle started in main process
2024.04.02 10:21:44 4: Bat1 - retrieve battery info: serialNumber
2024.04.02 10:21:44 4: Bat1 - request command (ASCII): ~20024693E00202FD2D
2024.04.02 10:21:44 5: Bat1 - request command (HEX): 7e3230303234363933453030323032464432440d
2024.04.02 10:21:44 5: Bat1 - data returned raw: ~20024600C0220259323230383137433530343430373935F6C4
2024.04.02 10:21:44 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30433032 32303235  ~20024600C022025
0x00000010 (00016)  39333233 32333033 38333133 37343333  9323230383137433
0x00000020 (00032)  35333033 34333433 30333733 39333546  530343430373935F
0x00000030 (00048)  3643340d                             6C4.

2024.04.02 10:21:44 4: Bat1 - retrieve battery info: manufacturerInfo
2024.04.02 10:21:44 4: Bat1 - request command (ASCII): ~200246510000FDAC
2024.04.02 10:21:44 5: Bat1 - request command (HEX): 7e323030323436353130303030464441430d
2024.04.02 10:21:44 5: Bat1 - data returned raw: ~20024600C04055533530303000000000010350796C6F6E2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DEFC5
2024.04.02 10:21:44 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30433034 30353535  ~20024600C040555
0x00000010 (00016)  33333533 30333033 30303030 30303030  3353030300000000
0x00000020 (00032)  30303130 33353037 39364336 46364532  0010350796C6F6E2
0x00000030 (00048)  44324432 44324432 44324432 44324432  D2D2D2D2D2D2D2D2
0x00000040 (00064)  44324432 44324432 44324432 44454643  D2D2D2D2D2D2DEFC
0x00000050 (00080)  350d                                 5.

2024.04.02 10:21:44 4: Bat1 - retrieve battery info: protocolVersion
2024.04.02 10:21:44 4: Bat1 - request command (ASCII): ~0002464F0000FD9A
2024.04.02 10:21:44 5: Bat1 - request command (HEX): 7e303030323436344630303030464439410d
2024.04.02 10:21:44 5: Bat1 - data returned raw: ~200246000000FDB2
2024.04.02 10:21:44 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30303030 30464442  ~200246000000FDB
0x00000010 (00016)  320d                                 2.

2024.04.02 10:21:44 4: Bat1 - retrieve battery info: softwareVersion
2024.04.02 10:21:44 4: Bat1 - request command (ASCII): ~20024696E00202FD2A
2024.04.02 10:21:44 5: Bat1 - request command (HEX): 7e3230303234363936453030323032464432410d
2024.04.02 10:21:44 5: Bat1 - data returned raw: ~20024600400C020103000609FB46
2024.04.02 10:21:44 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30343030 43303230  ~20024600400C020
0x00000010 (00016)  31303330 30303630 39464234 360d      103000609FB46.

2024.04.02 10:21:44 4: Bat1 - retrieve battery info: systemParameters
2024.04.02 10:21:44 4: Bat1 - request command (ASCII): ~20024647E00202FD2E
2024.04.02 10:21:44 5: Bat1 - request command (HEX): 7e3230303234363437453030323032464432450d
2024.04.02 10:21:45 5: Bat1 - data returned raw: ~20024600B032110E420BEA0AF00D030A4703E8D2F0B3B0A7F80D030A47FC18F27E
2024.04.02 10:21:45 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423033 32313130  ~20024600B032110
0x00000010 (00016)  45343230 42454130 41463030 44303330  E420BEA0AF00D030
0x00000020 (00032)  41343730 33453844 32463042 33423041  A4703E8D2F0B3B0A
0x00000030 (00048)  37463830 44303330 41343746 43313846  7F80D030A47FC18F
0x00000040 (00064)  3237450d                             27E.

2024.04.02 10:21:45 4: Bat1 - retrieve battery info: alarmInfo
2024.04.02 10:21:45 4: Bat1 - request command (ASCII): ~20024644E00202FD31
2024.04.02 10:21:45 5: Bat1 - request command (HEX): 7e3230303234363434453030323032464433310d
2024.04.02 10:21:45 5: Bat1 - data returned raw: ~20024600804401020F00000000000000000000000000000006000000000000000000000E40000000F0AA
2024.04.02 10:21:45 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30383034 34303130  ~200246008044010
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45343030 30303030  00000000E4000000
0x00000050 (00080)  30463041 410d                        0F0AA.

2024.04.02 10:21:45 4: Bat1 - retrieve battery info: chargeManagmentInfo
2024.04.02 10:21:45 4: Bat1 - request command (ASCII): ~20024692E00202FD2E
2024.04.02 10:21:45 5: Bat1 - request command (HEX): 7e3230303234363932453030323032464432450d
2024.04.02 10:21:45 5: Bat1 - data returned raw: ~20024600B01402D002AFC80320FCE0C0F92B
2024.04.02 10:21:45 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 33323046 43453043  002AFC80320FCE0C
0x00000020 (00032)  30463932 420d                        0F92B.

2024.04.02 10:21:45 4: Bat1 - retrieve battery info: analogValue
2024.04.02 10:21:45 4: Bat1 - request command (ASCII): ~20024642E00202FD33
2024.04.02 10:21:45 5: Bat1 - request command (HEX): 7e3230303234363432453030323032464433330d
2024.04.02 10:21:45 5: Bat1 - data returned raw: ~20024600B07E00020F0C960C960C950C960C960C960C960C960C960C960C960C950C970C970C96060B370B2F0B2A0B2A0B280B34FFFABCCAFFFF04FFFF012200314F0186A0E170
2024.04.02 10:21:45 5: Bat1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423037 45303030  ~20024600B07E000
0x00000010 (00016)  32304630 43393630 43393630 43393530  20F0C960C960C950
0x00000020 (00032)  43393630 43393630 43393630 43393630  C960C960C960C960
0x00000030 (00048)  43393630 43393630 43393630 43393630  C960C960C960C960
0x00000040 (00064)  43393530 43393730 43393730 43393630  C950C970C970C960
0x00000050 (00080)  36304233 37304232 46304232 41304232  60B370B2F0B2A0B2
0x00000060 (00096)  41304232 38304233 34464646 41424343  A0B280B34FFFABCC
0x00000070 (00112)  41464646 46303446 46464630 31323230  AFFFF04FFFF01220
0x00000080 (00128)  30333134 46303138 36413045 3137300d  0314F0186A0E170.

2024.04.02 10:21:45 4: Bat1 - Socket/Connection to the RS485 gateway was closed
2024.04.02 10:21:45 4: Bat1 - got data from battery number >1< successfully
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 02 April 2024, 10:41:03
Kann es sein as bei alarmInfo auch 6 Temp Werte stecken ?
ZitatM+2 *温度点数量/number of temperature: N
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 02 April 2024, 10:51:57
Ja, das ist zu vermuten. Ich überlege nur welche Temp. bei der US5000 die Temp 6 sein soll. Sie hat ja auch nur 15 Zellen. Alternativ würde ich kein Reading für die zusätzliche Temperatur erstellen, sie nur zählen damit dem Protokoll Folge geleistet ist.
Mal sehen ...
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 02 April 2024, 17:06:59
Keine Ahnung was die mit Temp Sensor Nr 6 messen - zumal der 6. gelieferte Wert der US3000 besser zur 5000 passt, aber hier wird wohl wie beim batteryType nicht sauber getrennt sondern sich nach dem Master gerichtet.
Bei der Anzahl der Temp Sensoren scheint nicht nur 5 und 6 möglich zu -> die US2000 hat angeblich nur 4 !
Erst mit der US2000C kam Nr 5 (bzw. wohl auch bei den 3000er Varianten).
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 02 April 2024, 17:43:15
Hallo Wzut,

in meinem contrib liegt ein Update des Moduls.
Ich habe die Alarminfos komplett überarbeitet und ebenfalls mit einem dynamischen Zellen- und Temperatur Positionszähler ausgestattet. Es gibt jetzt auch viele spezifische Alarmreadings:

   READINGS:
     2024-04-02 17:40:19   AlmCellVoltage_01 00
     2024-04-02 17:40:19   AlmCellVoltage_02 00
     2024-04-02 17:40:19   AlmCellVoltage_03 00
     2024-04-02 17:40:19   AlmCellVoltage_04 00
     2024-04-02 17:40:19   AlmCellVoltage_05 00
     2024-04-02 17:40:19   AlmCellVoltage_06 00
     2024-04-02 17:40:19   AlmCellVoltage_07 00
     2024-04-02 17:40:19   AlmCellVoltage_08 00
     2024-04-02 17:40:19   AlmCellVoltage_09 00
     2024-04-02 17:40:19   AlmCellVoltage_10 00
     2024-04-02 17:40:19   AlmCellVoltage_11 00
     2024-04-02 17:40:19   AlmCellVoltage_12 00
     2024-04-02 17:40:19   AlmCellVoltage_13 00
     2024-04-02 17:40:19   AlmCellVoltage_14 00
     2024-04-02 17:40:19   AlmCellVoltage_15 00
     2024-04-02 17:40:19   AlmChargeCurrent 00
     2024-04-02 17:40:19   AlmDischargeCurrent 00
     2024-04-02 17:40:19   AlmModuleVoltage 00
     2024-04-02 17:40:19   AlmTemperature_01 00
     2024-04-02 17:40:19   AlmTemperature_02 00
     2024-04-02 17:40:19   AlmTemperature_03 00
     2024-04-02 17:40:19   AlmTemperature_04 00
     2024-04-02 17:40:19   AlmTemperature_05 00
     2024-04-02 17:39:56   Manufacturer    Pylon
     2024-04-02 17:40:19   averageCellVolt 3.495
     2024-04-02 17:39:56   batteryType     US3000C
     2024-04-02 17:40:19   bmsTemperature  20.8
     2024-04-02 17:40:19   cellTemperature_0104 18.7
     2024-04-02 17:40:19   cellTemperature_0508 18.6
     2024-04-02 17:40:19   cellTemperature_0912 18.2
     2024-04-02 17:40:19   cellTemperature_1315 19.2
     2024-04-02 17:40:19   cellVoltage_01  3.498
     2024-04-02 17:40:19   cellVoltage_02  3.493
     2024-04-02 17:40:19   cellVoltage_03  3.490
     2024-04-02 17:40:19   cellVoltage_04  3.502
     2024-04-02 17:40:19   cellVoltage_05  3.495
     2024-04-02 17:40:19   cellVoltage_06  3.499
     2024-04-02 17:40:19   cellVoltage_07  3.497
     2024-04-02 17:40:19   cellVoltage_08  3.494
     2024-04-02 17:40:19   cellVoltage_09  3.497
     2024-04-02 17:40:19   cellVoltage_10  3.497
     2024-04-02 17:40:19   cellVoltage_11  3.498
     2024-04-02 17:40:19   cellVoltage_12  3.499
     2024-04-02 17:40:19   cellVoltage_13  3.490
     2024-04-02 17:40:19   cellVoltage_14  3.497
     2024-04-02 17:40:19   cellVoltage_15  3.476
     2024-04-02 17:40:19   chargeCurrentLimit 0.0
     2024-04-02 17:40:19   chargeEnable    no
     2024-04-02 17:40:19   chargeFullRequest no
     2024-04-02 17:40:19   chargeImmediatelySOC05 no
     2024-04-02 17:40:19   chargeImmediatelySOC09 no
     2024-04-02 17:40:19   chargeVoltageLimit 53.250
     2024-04-02 17:40:19   dischargeCurrentLimit 37.0
     2024-04-02 17:40:19   dischargeEnable yes
     2024-04-02 17:40:19   dischargeVoltageLimit 45.000
     2024-04-02 17:39:56   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 17:39:56   moduleSoftwareVersion_manufacture V1.8
     2024-04-02 17:40:19   nextCycletime   17:40:25
     2024-04-02 17:40:19   numberTempPos   5
     2024-04-02 17:40:19   packAlarmInfo   ok
     2024-04-02 17:40:19   packCapacity    74.000
     2024-04-02 17:40:19   packCapacityRemain 73.778
     2024-04-02 17:40:19   packCellcount   15
     2024-04-02 17:40:19   packCurrent     0.200
     2024-04-02 17:40:19   packCycles      32
     2024-04-02 17:40:19   packImbalance   0.744
     2024-04-02 17:40:19   packPower       10.48
     2024-04-02 17:40:19   packSOC         99.70
     2024-04-02 17:40:19   packState       charging
     2024-04-02 17:40:19   packVolt        52.422
     2024-04-02 17:39:56   paramCellHighVoltLimit 3.650
     2024-04-02 17:39:56   paramCellLowVoltLimit 3.050
     2024-04-02 17:39:56   paramCellUnderVoltLimit 2.800
     2024-04-02 17:39:56   paramChargeCurrentLimit 90.000
     2024-04-02 17:39:56   paramChargeHighTempLimit 60.0
     2024-04-02 17:39:56   paramChargeLowTempLimit -10.0
     2024-04-02 17:39:56   paramDischargeCurrentLimit 89.900
     2024-04-02 17:39:56   paramDischargeHighTempLimit 60.0
     2024-04-02 17:39:56   paramDischargeLowTempLimit -10.0
     2024-04-02 17:39:56   paramModuleHighVoltLimit 54.000
     2024-04-02 17:39:56   paramModuleLowVoltLimit 46.000
     2024-04-02 17:39:56   paramModuleUnderVoltLimit 43.000
     2024-04-02 17:39:56   protocolVersion V2.0
     2024-04-02 17:39:56   serialNumber    K221206C31740079
     2024-04-02 17:40:19   state           connected

Schau mal wie es bei dir damit aussieht.
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 03 April 2024, 09:35:13
Sieht für die US5000 soweit gut aus, THX
finde auch schön das du nun in alarm info nicht nur die Nullen zählst :)
 
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 03 April 2024, 09:37:39
Moin Wzut,

prima. Dann werde ich die V auch mal einchecken. Wenn ich daran denke schon heute Abend.
Dann kann ich dioe US5000 ja auch in die Referenzliste aufnehmen.  :)

Edit: Kannst du mir nochmal ein List anhängen? Dann sehe ich auch mal wie die Readings jetzt bei der US5000 aussehen.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 03 April 2024, 09:55:34
Zitat von: DS_Starter am 03 April 2024, 09:37:39Edit: Kannst du mir nochmal ein List anhängen? Dann sehe ich auch mal wie die Readings jetzt bei der US5000 aussehen.
Nichts leichter als das, ich blicke noch nicht so ganz jede Bedeutung.
   READINGS:
     2024-04-02 10:17:45   Manufacturer    Pylon
     2024-04-03 09:03:19   almCellVoltage_01 00
     2024-04-03 09:03:19   almCellVoltage_02 00
     2024-04-03 09:03:19   almCellVoltage_03 00
     2024-04-03 09:03:19   almCellVoltage_04 00
     2024-04-03 09:03:19   almCellVoltage_05 00
     2024-04-03 09:03:19   almCellVoltage_06 00
     2024-04-03 09:03:19   almCellVoltage_07 00
     2024-04-03 09:03:19   almCellVoltage_08 00
     2024-04-03 09:03:19   almCellVoltage_09 00
     2024-04-03 09:03:19   almCellVoltage_10 00
     2024-04-03 09:03:19   almCellVoltage_11 00
     2024-04-03 09:03:19   almCellVoltage_12 00
     2024-04-03 09:03:19   almCellVoltage_13 00
     2024-04-03 09:03:19   almCellVoltage_14 00
     2024-04-03 09:03:19   almCellVoltage_15 00
     2024-04-03 09:03:19   almChargeCurrent 00
     2024-04-03 09:03:19   almDischargeCurrent 00
     2024-04-03 09:03:19   almModuleVoltage 00
     2024-04-03 09:03:19   almTemperature_01 00
     2024-04-03 09:03:19   almTemperature_02 00
     2024-04-03 09:03:19   almTemperature_03 00
     2024-04-03 09:03:19   almTemperature_04 00
     2024-04-03 09:03:19   almTemperature_05 00
     2024-04-03 09:03:19   almTemperature_06 00
     2024-04-03 09:43:49   averageCellVolt 3.218
     2024-04-02 10:17:45   batteryType     US5000
     2024-04-03 09:29:19   bmsTemperature  15.1
     2024-04-03 09:38:19   cellTemperature_0104 14.7
     2024-04-03 09:37:19   cellTemperature_0508 14.3
     2024-04-03 09:41:19   cellTemperature_0912 14.2
     2024-04-03 09:42:19   cellTemperature_1315 13.8
     2024-04-03 09:34:19   cellTemperature_TempPos_06 14.5
     2024-04-03 08:39:49   cellTemperature_add06 14.7
     2024-04-01 19:13:37   cellTemperature_new 15.3
     2024-04-03 09:43:49   cellVoltage_01  3.217
     2024-04-03 09:43:19   cellVoltage_02  3.217
     2024-04-03 09:43:19   cellVoltage_03  3.214
     2024-04-03 09:43:19   cellVoltage_04  3.219
     2024-04-03 09:43:49   cellVoltage_05  3.221
     2024-04-03 09:43:19   cellVoltage_06  3.218
     2024-04-03 09:43:49   cellVoltage_07  3.217
     2024-04-03 09:43:19   cellVoltage_08  3.225
     2024-04-03 09:43:19   cellVoltage_09  3.213
     2024-04-03 09:43:49   cellVoltage_10  3.220
     2024-04-03 09:43:49   cellVoltage_11  3.223
     2024-04-03 09:43:49   cellVoltage_12  3.207
     2024-04-03 09:43:49   cellVoltage_13  3.223
     2024-04-03 09:43:49   cellVoltage_14  3.220
     2024-04-03 09:43:49   cellVoltage_15  3.220
     2024-04-02 17:28:16   chargeCurrentLimit 80.0
     2024-04-02 10:18:44   chargeEnable    yes
     2024-04-02 10:18:44   chargeFullRequest no
     2024-04-02 10:18:44   chargeImmediatelySOC05 no
     2024-04-02 10:18:44   chargeImmediatelySOC09 no
     2024-04-02 10:18:44   chargeVoltageLimit 53.250
     2024-04-02 10:18:44   dischargeCurrentLimit 80.0
     2024-04-02 10:18:44   dischargeEnable yes
     2024-04-02 10:18:44   dischargeVoltageLimit 45.000
     2024-04-02 10:17:45   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 10:17:45   moduleSoftwareVersion_manufacture V1.3
     2024-04-03 09:43:49   nextCycletime   09:44:19
     2024-04-02 10:18:44   numberTempPos   6
     2024-04-03 09:03:19   packAlarmInfo   ok
     2024-04-02 10:18:44   packCapacity    100.000
     2024-04-03 09:20:49   packCapacityRemain 9.710
     2024-04-02 10:18:44   packCellcount   15
     2024-04-03 09:43:49   packCurrent     2.900
     2024-04-02 19:51:17   packCycles      291
     2024-04-03 09:43:49   packImbalance   0.559
     2024-04-03 09:43:49   packPower       139.99
     2024-04-03 09:20:49   packSOC         9.71
     2024-04-03 09:10:19   packState       charging
     2024-04-03 09:43:49   packVolt        48.274
     2024-04-02 10:17:45   paramCellHighVoltLimit 3.650
     2024-04-02 10:17:45   paramCellLowVoltLimit 3.050
     2024-04-02 10:17:45   paramCellUnderVoltLimit 2.800
     2024-04-02 10:17:45   paramChargeCurrentLimit 100.000
     2024-04-02 10:17:45   paramChargeHighTempLimit 60.0
     2024-04-02 10:17:45   paramChargeLowTempLimit -10.0
     2024-04-02 10:17:45   paramDischargeCurrentLimit 99.900
     2024-04-02 10:17:45   paramDischargeHighTempLimit 60.0
     2024-04-02 10:17:45   paramDischargeLowTempLimit -10.0
     2024-04-02 10:17:45   paramModuleHighVoltLimit 54.000
     2024-04-02 10:17:45   paramModuleLowVoltLimit 46.000
     2024-04-02 10:17:45   paramModuleUnderVoltLimit 43.000
     2024-04-02 10:17:45   protocolVersion V2.0
     2024-04-02 10:17:45   serialNumber    Y220817C50440795
     2024-04-02 10:18:44   state           connected

   READINGS:
     2024-04-02 10:19:25   Manufacturer    Pylon
     2024-04-03 09:03:30   almCellVoltage_01 00
     2024-04-03 09:03:30   almCellVoltage_02 00
     2024-04-03 09:03:30   almCellVoltage_03 00
     2024-04-03 09:03:30   almCellVoltage_04 00
     2024-04-03 09:03:30   almCellVoltage_05 00
     2024-04-03 09:03:30   almCellVoltage_06 00
     2024-04-03 09:03:30   almCellVoltage_07 00
     2024-04-03 09:03:30   almCellVoltage_08 00
     2024-04-03 09:03:30   almCellVoltage_09 00
     2024-04-03 09:03:30   almCellVoltage_10 00
     2024-04-03 09:03:30   almCellVoltage_11 00
     2024-04-03 09:03:30   almCellVoltage_12 00
     2024-04-03 09:03:30   almCellVoltage_13 00
     2024-04-03 09:03:30   almCellVoltage_14 00
     2024-04-03 09:03:30   almCellVoltage_15 00
     2024-04-03 09:03:30   almChargeCurrent 00
     2024-04-03 09:03:30   almDischargeCurrent 00
     2024-04-03 09:03:30   almModuleVoltage 00
     2024-04-03 09:03:30   almTemperature_01 00
     2024-04-03 09:03:30   almTemperature_02 00
     2024-04-03 09:03:30   almTemperature_03 00
     2024-04-03 09:03:30   almTemperature_04 00
     2024-04-03 09:03:30   almTemperature_05 00
     2024-04-03 09:03:30   almTemperature_06 00
     2024-04-03 09:46:00   averageCellVolt 3.218
     2024-04-02 10:19:25   batteryType     US5000
     2024-04-03 09:23:30   bmsTemperature  15.4
     2024-04-03 09:44:00   cellTemperature_0104 14
     2024-04-03 09:44:00   cellTemperature_0508 14
     2024-04-03 09:41:00   cellTemperature_0912 13.9
     2024-04-03 09:36:00   cellTemperature_1315 14
     2024-04-03 09:39:00   cellTemperature_TempPos_06 14.6
     2024-04-03 09:02:00   cellTemperature_add06 14.7
     2024-04-03 09:47:00   cellVoltage_01  3.217
     2024-04-03 09:46:30   cellVoltage_02  3.221
     2024-04-03 09:46:00   cellVoltage_03  3.220
     2024-04-03 09:46:30   cellVoltage_04  3.219
     2024-04-03 09:46:00   cellVoltage_05  3.221
     2024-04-03 09:46:30   cellVoltage_06  3.216
     2024-04-03 09:46:30   cellVoltage_07  3.216
     2024-04-03 09:47:00   cellVoltage_08  3.214
     2024-04-03 09:47:00   cellVoltage_09  3.215
     2024-04-03 09:46:30   cellVoltage_10  3.219
     2024-04-03 09:46:30   cellVoltage_11  3.219
     2024-04-03 09:47:00   cellVoltage_12  3.220
     2024-04-03 09:46:30   cellVoltage_13  3.217
     2024-04-03 09:47:00   cellVoltage_14  3.214
     2024-04-03 09:46:30   cellVoltage_15  3.218
     2024-04-02 17:21:57   chargeCurrentLimit 37.0
     2024-04-02 10:19:55   chargeEnable    yes
     2024-04-02 10:19:55   chargeFullRequest no
     2024-04-02 10:19:55   chargeImmediatelySOC05 no
     2024-04-02 10:19:55   chargeImmediatelySOC09 no
     2024-04-02 10:19:55   chargeVoltageLimit 53.250
     2024-04-02 10:19:55   dischargeCurrentLimit 37.0
     2024-04-02 10:19:55   dischargeEnable yes
     2024-04-02 10:19:55   dischargeVoltageLimit 45.000
     2024-04-02 10:19:25   moduleSoftwareVersion_mainline V0.6.9
     2024-04-02 10:19:25   moduleSoftwareVersion_manufacture V1.4
     2024-04-03 09:47:00   nextCycletime   09:47:30
     2024-04-02 10:19:55   numberTempPos   6
     2024-04-03 09:00:00   packAlarmInfo   ok
     2024-04-02 10:19:55   packCapacity    74.000
     2024-04-03 09:31:00   packCapacityRemain 8.640
     2024-04-02 10:19:55   packCellcount   15
     2024-04-03 09:47:00   packCurrent     1.000
     2024-04-02 20:50:57   packCycles      271
     2024-04-03 09:47:00   packImbalance   0.218
     2024-04-03 09:47:00   packPower       48.27
     2024-04-03 09:31:00   packSOC         11.68
     2024-04-03 09:16:00   packState       charging
     2024-04-03 09:47:00   packVolt        48.266
     2024-04-02 10:19:25   paramCellHighVoltLimit 3.650
     2024-04-02 10:19:25   paramCellLowVoltLimit 3.050
     2024-04-02 10:19:25   paramCellUnderVoltLimit 2.800
     2024-04-02 10:19:25   paramChargeCurrentLimit 100.000
     2024-04-02 10:19:25   paramChargeHighTempLimit 60.0
     2024-04-02 10:19:25   paramChargeLowTempLimit -10.0
     2024-04-02 10:19:25   paramDischargeCurrentLimit 99.900
     2024-04-02 10:19:25   paramDischargeHighTempLimit 60.0
     2024-04-02 10:19:25   paramDischargeLowTempLimit -10.0
     2024-04-02 10:19:25   paramModuleHighVoltLimit 54.000
     2024-04-02 10:19:25   paramModuleLowVoltLimit 46.000
     2024-04-02 10:19:25   paramModuleUnderVoltLimit 43.000
     2024-04-02 10:19:25   protocolVersion V2.0
     2024-04-02 10:19:25   serialNumber    H220820C30520541
     2024-04-02 10:19:55   state           connected


aber noch etwas pure Neugier : alarm info , Seite 17 der RS485 Effekta Doku :
ZitatNo Content Note
1 电芯节数/number of cell: M 1
2 Cell 1 voltage 1

Wie kommt von von da auf den Offset von 17 der im Modul benutzt wird ?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 03 April 2024, 10:25:38
Die Readings     
     cellTemperature_add06
     cellTemperature_new

Kannst du löschen. Für diese unbestimmten "Zusatztemperaturen" erstelle ich cellTemperature_TempPos_X.

Die Response besteht zunächst aus 7 Byte Headerinfos -> 14 Positionen.
Dann folgt INFO = DATAFLAG + WARNSTATE (Data Format INFO) -> 2Byte -> 4 Positionen.

D.h. in Summe 18 Positionen. Da wir bei 0 anfangen, beginnt der Datencontent bei 17.
Nur oberflächlich und verkürzt dargestellt. Die Datenformate sind nicht fix und im Dokument ganz vorn beschrieben.

Du hast "RS485 Effekta Doku" geschrieben. Ich habe das Dok glaube ich woanders her. Kannst einen Link posten? Ich möchte vergleichen ob ich das gleiche Dok habe/benutze.
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 03 April 2024, 12:58:44
THX, aber das ist deine V3.3 aus Antwort #15.
Effekta vs. Pylontech Dreher, sorry mein Fehler :(
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 03 April 2024, 20:12:27
Ich habe die Alarmreadings noch richtig codiert, d.h. je nach Zustand bekommen diese Readings einen der Werte:

normal
below lower limit
above higher limit
other error

Das Update ist eingecheckt und morgen früh in der Auslieferung.
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 17:22:03
Hallo zusammen,

habe auch 4 US3000C in Betrieb, bekomme aber mit dem Waveshare keine Daten in FHEM ( aktuelles System) im Log kommt folgender Fehler

2024.04.04 17:11:36 4: Batt - start request cycle to battery number >1< at host:port 192.168.178.184:9800
2024.04.04 17:11:36 4: Batt - Cycle started in main process
2024.04.04 17:11:36 4: Batt - retrieve battery info: serialNumber
2024.04.04 17:11:36 4: Batt - request command (ASCII): ~20024693E00202FD2D
2024.04.04 17:11:36 5: Batt - request command (HEX): 7e3230303234363933453030323032464432440d
2024.04.04 17:11:36 4: Batt - invalid data received ... discarded
2024.04.04 17:11:36 5: Batt - faulty data is printed out now:
2024.04.04 17:11:36 5: Batt - data returned raw: 6~20024600C0220259323231313134433330323632363635F6D1
2024.04.04 17:11:36 5: Batt - data returned:
0x00000000 (00000)  367e3230 30323436 30304330 32323032  6~20024600C02202
0x00000010 (00016)  35393332 33323331 33313331 33343433  5932323131313443
0x00000020 (00032)  33333330 33323336 33323336 33363335  3330323632363635
0x00000030 (00048)  46364431 0d                          F6D1.

2024.04.04 17:11:36 4: Batt - Socket/Connection to the RS485 gateway was closed
2024.04.04 17:11:38 4: Batt - start request cycle to battery number >1< at host:port 192.168.178.184:9800
2024.04.04 17:11:38 4: Batt - Cycle started in main process
2024.04.04 17:11:38 4: Batt - retrieve battery info: serialNumber
2024.04.04 17:11:38 4: Batt - request command (ASCII): ~20024693E00202FD2D
2024.04.04 17:11:38 5: Batt - request command (HEX): 7e3230303234363933453030323032464432440d
2024.04.04 17:11:38 4: Batt - invalid data received ... discarded
2024.04.04 17:11:38 5: Batt - faulty data is printed out now:
2024.04.04 17:11:38 5: Batt - data returned raw: 6~20024600C0220259323231313134433330323632363635F6D1
2024.04.04 17:11:38 5: Batt - data returned:
0x00000000 (00000)  367e3230 30323436 30304330 32323032  6~20024600C02202
0x00000010 (00016)  35393332 33323331 33313331 33343433  5932323131313443
0x00000020 (00032)  33333330 33323336 33323336 33363335  3330323632363635
0x00000030 (00048)  46364431 0d                          F6D1.

2024.04.04 17:11:38 4: Batt - Socket/Connection to the RS485 gateway was closed

im Waveshere werden aber Daten empfangen, hat jemand eine Idee ?2024-04-04 17_19_21-RS485 TO ETH.png

Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 17:28:58
In der Hilfe zum Modul habe ich die Einstellungen des Waveshare aufgeschrieben.
Ist es so gesetzt? Stimmt die Geschwindigkeit zwischen Waveshare und dem Battriemaster Setting überein?
Ist das verwendete Kabel richtig angeschlossen (RS485 Buchse am Master verwenden)?

Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 17:32:51
bin alle Punkte mehrmals durchgegangen, konnte aber keinen Fehler finden.
die DIP Schalter sind alle auf OFF de Baudrate ist auf 115200 eingestellt und auch am Master eingesteckt.
Bin mittlerweile auch etwas Ratlos :( 
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 17:34:27
Und das Kabel zur Batterie?
Irgendwo weiter vorn hatte ich die Belegung geschrieben. GND nicht anschließen.

-> Habe es gefunden: im Post #70
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 17:39:02
7 auf Klemme A, 8 auf Klemme B. Ground nicht angeschlossen
Internals:
   .FhemMetaInternals 1
   BATADDRESS 1
   CFGFN     
   DEF        192.168.178.184:9800
   FUUID      660ec1a0-f33f-976c-c317-5e0047479e6d51c4
   FVERSION   70_PylonLowVoltage.pm:v0.2.5-s28745/2024-04-03
   HOST       192.168.178.184
   NAME       Batt
   NR         1336
   OPMODE     Automatic
   PORT       9800
   STATE      invalid data received ... discarded
   TYPE       PylonLowVoltage
   eventCount 138
   .attraggr:
   .attrminint:
   HELPER:
     PACKAGE    FHEM::PylonLowVoltage
     VERSION    0.2.5
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.27.2
   READINGS:
     2024-04-04 17:40:08   nextCycletime   17:40:38
     2024-04-04 17:40:08   state           invalid data received ... discarded
   hmccu:
Attributes:
   room       Solar
   verbose    5
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 17:46:17
Ist eigenartig, ich habe mal mit der Antwort meiner US3000C (6 Stck) verglichen:

Richtig:
0x00000000 (00000)  7e323030 32343630 30433032 32303234  ~20024600C022024
0x00000010 (00016)  42333233 32333133 32333033 36343333  B323231323036433
0x00000020 (00032)  33333133 37333433 30333033 37333946  331373430303739F
0x00000030 (00048)  3643360d                             6C6.


Falsch:
0x00000000 (00000)  367e3230 30323436 30304330 32323032  6~20024600C02202
0x00000010 (00016)  35393332 33323331 33313331 33343433  5932323131313443
0x00000020 (00032)  33333330 33323336 33323336 33363335  3330323632363635
0x00000030 (00048)  46364431 0d                          F6D1

Die Zeichenfolge zu Beginn deiner Antwort vom Gateway ist falsch. Es muß mit "7e" beginnen, Tilde.
Da fällt mit auch gerade nicht viel ein dazu.
Ist dein FHEM ein Linux?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 17:49:30
Ach ja, Linux ist es. Gerade gelesen.

Mach mal ein paar Screenshots deiner Gateway Einrichtung/dem Setup.
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 18:04:51
anbei
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 18:06:16
wenn ich über Console auf die Batterie gehe habe ich diese Infos
info

@

Device address      : 1

Manufacturer        : Pylon

Device name         : US3000C

Board version       : V10R04

Board               : NF4.E2

Main Soft version   : B69.13.2.0

Soft  version       : V1.8

Boot  version       : V1.0

Comm version        : V2.0

Release Date        : 22-10-19

Barcode             : Y221114C30262665



Specification       : 48V/74AH

Cell Number         : 15

Max Dischg Curr     : -90000mA

Max Charge Curr     : 90000mA

EPONPort rate       : 1200

Console Port rate   : 115200

Command completed successfully

$$

pylon>
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 18:06:27
Also ich kann da auch nichts falsches sehen und mit meinem Setup verglichen.
Hast du spaßeshalber mal eine andere IP und Port ausprobiert?
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 18:11:02
alles schon durch, IP manuell vergeben dann auch mit DHCP verschiedene Ports usw...
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 18:20:44
Auch mal ohne das gesetzte "Buffer data before connection ..." probiert?
Möglicherweise hilft auch eine Reduktion der Verbindungsbaudrate?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 04 April 2024, 18:41:15
Weiterhin wäre es einen Versuch wert das Attr timeout auf einen Wert > 1 zu setzen.
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 04 April 2024, 19:19:40
leider nicht Zielführend, werde mein Glück morgen nochmals versuchen.
Titel: Aw: Modul PylonTech
Beitrag von: tarum am 07 April 2024, 13:36:49
Hallo zusammen,

bei mir hat es nun auch geklappt, musste einen 100ohm ( hatte keine 120ohm) Wiederstand zwischen A und B klemmen.
Jetzt kommen die Daten nur so rein  ;D Internals:
   .FhemMetaInternals 1
   BATADDRESS 1
   DEF        192.168.178.155:9600
   FUUID      661271d4-f33f-976c-aba4-14d8f5993c01bc12
   FVERSION   70_PylonLowVoltage.pm:v0.2.5-s28745/2024-04-03
   HOST       192.168.178.155
   NAME       Pylon
   NR         956
   OPMODE     Automatic
   PORT       9600
   STATE      connected
   TYPE       PylonLowVoltage
   eventCount 201
   .attraggr:
   .attrminint:
   HELPER:
     PACKAGE    FHEM::PylonLowVoltage
     VERSION    0.2.5
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.27.2
   OLDREADINGS:
   READINGS:
     2024-04-07 13:36:21   Manufacturer    Pylon
     2024-04-07 13:36:21   almCellVoltage_01 normal
     2024-04-07 13:36:21   almCellVoltage_02 normal
     2024-04-07 13:36:21   almCellVoltage_03 normal
     2024-04-07 13:36:21   almCellVoltage_04 normal
     2024-04-07 13:36:21   almCellVoltage_05 normal
     2024-04-07 13:36:21   almCellVoltage_06 normal
     2024-04-07 13:36:21   almCellVoltage_07 normal
     2024-04-07 13:36:21   almCellVoltage_08 normal
     2024-04-07 13:36:21   almCellVoltage_09 normal
     2024-04-07 13:36:21   almCellVoltage_10 normal
     2024-04-07 13:36:21   almCellVoltage_11 normal
     2024-04-07 13:36:21   almCellVoltage_12 normal
     2024-04-07 13:36:21   almCellVoltage_13 normal
     2024-04-07 13:36:21   almCellVoltage_14 normal
     2024-04-07 13:36:21   almCellVoltage_15 normal
     2024-04-07 13:36:21   almChargeCurrent normal
     2024-04-07 13:36:21   almDischargeCurrent normal
     2024-04-07 13:36:21   almModuleVoltage normal
     2024-04-07 13:36:21   almTemperature_01 normal
     2024-04-07 13:36:21   almTemperature_02 normal
     2024-04-07 13:36:21   almTemperature_03 normal
     2024-04-07 13:36:21   almTemperature_04 normal
     2024-04-07 13:36:21   almTemperature_05 normal
     2024-04-07 13:36:21   averageCellVolt 3.338
     2024-04-07 13:36:21   batteryType     US3000C
     2024-04-07 13:36:21   bmsTemperature  24.1
     2024-04-07 13:36:21   cellTemperature_0104 22.1
     2024-04-07 13:36:21   cellTemperature_0508 22.1
     2024-04-07 13:36:21   cellTemperature_0912 22
     2024-04-07 13:36:21   cellTemperature_1315 23
     2024-04-07 13:36:21   cellVoltage_01  3.339
     2024-04-07 13:36:21   cellVoltage_02  3.338
     2024-04-07 13:36:21   cellVoltage_03  3.339
     2024-04-07 13:36:21   cellVoltage_04  3.338
     2024-04-07 13:36:21   cellVoltage_05  3.339
     2024-04-07 13:36:21   cellVoltage_06  3.338
     2024-04-07 13:36:21   cellVoltage_07  3.338
     2024-04-07 13:36:21   cellVoltage_08  3.338
     2024-04-07 13:36:21   cellVoltage_09  3.338
     2024-04-07 13:36:21   cellVoltage_10  3.338
     2024-04-07 13:36:21   cellVoltage_11  3.338
     2024-04-07 13:36:21   cellVoltage_12  3.339
     2024-04-07 13:36:21   cellVoltage_13  3.339
     2024-04-07 13:36:21   cellVoltage_14  3.339
     2024-04-07 13:36:21   cellVoltage_15  3.339
     2024-04-07 13:36:21   chargeCurrentLimit 37.0
     2024-04-07 13:36:21   chargeEnable    yes
     2024-04-07 13:36:21   chargeFullRequest no
     2024-04-07 13:36:21   chargeImmediatelySOC05 no
     2024-04-07 13:36:21   chargeImmediatelySOC09 no
     2024-04-07 13:36:21   chargeVoltageLimit 53.250
     2024-04-07 13:36:21   dischargeCurrentLimit 37.0
     2024-04-07 13:36:21   dischargeEnable yes
     2024-04-07 13:36:21   dischargeVoltageLimit 45.000
     2024-04-07 13:36:21   moduleSoftwareVersion_mainline V0.6.9
     2024-04-07 13:36:21   moduleSoftwareVersion_manufacture V1.8
     2024-04-07 13:36:21   nextCycletime   13:36:51
     2024-04-07 13:36:21   numberTempPos   5
     2024-04-07 13:36:21   packAlarmInfo   ok
     2024-04-07 13:36:21   packCapacity    74.000
     2024-04-07 13:36:21   packCapacityRemain 37.740
     2024-04-07 13:36:21   packCellcount   15
     2024-04-07 13:36:21   packCurrent     8.100
     2024-04-07 13:36:21   packCycles      1
     2024-04-07 13:36:21   packImbalance   0.030
     2024-04-07 13:36:21   packPower       405.62
     2024-04-07 13:36:21   packSOC         51.00
     2024-04-07 13:36:21   packState       charging
     2024-04-07 13:36:21   packVolt        50.077
     2024-04-07 13:36:21   paramCellHighVoltLimit 3.650
     2024-04-07 13:36:21   paramCellLowVoltLimit 3.050
     2024-04-07 13:36:21   paramCellUnderVoltLimit 2.800
     2024-04-07 13:36:21   paramChargeCurrentLimit 90.000
     2024-04-07 13:36:21   paramChargeHighTempLimit 60.0
     2024-04-07 13:36:21   paramChargeLowTempLimit -10.0
     2024-04-07 13:36:21   paramDischargeCurrentLimit 89.900
     2024-04-07 13:36:21   paramDischargeHighTempLimit 60.0
     2024-04-07 13:36:21   paramDischargeLowTempLimit -10.0
     2024-04-07 13:36:21   paramModuleHighVoltLimit 54.000
     2024-04-07 13:36:21   paramModuleLowVoltLimit 46.000
     2024-04-07 13:36:21   paramModuleUnderVoltLimit 43.000
     2024-04-07 13:36:21   protocolVersion V2.0
     2024-04-07 13:36:21   serialNumber    K221125C30051671
     2024-04-07 13:36:21   state           connected
   hmccu:
Attributes:
   room       Solar
   timeout    0.5
   verbose    5
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 11 August 2024, 22:00:11
Als blutiger FHEM Anfänger probier ich gerade PylonLowVoltage zum laufen zu kriegen. Als Gateway habe ich ein Waveshare in der Version als Hutschienenmodul. Die http Oberfläche ist erreichbar, aber die Einstellmöglichkeiten etwas anders als im FHEM Help. Ich weis nun nicht, ob der timeout auf Ebene der TCP Verbindung (anderer Port probieren?) oder wegen fehlenden seriellen Daten ist. Wenn ich die serielle GND Leitung abtrenne, geht die blaue ACT LED aus. Die 115k sollten passen und an der blauen LED sollte man ja die Telegramme sehen? Die 10.10.20.158 ist die IP des Zielrechners wo FHEM drauf läuft. Kann die Einstellungen mal jemand mit seiner funktionierenden Installation vergleichen?




define pylon PylonLowVoltage 10.10.20.142:4196 1
attr pylon room pylon
#   BATADDRESS 1
#   CFGFN     
#   DEF        10.10.20.142:4196 1
#   FUUID      66b8fdb5-f33f-b913-d2ea-01f88590d5a64951
#   FVERSION   70_PylonLowVoltage.pm:v0.2.6-s28908/2024-05-25
#   HOST       10.10.20.142
#   NAME       pylon
#   NR         42
#   OPMODE     Automatic
#   PORT       4196
#   STATE      Timeout in communication to RS485 gateway
#   TYPE       PylonLowVoltage
#   eventCount 212
#   HELPER:
#     PACKAGE    FHEM::PylonLowVoltage
#     VERSION    0.2.6
#     VERSION_API unused
#     VERSION_CTZ unused
#     VERSION_ErrCodes unused
#     VERSION_SMUtils 1.27.2
#   READINGS:
#     2024-08-11 21:52:19   nextCycletime   21:52:49
#     2024-08-11 21:52:19   state           Timeout in communication to RS485 gateway
#
setstate pylon Timeout in communication to RS485 gateway
setstate pylon 2024-08-11 21:52:19 nextCycletime 21:52:49
setstate pylon 2024-08-11 21:52:19 state Timeout in communication to RS485 gateway

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 11 August 2024, 22:57:16
Frage zur verdrahtung, pin 7 u. pin 8 von pylontech klemmen am waveshare? Wenn ja, dreh die mal aus oder nutze einen widerstand zw. den adern. jumper auf pylontech auch alle off?
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 11 August 2024, 23:54:49
Habe mit 120 Ohm am Waveshare terminiert, kein GND verbunden und A / B zum Test auch schon mal getauscht. 
Dip Schalter sind alle oben, am Master ist der zweite von rechts aber unten (CAN Terminierung aus).

Es könnte ja sein, daß das Gateway gar keine seriellen Daten sieht was ja dann gar nichts mit FHEM zu tun hat. Vieleicht sollte ich mal versuchen am Gateway anstelle FHEM ein normales Terminal anzuschliessen? Oder sieht man da in ASCII gar nichts weil man keine Anfrage schicken kann?

Eine andere Unsicherheit: Die Anlage hat zwei mal 16 US5000 auf einem LV-Hub der für beide Gruppen als Aggregator arbeitet. Soweit ich sehe, gibt es am LV-Hub selbst gar keinen freien RS485 Port. Die erste Gruppe hat dabei sowieso beide Buchsen belegt (CAN + RS485), nur bei der zweiten (=letzten) Gruppe ist am Master die untere RS485 frei. Auf dem Venus-OS (Victronenergy) werden aber Werte per CAN von einzelnen Racks mit Gruppennummer+Racknummer korrekt angezeigt. Beiliegend mal meine verwendete Verschaltung aus dem LV Hub Manual.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 12 August 2024, 11:50:18
Hmmm, du verwendest ja den HUB. Versuch mal ohne HUB das erste Pack per RS485 auszulesen.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 13 August 2024, 21:02:45
DS_Starter schrieb:
Edit: Ich habe übrigens Pylon wegen einer neuren RS485 Doku angeschrieben. Sie haben mir geantwortet dass diese Doku nicht der Allgemeinheit zugänglich gemacht wird. :( Vllt. taucht mal etwas neueres im I-Net auf.

Pylontech hat zum Erreichen der KfW Förderfähigkeit unter Punkt 4 eine Erklärung in deutscher Sprache abgegeben, daß die Schnittstellenprotokolle zur Erzielung einer Kompabilität mit anderen Herstellern offengelegt sind. Das ist jetzt zwar nicht besonders nützlich, aber zu den "anderen Herstellern" gehört eindeutig auch FHEM als FOSS.


Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 13 August 2024, 21:49:56
Na vielleicht hilft das wenn ich Pylontech nochmal anschreibe mit diesem Blatt im Anhang ;-)

Hast du in deinem Waveshare eine EInstellung "Similar RCF2217"? Ich glaube es war wichtig diesen Flag zu setzen.
Übrigens unterstützt das Modul zur Zeit nur eine Gruppe von Batterien. Siehe Hilfe. Ich kann bei Bedarf versuchen eine Gruppenfähigkeit herzustellen. Da es bislang e´keinen Bedarf und keinen Tester dafür gab, ist das nicht impementiert.

Um herauszufinden ob überhaupt Daten kommen, hilft verbose 5. Im Normalfall kommen dann diese Ausschriften:

2024.08.13 21:47:40.849 4: Pylon1 - start request cycle to battery number >1< at host:port 192.168.2.86:9000
2024.08.13 21:47:40.850 4: Pylon1 - Cycle started in main process
2024.08.13 21:47:40.856 4: Pylon1 - retrieve battery info: analogValue
2024.08.13 21:47:40.857 4: Pylon1 - request command (ASCII): ~20024642E00202FD33
2024.08.13 21:47:40.857 5: Pylon1 - request command (HEX): 7e3230303234363432453030323032464433330d
2024.08.13 21:47:40.874 5: Pylon1 - data returned raw: ~20024600F07A00020F0CF80CF80CF80CF80CF80CF70CF80CF80CF80CF80CF80CF80CF80CF90CF8050BC10BAA0BAA0BA70BB8FFF0C288FFFF04FFFF000F010C8F012110E15C
2024.08.13 21:47:40.875 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30463037 41303030  ~20024600F07A000
0x00000010 (00016)  32304630 43463830 43463830 43463830  20F0CF80CF80CF80
0x00000020 (00032)  43463830 43463830 43463730 43463830  CF80CF80CF70CF80
0x00000030 (00048)  43463830 43463830 43463830 43463830  CF80CF80CF80CF80
0x00000040 (00064)  43463830 43463830 43463930 43463830  CF80CF80CF90CF80
0x00000050 (00080)  35304243 31304241 41304241 41304241  50BC10BAA0BAA0BA
0x00000060 (00096)  37304242 38464646 30433238 38464646  70BB8FFF0C288FFF
0x00000070 (00112)  46303446 46464630 30304630 31304338  F04FFFF000F010C8
0x00000080 (00128)  46303132 31313045 3135430d           F012110E15C.

2024.08.13 21:47:40.875 4: Pylon1 - retrieve battery info: alarmInfo
2024.08.13 21:47:40.875 4: Pylon1 - request command (ASCII): ~20024644E00202FD31
2024.08.13 21:47:40.876 5: Pylon1 - request command (HEX): 7e3230303234363434453030323032464433310d
2024.08.13 21:47:40.888 5: Pylon1 - data returned raw: ~20024600A04200020F000000000000000000000000000000050000000000000000000E40000000F105
2024.08.13 21:47:40.888 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30413034 32303030  ~20024600A042000
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303530 30303030 30303030 30303030  0050000000000000
0x00000040 (00064)  30303030 30304534 30303030 30303046  000000E40000000F
0x00000050 (00080)  3130350d                             105.

2024.08.13 21:47:40.889 5: Pylon1 - Alarminfo - Status 1 alarm: 00
2024.08.13 21:47:40.889 5: Pylon1 - Alarminfo - Status 2 Info: 0E
2024.08.13 21:47:40.889 5: Pylon1 - Alarminfo - Status 3 Info: 40
2024.08.13 21:47:40.890 5: Pylon1 - Alarminfo - Status 4 alarm: 00
2024.08.13 21:47:40.890 5: Pylon1 - Alarminfo - Status 5 alarm: 00

2024.08.13 21:47:40.890 4: Pylon1 - retrieve battery info: chargeManagmentInfo
2024.08.13 21:47:40.890 4: Pylon1 - request command (ASCII): ~20024692E00202FD2E
2024.08.13 21:47:40.891 5: Pylon1 - request command (HEX): 7e3230303234363932453030323032464432450d
2024.08.13 21:47:40.899 5: Pylon1 - data returned raw: ~20024600B01402D002AFC80094FE8EC0F919
2024.08.13 21:47:40.900 5: Pylon1 - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 30393446 45384543  002AFC80094FE8EC
0x00000020 (00032)  30463931 390d                        0F919.

2024.08.13 21:47:40.900 4: Pylon1 - Socket/Connection to the RS485 gateway was closed
2024.08.13 21:47:40.900 4: Pylon1 - got data from battery number >1< successfully

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 13 August 2024, 22:00:23
Ich habe mal eben in meiner Doku (US3500C) zum Thema Multi-Gruppen Mode nachgeschaut.
Dort steht unter Kapitel

Zitat4.8 Multi-Gruppen-Modus
Über RS485. Wird noch nicht unterstützt. Maximal 16 in 1 Gruppe.
Durch CAN:
....

Liest sich für mich so dass in diesem Mode RS485 keine Unterstützung findet. Macht auch Sinn wenn kein entsprechender Port am Hub verfügbar ist.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 14 August 2024, 10:59:11
lt. Manual muss es aber gehen, denn ein Inverter ja infos über rs485 bekommt. Ausgang aber nur frei wenn kein CAN verwendet.
evt. kann man das Modul auf rs232 umschreiben.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 14 August 2024, 23:09:48
Zitat von: DS_Starter am 13 August 2024, 21:49:56Hast du in deinem Waveshare eine EInstellung "Similar RCF2217"? Ich glaube es war wichtig diesen Flag zu setzen.

Mein Waveshare hat komischerweise eine völlig andere http Oberfläche wie hier abgebildet. Screendump siehe hier 6 Posts weiter vorne.
Das mit dem RFC2217 habe ich gelesen. Allerdings kann ich die Einstellung bei mir nicht finden. Ich habe abgebildetes Waveshare Gateway in der Hutschienenausführung.
Es wird über PoE mit Strom versorgt. Das RJ45 Kabel ist mit Pin 7 (ws/bn) auf RS485B und pin 8 (bn) auf RS458A. PE/GND sind nicht verbunden. Terminierung 150 Ohm, Leiungslänge 3m.

Um die Unsicherheiten mit dem LV Hub zu umgehen, möchte ich ungern meine beiden Gruppen auflösen. Das war eine ziemliche Kugelfuhr diese am LV Hub einzubuchen. Diesen ziemlich diffus beschriebenen Vorgang möchte ich zuvor erst noch mal besser verstehen um ihn dann systematisch üben zu können.

Ich kann allerdings ein einem der beiden Gruppen die letzte (16.) Batterie abtrennen und neu booten. FHEM sollte ja dann mit einer einzigen Batterie kommunizieren ohne daß diese eine zusätzlich CAN (oder RS485) Datenverbindung zu einem WR hat?

Noch was: Der Dip Schalter für die RS485 Baudrate ist im US5000 Manual in in der hier geposteten Protokollbeschreibung gegensätzlich beschrieben.
Manual:          Oben = 115200   Unten 9600
RS485 Protokollbeschreibung:    Oben = 9600   Unten 115200

Der verdreht platzierte DIP Schalter ist problematisch. Die Beschreibungen dazu aber eine dreiste Frechheit. Muß man zum Umschalten der Baudrate neu booten?

Bild 7503 zeigt den Master der zweiten (letzen) Gruppe.  Das weise Kabel links geht zur nächsten Gruppe (sonst WR). Das schwarze Kabel ist die Konsole für BatView und das Kabel bei B/RS485 geht zum Waveshare Gateway. 
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 14 August 2024, 23:24:24
Meine Mutmaßungen zum Verständnis der Pylontech Schnittstellen

Mein US5000 BMS ist mit einem Nation N32G455-VB Mikrocontroller aufgebaut. Das ist ein chinesischer Cortex M4 im QFP100 Gehäuse welcher 2 CAN Schnittstellen anbietet. Um ohne Spezialkabel einen linearen CAN Bus mit zwei Nachbarn verdrahten zu können, ist jede der CAN Schnittstellen auf zwei  RJ45 Buchsen aufgelegt. Diese können von je einem CAN Nachbarn  belegt werden.

Die erste CAN Schnittselle sind die beiden Link Ports zur internen Kommunikation. Die Buchsen LINK0 und LINK1 sind an den CAN Pins 4,5,6 durchverbunden. Der GND pin 6 ist jedoch unterschiedlich mit den Pins 7 oder 8 gebrückt. Vermutlich sind die Pins 7+8 Pullup Eingänge um bereits beim Booten ohne Kommunikation feststellen zu können,  ob ein Vorgänger/Nachfolger gesteckt ist.

Die zweite CAN Schnittstelle liegt auf den RJ45 Buchsen, welche auf der Batterie Frontplatte mit A/CAN und B/RS485  beschriftet sind. Die Pinbelegung der RJ45 Buchsen ist so gewählt, daß in den 8 pins das CAN und das RS485 Halbduplex Signal gleichzeitig aufgelegt werden kann. Ein Versuch mit Durchgangspiepser bestätigt, daß alle Pins der beiden Buchsen A und B 1:1 durchverbunden sind. Sie beinhalten sowohl die gleiche CAN wie auch die gleiche RS485 Schnittstelle wie auch irgendwas auf den pins 1,2,3.
Versuche ausstehend: Kabel an beiden Buchsen A / B sollten beliebig vertauschbar sein. RS485 sollte auch mit einem Spezial Y Kabel genutzt werden können wenn beide CAN belegt sind.

Als Folge ergibt sich hiervon:

1) Pylontech passt sowohl über CAN wie auch RS485 an entsprechende Wechselrichter
2) Bei WR Anschluss über CAN ist gleichzeitig FHEM über RS485 möglich
3) Bei WR Anschluss über RS485 ist kein FHEM Anschluss möglich weil das halbduplex Signal sonst mit dem WR kollidiert
4) Ebenso wie die WR über CAN oder RS485 angeschlossen werden können, ist auch der Anschluss über CAN oder RS485 an einen LV-Hub möglich.
5) Die LV-Hub Anschlussvariante über RS485 erfolgt in sternförmiger Verdrahtung von jedem Master einer Gruppe zum LV-Hub. Warum eine Gruppe hier nur 8 Batterien haben darf ist unklar.

6) Die LV-Hub Anschlussvariante über CAN fasst die Batteriegruppen in einem linearen CAN Bus zusammen. Durch die doppelte RJ 45 Buchsenbelegung auf B/RS485 ist es möglich, den A/CAN Anschuss des vorhergehenden Masters mit der B/RS485 Buchse des nachfolgenden Masters zu verbinden.

7) Der GND Pin der RJ45 Buchse ist der CAN Schnittstelle zugeordnet. Er darf deshalb nicht mit dem PE eines RS485 Gateways verbunden werden. Entstehen durch lange RS485 Leitungen Gleichtaktprobleme, so sollte der B Anschluss am Gateway über 680 Ohm mit PE verbunden werden.

8) Die Dip Schalter sind im US5000 User Manual und im Schnittstellenprotokoll unterschiedlich  beschrieben. Vermutlich ist die Beschreibung im User Manual falscher als die Protokollbeschreibung. Der verdrehte Einbau des Schalters auf der Frontplatte ist problematisch, die Beschreibungen dazu aber eine dreiste Frechheit.

8a) Der Dip Schalter 1 ist zweifelsfrei für die Baudrate der RS485 Schnittstelle zuständig.
Manual:             Oben = 115200   Unten 9600
RS485 Protokollbeschreibung:    Oben = 9600      Unten 115200



b) Beim DIP Schalter 2 ist noch nicht mal die Funktion klar.
US5000 (nicht 2/3000) Manual:   Can Terminierung (ein R lässt sich aber nicht auspiepsen)
RS485 Protokollbeschreibung:    Dip 2,3,4 ist 7 bit Gruppenadresse m=1-7 für den Master

Aus 8b) ergibt sich eine Batterieadresse m:n in einem LV Hub System. In jede Gruppe m passen 16 Batterien welche allerdings nicht 0 bis 15 sondern 1 bis 16 zählen.

Gruppenadresse m=0 ist einem System mit nur einer Gruppe vorbehalten.
Gruppenadresse m von 1 bis 7 ermöglichen maximal 6 Gruppen a 16 Batterien = 96 Batterien mit einem einzigen LV Hub.

Die LV Hubs haben ebenfalls einen 3 bit Adressschalter. Hier sind aber nur die Adressen 1-5 zur Nutzung beschrieben. Damit würden sich maximal 5x96=480 Batterien oder 0,24GWh mit einem zweistufigen LV-Hub bzw. 6 LV-Hubs ergeben.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 15 August 2024, 15:09:50
Gleich noch ein Post und vielleicht ein Stück schlauer warum es bei mir nicht funktioniert:
Es gibt von Waveshare offensichtlich zwei verschiedene RS485->ETH Gateways die einen ziemlich unterschiedlichen Funktionsumfang in der FW haben.

1) RS485 TO ETH
https://www.waveshare.com/w/upload/6/6d/RS485-TO-ETH-user-manual-en.pdf

2) RS485 TO ETH (B)
https://www.waveshare.com/w/upload/8/86/RS485-TO-ETH-B-user-manual-en-v1.1.pdf

Das 2te ist die Hutschienenversion welche ich habe. Es sind aber ziemliche Unterschiede in den Protokollen. 2) scheint neuer zu sein, aber 1) kann auch was mit AT Kommandos was 2) definitiv nicht kann. Möglicherweise ist es mit dem RFC 2217 auch so? Das kommt aus alter Zeit wo AT Kommandos und Einwahlverbindungen über Hayes üblich waren. Da brauch nicht mehr suchen warum FHEM bei mir keine Verbindung hin kriegt sondern muß ein anderes Gateway bestellen?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 15 August 2024, 15:34:55
Ich kann bei mir mal RFC 2217 ausschalten und das Ergebnis mitteilen. Aber erst morgen, habe heute keine Zeit dazu. Vllt. kann satprofi den Check auch mal machen.

LG
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 15 August 2024, 16:55:39
Weiter vorne in diesem Thread ist ein Post daß es ohne RFC2217 nicht funktioniert. Wie ich verstanden habe, ist RFC2217  dafür gut, daß über Eth die Einstellungen für Baudrate u.a. gemacht werden können was normal nicht über die seriellen Daten geht. Andererseits ist es vorteilhaft, wenn man dazu keinen Treiber für virtuelle COM Ports braucht.

Offensichtlich gibt es von Waveshare aber noch mehr RS485 auf ETH Konverter welche wiederum andere Funktionsumfänge haben. Hier eine Version die neben Modbus auch MQTT kann.
https://www.waveshare.com/wiki/RS232/485_TO_WIFI_ETH_(B)

Was soll "verbose 5" sein ? Eine ASCII Eingabe auf der RS485 welche dann wie oben antwortet?
Dazu müsste ich dann einen virtuell seriellen Port aufmachen und ein Terminal laufen lassen?
Oder geht das auch mit telnet?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 August 2024, 16:42:43
Ich habe soeben das RS485 Gateway OHNE den Haken bei RFC2217 betrieben und ausprobiert. Läuft bei mir genauso einwandfrei wie mit RFC2217.

ZitatWas soll "verbose 5" sein ?
verbose 5 bedeutet, du solltest im Modul das Attribut verbose auf 5 setzen. Das ist die höchste Stufe für Ausgaben im Log und protokolliert so ziemlich alles was in der Kommunikation abläuft.

LG
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 18 August 2024, 20:56:47
Danke - verbose 5 ist ein Parameter bzw. Attribut für das Modul PylonTech (Sorry FHEM ist für mich  völlig neu). Beiliegend ein Screendump von meinen Modul Einstellungen und was im Logfile angezeigt wird.
Es sieht so aus als ob es schon auf der TCP/IP Ebene keinen Kontakt gibt?
Ist die Batterie Nr. 1 genau die Batterie Adresse wo auch das RS485 Gateway stecken muß ?
Falls ja, könnte man diese auch mit BatteryView in Erfahrung bringen?
Noch was zum Vergleichen: Der DIP Switch 1 steht oben und das sind 115kBaud

2024.08.18 20:51:54 4: pylon - start request cycle to battery number >1< at host:port 10.10.20.142:4001
2024.08.18 20:51:54 4: pylon - Cycle started in main process
2024.08.18 20:51:54 4: pylon - retrieve battery info: serialNumber
2024.08.18 20:51:54 4: pylon - request command (ASCII): ~20024693E00202FD2D
2024.08.18 20:51:54 5: pylon - request command (HEX): 7e3230303234363933453030323032464432440d
2024.08.18 20:51:55 3: pylon - Timeout in communication to RS485 gateway
2024.08.18 20:51:55 4: pylon - Socket/Connection to the RS485 gateway was closed
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 August 2024, 22:38:02
ZitatEs sieht so aus als ob es schon auf der TCP/IP Ebene keinen Kontakt gibt?
Ja, sehe ich auch so.

ZitatIst die Batterie Nr. 1 genau die Batterie Adresse wo auch das RS485 Gateway stecken muß ?
Ja, es ist im Stapel die oberste Batterie (wo der Link-Port frei ist) zumindest wenn ohne Gruppen gearbeitet wird.

Mir ist aufgefallen dass du den Port 4001 angegeben hast, aber in einem Bild weiter vorn ist der Port 4196 zu sehen?
Du kannst testweise auch das timeout Attribut weiter hoch setzen, glaube aber nicht das es daran liegt.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 18 August 2024, 23:10:32
Noch etwas ist mir aufgefallen. Die Adresse 10.10.20.158 ist als DNS-Server angegeben. Ich denke hier müßte 10.10.20.250 stehen, das Gateway ist i.A. auch der DNS-Server.
Ist der Waveshare eigentlich per ping vom FHEM-Rechner aus erreichbar? Dein IP-Adressbereich ist ziemlich umgewöhnlich, ist der korrekt?
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 19 August 2024, 09:54:56
Zitat von: DS_Starter am 18 August 2024, 22:38:02
ZitatEs sieht so aus als ob es schon auf der TCP/IP Ebene keinen Kontakt gibt?
Ja, sehe ich auch so.

ZitatIst die Batterie Nr. 1 genau die Batterie Adresse wo auch das RS485 Gateway stecken muß ?
Ja, es ist im Stapel die oberste Batterie (wo der Link-Port frei ist) zumindest wenn ohne Gruppen gearbeitet wird.

Mir ist aufgefallen dass du den Port 4001 angegeben hast, aber in einem Bild weiter vorn ist der Port 4196 zu sehen?
Du kannst testweise auch das timeout Attribut weiter hoch setzen, glaube aber nicht das es daran liegt.

Grüße,
Heiko

Seine erste def war
10.10.20.142:4196 1

Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 19 August 2024, 14:24:09
Habe den Port mal zum Teste auf beiden Seiten von 4196 auf 4001 geändert. Trotzdem kein Erfolg.
 
Eigentlich sollte der Master (wo oben der Link Port frei ist) die Nr. 0 sein ?

Wenn bei mehreren Batterien in einer Gruppe die Adresse die Batterieadresse am Modul geändert wird, dann antwortet die Batterie mit der passenden Adresse (sofern sie physikalisch vorhanden ist) doch auch, wenn das Gateway auf einer anderen Batterie der gleichen Gruppe eingesteckt ist?

In Zeile 198 der Quellen liest man aber als Kommentare korrekt wie die  Gruppennummer funktioniert,
ohne daß eine solche Adresse akzeptiert werden würde. Ist das ein Feature für Version 2 ?

# ADR: n=Batterienummer (2-x), m=Group Nr. (0-8), ADR = 0x0n + (0x10 * m) -> f. Batterie 1 = 0x02 + (0x10 * 0) = 0x02

Ich verstehe auch noch nicht, woher aktuell die Beschränkung auf 14 Batterien 1 Master +13 Slaves kommt,
wo doch in einer Gruppe 16 Stück (mit 15 Link Kabel) akzeptiert werden.

Wenn ich eine Batterie ausbaue und ohne ohne weitere Verbindung einschalte (alle Dip SW oben), funktioniert dann die Kommunikation mit Fhem?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 August 2024, 18:11:50
Eigentlich sollte der Master (wo oben der Link Port frei ist) die Nr. 0 sein ?
Lt. Pylon Doku beginnt die Adressierung des Master sogar mit "2".

(n)     Position
 2    Master battery
 3      Slave 1
 4      Slave 2
 5      Slave 3
...    ........

Damit es für den User nicht unlogisch wird, beginnen wir mit "1" und kodieren intern entsprechend.

ZitatWenn bei mehreren Batterien in einer Gruppe die Adresse die Batterieadresse am Modul geändert wird, dann antwortet die Batterie mit der passenden Adresse (sofern sie physikalisch vorhanden ist) doch auch, wenn das Gateway auf einer anderen Batterie der gleichen Gruppe eingesteckt ist?
Nein. Nach meinen Erfahrungen kommt es dann zum Timeout. Man muss das Gateway mit dem Master verbinden.

ZitatIn Zeile 198 der Quellen liest man aber als Kommentare korrekt wie die  Gruppennummer funktioniert,
ohne daß eine solche Adresse akzeptiert werden würde. Ist das ein Feature für Version 2 ?
? Wie gesagt Gruppen sind noch nicht implementiert da es bis jetzt an der Notwendigkeit und entspr. Tester gemangelt hat.

ZitatIch verstehe auch noch nicht, woher aktuell die Beschränkung auf 14 Batterien 1 Master +13 Slaves kommt,
wo doch in einer Gruppe 16 Stück (mit 15 Link Kabel) akzeptiert werden.
Ich habe einfach noch nicht die ganzen Kommandokodierungen für Batterien größer 14 implementiert. Mehr kann ich jederzeit hinzufügen wenn es Bedarf UND entsprechend Tester für die Implementierung gibt.
Die max. Akzeptanz ist übrigens vom Batterietyp abhängig. Andere Batterietypen akzeptieren ggf. weniger.

ZitatWenn ich eine Batterie ausbaue und ohne ohne weitere Verbindung einschalte (alle Dip SW oben), funktioniert dann die Kommunikation mit Fhem?
Das wird so sein wenn das Gateway richtig eingestellt ist und ordnungsgemäß arbeitet.

Hast du den Ping des Gateeway vom FHEM Rechner aus probiert?
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 19 August 2024, 19:31:01
Danke mal für die klaren Antworten.
Es fehlt zur Sicherheit noch eine: DipSwitch 1 oben = 115 kBaud auf RS485?

Den Ping hatte ich bislang nicht probiert, weil die http Oberfläche des Gateways nicht nur auf den gleichen Rechner sondern auch auf dem gleichen Browser wie FHEM bedienbar ist.
Habe ich jetzt aber nachgeholt: Der Ping ist 0,55mSec.

Am Testen solls nicht liegen. Ich habe 32 Stück US5000 in 2 Gruppen am LV-Hub. Außerdem eine lose BMS Platine mit vergeigter Firmware im Controller.
Solange die Wege hier im Forum so kurz sind, sollten wir auch dahinter kommen woran es liegen könnte.
Ich werde als nächstes mal probieren, das Gateway mit einem Treiber für virtuelle COM Schnittstelle einzurichten um zu sehen ob sich mit einem Terminal anstelle FHEM was tut.
Dann eine der Batterien vom Stack abgtrennen und neben dem FHEM Rechner einfach mal einzeln aufstellen. Das erhöht die Probiergeschwindigkeit wenn ich dazu nicht jedesmal in ein anderes Gebäude gehen muß.

> Noch etwas ist mir aufgefallen. Die Adresse 10.10.20.158 ist als DNS-Server angegeben.
> Ich denke hier müßte 10.10.20.250 stehen, das Gateway ist i.A. auch der DNS-Server.

10.10.20.158 ist der Rechner auf welchem momentan FHEM läuft.
10.10.20.250 ist mein Mikrotik Router im Netz wo das DHCP und den Internetzugang routet. 
Das 10.10.20.xxx Netz ist absichtlich und funktioniert ansonsten auch.
Ich habe hier auch zwei weitere baugleiche Waveshare RS485 Gateways als transparentes Pärchen laufen, weil mein Stromzähler in der Trafostation in einem anderen Gebäude ist.
In diesem Fall muss unter Destination IP/DNS die IP der Gegenstelle stehen damit sich das Gateway Pärchen findet.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 19 August 2024, 20:31:13
Funktionieren die US5000 überhaupt mit FHEM modul? Schon mal mit batteryview eingeloggt?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 August 2024, 20:59:41
ZitatFunktionieren die US5000 überhaupt mit FHEM modul?
Ja, wurde schon erfolgreich eingesetzt. Erfolgreiche Tests/Einsätze nehme ich in die Online-Hilfe als Referenz auf.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 19 August 2024, 21:03:51
ZitatIn diesem Fall muss unter Destination IP/DNS die IP der Gegenstelle stehen damit sich das Gateway Pärchen findet.
Hmmm, ich habe die DNS Konfiguration mit den "Pärchen" zwar noch nicht verstanden, aber wenn du dir sicher bist dann ist es ja gut.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 20 August 2024, 00:31:47
Es ist einfach die Destination IP des Waveshare TCP Clients der zum Waveshare TCP Server passt.
Auf beiden Seiten ist RS485, dazwischen TCP/IP über Glasfaser oder beliebige Physik.

Für FHEM nehme ich an, daß Waveshare auf TCP Server stehen muß.
Wegen dem habe ich da probiert die IP des Sytems von FHEM als Destination einzutragen.
Das braucht man aber vermutlich nicht, weil FHEM ja weis, auf welcher IP das Gateway ist,
wo die Daten abzuholen sind. Geht aber auch mit meiner Router Adresse 10.10.20.250 nicht und der Eintrag ist vermutlich Dont-Care.
Mit DNS Domain Name System hat das dann vermutlich nichts zu tun was vielleicht für irgendwelche anderen Gateway Modis relevant ist.


Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 20 August 2024, 09:10:47
Zitat von: Janvi am 19 August 2024, 19:31:01Danke mal für die klaren Antworten.
Es fehlt zur Sicherheit noch eine: DipSwitch 1 oben = 115 kBaud auf RS485?


Dann eine der Batterien vom Stack abgtrennen und neben dem FHEM Rechner einfach mal einzeln aufstellen. Das erhöht die Probiergeschwindigkeit wenn ich dazu nicht jedesmal in ein anderes Gebäude gehen muß.



versuche doch mal , den Waveshare an einem Pack mit freiem RS485 Port anzuschliessen, und dann die adresse nur durchzutesten. Wenn am 2. Pack, dann versuch adresse 2 zu definieren, vielleicht bekommst dann verbindung.


noch was, habe gerade im iobroker forum gelesen das man vircom benötigt, da im webif nicht alles einstellbar ist.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 20 August 2024, 16:06:23
Habe jetzt mal auf dem vorderen Stack erste Batterie nach dem Master mit verschiedenen einstelligen Adressen probiert. Keine Änderung.

Aber: Das Modul bringt noch eine andere Fehlermeldung. Das sind:

Timeout reading data from battery
No connection to RS485 gateway established wenn die Ports auf beiden Seiten verschieden eingestellt sind.

Das könnte eigentlich ein Hinweis sein, daß ein Problem auf der RS485 Seite vorliegt.
Wie war das mit der Baudrate 115k und Dipschalter oben?

Vircom habe ich schon zum Aufsezten benutzt. Es hat noch ein paar weitere Einstellungen wo ich annehme, daß diese nicht relevant sind?
Beiliegend meine Einstellungen in Vircom. 
10.10.20.145 und 153 sind das transparente Client/Server Pärchen welches noch im Netz ist.
Die Device Settings sind für das Pylon Modul aufgeklappt. Hier sieht man auch, daß die NetMask, Gateway und Dest.IP/Domain(DNS) ausgegraut sind,
sobald der Work Mode TCP Server ist. Das ist ein weiterer Hinweis, daß diese Einstellungen in der http Oberfläche in dem Fall dont care sind.
Im Advanced Tab sind Multi-Host Einstellungen aber ich wäre schon froh wenn es mit einem einzigen Host funktioniert.

Als nächstes steht der Ausbau einer einzelnen Batterie an. Das mach ich aber erst wenn ich einen Helfer mit Abitur für die 40kg Gewicht habe.
 



Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 20 August 2024, 16:23:32
Die dip schalter sollten alle off sein, bei einigen baureihen verkehrt eingebaut, wegen "oben".
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 20 August 2024, 17:20:49
ZitatHabe jetzt mal auf dem vorderen Stack erste Batterie nach dem Master mit verschiedenen einstelligen Adressen probiert. Keine Änderung.
...
Timeout reading data from battery
Der Master macht die Addressierung der Batterien der Reihe nach wie sie unter ihm gestapelt sind. Wenn du das Gateway nicht in den Master steckst, wird die Adressierung nicht funktionieren und die angesprochene Batterie wird nicht antworten = "Timeout reading data from battery".
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 21 August 2024, 14:19:16
Stimmt, dachte adressen vergibt BMS. Man muss die rs485 verbindung trennen zw. Den modulen
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 21 August 2024, 22:39:04
Mit einer einzelnen isolierten US5000 bekomme ich endlich "state connected"
Zumindest weis ich jetzt, daß mein Kabel stimmt und die ETH Kommunikation korrekt eingestellt ist.
Es hat offensichtlich also nur an den Gruppenadressen gelegen, welche ich noch rauskriegen muß.
Am Waveshare sieht man auch an der blauen ACT LED wenn von FHEM alle 30 Sek ein Telegramm rausgeht.
Daran kann man erkennen, ob die ETH Verbindung grundsätzlich korrekt ist um nicht auf der falschen Seite zu suchen.
Man sieht die 3 Request/Response Telegrammpaare Analog, Alarm, Management auch mit dem Oszi auf der RS485 Leitung.
Sowohl Pylon wie auch FHEM trödeln nicht lange mit Pausen bis zum nächsten Telegramm.

Mein Master der ersten Gruppe ist derweil auf Fehler gegangen wie ich das CAN vom Hub abgezogen habe.
Der Hub selbst tut so als ob nix wäre. Das muß ich jetzt erst mal wieder hinkriegen damit der SOC nicht auseinanderläuft.

2024.08.21 22:32:36 4: pylon - start request cycle to battery number >1< at host:port 10.10.20.142:3195
2024.08.21 22:32:36 4: pylon - Cycle BlockingCall PID "2204544" with timeout "12" started
2024.08.21 22:32:36 4: pylon - retrieve battery info: analogValue
2024.08.21 22:32:36 4: pylon - request command (ASCII): ~20024642E00202FD33
2024.08.21 22:32:36 5: pylon - request command (HEX): 7e3230303234363432453030323032464433330d
2024.08.21 22:32:36 5: pylon - data returned raw: ~20024600B07E00020F0CD60CD60CD60CD60CD60CD70CD60CD60CD60CD50CD60CD70CD80CD60CD5060B810B6E0B6A0B690B680B78FFEAC08CFFFF04FFFF0025010CB90186A0E0C4
2024.08.21 22:32:36 5: pylon - data returned:
0x00000000 (00000)  7e323030 32343630 30423037 45303030  ~20024600B07E000
0x00000010 (00016)  32304630 43443630 43443630 43443630  20F0CD60CD60CD60
0x00000020 (00032)  43443630 43443630 43443730 43443630  CD60CD60CD70CD60
0x00000030 (00048)  43443630 43443630 43443530 43443630  CD60CD60CD50CD60
0x00000040 (00064)  43443730 43443830 43443630 43443530  CD70CD80CD60CD50
0x00000050 (00080)  36304238 31304236 45304236 41304236  60B810B6E0B6A0B6
0x00000060 (00096)  39304236 38304237 38464645 41433038  90B680B78FFEAC08
0x00000070 (00112)  43464646 46303446 46464630 30323530  CFFFF04FFFF00250
0x00000080 (00128)  31304342 39303138 36413045 3043340d  10CB90186A0E0C4.

2024.08.21 22:32:36 4: pylon - retrieve battery info: alarmInfo
2024.08.21 22:32:36 4: pylon - request command (ASCII): ~20024644E00202FD31
2024.08.21 22:32:36 5: pylon - request command (HEX): 7e3230303234363434453030323032464433310d
2024.08.21 22:32:36 5: pylon - data returned raw: ~20024600804400020F00000000000000000000000000000006000000000000000000000E40000000F0AB
2024.08.21 22:32:36 5: pylon - data returned:
0x00000000 (00000)  7e323030 32343630 30383034 34303030  ~200246008044000
0x00000010 (00016)  32304630 30303030 30303030 30303030  20F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45343030 30303030  00000000E4000000
0x00000050 (00080)  30463041 420d                        0F0AB.

2024.08.21 22:32:36 5: pylon - Alarminfo - Status 1 alarm: 00
2024.08.21 22:32:36 5: pylon - Alarminfo - Status 2 Info: 0E
2024.08.21 22:32:36 5: pylon - Alarminfo - Status 3 Info: 40
2024.08.21 22:32:36 5: pylon - Alarminfo - Status 4 alarm: 00
2024.08.21 22:32:36 5: pylon - Alarminfo - Status 5 alarm: 00

2024.08.21 22:32:36 4: pylon - retrieve battery info: chargeManagmentInfo
2024.08.21 22:32:36 4: pylon - request command (ASCII): ~20024692E00202FD2E
2024.08.21 22:32:36 5: pylon - request command (HEX): 7e3230303234363932453030323032464432450d
2024.08.21 22:32:36 5: pylon - data returned raw: ~20024600B01402D002AFC80320FCE0C0F92B
2024.08.21 22:32:36 5: pylon - data returned:
0x00000000 (00000)  7e323030 32343630 30423031 34303244  ~20024600B01402D
0x00000010 (00016)  30303241 46433830 33323046 43453043  002AFC80320FCE0C
0x00000020 (00032)  30463932 420d                        0F92B.

2024.08.21 22:32:36 4: pylon - Socket/Connection to the RS485 gateway was closed
2024.08.21 22:32:36 4: pylon - got data from battery number >1< successfully
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 21 August 2024, 22:50:31
Das Protokoll sieht gut aus. So soll es sein.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 August 2024, 10:59:25
dann musst du nur mehr den code um die gruppe erweitern. wenn ich zeit habe kann ich es mir ja ansehen. heisst gruppe 0 gibts dann nicht, sondern 1-6 wenn im verbund.
habe gelesen, das can u. rs485 gleichzeitig geht, also selbes kabel.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 22 August 2024, 11:34:23
So einfach scheint das mit der Erweiterung der Gruppe tatsächlich noch nicht zu gehen. Ausgehend von einer funktionierenden Konfiguration waren jetzt aber mehrere erkenntisorientierte Experimente möglich:

1)
Beiliegend sieht man in AnalogReq.bmp  das Anforderungstelegramm am Waveshare RS485 Anschluss ohne das dieses in einer Batterie steckt. Die Dauer eines Bits lässt sich dort mit etwa 8,7 usec ausmessen. Ein Byte mit Start, 8Daten und Stopbit wird demnach in etwa 87 uSec übertragen. In den Quellen des Pylon Moduls sieht man, daß das Telegramm 20 Bytes lang ist. Das dauert dann mindestens 20x87us = 17,4 msec. Die Cursor im Bild stehen bei 17,8 ms was eventuellen kleinen und akzeptablen Pausen zwischen den Bytes zuzüglich Messungenauigkeit geschuldet ist.

AnalogReq.bmp

Die Messung erfolgt zwischen den Anschlüssen A und B, mit dem GND des Oszilloskops auf B. Eine Messung gegen die am Waveshare ebenfalls vorhandenen PE und GND pins hat sich als nicht zielführend erwiesen. Die differentielle Amplitude beträgt etwa 2 Volt. Das liegt sicher über der für RS485 zur Funktion definierten Mindestamplitude von 0,2V. Vor dem Telegramm ist der RS485 Ausgang des Gateways hochohmig und es wird keine Spannung gemessen. Aufgrund der fehlenden Bias Widerstände ist ein Terminierungswiderstand nicht nur zur Terminierung obligatorisch, weil sonst kein Strom fliessen kann. Ich hatte hier 150 Ohm in der Schublade vorrätig. Man sieht einen kleinen Gleichtaktfehler, wo das gesamte Telegramm in der absoluten Höhe ein leichtes Einschwingen zeigt. Dies ist der fehlenden GND Verbindung und den damit ebenfalls fehlenden Bias Widerständen geschuldet. Ein einzelner Bias Widerstand mit der üblichen Größe von 680 Ohm gegenüber PE oder GND hat keinerlei Verbessung gebracht. Neuere RS485 Tranceiver kommen damit aber problemlos klar. Sowohl Waveshare als auch Pylontech verbauen offensichtlich solche Tranceiver denn es hat soweit ja auch zuverlässig funktioniert.

Die Verdrahtung ist auf beiden Seiten A für das nicht invertierte Signal oder Plus und
B für das invertierte Signal oder Minus. Bei ABB Zählern ist das Übrigens genau verdreht und die zählen warum auch immer C,B,A für GND,Plus,Minus wie auch die US5000 die DIP Schalter zur zusätzlichen Verwirrung auf dem Kopf haben und dann die Beschreibung weglassen

AnalogResp.bmp

2)
Auf AnalogResp sieht man das Anforderungstelegramm sowie die Antwort der dazugehörenden Batterie. Die Batterie lässt sich für diese Antwort etwa 280uS Zeit, was völlig ok ist. Man sieht auch hier mit der kleinen Abwärtsbewegung am Anfang des Antworttelegramms das insgesamt eine etwas kleinere Amplitude hat ebenfalls einen kleinen Gleichtaktfehler.

Tel3.bmp

3)
In Tel3 sieht man alle 3 Telegramme welche von FHEM angefordert und von der Batterie beantwortet werden. Fhem lässt sich bis zur Anforderung des nächsten Telegramms etwa 3-4 msec Zeit was ebenfalls ok ist. Wie die vertikalen Cursor zeigen, erfolgt die gesamte Übertragung aller Batteriedaten dabei in einer Zeit von weniger als 40ms. Auch bei 16 Batterien einer Gruppe wäre eine Zykluszeit von <1 Sek noch problemlos realisierbar. Am Ende des ersten (und dritten) Antworttelegramms sieht man einen unschönen Überschwinger welcher den fehlenden Bias Widerständen geschuldet ist. Er entsteht, wenn die RS485 Tranceiver nach Beendigung ihrer Übertragung in den hochohmigen Zustand gehen. Auch hierdurch gibt es keine Probleme und bezüglich der Bias Widerstände es gilt das Gleiche wie unter 1)

bat16.PNG

4)
Mit BatView habe ich versucht die aktuelle Adresse einer beliebigen Batterie auszulesen. Ich habe diese Version mal von NKON erhalten und weis nicht, warum hier der SOC nicht angezeigt wird. Bei 100Ah für US5000/50V sind 39,45Ah aber etwa 38% was plausibel ist. Im Device List Window links sieht man unten address: 16. Zum Update der Adressanzeige nach dem Umstecken der seriellen Leitung ist ein Disconnect-Connect Zyklus in BatteryView erforderlich. Damit lässt sich feststellen, daß beide meiner 2 Gruppen a 16 US5000  von 1 (Master mit freier Link Buchse oben) bis 16 (Slave mit freier Link Buchse unten) zählen. Eine Erweiterung der Adressen von 14 auf 16 wäre also sinnvoll und ich könnte das mit einer Gruppe von 16 US5000 testen.

5)
Summa Summarum gilt das Waveshare RS485 to ETH (B) Modul damit als erfolgreich getestet. Es gibt auch auch von dem Modul mit (B) zwei verschiedene Versionen welche sich durch das PoE Feature unterscheiden. Ich habe die Version mit PoE und kann deshalb auf ein extra Netzteil verzichten. Darüber hinaus ist aktives PoE für Pylon Besitzer grundsätzlich zu empfehlen weil es ohne Umwege direkt an das 48V DC Netz angeschlossen werden kann.  Die Waveshare Versionen mit und ohne PoE kann man nur durch die Klemmenbeschriftung NC unter der blauen ACT LED (ohne PoE) oder GND/DEF (mit PoE) unterscheiden. Welche Funktion diese Signale haben und ob sich was mit den Bias Widerständen zu tun haben könnten wird möglicherweise als Geheimnis im Reich der Mitte verleiben.

6)
Es hat sich die momentan bittere Erkenntnis durchgesetzt, daß ein Antworttelegramm auf der RS485 trotz korrekter Adresse eines Masters ausbleibt, sobald dieser am LV Hub oder an einem weiteren Master zum LV Hub eingesteckt ist. Zieht man das Kabel ab, so kommen die Antworttelegramme sofort auch ohne daß die betreffende Master Batterie neu gebootet wurde. Das lässt darauf hoffen, daß mit einem Spezialkabel an dieser Stelle vielleicht noch etwas auszurichten ist. Ansonsten wäre FHEM so nur für Installationen ohne LV-Hub anschaltbar.


 
   




 


Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 August 2024, 13:04:01
bei rs485 Verbindung beginnt 1. Batterie mit addr 2
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 August 2024, 13:10:13
dies kennst du schon, oder?
https://community.victronenergy.com/storage/attachments/24334-lv-hub-communication-hub-product-manual-v22-202103.pdf
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 22 August 2024, 14:38:40
Ja, ich kenne das Manual, habe aber trotzdem Tage gebraucht bis der LV Hub bei mir gelaufen ist. Insbesondere die Bedienreihenfolgen mit 3 mal Piepsen und einschalten und einstecken sind ausserordentlich omninös. Wenn man mehrere Fehler hat so daß man nicht von einer funktionierenden Konfiguration aus experimentieren kann, gibt es kaum eine Chance rauszufinden ob es an der Kabelbelegung oder an einer Fehlbedienung oder an den DIP Switches oder sonst was hängt. Irgendwann hat der LV Hub dann meine 2  Gruppen irgendwie eingebucht. Ich habe den LV-Hub seither nicht mehr angefasst und er hat jetzt glücklicherweise beim rumprobieren auch die 2 Gruppen nicht verloren. Im alten Victron Forum gibt es einen LV-Hub Thread der einige Beiträge von mir enthält und auch einen anderen Benutzer bei dem der LV Hub zuvor schon mit 3 Gruppen funktioniert hat.

Der Screendump von dir gilt wohl nur für RS485. Typisch Pylontech und nutzlos: Should be X000. Man soll jetzt als Anwender annehmen, daß die X nicht links sondern rechts auf DIP SW 1 positioniert ist, daß dies die Baudrate bedeutet, 000 bedeutet die DipSW 2,3,4 oben zu haben und dass dies alles für CAN gar nicht relevant ist. Das sind bereits 5 Annahmen wo man als durchschnittlicher Batteriekäufer eigentlich nicht alleine draufkommt. Ich kann mir auch nicht vorstellen, daß dies irgend ein Chinese erahnen kann. Ebenso selbstredend nutzlos: In Multi Group Mode, Master Battery must have right dip switch address. Dazu muß ein Andwender nun das Manual lesen um zu wissen, daß die DIP Schalter richtig eingestellt sein müssen. Was die richtige Stellung für welchen Anwendungsfall ist, erfährt er hier allerdings nirgends. Pylontech selbst zuckt mit der Schulter und verweist an den Importeuer bzw. Händler. Das war bei mir das zwischenzeitlich insolvente Bosswerk/Greenakku. Der Support dort hatte einen LV-Hub aber noch gar nie gesehen und mich nach 6 Wochen dann darauf aufmerksam gemacht, daß ich mal verschiedene YT Videos dazu anschauen soll wenn ich das nicht zum Laufen kriege.

Eine der großen Schwierigkeiten in den Pylon Beschreibungen ist die gesamte Firmengeschichte zu erkennen. Das LV-Hub Manual erwähnt zum Beispiel gar nirgends die US5000 weil der LV_Hub eben schon älter ist. Wie die Modulentwickler hier ja auch schon gemerkt haben, sind nicht alle Batteriemodelle gleich obwohl sie ähnlich sind.

Seite 6/14 zeigt die Verbindung mehrerer Gruppen mit dem LV-Hub unter RS485. Vermutlich ist nur hier der ADDR Dip Switch überhaupt maßgeblich. Die Gruppe kann hier nicht von 1-16 gehen, weil die Master Batterie einer Gruppe gar nicht der RS485 Master ist und diese wie du vermerkt hast bei Adresse 2 startet.

Seite 7/14 zeigt die gleiche Konfiguration mit sternförmig angeordneten RS485 aber die Kommunikation zum WR ist CAN. Vermutlich ist auch hier der ADDR Schalter ausschlaggebend.

Seite 8/14 oder 13/14 zeigt nun eine Konfiguration welche 16er Gruppen über die Master mit CAN verbinden kann. Was der Unterschied zwischen beiden Seiten sein soll, wird das Rätsel des Tages. Dass nun ausgerechnet diese Art der Verbindung die bevorzugte für US5000 sein könnte, liest man ebenso nirgends. Ebensowenig ob vielleicht auch andere Verbindungen mit US5000 gehen und was deren Vor oder Nachteile sind. Man muß  trotz lesen der Beschreibung alles annehmen und mit unendlich vielen Versuchen alles ausprobieren. Der Gipfel auf Seite 8/14 des LV-Hub Manuals ist dann noch, daß für detailierte Informationen auf das LV-Hub Manual verwiesen wird. Sozusagen wird das einstöpseln der passenden Leitungen und Dip Schalter zu einem rekursiv nicht terminierenden Problem. Sonst könnte es ja Jeder wenn es einfacher wäre. 
Man kann nur annehmen, dass US3000, US2000 kein CAN haben oder die CAN FW  zur Aggregation noch fehlerhaft ist, während US2000C, US3000C und US5000 aber mit den CAN Konfigurationen laufen.

Nach dem Auspiepsen der Buchsen auf dem BMS, weis ich ja daß die A/B in der Belegung identisch mit RS485 und CAN gleichzeitig belegt sind. Verbindet man jetzt A  Buchse 1:1 mit der B Buchse der Folgegruppe oder dem LV Hub, so kann die Batterie FW wahlweise über beide Schnittstellen einzeln oder auch gleichzeitig kommunizieren. Ich vermute, daß sie dies nur über CAN macht, die RS485 Seite aber durcheinanderkommt weil mehr als eine Batterie mit dem Waveshare Gateway verbunden ist. Dafür spricht auch, daß das Antwort Telegramm sofort zurückommt wenn man das abgehende Kabel aussteckt. Ohne die Batterie neu zu booten, wird diese vermutlich auch nicht in ihrer Adresse neu enumeriert, so daß es nicht an der falschen Adresse liegt die auch gar nicht am ADDR Adressschalter einzustellen geht. Mit Battery View kann man die Batterieadresse schliesslich auslesen und anzeigen. Aber wir werden sehen und ich werde berichten wenn ich was rausfinde.

Derweil wären die Adressen 15 und 16 aber vermutlich eine naheliegendere und einfacher zu testende Sache.








 


   

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 August 2024, 15:24:08
Hallo.
Habe adresse 15 u. 16 für Systemparameter ergänzt, kannst mal checken?

15 => { cmd => "~20104647E00210FD30\x{0d}", mlen => 68 },
16 => { cmd => "~20114647E00211FD2E\x{0d}", mlen => 68 },

Hoffe die Adresse passt, 14 wäre 14 => { cmd => "~200F4647E0020FFD06\x{0d}", mlen => 68 }, + 1 dazu dann bei 15 u. 16.

Die Frage wäre, ob Master in Gruppe 2 auch mit Adresse 2 beginnt, oder jetzt mit 1 . Kannst du das mit BatteryView auslesen?

[edit] @ DS_Starter
habe modul auf 16 Einheiten angepasst , kannst du es checken?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 August 2024, 21:55:15
@satprofi, danke für die Erweiterung.
Ich habe es gegengecheckt und zwei/drei Korrekturen in den Checksummen vorgenommen wo du dich nach meiner Berechnung vertan hattest.
Ist eingecheckt und als neue Version morgen früh im Update.

Grüße,
Heiko
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 22 August 2024, 22:18:24
Echt? Trotzdem danke.
Jetzt wär noch interessant mit welcher adresse modul 1 in gruppe 2 angesprochen wird.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 22 August 2024, 22:24:09
ZitatJetzt wär noch interessant mit welcher adresse modul 1 in gruppe 2 angesprochen wird.
Ja, das muß ich mir noch anschauen. Ist aber heute zu spät dafür geworden.

Gleich im ersten Block war z.B. ein Fehler drin:

 15 => { cmd => "~20104693E00210FD2E\x{0d}", mlen => 52 },
 16 => { cmd => "~20114693E00211FD2D\x{0d}", mlen => 52 },

geändert in

 15 => { cmd => "~20104693E00210FD2F\x{0d}", mlen => 52 },
 16 => { cmd => "~20114693E00211FD2D\x{0d}", mlen => 52 },

War noch 1 oder zwei Stellen. Kann ich halt nicht testen, habe nicht so viele Batterien.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 03:26:45
Danke für die rasche Änderung. Im Vorfeld habe ich erst mal probiert, die bisherige Version vollständig mit allen Adressen zu testen. Dazu habe ich meine hintere Gruppe am CAN ausgesteckt um ein Telegramm zu erhalten. Das hatte ich gestern schon mal gemacht ohne daß groß was passiert ist. Diesmal hat es aber den kompletten LV-Hub zerlegt. Er steht jetzt auf "Internal Error", hat dies nach oben weitergemeldet und das  ESS ist auf Netzbezug gegangen. Andererseits ist es aber auch beruhigend, daß das Teil überhaupt einen Kommunikationsausfall bemerkt und darauf in einen sicheren Zustand wechselt. Aber ich muß ich jetzt schauen wie ich das mit 3 mal Piepsen usw. wieder hinkriege. Wenigstens weis ich daß die Kabel stimmen weil es so schon mal funktioniert hat. Die Pylons haben von Protokollen, Sicherungsschicht, Wiederholstrategien einfach Null Ahnung und der gesamte Datenaustausch ist irgendwie hingebastelt. Bei CAN könnte man CANOpen nehmen, bei RS485 Modbus RTU und jeder WR Hersteller wüsste was er zu tun hat. Aber CiA möchte natürlich Gebühren für die Mitgliedschaft um die Specs downloaden zu können welche nicht nur in China niemand zahlen will. Wenn dann irgendwelche Pylon spezifischen SDO oder PDO Nummern dabei rauskommen ist das trotzdem ok. Der grobe Rahmen arbeitet dann zuverlässig und für Kompabilität sind die einzelnen Hersteller oder Teilnehmer zuständig. Wahrscheinlich weis Pylontech ganz gut, daß ihr selbstgestricktes Protokoll an vielen Stellen nicht ordentlich arbeitet und rückt deshalb die Spezifikation dazu nicht wirklich raus um Nachfragen zu vermeiden.  Überhaupt würde man bei  bei CAN mit 11 bit Hardware Identifier niemals einen LV-Hub brauchen und auch mit RS485  wären 128 Batterien ohne Hub möglich wenn nur das Protokoll was taugen würde.

Das ist aber eine andere Sache. Beim durchprobieren der US5000 Adressen mit der bestehenden in Fhem eingebauten Version hat von 1 bis einschliesslich 12 alles wie erwartet funktioniert. Adressen und die gemeldeten Seriennummern stimmen mit den Aufklebern an der Frontplatte und mit den von BatteryView gemeldeten Daten überein. Das Gateway war immer an der Master Batterie auf B/RS485 eingesteckt.

Bei der Adresse 13 und 14 gibt es dann regelmässig einen Timeout. Nachfolgend ist ein Log wo man sieht, daß AnalogValue, AlarmInfo, ChargeManagementInfo zunächst noch erfolgreich gelesen werden. Gelegentlich wird dann ein anderer Abfragezyklus eingeschoben, welcher SerialNumber und ManufacturerInfo abfrägt. SerialNumber antwortet noch, aber bei ManufacturerInfo passiert der Timeout wenn die Adresse 13 oder 14 ist:



2024.08.23 02:44:21 4: pylon - start request cycle to battery number >13< at host:port 10.10.20.142:3195
2024.08.23 02:44:21 4: pylon - Cycle BlockingCall PID "2271631" with timeout "12" started
2024.08.23 02:44:21 4: pylon - retrieve battery info: analogValue
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4642E0020EFD0D
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363432453030323045464430440d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E4600B07E000E0F0CDD0CDE0CDD0CDE0CDF0CDD0CDF0CDD0CDF0CDE0CDF0CDD0CDD0CDF0CDE060B900B8B0B910B900B8F0B8B0000C101FFFF04FFFF001700EDCE0186A0E001
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30423037 45303030  ~200E4600B07E000
0x00000010 (00016)  45304630 43444430 43444530 43444430  E0F0CDD0CDE0CDD0
0x00000020 (00032)  43444530 43444630 43444430 43444630  CDE0CDF0CDD0CDF0
0x00000030 (00048)  43444430 43444630 43444530 43444630  CDD0CDF0CDE0CDF0
0x00000040 (00064)  43444430 43444430 43444630 43444530  CDD0CDD0CDF0CDE0
0x00000050 (00080)  36304239 30304238 42304239 31304239  60B900B8B0B910B9
0x00000060 (00096)  30304238 46304238 42303030 30433130  00B8F0B8B0000C10
0x00000070 (00112)  31464646 46303446 46464630 30313730  1FFFF04FFFF00170
0x00000080 (00128)  30454443 45303138 36413045 3030310d  0EDCE0186A0E001.

2024.08.23 02:44:21 4: pylon - retrieve battery info: alarmInfo
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4644E0020EFD0B
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363434453030323045464430420d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E46008044000E0F00000000000000000000000000000006000000000000000000000E00000000F089
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30383034 34303030  ~200E46008044000
0x00000010 (00016)  45304630 30303030 30303030 30303030  E0F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45303030 30303030  00000000E0000000
0x00000050 (00080)  30463038 390d                        0F089.

2024.08.23 02:44:21 5: pylon - Alarminfo - Status 1 alarm: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 2 Info: 0E
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 3 Info: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 4 alarm: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 5 alarm: 00

2024.08.23 02:44:21 4: pylon - retrieve battery info: chargeManagmentInfo
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4692E0020EFD08
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363932453030323045464430380d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E4600B0140ED002AFC80320FCE0C0F905
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30423031 34304544  ~200E4600B0140ED
0x00000010 (00016)  30303241 46433830 33323046 43453043  002AFC80320FCE0C
0x00000020 (00032)  30463930 350d                        0F905.

2024.08.23 02:44:21 4: pylon - Socket/Connection to the RS485 gateway was closed
2024.08.23 02:44:21 4: pylon - got data from battery number >13< successfully

2024.08.23 02:44:26 4: pylon - start request cycle to battery number >13< at host:port 10.10.20.142:3195
2024.08.23 02:44:26 4: pylon - Cycle BlockingCall PID "2271634" with timeout "12" started
2024.08.23 02:44:26 4: pylon - retrieve battery info: serialNumber
2024.08.23 02:44:26 4: pylon - request command (ASCII): ~200E4693E0020EFD07
2024.08.23 02:44:26 5: pylon - request command (HEX): 7e3230304534363933453030323045464430370d
2024.08.23 02:44:26 5: pylon - data returned raw: ~200E4600C0220E59323230393037433530313033333534F6AB
2024.08.23 02:44:26 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30433032 32304535  ~200E4600C0220E5
0x00000010 (00016)  39333233 32333033 39333033 37343333  9323230393037433
0x00000020 (00032)  35333033 31333033 33333333 35333446  530313033333534F
0x00000030 (00048)  3641420d                             6AB.

2024.08.23 02:44:26 4: pylon - retrieve battery info: manufacturerInfo
2024.08.23 02:44:26 4: pylon - request command (ASCII): ~200E46510000FD8F
2024.08.23 02:44:26 5: pylon - request command (HEX): 7e323030453436353130303030464438460d
2024.08.23 02:44:26 3: pylon - Timeout reading data from battery
2024.08.23 02:44:26 4: pylon - Socket/Connection to the RS485 gateway was closed





Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 07:28:19
Jetzt wo du es erwähnst, auch ich habe manchmal bei modul 11 u. 12 leere abfragen, sah ich schon öfters durch zufall. Ich frage sogar nur alle 60sec. ab.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 08:29:50
ZitatSerialNumber antwortet noch, aber bei ManufacturerInfo passiert der Timeout wenn die Adresse 13 oder 14 ist
Danke für die Info. Evtl. ist auch da was mit der Checksum. Ich checke das nochmal nach.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 08:41:43
Den 5 Sek Abfragezklus habe ich soweit runtergestellt, daß man am Oszi den Trigger schneller einstellen kann und auch früher was sieht. Später reichen natürlich weniger Abfragen. Mein LV-Hub hat sich erstaunlich gehalten. Nach dem Einstecken des CAN Kabels neu gebootet und er hat die beiden Gruppen dann klaglos wieder eingebucht. Letztes Mal ging anstelle des internen Fehlers einfach die Anzahl der gemeldeten Batterien von 32 auf 16 zurück und das ESS lief weiter. Diesmal hat es mit Low Battery abgeschaltet weil neben einem "internen Fehler" auch 0V Spannung gemeldet wurde. Die DC Spannung auf dem Bus hat natürlich weiter angestanden und keine der Batterien ging auf Fehler oder musste neu gebootet werden.

Hier noch mal ein Anhang mit meinem LV_Hub Manual zum Vergleich mit der von @satprofi bei Victron verlinkten Version.
Es ist typisch für die übliche Qualität der Pylontech Dokus: Das Deckblatt mit Dokumentenname und Versionnummer ist vollständig identisch.
Vergleicht man aber die Seiten 7, 8 und 9 so gibt es Unterschiede. Für Kapitel 3.3 hat der Text plötzlich einen anderen Seitenumbruch
Der zum Betrieb des LV Hub alles entscheidende Hinweis, daß 3 Adern bei einem Kabel unterbrochen sein müssen fehlt in einer Version.
Würde kein Mensch merken wenn bei jedem LV Hub so ein Anschlusskabel mitgeliefert würde. Wird es aber leider nicht und der Käufer rätselt dann bis er graue Haare kriegt.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 09:17:17
@Janvi,

an deinem Protokoll ist mir gerade etwas aufgefallen

Zitat2024.08.23 02:44:21 4: pylon - start request cycle to battery number >13< at host:port 10.10.20.142:3195
2024.08.23 02:44:21 4: pylon - Cycle BlockingCall PID "2271631" with timeout "12" started
2024.08.23 02:44:21 4: pylon - retrieve battery info: analogValue
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4642E0020EFD0D
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363432453030323045464430440d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E4600B07E000E0F0CDD0CDE0CDD0CDE0CDF0CDD0CDF0CDD0CDF0CDE0CDF0CDD0CDD0CDF0CDE060B900B8B0B910B900B8F0B8B0000C101FFFF04FFFF001700EDCE0186A0E001
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30423037 45303030  ~200E4600B07E000
0x00000010 (00016)  45304630 43444430 43444530 43444430  E0F0CDD0CDE0CDD0
0x00000020 (00032)  43444530 43444630 43444430 43444630  CDE0CDF0CDD0CDF0
0x00000030 (00048)  43444430 43444630 43444530 43444630  CDD0CDF0CDE0CDF0
0x00000040 (00064)  43444430 43444430 43444630 43444530  CDD0CDD0CDF0CDE0
0x00000050 (00080)  36304239 30304238 42304239 31304239  60B900B8B0B910B9
0x00000060 (00096)  30304238 46304238 42303030 30433130  00B8F0B8B0000C10
0x00000070 (00112)  31464646 46303446 46464630 30313730  1FFFF04FFFF00170
0x00000080 (00128)  30454443 45303138 36413045 3030310d  0EDCE0186A0E001.

2024.08.23 02:44:21 4: pylon - retrieve battery info: alarmInfo
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4644E0020EFD0B
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363434453030323045464430420d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E46008044000E0F00000000000000000000000000000006000000000000000000000E00000000F089
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30383034 34303030  ~200E46008044000
0x00000010 (00016)  45304630 30303030 30303030 30303030  E0F0000000000000
0x00000020 (00032)  30303030 30303030 30303030 30303030  0000000000000000
0x00000030 (00048)  30303630 30303030 30303030 30303030  0060000000000000
0x00000040 (00064)  30303030 30303030 45303030 30303030  00000000E0000000
0x00000050 (00080)  30463038 390d                        0F089.

2024.08.23 02:44:21 5: pylon - Alarminfo - Status 1 alarm: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 2 Info: 0E
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 3 Info: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 4 alarm: 00
2024.08.23 02:44:21 5: pylon - Alarminfo - Status 5 alarm: 00

2024.08.23 02:44:21 4: pylon - retrieve battery info: chargeManagmentInfo
2024.08.23 02:44:21 4: pylon - request command (ASCII): ~200E4692E0020EFD08
2024.08.23 02:44:21 5: pylon - request command (HEX): 7e3230304534363932453030323045464430380d
2024.08.23 02:44:21 5: pylon - data returned raw: ~200E4600B0140ED002AFC80320FCE0C0F905
2024.08.23 02:44:21 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30423031 34304544  ~200E4600B0140ED
0x00000010 (00016)  30303241 46433830 33323046 43453043  002AFC80320FCE0C
0x00000020 (00032)  30463930 350d                        0F905.

2024.08.23 02:44:21 4: pylon - Socket/Connection to the RS485 gateway was closed
2024.08.23 02:44:21 4: pylon - got data from battery number >13< successfully

2024.08.23 02:44:26 4: pylon - start request cycle to battery number >13< at host:port 10.10.20.142:3195
2024.08.23 02:44:26 4: pylon - Cycle BlockingCall PID "2271634" with timeout "12" started
2024.08.23 02:44:26 4: pylon - retrieve battery info: serialNumber
2024.08.23 02:44:26 4: pylon - request command (ASCII): ~200E4693E0020EFD07
2024.08.23 02:44:26 5: pylon - request command (HEX): 7e3230304534363933453030323045464430370d
2024.08.23 02:44:26 5: pylon - data returned raw: ~200E4600C0220E59323230393037433530313033333534F6AB
2024.08.23 02:44:26 5: pylon - data returned:
0x00000000 (00000)  7e323030 45343630 30433032 32304535  ~200E4600C0220E5
0x00000010 (00016)  39333233 32333033 39333033 37343333  9323230393037433
0x00000020 (00032)  35333033 31333033 33333333 35333446  530313033333534F
0x00000030 (00048)  3641420d                             6AB.

2024.08.23 02:44:26 4: pylon - retrieve battery info: manufacturerInfo
2024.08.23 02:44:26 4: pylon - request command (ASCII): ~200E46510000FD8F
2024.08.23 02:44:26 5: pylon - request command (HEX): 7e323030453436353130303030464438460d
2024.08.23 02:44:26 3: pylon - Timeout reading data from battery
2024.08.23 02:44:26 4: pylon - Socket/Connection to the RS485 gateway was closed

Die Adressen sind jeweils "13", müsste im zweiten Fall aber wohl "14" sein. Hast du das Device richtig definiert?

EDIT: Vergiß es. Verständnisproblem bei mir. Es ist nur dein 5s Abfrageintervall wie es aussieht.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 10:18:10
Zitat von: DS_Starter am 23 August 2024, 08:29:50
ZitatSerialNumber antwortet noch, aber bei ManufacturerInfo passiert der Timeout wenn die Adresse 13 oder 14 ist
Danke für die Info. Evtl. ist auch da was mit der Checksum. Ich checke das nochmal nach.

Hallo Kollegen.
Habe gerade nochmals das RS485 Protokoll 3.3 vor mir, und da steht das max. 12 Module pro Gruppe addressierbar sind.
Punkt 2.5.3
Haben wir hier ein Problem?
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 10:58:16
Vielleicht, vielleicht auch nicht. Das Dokument ist schon von 2018. Ich bin mir sicher dass es Weiterentwicklungen bei Pylon gegeben hat. Aber etwas neueres kenne ich nicht und wollte man mir nicht geben.
Andererseits funktioniert ja die Abfrage der Adresse Batterie "13" bei Janvi prinzipiell wie man anhand seines ersten Calls im Protokoll sieht.
Schwer zu sagen m.M. nach.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 11:52:45
ja, stimmt. aber welche FW habt ihr drauf?
ich habe hier 2 Kxxxxxxx die mir trotz ,2 led nur 10% ausgeben
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 12:19:59
Meine US3000C haben folgende FW-Stände (in der Reihenfolge):

V1.7   (Master)
V1.8
V1.8
V1.7
V1.7
V1.4
V1.4
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 13:06:56
Wie du in meinem BatteryView Screendump siehst, ist es V1.3 bei einer US5000 und bei allen Exemplaren gleich. Es gibt auch eine US5000B mit DC Sicherung (B für Breaker) welche sich sonst nicht unterscheiden dürfte. US5000C gibt es im Gegensatz zu 2/3000C nicht, obwohl dies sogar zeitweise bei Pylontech auftaucht. Die Versionsnummer hat aber glaube ich wenig zu sagen weil Pylontech bei der US5000 und evlt. auch bei der 2/3000 irgendwann den uC auf einen Cortex M4 umgestellt hat. Vielleicht steht das C ja auch für Cortex uC? Das sind deshalb zumindest anders compilierte Quellen und vermutlich zwischenzeitlich auch getrennt gepflegte Versionen soweit FW für den älteren uC überhaupt noch gepflegt wird. Soweit ich mitgekriegt habe, ist das auch einer der Gründe warum Pylontech die Endanwender nicht auf FW Updates loslässt. Man könnte das File für den falschen uC haben. Dann ist die Batterie ein Garantiefall weil der Kunde selbst kein JTAG Kabel hat. Vermutlich ist also nur die Protokollversion ausschlaggebend.

Die Begrenzung auf weniger als 16 ist natürlich ein Rätsel was aber damit zusammenhängen könnte, ob die Master Batterie nach oben über CAN oder RS485 angebunden ist. Im letzteren Fall hätte der Master die Adresse 2 und mit einer 4 bit Adressierung würde das dann nicht bis 16 reichen. Im LV-Hub Manual sind da ja auch Beschreibungen mit maximal 8 pro Gruppe was dann vielleicht mal auf 12 aufgebohrt wurde. Wie bei Microsoft auch als die die PCs von maximal 640kbyte auf 1Mbyte aufgebohrt haben. Mehr braucht ja sowieso niemand.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 13:35:35
Habs herausgefunden, im neuen manual

2) multi group, group 3, slave 6;
n = 7; m = 3
ADR = 0x07 + 0x10*3 = 0x37; INFO of COMMAND = ADR = 0x37

Also Master auch wieder 2

@ Janvi
Du liest nur aus wenn du den hub trennst, oder? Es könnte sein , das die Adresse auf 12 ,13,usw. angepasst gehört wenn hub verbunden. Aber du hast ja keine möglichkeit mit rs485 kabel, oder?
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 14:51:12
Ja, momentan abgetrennter LV-Hub zum Fhem ausprobieren. Einzelne 16er Gruppe ganz ohne Anbindung der Masterbatterie nach oben oder mit CAN Anbindung zu einem CerboGX. Das ist ja auch ein Spezialkabel Victron Typ-A. Einen RS485 Master (WR) habe ich leider nicht. Ausser dem Waveshare.

Mit angestecktem LV-Hub kommt gar keine Antwort. Gar nirgends gar nie. Aus diesem Grund hats bei mir am Anfang auch so lange gedauert bis irgendwas ging. Vielleicht finden wir da auch noch raus warum.

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 15:26:52
Könntest du über HUB Batterien ansprechen?
Wenn ja, dann definiere testweise nur 12 für erste Master. Natürlich gruppe 1 gejumpert.
Du müsstest das Kabel ja auftrennen für parallel verwendung (CAN u. RS485), oder?
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 16:41:20
Zitat von: satprofi am 23 August 2024, 15:26:52Könntest du über HUB Batterien ansprechen?

Bislang funktioniert mit Hub ja gar nichts auf der RS485.
Auf den 8 Buchsen des Hubs selbst habe ich noch nicht probiert.
Die sternförmige Verbindung des Hubs mit den Batterien über RS485 habe ich auch noch nicht probiert.
Du meinst ich soll anstelle 2 Gruppe a 16 Stück doch 3 Gruppen mit 12 + 12 + 8 Stück einbuchen?

Das aufgetrennte Kabel kann ich gegen später mal probieren wenn ich das ESS dazu ausschalten kann.
Beiliegend habe ich zur weiteren Verwirrung mal ein Schaltbild meines momentanen Aufbaus gemacht.
 

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 23 August 2024, 20:07:12
Hallo.
Deine Verdrahtung passt ja fast mit LV Manual, wobei du aber bei master 1 falsch gejumpert hast. Auch rs485 dürfte nicht passen, da du ja dazwischen erst abfrägst.
Ich würde rs485 beim Hub-in abfragen, also kabel zw. Master 1 und Hub auftrennen und dort rs485 zu waveshare oder evt. am port 0 zu can-in.

Noch was, lt. Manual sollte kabel zu can-in voll beschalten sein, erst zu ext. Rechner 1,2,3 offen. Wenn ich es richtig interpretiere
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 21:53:07
Morgen früh gibt es ein weiteres Update.
In Vorbereitung der Gruppenintegration ist der Aufbau der Kommandos vereinfacht, insbesondere wird die Checksumme durch das Modul automatisch berechnet sowie Kommando-Präfix und Suffix im Code hinzugefügt. Diese Änderungen merkt man als User nicht, sind aber für die weitere Entwicklung wichtig/hilfreich.

@satprofi, der Aufbau der statischen Kommandohashes ist vereinfacht / reduziert.

EDIT: Wer will ... die V liegt auch in meinem contrib zum sofortigen Download
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 22:54:37
Von mir gibt es heute schon ein kleines Update mit einem kleinen Erfolg.

1) Den Dip Schalter am Master 1 habe ich umgezeichnet wie er tatsächlich steht. Ich bewzeifle aber daß dies ein relevanter CAN Terminierungswiderstand ist wie es im Manual steht. An anderen Stellen wie etwa dem LV-Hub Manual ist dieser Schalter als Teil der RS485 Adresse beschrieben. Vermutlich ist er im CAN Betrieb Dont-Care.

2) Die letzte Version des Verdrahtungsplans hatte einen Fehler mit verdrehten Farben am Waveshare Gateway.  Im Zeichnungskopf wurde dazu die Verwendung des Farbschemas EIA568-B vermerkt. Das ist zwar normalerweise eher in USA und Asien als in Europa gebräuchlich. Käufliche Patchkabel kommen aber meist  aus China benutzen dann üblicherweise diese Farben.

3) Der LV-Hub läuft jetzt zusammen mit FHEM. Zwischen Master Gruppe N und Master Gruppe 1 habe ich dazu ein schaltbares Experimentierkabel gebastelt. Es scheint so, also ob Pylontech so etwas wie einen Enable Eingang auf den Pins 1,2 und 3 hat, über welche der Nachbar die RS485 Kommunikation des Vorgängers abstellen kann. Für die Lieferung eines Antworttelegramms auf die Anfrage von Fhem ist nicht das Auftrennen der RS485 Adern sondern vor allem der als Control eingezeichneten Adern auf den Pins 1,2 und 3 zuständig. Da bin ich rein zufällig drübergestolpert. Diese Stelle hat mich am Anfang maßgeblich blockiert. Sie funktioniert jetzt plötzlich. Ich werde morgen noch mal probieren, welche der einzelnen Adern für die Funktion förderlich bzw. hinderlich sind. Rein empirisch ohne das dann verstehen zu müssen.

4) Das Problem mit den Adressen 13 und 14 bleibt leider weiterhin. Immerhin kann ich jetzt schon 12 meiner 32 Batterien im Betrieb ansehen. Sobald klar ist, welche Adern für die Funktion der Verbindung maßgebend sind, werde ich ein weiteres unterbrochenes Kabel löten und die gleichen Versuche zwsichen Gruppe 1 und LV-Hub machen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 23 August 2024, 23:04:38
Herzlichen Glückwunsch :)
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 23 August 2024, 23:23:17
Oh nein, leider schnallt der LV-Hub nach rund 10 Minuten daß irgendwas faul ist und geht auf internen Fehler. Als Folge davon werden dem Inverter 0V Batteriespannung gemeldet worauf das ESS abschaltet.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 August 2024, 07:45:02
Ich versteh immer noch nicht wieso du mit waveshare auf gruppe 2 steckst, statt gruppe 1.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 24 August 2024, 10:30:54
Auf Gruppe 1 ist die B/RS485 Buchse belegt und ich habe noch kein passendes Kabel zum Ausprobieren.
Ausserdem vermute ich, daß an beiden Gruppen die gleichen Probleme auftauchen.
Die RS485 Leitungen sind durchgehend genau die gleichen Leitungen. Wer soll da antworten? Das tut niemand weil es mit den Pin1,2,3 blockiert ist.
Momentan bin ich am Reverse Engineering der Steuerpins 1,2,3. Da sind insgesamt 4 Dioden drin und die machen einzigen Unterschied zwischen A/CAN und B/RS485. Auf den Link0/1 Buchsen gibt es hingegen nur 2 Dioden zusätzlich zum CAN. Vielleicht kann man die Konstruktion doch noch ergründen.

Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 24 August 2024, 10:41:09
Ich habe das Modul um ein Gruppenmanagement erweitert.
Es kann im Define group=0 (ist eigentlich der Standard 'single group') bis group=7 angegeben werden.
Dazu ist einfach ein Schlüssel hinzugekommen, z.B.:

 define Pylone1 PylonLowVoltage 192.168.2.86:9000 1 group=0

Die Version ist eingecheckt, aber liegt auch in meinem contrib zum Download falls ihr schon probieren möchtet. Restart nicht vergessen!

Inzwischen glaube ich tatsächlich dass es eine Beschränkung auf max. 12 Batterien (inkl. Master) in einer Gruppe gibt, so wie es in der Protokolldoku beschrieben ist.
Wenn sich die Erkenntnis erhärtet, muss ich die Adressierung im Modul entsprechend begrenzen und dokumentieren.

LG
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 August 2024, 10:47:18
Hallo.
Ich würde Punkt 5 des US5000 Manuals nochmals durchgehen, unabhängig von FHEM.  Wenn du das zum laufen bringst, würd ich dann versuchen über RS485 der 1. Gruppe (Kabel auftrennen) abzufragen. evt. auch mit batteryview schauen ob du alle deine Pylons siehst. Evt. dies  (http://www.multisibcontrol.net/)ausprobieren
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 August 2024, 10:59:52
Zitat von: DS_Starter am 24 August 2024, 10:41:09Ich habe das Modul um ein Gruppenmanagement erweitert.
Es kann im Define group=0 (ist eigentlich der Standard 'single group') bis group=7 angegeben werden.
Dazu ist einfach ein Schlüssel hinzugekommen, z.B.:

 
define Pylone1 PylonLowVoltage 192.168.2.86:9000 1 group=0

Die Version ist eingecheckt, aber liegt auch in meinem contrib zum Download falls ihr schon probieren möchtet. Restart nicht vergessen!

Inzwischen glaube ich tatsächlich dass es eine Beschränkung auf max. 12 Batterien (inkl. Master) in einer Gruppe gibt, so wie es in der Protokolldoku beschrieben ist.
Wenn sich die Erkenntnis erhärtet, muss ich die Adressierung im Modul entsprechend begrenzen und dokumentieren.

LG

Danke.
Aber lt. Manual dürften 16 in einer Gruppe sein, egal ob US3000 od. US5000. Wichtig ist nur die Schritte mit den Dipschalter unter Punkt 5 einzuhalten, also erst alles auf 0 dann einschalten, warten bis alle eingebunden, dann erst Adressierung, etc.
Leider kann ich nicht testen da US2000B+ einen Hub benötigen, alle C klappen auch ohne Hub.
Manual US3000  (https://lichtex.de/mediafiles/Dokumente/PylonTech/Lithium%20Speichersystem%20US2000C_US3000C%20/US3000C_Bedienungsanleitung_DE_V1.3.pdf) 
 Manual US2000B+ (https://midsummerwholesale.co.uk/pdfs/pylon-us2000b-plus-v2-manual.pdf)
Manual US2000C (https://atersa.shop/app/uploads/2021/03/US2000C-Product-Manual-V1.0-20CPSV0901-.pdf?srsltid=AfmBOoqjKIBITdbn_LmbFc0IESm5gi6yBQNOLoVuB4HBh9Is1feUau4o)
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 24 August 2024, 11:03:14
Ja dürfen 16 in einer Gruppe sein, nur ist fraglich ob via RS485 auch alle abgefragt werden können. Da habe ich momentan Zweifel weil die Protokolldoku die entsprechende Aussage trifft.
Werden wir sehen denke ich. Deswegen habe ich auch noch nichts beschnitten.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 August 2024, 11:06:19
Zitat von: DS_Starter am 24 August 2024, 11:03:14Ja dürfen 16 in einer Gruppe sein, nur ist fraglich ob via RS485 auch alle abgefragt werden können. Da habe ich momentan Zweifel weil die Protokolldoku die entsprechende Aussage trifft.
Werden wir sehen denke ich. Deswegen habe ich auch noch nichts beschnitten.
Vielleicht deshalb , weil User Janvi ja von "Rückseite" abfrägst.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 24 August 2024, 11:11:04
Zitat von: Janvi am 24 August 2024, 10:30:54Auf Gruppe 1 ist die B/RS485 Buchse belegt und ich habe noch kein passendes Kabel zum Ausprobieren.
Ausserdem vermute ich, daß an beiden Gruppen die gleichen Probleme auftauchen.
Die RS485 Leitungen sind durchgehend genau die gleichen Leitungen. Wer soll da antworten? Das tut niemand weil es mit den Pin1,2,3 blockiert ist.
Momentan bin ich am Reverse Engineering der Steuerpins 1,2,3. Da sind insgesamt 4 Dioden drin und die machen einzigen Unterschied zwischen A/CAN und B/RS485. Auf den Link0/1 Buchsen gibt es hingegen nur 2 Dioden zusätzlich zum CAN. Vielleicht kann man die Konstruktion doch noch ergründen.


Hallo.
Gruppe 2 darf dipschalter 2 nicht on stehen, lt. Manual. Hast du so eingezeichnet.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 24 August 2024, 12:41:27
Zunächst hatte ich die Gruppe N komplett abgetrennt um irgendeine Kommunikation zu bekommen. Das hat also nichts mit der Abfrage von der Rückseite her zu tun.

Die mutmassliche Geschichte von Pylontech ist die: Pylon ist ein Hersteller von Batteriezellen. D.h. sie machen diese selbst und kaufen sie nicht von EVE oder BYD oder sonstwo zu. Um am Markt anzukommen, wollten sie nicht nur Zellen sondern ganze Racks in die Wertschöpfung aufnehmen. Hierzu waren aber andere Kompetenzen erforderlich welche sie nicht hatten. Schliesslich fand sich ein chinesischer Frickler, welcher mit einem uC ein BMS basteln konnte. Der uC hatte zwei serielle und eine CAN Schnittstelle. Über die CAN Schnittstelle wurde der interne Link einer Gruppe realisiert wie der bis heute noch besteht. Über die serielle Schnittstelle wurde die Console und die RS485 zum Anbinden eines WR gemacht. Das waren die Modelle US2000 und US3000. Dummerweise hat bei Pylontech aber noch nie jemand etwas über die Transportschichten des OSI Modells (https://de.wikipedia.org/wiki/OSI-Modell) gehört. Das selbstgefrickelte RS485 Protokoll hatte deshalb nicht einmal annähernd die Funktionalitäten von Modbus oder gar Sunspec. Tatsächlich ist die RS485 in der Pylon Ausführung ein Punkt zu Punkt Protokoll. Ein Wechselrichter kommuniziert mit der Masterbatterie welche die Aggregation macht. Der WR kann nicht mit den Slave Batterien kommunizieren, für welche die Adressen im Request Telegramm eigentlich gedacht sind. Die Antwort darauf wird immer von der Master Batterie verschickt. Um dieses Manko zu beheben, wurde ein LV-Hub erfunden. Das RS485 Protokoll beschränkt sich dabei warum auch immer auf 8 Batterien (lt Hub Manual) wobei tatsächlich im Protokoll 12 beschrieben sind und 12,5 tasächlich funktionieren.

Nachdem dieser Ansatz auch mit Hub auf 6x8=40 Batterien als Sackgasse erkannt wurde, kam ein Redesign des BMS. Da hat man dann einen Cortex M4 mit zwei CAN Schnittstellen genommen. Die US2/3000 C oder B+ Modelle waren baugleich mit der US5000 geboren. Die zusätzliche CAN Schnittstelle konnte jetzt alternativ zur Kommunikation mit einer übergeordneten Steuerung (WR oder HUB) genommen werden. Um keine zusätzlichen Buchsen in den bereits gefertigten Frontplatten zu benötigen, wurden die noch freien Pins auf der gleichen Buchse benutzt weil ja sowieso immer nur eine Schnittstellenart benutzt wird. Der Massepin wurde dabei von pin 2 auf pin 6 verlegt um in der Mitte von CAN und RS485 zu liegen und von beiden gleichermassen benutzt werden zu können. Der Pin2 hat eine neue Funktion erhalten damit man irgendwie angeben kann ob RS485 oder CAN benutzt werden soll.

Fhem spricht nun Batteriegruppen mit RS485 an, welche nach oben mit CAN angebunden sind. Das funktioniert, aber nur, solange das RS485 Protokoll nicht über die noch zu ergründenden Steuerpins abgestellt werden. Es funktioniert auch nur bis 8 bzw. 12 Batterien in einer Gruppe wie es ursprünglich gedacht war.

Alles nur Vermutungen für diese Geschichte. Wenn man auf der Pylon Webseite aber die neuen Produkte für den Heimspeicher anschaut, passt dies ins Bild. Man möchte hohe Gewinne einfahren indem die Wertschöpfungskette erweitert wird. Der neue Heimspeicher hat einen WR drin. Nur noch AC Ausgang und DC Moduleingänge. Eine rundum sorglos Blackbox für den deutschen Käufer. Der hat sich gefälligst auch nicht dafür zu interessieren wie die Bits in den Protokollen funktionieren.

Edit: Die Geschichte passt auch fasst zu den Typ A und Typ B Kabeln von Victron. Typ B ist für US2000 und US3000 und hat die Masse auf pin 2, Typ A ist für US2000C und US3000C und hat Masse auf pin 6.
Folglich konnten also auch die alten BMS Versionen schon zwei CAN was aber auch welchen Gründen auch immer nicht richtig funktioniert hatte weshalb dazu die 3 Steuerpins eingeführt wurden.
https://www.victronenergy.com/live/battery_compatibility:can-bus_bms-cable#introduction

 
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 August 2024, 11:32:10
Ich habe mich etwas mit den möglichen Timeouts beschäftigt.
Grundsätzlich haben wir das Thema, dass es im System 1-N PylonLowVoltage Devices gibt. Jedes dieser Devices kommuniziert mit dem gleichen Gateway. Wird eine laufende Kommunikation mit dem Gateway des einen Devices unterbrochen indem ein anderes Devices seine Kommunikation startet, führt das unweigerlich zu entsprechenden Fehlern.
Das Modul fängt diese Fehler ab. Im allgemeinen haben wir eine relativ geringe Anzahl an Batterien und dementsprechende Devices. Wird die Anzahl aber signifikant hoch, kann man das Thema nicht mehr vernachlässigen.

Ich habe eine neue Version erstellt und eingecheckt bzw. auch in mein contrib zum Test gestellt.

In dieser Version habe ich eine Methode eingeführt, die eine Kommunikation zwischen den Devices im System ermöglicht und ein "reingrätschen" in eine laufende Gateway Session verhindert. Zu einem späteren Zeitpunkt könnte ich mir auch die Einführung eines Dispatcher Devices vorstellen, über das ausschließlich die Kommunikation zwischen FHEM und dem Gateway geführt wird. Das wäre dann der beste Weg, braucht aber noch etwas Designarbeit.

Weiterhin gibt es ein Attribut "waitTimeBetweenRS485Cmd". Zur Zeit werden alle RS485 Kommandos nacheinander ohne Pause dazwischen ausgeführt. In einem aktuellen US5000 Bedienungsanleitung (von Effekta) steht auf Seite 36 geschrieben, dass bei Verwendung von RS485 eine Pause >= 1s einzulegen ist. Das trifft auch auf andere Batterien (US3000) zu.
Das verschärft die Timeout Thematik noch mehr und führt im FHEM Kontext auch zu evtl. Blockierungszuständen was natürlich nicht passieren darf.
Deshalb gibt es jetzt das Verfahren, dass man bei einem eingestellten Timeout von >= 1s auch die Wartezeit zwischen Befehlen von nun 0.1s (default) auf bis zu 2 Sekunden erhöhen kann. Je nach Anzahl der Batterien kann es zu Postponed-Situationen kommen, die aber nicht die Funktion behindern und sequentiell abgearbeitet werden.

Zur Verdeutlichung ein Auszug aus dem Event-Monitor:

2024-08-25 11:01:00.852 PylonLowVoltage Pylon7 cycle postponed due to active gateway connection of Pylon3
2024-08-25 11:01:00.852 PylonLowVoltage Pylon7 nextCycletime: 11:01:01
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 averageCellVolt: 3.369
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 nextCycletime: 11:01:12
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 packPower: 424.52
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 packVolt: 50.538
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 packCurrent: 8.400
2024-08-25 11:01:00.862 PylonLowVoltage Pylon3 connected
2024-08-25 11:01:01.999 PylonLowVoltage Pylon7 cycle postponed due to active gateway connection of Pylon1
2024-08-25 11:01:01.999 PylonLowVoltage Pylon7 nextCycletime: 11:01:02
2024-08-25 11:01:02.984 PylonLowVoltage Pylon7 nextCycletime: 11:01:03
2024-08-25 11:01:02.984 PylonLowVoltage Pylon7 cycle postponed due to active gateway connection of Pylon1
2024-08-25 11:01:03.989 PylonLowVoltage Pylon7 nextCycletime: 11:01:04
2024-08-25 11:01:03.989 PylonLowVoltage Pylon7 cycle postponed due to active gateway connection of Pylon1
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 packPower: 313.34
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 packVolt: 50.538
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 packCurrent: 6.200
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 connected
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 averageCellVolt: 3.369
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 nextCycletime: 11:01:10
2024-08-25 11:01:04.074 PylonLowVoltage Pylon1 packImbalance: 0.148
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 averageCellVolt: 3.369
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 packImbalance: 0.059
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 nextCycletime: 11:01:16
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 packVolt: 50.538
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 packPower: 328.50
2024-08-25 11:01:05.584 PylonLowVoltage Pylon7 connected
 

Bzw. einem verbose 4 Log:

2024.08.25 11:02:06.449 4: Pylon1 - another Gateway Call from Pylon7 with PID "579554" is already running ... start Update postponed
2024.08.25 11:02:07.450 4: Pylon1 - START request cycle to battery number >1<, group >0< at host:port 192.168.2.86:9000
2024.08.25 11:02:07.456 4: Pylon1 - Cycle BlockingCall PID "579557" started with battery read timeout: >1.5<, blocking timeout >9<
2024.08.25 11:02:07.474 4: Pylon1 - used wait time between RS485 commands: 0.5 seconds
2024.08.25 11:02:07.481 4: Pylon1 - retrieve battery info: analogValue
2024.08.25 11:02:07.481 4: Pylon1 - request command (ASCII): ~20024642E00202FD33
2024.08.25 11:02:07.999 4: Pylon1 - retrieve battery info: alarmInfo
2024.08.25 11:02:07.999 4: Pylon1 - request command (ASCII): ~20024644E00202FD31
2024.08.25 11:02:08.518 4: Pylon1 - retrieve battery info: chargeManagmentInfo
2024.08.25 11:02:08.519 4: Pylon1 - request command (ASCII): ~20024692E00202FD2E
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 25 August 2024, 12:42:37
Danke.
Noch ein vorschlag, man müsste ja nur systemparameter abfragen. SerialNr, Softwarestand, protokoll ist ja nur bei defination wichtig, danach ändert sich das nie mehr.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 August 2024, 13:30:55
ZitatSerialNr, Softwarestand, protokoll ist ja nur bei defination wichtig, danach ändert sich das nie mehr.
Bedingt.
Wenn der User eine neue Batterie als Master reinschiebt, ändern sich alle Adressen und damit Seriennummern, FW-Stände usw.
Das gleiche passiert wenn die Adresse im Device geändert wird und es gibt mit Sicherheit weitere Situationen wo sich Änderungen ergeben.
Diese statischen Parameter rufe ich z.Zt. nicht öfter als alle 60s ab. Den Zeitraum kann ich auch gerne uf z.B. 5 Minuten ändern. Ganz eliminieren möchte ich den Abruf aus diesen Gründen nicht. 
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 25 August 2024, 14:35:41
Nachdem ich mir den Sonntag mit den Pylons verdorben habe, beiliegend ein Schaltbild der A/CAN B/RS485 Belegung welche insgesamt 5 Dioden auf 3 Steuerleitungen enthält. Diese haben offensichtlich eine Funktion welche Pylontech selbst nicht so genau weis, weshalb die Nachträge im LV-Hub Manual zum Auftrennen der pins 1-3 erforderlich waren.

Es gibt folgende Erkentisse:

1) Stack N arbeitet in vorliegender Konfiguration mit CAN und RS485 gleichzeitig, wenn pin 2 (or) an der Verbindung zwischen Master N und Master 1 aufgetrennt ist. Beim Auftrennen aller Steuerpins 1-3 steigt der Hub irgendwann aus.

Unabhängig davon, daß über den Link-Can bis zu 16 Racks verbunden werden können, sind die RS485 Telegramme bei US5000 und US2/3000C auf die Adressen 1-12 und bei US2/3000 ohne C auf 1-8 begrenzt. Dies entspricht auch der RS485 Protokollbeschreibung.

Unabhängig vom DIP Schalter meldet auch BatteryView immer die Batterieadressen 1 bis 16 ohne Gruppenadresse. Es ist derzeit nicht bekannt, ob das Nibble für die Gruppenadresse dabei eventuell ausgeblendet wird oder ob sich die Gruppenadresse nur beim RS485 Modus des Hubs ändert.

2) Stack 1 arbeitet in vorliegender Konfigruation mit CAN und RS485 gleichzeitig, wenn Pin 1 (ws/or) aufgetrennt wird. Die über RS485 erhaltenen Daten stammen dabei aber von Stack N. Nach einiger Zeit werden darüber hinaus vom Hub 16 Batterien ausgebucht, während die LEDs am Hub weiterhin 2 angeschlossene Stacks anzeigen. Welcher der beiden 16er Gruppen noch weiter nach oben gemeldet wird, ist momentan unbekannt.

Beim Wiederherstellen der Verbindung von Pin1 zwischen den beiden Stacks schaltet die Anzeige des Hubs sofort von 2 auf nur noch einen erkannten Stack um. Das ist ein klarer Fehler im Protokollentwurf welche fehlerhafte physikalische Verbindungen erkennen und korrigieren können muß.  Interessant ist dabei, daß die RS485 auf Gruppe N plötzlich trotz allen 3 geschlossenen Pins antworten kann. Vermutlich glaubt Stack N jetzt nicht mehr an einem Hub sondern an einem WR angeschlossen zu sein.

Zur Wiedereinbuchung von beiden Stacks muß die Verbindung zwischen Master Stack N und Master Stack 1 austgesteckt werden und bei beiden Geräten ein Reset gemacht werden. Ausserdem müssen recht undurchsichtigen Schritte 1 bis 7 vom Hub Manual Seite 8/14 eingehalten werden.  Diese beinhalten unter Anderem ein Abwerten von 3xPiepsen, dann Umstellen von DIP Schaltern nachdem bzw. während der Master 1 eingeschaltet ist und dann erst einstecken des an Pin1-3 aufgetrennten Kabels zum Hub.

Beide Gruppen werden aber nur dann erfolgreich am Hub wieder eingebucht, wenn die Verbindung zwischen den Mastern 1:1 inklusive RS485 ist. Ist die RS485 für das Gateway aufgetrennt, so so gehen entweder Hub oder Master 1 auf Fehler. Das ist ein Zeichen dafür, daß  über die RS485 zusätzliche nicht dokumentierte Daten zum Einbuchen am Hub ausgetauscht werden.


 3) Summa Summarum ist ein vernünftiger Betrieb der RS485 am Hub mit CAN Modus nicht möglich bzw. liefert auch mit Trickserei nur einen kleinen Teil der vorhandenen Daten.

Andererseits ist FHEM eine der wenigen Möglichkeiten Geräte herstellerübergreifend zu visualisieren. Es gibt daher 2 mittelfristige Möglichkeiten damit weiterzukommen:

a- Fhem kann die Daten irgendwo an einem CAN Gateway abgreifen. Die dort zur Verrfügung stehenden Daten sind aber weit weniger als auf RS485

b- Obwohl für die 2/3000C Modelle angegeben ist, daß man bei RS485 keinen Hub braucht, könnte ich mit meine US5000 versuchen, die in 12er Gruppen aufzuteilen und am Hub den RS485 Modus zu fahren.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 August 2024, 15:06:42
Zitata- Fhem kann die Daten irgendwo an einem CAN Gateway abgreifen.
An der Stelle bin ich raus.

Zitatb- Obwohl für die 2/3000C Modelle angegeben ist, daß man bei RS485 keinen Hub braucht, könnte ich mit meine US5000 versuchen, die in 12er Gruppen aufzuteilen und am Hub den RS485 Modus zu fahren.
Damit wären wir weiter im Spiel.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 25 August 2024, 16:50:55
Auch nach Stunden bucht der LV-Hub noch einen der beiden Gruppen unerwartet aus wenn Fhem mitläuft bzw. ein Steuerpin unterbrochen ist. Wurde diesmal sogar an den Leds richtig angezeigt. Macht also auch keinerlei Sinn und ich habe wieder zurückgesteckt. Etwa die gleiche Beobachtung wie schon gestern nur etwas später. Möglicherweise werden zusätzlich zu CAN gelegentlich noch irgenwelche Steuerdaten über RS485 zwischen den Mastern übermittelt, was dann ein Schwebungsproblem mit Fhem ergibt bei welchem es dann irgendwann kracht. Schade, aber Pylons kommen eben aus China und da wird sich nix tun. Nach Zurückstecken des 1:1 Kabels hat es 3x gepiepst und der Hub hat selbstständig wieder auf 2 Gruppen umgeschaltet und weitergemacht.

Bleibt zu hoffen, daß die Pylons bei der Zellchemie nicht genauso gemurkst haben. So ganz wohl ist mir natürlich mir nicht solche Teile ins Zimmer zu stellen. Mein Kapazitätstest heute nacht war leicht über der erwarteten Berechnung. Alternativen (mit JK-BMS) gibt es wohl auch kaum da Pylon eine der am besten funktionierenden Batterien ist. JK-BMS kann das Pylon Protokoll emulieren, macht dabei aber auch Fehler wie Andy von der Off Grid Garage in einem seiner jüngsten Videos festgestellt hat (https://www.youtube.com/watch?v=yAVGzT3Do-4).

Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 August 2024, 17:18:32
Hast du mal das neue Attr waitTimeBetweenRS485Cmd ausprobiert und auf >1s gestellt? Möglicherweise ist diese Pausezeit wichtig da sie explizit beim Multigruppenbetrieb erwähnt ist wie ich gelesen habe.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 25 August 2024, 17:48:14
Nein, ich habe deine neue Version noch nicht installiert. Ich weis auch nicht, wie der Multigruppenbetrieb auf RS485 funktionieren soll. Wenn der Hub als RS485 an den Master angebunden ist, kann nicht gleichzeitig auch noch ein Gateway die Request Telegramme losschicken. Beide Instanzen sind in keiner Weise synchronisiert. Solange die Inhalte der Request Telegramme gleich sind, merkt die Master Batterie nicht von wem die kommen. Aber es ist auch bei längeren Wartenzeiten zwischen den Telegrammen immer nur eine Frage der Zeit bis es kracht. Das liegt daran, daß das Protokoll ein Punkt zu Punkt Protokoll ist wo es keinen zweiten Master geben kann.

Man kann im RS485 Hub Betrieb also nur hören und sieht dann auch die Request Telegramme vom Hub inklusiv der darauf folgenden Antwort von der Batterie. Wenn der Hub aber nicht alles abfrägt - Pech für Fhem. Oder man schaut auf die typsichen Pausen zwischen den Abfragen des Hubs ob man zu einem unverdächtigen Zeitpunkt  zusätzlich eine eigene einschieben kann. Sauber ist das aber in keiner Weise und eine langsamere Abfrage macht nur die Wahrscheinlichkeit geringer bis es zu einer Kollision kommt.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 25 August 2024, 18:47:27
Frage, du benötigst den hub wegen can verbindung zum cerbo, oder?
Sonst könntest du mal nur rs485 ohne lv hub zu testen.
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 25 August 2024, 18:53:29
Ja, aber ich glaube der Cerbo kann auch RS485. Nennt sich dort VE Bus. Hat ein eigenes Protokoll und ist zur
Verbindung der Multiplus untereinander bereits belegt. Darf man wohl auch nichts anderes dran machen.
Würde aber auch nichts helfen, ausser daß ich einen nutzlosen Hub übrig habe.
Denn auch dann wären zwei Instanzen welche eine Batterie auf der gleichen RS485 abfragen möchten.
Es geht bei euch nur deshalb, weil es zum Cerbo per CAN geht und Pylon die RS485 ausserdem nebenbei bedient.
Sobald ein Hub dabei ist, geht das nicht mehr, weil die RS485 mutmaßlich noch zu irgendwas zwischen den Gruppen missbraucht wird.
Wenn man das per Leitungsunterbrechnung unterbindet, geht es eine Zeit lang bis der Hub merkt daß was faul ist.
Entweder geht er dann ganz auf Fehler oder er bucht einen der beiden Gruppen aus. Nützt also nicht wirklich was.

Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 25 August 2024, 20:28:04
Nachfrage zu den 3 adern auf 0, hast du die auf ground gelegt oder nur getrennt? Was ich aus regelungstechnik kenne , ist 0 immer ground. Offen ist immer unbestimmter zustand.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 25 August 2024, 20:39:42
Ich könnte mir vorstellen, dass in solchen Fällen ein RS485 Splitter/Verteiler wie einer von denen (https://ewimar.de/category/dystrybutory-rs485) helfen könnte um die Informationen der Batterie einmal zum LV-Hub und auch zum RS485 Gateway zu verteilen, bzw. andersherum die Befehle von beiden Quellen zur Batterie zu übertragen.
Aber nur Theorie ...
Titel: Aw: Modul PylonTech
Beitrag von: Janvi am 25 August 2024, 22:28:06
Die Leitungen habe ich nur getrennt. Die Dioden gehen ja auch auf GND oder den ehemaligen GND. Vermutlich gibt es zu den Einängen irgendwo einen Pullup. Am Hub schreibt Pylon ja selbst vor, daß die pins 1-3 nicht verbunden sein dürfen. Als Nächstes wäre mal dran nachzugucken was sich auf den Signalen tatsächlich tut oder ob sie die ganze Zeit nur einen Pegel haben.  Eigentlich lohnt es aber nicht sowas verstehen zu wollen weil es klar ist, daß es kein sauberes Design ist. 

Die von @DS_Starter verlinkten Splitter sind HW Splitter für differentielle Signale. Die machen einen Sinn, wenn sich bei einem Bussystem mit mehreren Teilnehmern kein linearer Bus aufbauen lässt sondern eine Abzweigung benötigt wird. Die Abzweigung würde auf dem Signal Reflexionen erzeugen. Um die mit einem getrennten Widerstand terminieren zu können, nimmt man einen Splitter der mit einem Treiberbaustein elektrisch so tut, als ob die Leitung an der gesplitteten Stelle anfängt.

Auf der Protokollebene hilft das aber überhaupt nicht. Da geht es um Kollisionsvermeidung damit nicht 2 Teilnehmer gleichzeitig senden. Falls doch, muß dies erkannt und zur Korrektur wiederholt werden. Fehlerkorrektur ist schon an einer Punkt zu Punkt Verbindung nicht ganz trivial. Zum Beispiel das Protokoll von  Siemens RK3964 (https://de.wikipedia.org/wiki/3964R) ist schon uralt und macht das ausserordentlich robust. Punkt zu Multipunkt, also ein Master mit mehreren Slaves ist etwas anspruchsvoller. Trotzdem gibt es genug freie Protokolle die das machen und an denen man sich orientieren kann bevor man meint etwas Eigenes erfinden zu müssen. Modbus RTP ist das bekannteste. CAN bietet gegenüber RS485 dann noch an wesentlichen Punkten eine Hardwareunterstützung welche die SW deutlich vereinfacht. Das sind HW Vergleicher welche auf die 11 oder 28 bit Identifier reagieren. Ein Teilnehmer kriegt dann nur noch die Telegramme mit, welche für ihn bestimmt sind. Auf RS485 müsste man hingegen alle eingehenden Telegramme auswerten und nachschauen ob der Inhalt die eigene Adresse betrifft. Es gibt auch Broadcasts welche alle Teilnehmer am Bus lesen können. Die Empfangsquittierungen gehen mit dem Acknowledge Slot per Hardware, so daß der Master automatisch mitkriegt, wenn der angesprochene Slave vom Bus entfernt wurde. Multimaster mit entsprechenden Verriegelungen und selbstadressierende Teilnehmer welche man nicht konfigurieren muß, Sicherheitsfeatures beim Ausfall eines Teilnehmers wurde alles schon mehrfach erfunden. Allerdings sind die Beschreibungen meist unter Verschluss. Für CanOpen muß man Mitglied beim CiA (Can in Automation) sein. Die NMEA2000 (https://de.wikipedia.org/wiki/NMEA_2000) arbeitet mit den 29bit CAN Identifiern, ist im Bootsbereich für Kompass, Radar usw. weit verbreitet. Auch bei Victron gibts einen Treiber dafür. Die Spec dafür kostet zum Download aber schlappe 500 USD. Eine Zertifizierung von einem Produkt kostet dann noch extra bis man den Namen des Protokolls draufschreiben darf. Das alles nur um eine Kompabilität zu haben um jedem Käufer den Tausch mit einem Mitbewerber Produkt problemlos zu ermöglichen. Deshalb hält sich die Motivation für ein vernünftiges Protokoll bei vielen Herstellern in Grenzen.

Das mit der waitTimeBetweenRS485Cmd werde ich mal nachlesen und ausprobieren. Kann sein, daß sie damit etwas getrickst haben um Kollisionen zwischen zwei anfragenden Instanzen zu umgehen. Der Master wartet ob er in der Zeit jemand anderes hört. Falls ja, weis er daß er anschliessend diese Zeit hat um einen eigenen Request zu machen.






 
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 27 September 2024, 13:38:24
Hallo.
Habe heute Modul upgedated, und jetzt keine Verbindung mehr zu Battery höher 8 . Was muss man jetzt neu definieren? group=0 hab ich dazu

LG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 27 September 2024, 13:52:45
Hi,

nichts. Es gibt in der Logik keine Einschränkungen außer bei der Definition.
Hoffe ich habe mich bei der Gruppenkalkulation mit Bat > 8 nicht vertan.
Verbose 5 des Devices mal checken.

LG
Titel: Aw: Modul PylonTech
Beitrag von: e_brandt am 10 November 2024, 08:01:21
Hallo, ich wollte mal fragen ob ich das Modul auch über einen rs485 to Usb Adapter ansprechen kann oder ob ich zwingen einen wafeshare Adapter benötige?

Ich habe für einen sdm630 das modbus modul am laufen und dachte ich kann das alles zusammen auf diesem Wege einfangen.
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 10 November 2024, 11:29:37
Hallo, ein Wafeshare muss es nicht sein, aber ein TCP/IP zu RS485 Adapter. D.h. USB Adapter gehen leider nicht.
Titel: Aw: Modul PylonTech
Beitrag von: e_brandt am 15 November 2024, 06:51:23
Schade, ich habe einen USB Adapter im Betrieb an dem ich meinen Deye Wechselrichter auslese, wäre ja schön gewesen dort noch den Akku gleich mit anzuschließen.
Titel: Aw: Modul PylonTech
Beitrag von: hauwech am 26 November 2024, 19:45:39
Zitat von: Wzut am 20 August 2023, 18:57:16
Zitat von: DS_Starter am 04 Mai 2023, 16:07:23ich lese zur Zeit die Pylontech via Cerbo GX (Victron) mit MQTT aus.
Es fehlen allerdings die Werte für /History/DischargedEnergy bzw. /History/ChargedEnergy.
Ich habe seit Januar einen Victron MP + Pylontech US5000 + US3000 + RPi mit Venus OS am Start.
Die Batterien sind via CAN Bus Adapter am RPi angebunden und ich lese nicht via MQTT sondern Modbus aus ( da gibt es die beiden fehlenden Werte DischargedEnergy / ChargedEnergy.
Ich würde gerne mal deine Version testen, wie hast du die Pylontechs angebunden da in deinem Sreenshot eine IP steht. ( RS485 Adapter auf LAN ? )
Hallo WZut,
ich lese meinen Cerbo GX auch über Modbus, allerdings mit Loxone. Laut Victron sollte DischargedEnergy im Input Register Addr 301 und ChargedEnergy auf Addr 302 liegen. Da kommt aber bei mir nix, auch im ModbusDoctor nicht. Hast Du vielleicht andere Register gefunden, wo was drinsteht?

Gruß Roland
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 27 November 2024, 09:57:08
ich lese folgende 5 Register vom Device 239 (Multiplus) :
attr Multiplus obj-h74-reading AC-In1_to_AC-out
attr Multiplus obj-h76-reading AC-In1_to_battery
attr Multiplus obj-h86-reading Battery_to_AC-In1
attr Multiplus obj-h90-reading Battery_to_AC-out
attr Multiplus obj-h92-reading AC-out_to_battery
Von welcher Device iD liest du ? Ich finde das von Victron saublöd gemacht mit denen vielen Ids in einem Gerät. Bei mir hat der MP2 die ID 239 und die Pylontechs 225.
Titel: Aw: Modul PylonTech
Beitrag von: hauwech am 27 November 2024, 11:06:52
Bei mir sind Geräte-IDs:
- 40: com.victronenergy.grid und .pvinverter
- 225: .battery
- 227: .veBus
- 100: .hub4 und .system

Charged und Discharged sollten unter Battery auf 301 und 302 stehen, sind aber leer bzw. 0. Der MultiPlus hat bei mir keine eigene Modbus Geräte-ID. Muß man auf dem MP Modbus erst aktivieren? Ich dachte, der Cerbo kriegt vom MP alles über vebus,

Gruß Roland
Titel: Aw: Modul PylonTech
Beitrag von: hauwech am 27 November 2024, 11:44:07
Der MP steckt wohl hinter ID 227 vebus. Momentan lese ich folgende Register:
(Title und ModbusAddress)
<?xml version="1.0" encoding="utf-8"?>
<Modbus Title="Venus GX vebus" Comment="" HintText="" Channel="246">
<Info templateType="7" minVersion="14051207"/>
<ModbusCmd Title="Battery voltage" Comment="" HintText="" ModbusAddress="26" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v.2&gt; V" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="0.1"/>
<ModbusCmd Title="Input power 1" Comment="" HintText="" ModbusAddress="12" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt; W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Input power 2" Comment="" HintText="" ModbusAddress="13" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt; W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Input power 3" Comment="" HintText="" ModbusAddress="14" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt; W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Output power 1" Comment="" HintText="" ModbusAddress="23" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Output power 2" Comment="" HintText="" ModbusAddress="24" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Output power 3" Comment="" HintText="" ModbusAddress="25" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="100"/>
<ModbusCmd Title="Battery current" Comment="" HintText="" ModbusAddress="27" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v.1&gt;A" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="1"/>
<ModbusCmd Title="VE.Bus state of charge" Comment="" HintText="" ModbusAddress="30" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v.1&gt;%" Analog="true" Sensor="true" SourceValHigh="10" DestValHigh="1"/>
<ModbusCmd Title="Switch Position" Comment="" HintText="" ModbusAddress="33" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 1" Comment="" HintText="" ModbusAddress="37" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS disable charge flag phase" Comment="" HintText="" ModbusAddress="38" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS disable feedback flag phase" Comment="" HintText="" ModbusAddress="39" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 2" Comment="" HintText="" ModbusAddress="40" ModbusCmd="4" ModbusDataType="33" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 3" Comment="" HintText="" ModbusAddress="41" ModbusCmd="4" ModbusDataType="1" ModbusPollingCycle="5" Unit="&lt;v&gt;W" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="Disable PV inverter" Comment="" HintText="" ModbusAddress="56" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="VE.Bus BMS allows battery to be charged" Comment="" HintText="" ModbusAddress="57" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="VE.Bus BMS allows battery to be discharged" Comment="" HintText="" ModbusAddress="58" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="VE.Bus Reset" Comment="" HintText="" ModbusAddress="62" ModbusCmd="4" ModbusPollingCycle="5" Unit="&lt;v&gt;" Analog="true" Sensor="true" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="Maximum overvoltage feed-in power L3" Comment="" HintText="" ModbusAddress="68" ModbusCmd="6" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="1000" DestValHigh="10"/>
<ModbusCmd Title="Maximum overvoltage feed-in power L2" Comment="" HintText="" ModbusAddress="67" ModbusCmd="6" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="1000" DestValHigh="10"/>
<ModbusCmd Title="Maximum overvoltage feed-in power L1" Comment="" HintText="" ModbusAddress="66" ModbusCmd="6" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="1000" DestValHigh="10"/>
<ModbusCmd Title="Fee DC overvoltage into grid" Comment="" HintText="" ModbusAddress="65" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="VE.Bus Reset" Comment="" HintText="" ModbusAddress="62" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="Disable PV inverter" Comment="" HintText="" ModbusAddress="56" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 3" Comment="" HintText="" ModbusAddress="41" ModbusCmd="6" ModbusDataType="1" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 2" Comment="" HintText="" ModbusAddress="40" ModbusCmd="6" ModbusDataType="1" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase 1" Comment="" HintText="" ModbusAddress="37" ModbusCmd="6" ModbusDataType="1" Unit="&lt;v&gt;W" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS power setpoint phase" Comment="" HintText="" ModbusAddress="39" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="ESS disable charge flag phase" Comment="" HintText="" ModbusAddress="38" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="Switch Posistion" Comment="" HintText="" ModbusAddress="33" ModbusCmd="6" Unit="&lt;v&gt;" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
<ModbusCmd Title="VE.Bus state of charge" Comment="" HintText="" ModbusAddress="30" ModbusCmd="6" Unit="&lt;v&gt;%" Analog="true" Sensor="false" SourceValHigh="100" DestValHigh="100"/>
</Modbus>
Titel: Aw: Modul PylonTech
Beitrag von: Wzut am 27 November 2024, 12:11:24
.vebus ist bei mir halt 239
von .battery 225 lese ich 6 Register wobei nur 259, 261, 262 und 266 sinnvolle Werte enthalten.
301 & 302 liefern auch bei mir immer nur 0
Titel: Aw: Modul PylonTech
Beitrag von: jnewton957 am 01 Dezember 2024, 11:09:12
Zitat von: Wzut am 27 November 2024, 12:11:24301 & 302 liefern auch bei mir immer nur 0

Bei mir auch. Das liegt wohl daran, dass die Pylontechs eben die Werte des Pylontech-BMS nicht an den Multiplus senden.

Es gibt einen workaround battery-energy-meter für pylontech. Das Vorgehen ist auf github beschrieben. Man muss eine battery-energy-meter.py auf dem Cerbo einspielen und dann laufen lassen. Nicht trivial und man muss sich vorher superuser Berechtigungen auf dem Victron einrichten!

Ich behelfe mir mittlerweile mit den AcIn1ToInverter und InverterToAcIn1 die ich aus dem Modbus bekomme.
Dazu ein device statistics angelegt und ich habe alle Werte mit Stunden, Tages, Monats und Jahresbasis.

Wenn man sich ansehen will, welche Werte von den einzelnen Geräten an Fhem übertragbar sind, empfehle ich den MQQT Explorer. Dort kann ich nicht nur die Bezeichnungen sehen, sondern auch die aktuellen Werte. Somit lassen sich auch die Readings umbauen zu writings (publish) und die victron steuern.
Titel: Aw: Modul PylonTech
Beitrag von: satprofi am 30 März 2025, 18:50:49
Hallo.
Frage zum Modul, klappt damit US5000 auch?
lG
Titel: Aw: Modul PylonTech
Beitrag von: DS_Starter am 30 März 2025, 20:12:11
ZitatFrage zum Modul, klappt damit US5000 auch?
Ich selbst habe keine US5000, aber es wurde der erfolgreiche Einsatz mit US5000 berichtet, weswegen ich in der Hilfe zum Modul die Info aufgenommen habe:

Modul zur Einbindung von Niedervolt-Batterien mit Batteriemanagmentsystem (BMS) des Herstellers Pylontech über RS485 via RS485/Ethernet-Gateway. Die Kommunikation zum RS485-Gateway erfolgt ausschließlich über eine Ethernet-Verbindung.
Das Modul wurde bisher erfolgreich mit Pylontech Batterien folgender Typen eingesetzt:

    US2000
    US2000B Plus
    US2000C
    US2000 Plus
    US3000
    US3000C
    US5000

Weiterin sind im Code die Eigenheiten von Batterien dieser Leistungsklasse eingebaut, die in der mir vorliegenden Protokollspezifikation beschrieben sind (ist aber schon älter).
Sollte also funktionieren.

LG,
Heiko