Hallo,
Anbei findest du ein Modul das ich vor langer Zeit für diesen Zweck geschrieben hatte (nur Lesezugriffe). Ich habe es an FHEM 5.7 angepasst und die Möglichkeit zum Schreiben hinzugefügt.
Das Modul wird mit
define mbcc ModbusTCP_CC
eingebunden. Da für ModbusTCP Port 502 verwendet wird muss FHEM root/Administratorrechte haben. Falls dies nicht möglich (oder erwünscht) ist kann ein anderer Port (>1024) mit angegeben werden:
define mbcc ModbusTCP_CC 10502
Der Master muss dann auch dementsprechend angepasst werden.
Die Verbindung von FHEM-Readings zu Modbus-Registern erfolgt über das Kommentarfeld des jeweiligen Gerätes. Für einen Homematic Thermostat (HM-TC-CC) mit dem Namen th könnte es z.B. so aussehen:
attr th comment MBR:1,1,I,measured-temp,N,10:1,2,I,humidity:1,21,H,desired-temp,N,10
Das Reading measured-temp ist unter UnitId 1, Inputregister 1 erreichbar, humidity unter UnitId 1, Inputregister 2 und desired-temp unter UnitId 1, Holdingregister 21. Die Werte von measured-temp und desired-temp werden beim Lesen mit 10 multipliziert (und beim Schreiben durch 10 geteilt), negative Werte werden im 2er-Komplement dargestellt.
Das Format für das Kommentarfeld ist:
MBR:<unitId>,<register>,<register type>[,<reading>[,<negative representation>[,<multiplier>[,<offset>]]]]
mit
<unitId> - Unit Id (0 - 255), * für beliebig
<register> - Registernummer (1 - 65536) (Achtung, dies ist nicht die Adresse)
<register type> - I für Inputregister (nur Lesen), H für Holdingregister (Lesen und Schreiben), * für beide
<reading> - optional, Name des Readings, wenn nicht angegeben wird 'state' verwendet
<negative representation> - optional, T for 2er Komplement, bei jedem anderen Wert werden negative Zahlen auf 0 gesetzt
<multiplier> - optional, Multiplikator, angewandt beim Lesen, beim Schreiben als Divisor verwendet
<offset> - optional, Offset der beim Lesen zum Reading addiert wird, beim Schreiben wird er abgezogen
Grüße,
ChrisD
Edit: Die aktuelle Version des Moduls kann mit
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mbs/controls_mbcc.txt
direkt in FHEM installiert werden.