Modul PylonTech

Begonnen von satprofi, 06 Januar 2021, 11:49:11

Vorheriges Thema - Nächstes Thema

satprofi

Hallo.
Das Modul ist jetzt auf 14 Akkus erweitert.
Danke an DS_Starter für die Hilfe.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

#77
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...

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

Hilf mir mal auf die Sprünge DIP auf OFF heißt alle runter?

DS_Starter

Nein, alle oben. Die Schalter stehen auf dem Kopf, sind aber beschriftet. "ON" ist unten.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

Ich hatte bis auf Similar RFC2217 alles probiert, aber genau der Haken hat gefehlt. Nun.läuft es  ;)

Vielen Dank!

sparkiie

#82
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.

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

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.

DS_Starter

Ü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 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
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

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.

DS_Starter

Stimmt auch wieder.

Im Prinzip kannst du den SoC aus den gemeldeten Readings packCapacity und packCapacityRemain selbst ausrechnen / überprüfen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

sparkiie

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...