Modbus Meter Configuration

Standard Meter Model

The Modbus protocol allows the Gateway to read one or more specific data registers from a compatible meter.

Generally, electricity meters are equipped with an RS485-Modbus communication port, whereas heating and water meters communicate via M-Bus.

Several Modbus meter models are registered in the Climkit portal, such as Eastron, Inepro, Schneider, ABB, etc.

By selecting the correct model, the Gateway will automatically read the corresponding registers.

Modbus Parameters

By default, the Gateway reads meters and other Modbus devices with the following parameters:

  • Baudrate: 9600
  • Parity: None
  • Data Size: 8 bit
  • Stop bits: 1 bit

This is also the default configuration for Eastron SDM630M meters.

The baud rate and parity can be changed directly in the meter via its interface.

Other models such as the Inepro PRO380 and the Polier MTR80LMOD have a different default parity configuration:

  • Parity: EVEN

If these default values are kept, they must be entered in the additional meter settings on the Climkit online portal:

Enter E for EVEN and N for NONE.

parity

E

Other Models (Advanced Configuration)

When using a meter whose model is not listed, you can manually configure the registers to be read and specify the data type.

Select the generic_modbus model and edit the additional settings.

Settings to Define

Here is the list of parameters to define. Parameters marked with * are mandatory.

*reg <int>: register number to read from the meter.

*unit <str>: unit of the read data (e.g., 'L1_v').

size <int>: data size (1, 2, 4, 8). The default value is 1 for Int16 or Float16.

factor <float>: multiplies the data by the factor (e.g., 0.001 to convert Wh to kWh) (float). The default value is 1.

pause <float>: waiting time after reading data from a register. Default 0.3 for TCP meters and 0 for serial meters.

function_code : Modbus Serial function code. Usually 3 or 4. Default is 3.

round <int> : Number of decimal places. Default is 2.

swap_words <bool or 1 or 0 >: inverts the order of registers if size > 1.
Unit

The unit parameter defines the type of data read.

For an electricity meter, the units are en_im (imported energy) and en_ex (exported energy).

For a thermal meter: heat_energy_kwh, cold_energy_kwh, flow_temp, return_temp, diff_temp, power_kw, vol_flow_m3_h, vol_m3

For a water meter: vol_m3

Reg

The reg parameter defines the decimal position of the Modbus register to read. Refer to the meter or device documentation.

Here is an example for a thermal meter where the heat and cold energy indexes are read.

reg

[{'unit': 'heat_energy_kwh', 'reg': 2544, 'size': 2, 'factor': 0.001}, {'unit': 'cold_energy_kwh', 'reg': 2546, 'size': 2, 'factor': 0.001}]

Here is an example for an electricity meter (type: electricity) for which only the imported energy register in kWh is read.

reg

[{'unit': 'en_im', 'reg': 1050, 'size': 2, 'swap_words': True}]

How Did We Do?

Display configuration

Metering data processing

Contact