Pylontech US2000
Moderator: Ulrich
- Ulrich
- Administrator
- Beiträge: 5980
- Registriert: Sa 7. Nov 2015, 10:33
- Wohnort: Essen
- Hat sich bedankt: 152 Mal
- Danksagung erhalten: 812 Mal
- Kontaktdaten:
Re: Pylontech US2000
Dann wirst du nur über die RS485 Schnittstelle die neuern Geräte mit der Solaranzeige auslesen können.
Mir ist bekannt, dass Pylontech Änderungen durchgeführt hat.
Die neuen Geräte haben als Kommunikationsport nur noch RS485 und CAN angegeben. Über den alten Console Port scheinen sie die Daten nicht mehr aus zu geben. Bitte versuche es einmal mit einem RS485 zu USB Adapter. (Regler 41)
Mir ist bekannt, dass Pylontech Änderungen durchgeführt hat.
Die neuen Geräte haben als Kommunikationsport nur noch RS485 und CAN angegeben. Über den alten Console Port scheinen sie die Daten nicht mehr aus zu geben. Bitte versuche es einmal mit einem RS485 zu USB Adapter. (Regler 41)
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]
Ulrich . . . . . . . . [ Admin ]
Re: Pylontech US2000
ja, so könnte es sein.
Zumindest kann ich die Console auch nicht per exit/quit verlassen.
Diese läuft bei mir dauerhaft und es gibt den 1200 Baud Modus gar nicht.
Zumindest kann ich die Console auch nicht per exit/quit verlassen.
Diese läuft bei mir dauerhaft und es gibt den 1200 Baud Modus gar nicht.
Re: Pylontech US2000
Deine serielle Console befindet sich im Debug-Modus, der läuft immer mit 115200 Baud. Du musst da irgendwie raus kommen. Im normalen Modus ist die Baudrate am serielle Port dann auf 1200 Baud fest eingestellt. Nur in dem Modus kann man die Daten vom Akku empfangen die Solaranzeige versteht. Beim Wechsel in den Debug-Modus erfolgt automatisch die Umschaltung auf 115200 Baud. Das was man da auslesen kann ist nicht zu Solaranzeige kompatibel.mschmitz hat geschrieben: ↑Mi 6. Jan 2021, 10:35ok,
mein Akku scheint kein "HEX" zu verstehen.
Wenn ich auf der Console eingeloggt bin und die Anfrage von Solaranzeige kommt, sehe ich folgende Fehlermeldung:
...Code: Alles auswählen
Unknown command '~200146510000FDAD' - try 'help'
Auch kann ich mich nur mit 115200 Baud auf die Console verbinden, bei dem Versuch mich mit 1200 Baud zu Verbinden bekomme ich nicht mal eine Antwort.
Es sieht so aus, dass mein Akku die Abfrage in Klartext erwartet.
Ich habe auch ne ganze Weile damit gekämpft.
Du kannst z.B. auch mit dem Programm miniterm testen, das ist standardmäßig auf dem RPi drauf.
Ich hatte dann den Effekt dass ich mit miniterm auch mit 1200 Baud Daten aus dem Akku auslesen konnte, aber Solaranzeige trotzdem nicht. Ich bin der Meinung dass die Initialisierung des seriellen USB-Adapters mit 1200 Baud (bei mir) nicht zuverlässig funktioniert.
Re: Pylontech US2000
Das wäre IMO sehr ungewöhnlich.
Welchen Akku hast du genau: US2000, US2000B, US2000Plus, US3000 oder schon einen Nachfolger der jetzt vor kurzem angekündigt wurde?
Welche Firmware hat dein Akku denn?
-
- Beiträge: 30
- Registriert: So 30. Aug 2020, 18:12
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Pylontech US2000
Hast du das hier eigentlich schon gelesen: viewtopic.php?p=4555#p4555
Ich hab das über RS232 trotz längeren Versuchen nicht hinbekommen, über RS485 klappt es problemlos. (Regler 41)
Da das Problem immer wieder mal auftaucht, kann es schon möglich sein, dass seitens pylontech da bei den neueren Batterien etwas geändert wurde, und diese dann nicht mehr über RS232 ausgelesen werden können.
Siehe auch hier:
https://www.photovoltaikforum.com/threa ... ost2158056
Meine pylontech US2000 sind von Mai bzw. August 2020, firmware ist 515.
Ich hab das über RS232 trotz längeren Versuchen nicht hinbekommen, über RS485 klappt es problemlos. (Regler 41)
Da das Problem immer wieder mal auftaucht, kann es schon möglich sein, dass seitens pylontech da bei den neueren Batterien etwas geändert wurde, und diese dann nicht mehr über RS232 ausgelesen werden können.
Siehe auch hier:
https://www.photovoltaikforum.com/threa ... ost2158056
Meine pylontech US2000 sind von Mai bzw. August 2020, firmware ist 515.
Re: Pylontech US2000
Ich kann jetzt auch Erfolg bei der RS485-Variante vermelden.
Ich betreibe 8 Stück Pylontech US2000Plus an einem Raspberry Pi 4B mit solaranzeige 4.7.0b.
Der RS485 Adapter hat einen FTDI-Chip und der DIP-Schalter 1 steht auf OFF (unten), was 115200 Baud bedeutet.
In solaranzeige habe ich Regler 41 gewählt und die Anzahl der Packs (8) angegeben.
Das Grafana Dashboard für den US2000 habe ich dementsprechend bearbeitet dass 8 Blöcke ausgewertet werden.
So läuft es.
Fazit, beim US2000Plus können die Akkudaten alternativ sowohl über den Console-Port mit RS232 als auch über den RS458-Port ausgelesen werden. Über RS485 geht es aber wesentlich schneller.
Ich betreibe 8 Stück Pylontech US2000Plus an einem Raspberry Pi 4B mit solaranzeige 4.7.0b.
Der RS485 Adapter hat einen FTDI-Chip und der DIP-Schalter 1 steht auf OFF (unten), was 115200 Baud bedeutet.
In solaranzeige habe ich Regler 41 gewählt und die Anzahl der Packs (8) angegeben.
Das Grafana Dashboard für den US2000 habe ich dementsprechend bearbeitet dass 8 Blöcke ausgewertet werden.
So läuft es.
Fazit, beim US2000Plus können die Akkudaten alternativ sowohl über den Console-Port mit RS232 als auch über den RS458-Port ausgelesen werden. Über RS485 geht es aber wesentlich schneller.
Re: Pylontech US2000
Hallo,
gut - ich werde mir den Adapter auch bestellen.
Ich hab mir jetzt etwas in python hingebastelt. Damit habe ich zumindest erstmal die Daten im mqtt.
Eventuell kann es ja jemand gebrauchen.
mschmitz
gut - ich werde mir den Adapter auch bestellen.
Ich hab mir jetzt etwas in python hingebastelt. Damit habe ich zumindest erstmal die Daten im mqtt.
Eventuell kann es ja jemand gebrauchen.
mschmitz
Code: Alles auswählen
import time
import serial
import paho.mqtt.client as paho
broker="192.168.11.2"
port=1883
ser = serial.Serial(
#port='/dev/ttyUSB2',
port='/dev/serial/by-id/usb-FTDI_USB_Serial_Converter_FTCRZ32M-if00-port0',
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.isOpen()
ser.write('\r\n')
ser.write( 'pwr' + '\r\n')
time.sleep(1)
out = ser.read(1290)
out[10:]
x = out.split('\n',4)[-1]
pwr = x.split()
#print x
def on_publish(client,userdata,result):
# print("data published /n")
pass
client1= paho.Client("control1")
client1.on_publish = on_publish
client1.connect(broker,port)
for batNr in range (1,3):
if batNr == 1:
offset = 17
else:
offset = 17 + (17 * (batNr - 1))
client1.publish("pylontech/" + str(batNr) + "/Voltage", float(pwr[offset]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/Current", float(pwr[offset + 1]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/Temp", float(pwr[offset + 2]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/TempLow", float(pwr[offset + 3]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/TempHigh", float(pwr[offset + 4]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/VoltageLow", float(pwr[offset + 5]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/VoltageHigh", float(pwr[offset + 6]) / 1000)
client1.publish("pylontech/" + str(batNr) + "/Status", pwr[offset + 7])
client1.publish("pylontech/" + str(batNr) + "/VoltStatus", pwr[offset + 8])
client1.publish("pylontech/" + str(batNr) + "/CurrStatus", pwr[offset + 9])
client1.publish("pylontech/" + str(batNr) + "/TempStatus", pwr[offset + 10])
client1.publish("pylontech/" + str(batNr) + "/SOC", pwr[offset + 11][:-1])
client1.publish("pylontech/" + str(batNr) + "/Time", pwr[offset + 12] + " " + pwr[offset + 13])
client1.publish("pylontech/" + str(batNr) + "/BVState", pwr[offset + 14])
client1.publish("pylontech/" + str(batNr) + "/BTState", pwr[offset + 15])
time.sleep(1)
ser.close()
exit()
-
- Beiträge: 30
- Registriert: So 30. Aug 2020, 18:12
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Pylontech US2000
Kann mir jemand von euch (für einen Laien verständlich) erklären, was ich tun muß, um den pylon> -promt aus Beitrag 1 zu bekommen?
Wahrscheinlich echt blöde Frage.
Geht das über putty? Oder nur direkt am Raspi? Und Wenn Wie??
Wahrscheinlich echt blöde Frage.
Geht das über putty? Oder nur direkt am Raspi? Und Wenn Wie??
Re: Pylontech US2000
Das ging bei mir auch nur am RS232 Console-Port.
Ich habe dafür miniterm benutzt, putty müsste aber auch gehen.
Man kann mit einer bestimmten Sequenz in diesen Modus umschalten.
Wie diese Sequenz lautet habe ich aus einem Dokument aus einem entsprechenen Thread aus dem photovoltaikforum.
Jedenfalls setzt man diese Sequenz noch mit 1200 Baud ab und dadurch erfolgt dann eine Umschaltung in diesem Prompt-Modus und gleichzeitig auf 115200 Baud, d.h. man muss in dem Moment auch das miniterm/putty auf 115200 umschalten. Ich meine mit quit kommt man wieder raus und hat dann wieder 1200 Baud.
-
- Beiträge: 30
- Registriert: So 30. Aug 2020, 18:12
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Pylontech US2000
Danke für deine Antwort!
Du meinst sicher das hier:
Mir ist der Schritt nicht klar, wo oder wie ich dann den pylon> Prompt bekomme.
z.B. kann ich den string per commix dierekt von meinem Win10 Laptop über RS232 (oder auch RS485) an die Batterie senden, die Batterie antwortet auch (auch wenn ich die Antwort nicht verstehe) aber da kommt natürlich kein pylon> Promt.
Oder ich kann mich per putty auf dem Raspi (solaranzeige.local) anmelden (pi@solaranzeige:), weiss aber nicht, wie ich die Batterie ansprechen, bzw. den HEX-string senden kann...
Du meinst sicher das hier:
https://www.photovoltaikforum.com/threa ... /?pageNo=1"Zuerst muss die Konsole aktiviert werden. Dazu das Terminalprogramm auf 1200, 8,N,1 umschalten.
Dann den folgenden Hexstring an die Batterie senden:
Data: 7E 32 30 30 31 34 36 38 32 43 30 30 34 38 35 32 30 46 43 43 33 0D
Jetzt auf 115200,8,N,1 umschalten..
Data: 0D 0A senden.
Es erscheint der pylon> Prompt, der die Eingabe von Kommandos ermöglicht."
Mir ist der Schritt nicht klar, wo oder wie ich dann den pylon> Prompt bekomme.
z.B. kann ich den string per commix dierekt von meinem Win10 Laptop über RS232 (oder auch RS485) an die Batterie senden, die Batterie antwortet auch (auch wenn ich die Antwort nicht verstehe) aber da kommt natürlich kein pylon> Promt.
Oder ich kann mich per putty auf dem Raspi (solaranzeige.local) anmelden (pi@solaranzeige:), weiss aber nicht, wie ich die Batterie ansprechen, bzw. den HEX-string senden kann...