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, while heating and water meters communicate via Mbus.

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 parameters on the Climkit online portal:

Enter E for EVEN and N for NONE.

parity

E

Other Models (Advanced Configuration)

If a meter model is used that is not listed, the registers to be read can be manually configured, and the data type specified.

Select the generic_modbus model and edit the additional parameters.

Parameters 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 3.

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

swap_words <bool or 1 or 0 >: swaps the order of the 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 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?

Contact