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.


MODBUS RTU support has the following requirements:
  • DomotiGa 1.0.023 or higher
MODBUS ASCII support has the following requirements:
  • 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'.


Ado464 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:

Value Register (hex) Label
Mains Freq 33 Hz
Mains Voltage L1 0 Volt*10
Mains Watt L1 12 Watt*10


    Updated by: ado464, Updated 11 months ago
    Access count: 42943 since 2011-11-13

    Attached Files

    Also available in: PDF HTML TXT