This wiki page describes the MODBUS plugin.
See also M-Bus.
There is basic MODBUS RTU and ASCII support available. Currently MODBUS over serial cable is supported, either directly connected or using a TCP to serial stream created by ser2net. Read Holding Registers function 03 is used to read values of different lengths, these are selected by using the appropriate devicetype. MODBUS devices need to be polled for values.
Requirements¶MODBUS RTU support has the following requirements:
- DomotiGa 1.0.023 or higher
- DomotiGa 1.0.024 or higher
To use MODBUS with DomotiGa you can use an USB to RS485 FTDI Interface.
Configure the MODBUS devices with the wanted slave addresses and lookup the registers addresses you want to read.
Address format is <slave address>:<register>, slave adress is specific in hexadecimal notation, ranging from 1-247, (1-F7 in hex) the register address is expected in hexadecimal notation like 3B12
Some device manuals show the register in decimal value and then this value needs to be converted to hexadecimal and normally you need to substract the value with 1. So if your manual shows register value of '3110' this is 'C26' in hexadecimal, but you need to configure 'C25' (C26 minus 1) as register value. The address in the device will be then '1:C25'.
Ado64 borrowed me a Carlo Gavazzi EM21-72D meter to test, see attached documentation for it's specs/protocol.
You can read a lot of values from it, a few of them are:
|Mains Voltage L1||0||Volt*10|
|Mains Watt L1||12||Watt*10|
- MODBUS Protocol
- MODBUS Datatypes