Hallo @Eugenius, ich habe deine Frage hierher versetzt, in dem anderen Thread sind wir falsch mit dem Modbus.
Ich weiß nicht, was du unter holding meinst, der Deye kennt nur zwei Befehle 03 – Lesen und 10 – schreiben. Was macht dein Programm im Hintergrund? Ich benutze Solarman oder DeyeCloud, da kann ich die Befehle selbst vergeben. Hier einige Befehle, mit der Spannung in dem Register 10040 passt irgendwie nicht, aber der Deye antwortet auf die Anfrage.
@amiko deine Befehle, wie setzen sich die zusammen? Interessantes Format.
Nutze ja HA, und darum geht es ja eigentlich hier. Der Übersichtlichkeit wegen, wenn ihr andere Software nutzt, macht doch dazu einen eigenen Beitrag auf, dann gehen Informationen dazu auch nicht verloren unter fremden Beiträgen.
Der user @Eugenius verwendet doch auch HA, deswegen denke ich, dass das richtige Thread ist.
Mit den Befehlen wollte ich nur zeigen, dass der WR in dem Registerbereich ab 10032 auf die Anfragen antwortet. Und wenn es nicht über Home Assistant geht, dann liegt das Problem eventuell beim HA.
Muss ich noch mal probieren. Es könnte sein, dass diese Register nur auf RS232 und nicht auf RS485 verfügbar sind.
Da du über den Solarman liest, nutzt er RS232 und nicht RS485...
Edit:
ich sende komplett gleiches Telegramm (sieht man bei uart_debug):
[13:40:32][D][uart_debug:114]: >>> 01:03:27:47:00:01:3E:AB
[13:40:32][W][modbus_controller:030]: Modbus device=1 set offline
[13:40:32][D][modbus_controller:043]: Modbus command to device=1 register=0x2747 countdown=0 no response received - removed from send queue
[13:40:38][W][modbus_controller:064]: Modbus device=1 back online
WR weigert sich aber. Somit gibt es die Daten wohl nicht auf MODBUS :/
Ich habe mehrere Register ausgelesen, unter anderen auch 10040 DEC (0x2738), der WR antwortet mit 0213 hex, was würde dann bedeuten 5,31 V (weil das Register in der Tabelle mit 2 Nachkommastellen eingegeben ist) 53,1 V würde besser passen. Mit dem Strom, das Register 10041 ist noch komplizierter, ich bekomme als die Antwort FFB1 hex, es sollte eine negative Zahl sein. Ich weiß noch nicht, wie ich die umrechnen soll.
Na ja, bei den Werten über 10000 scheinen sich erst mal nur auf die Deye Akkus zu beziehen, diese senden scheinbar ihre Werte zum WR.
Habe die aktuelle Version vom Modbus Protokoll 104 wo diese Werte beschrieben sind. Seplos BMS sendet scheibar keine Daten zu den Packs mit oder man müsste mal ein anderes Protokoll testen BMS <--> WR
das sind nicht meine Befehle, das sind die Befehle die der WR versteht, HA nutzt auch diese Befehle. HA macht es Bedienerfreundlicher, aber im Hintergrund werden die gleiche Befehle generiert und die Antworten vom WR ausgewertet. Wie die Befehle zusammengesetzt werden hat @Eugenius bereits beschrieben. Man kann mit einem Befehl, soweit ich weiß, bis zu 256 Register auslesen. Z.B. mit dem Befehl 010327300026CEAB werden alle 38 Register vom Batterie Pack 1 ab Register 10032 ausgelesen.
noch eine kleine Ergänzung bei den Befehlen um die Register zu beschreiben, der Befehl ist um 3 Byte länger als der Lese-Befehl
function code: 10
nach der Anzahl Register die gelesen oder geschrieben werden sollen (2 Byte, 4 Stellen) werden noch die 3 Byte angehängt
Anzahl Bytes die geschrieben werden (1 Byte, 2 Stellen)
Wert, auf den das Register geschrieben werden soll hex Kodiert (2 Byte, 4 Stellen)
Und damit kann ich zwar versuchen was zu senden von der Software, aber es kommt nicht am WR an / wird nicht übernommen ...
( steht ja auch so auf deren Seiten ) daher wechsel ich grad auf :
Und werde den wlanstick ( den ich ja eh nur noch im Support-Fall für den Hersteller benötige ) dann danebenlegen und im GAU Fall wieder reinstöpseln,
damit die DEYE Leute dran könnten ... ( wie gesagt nur einmal beim ersten update nach dem Kauf vom Support benötigt worden ).