SMA Tripower - Register via Modbus schreiben

Begonnen von ChriChri, 11 Juli 2023, 14:29:22

Vorheriges Thema - Nächstes Thema

ChriChri

Hallo Zusammen,

ich habe per 98_ModbusAttr einen SMA Tripower STP 8000TL-20 in fhem eingebunden. Lesend funktioniert das seit Jahren sehr gut.

Nun möchte ich auch Werte per Modbus schreiben, um eine Steuerung der Wirkleistung aufbauen zu können.

Um mich einzuarbeiten und Erfahrungen zu sammeln habe ich mir das Ziel gesetzt einen unwichtigen Register zu schreiben, um ein Gefühl für das Vorgehen zu bekommen.

Hier die relevanten Einträge zu meinem erster Versuch:

define SMA ModbusAttr ...
attr SMA obj-h40112-len 8
attr SMA obj-h40112-reading IP_Gateway
attr SMA obj-h40112-set 1
attr SMA obj-h40112-setexpr $val . "\0" x (16 - length($val))
attr SMA obj-h40112-textArg 1
attr SMA obj-h40112-unpack A*
#   READINGS:
#     2023-07-11 14:15:27   IP_Gateway      192.168.2.1

Ich bekomme das eingestellte IP Gateway (das ich nicht benötige) richtig angezeigt und kann auch einen neuen Wert per 'set' setzen.

Wenn ich einen neuen Wert setze, kommt es auch zu einer Kommunikation mit dem Wechselrichter, die ich mir per wireshark angeschaut habe.

Die Anfrage:
Du darfst diesen Dateianhang nicht ansehen.

Die Antwort:
Du darfst diesen Dateianhang nicht ansehen.

Direkt im Anschluss fragt fhem die Register erneut ab und zeigt wieder den alten Wert an. Die gesendete Änderung wurde nicht übernommen.

Warum funktioniert es nicht?

ch.eick

Hallo,
hast Du mal in die ModBus Beschreibung zum WR geschaut, eventuell ist dieses Register nicht schreibbar.
Bei meinem Kostal kann man auch nicht alles was lesbar ist auch zurückschreiben.
VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ChriChri

Danke für den Hinweis.

Ich habe den Register aus der Anleitung zu den Modbus Registern von SMA und dort ist er als "RW" gekennzeichnet. Ich habe gezielt nach einem unwichtigen Register, den ich schreiben könnte gesucht.