Configuration options
The table below lists all settings that can be made using the Elvaco OTC App. If the device is locked, and the app user does not have access to the Product Access Key (PAK), available settings are only readable.
Table 281. All configuration options
|
Field name (Abbr.) |
Description |
Default value |
Locked device & correct PAK or open device |
Locked device & no PAK |
Downlink |
|---|---|---|---|---|---|
|
Meter ID |
Meter identification number of the meter. Not configurable. |
N/A |
Readable |
Readable |
N/A |
|
Power mode |
Used to activate/deactivate the module. |
Inactive |
Readable / Writable |
Readable |
N/A |
|
Message format |
The message format determines the structure and payload of the telegram sent from the module. |
0x15 (Standard) |
Readable / Writable |
Readable |
Writable |
|
EcoMode |
When activated, 11+1 years of battery life is guaranteed by adapting the transmit interval of the module to current signal conditions (using Kamstrup's D-cell meter battery). |
On |
Readable / Writable |
Readable |
Writable |
|
Transmit interval |
Sets the number of minutes between each transmission from the module |
60 min |
Readable / Writable |
Readable |
Writable |
|
Date & Time |
Date and time set for the meter. |
N/A |
Readable |
Readable |
N/A |
|
Set absolute time |
Sets the time of the meter. |
N/A |
Writable |
N/A |
N/A |
|
Set Time Relative |
Adjusts the time of the meter relative to the current time |
N/A |
N/A |
N/A |
Writable |
|
Set UTC offset |
Sets the UTC offset of the meter. |
N/A |
Readable / Writable |
Readable |
Writable |
|
Configuration Lock |
Locks the module to prevent unauthorized access. |
Open |
Readable / Writable |
Readable |
Writable |
|
LoRaWAN® settings |
|||||
|
Device EUI |
Unique module identification number. Not configurable. |
94193A010BXXXXXX (Retrofitted devices) 94193A0111XXXXXX (Factory-mounted devices) |
Readable |
Readable |
N/A |
|
Activation type |
Sets the way the device joins the LoRaWAN® network. |
OTAA |
Readable / Writable |
Readable |
N/A |
|
Network join |
Displays whether the module has joined the LoRaWAN® network or not. |
N/A |
Readable |
Readable |
N/A |
|
JoinEUI |
Identifies the device’s OTAA join context. |
94193A030B000001 (Retrofitted devices) 94193A0311000001 (Factory-mounted devices) |
Readable / Writable |
Readable |
N/A |
|
Device address |
32-bit address used by the module to identify itself on the LoRaWAN® network. |
N/A |
Readable / Writable |
N/A |
N/A |
|
Current data rate |
The current data rate used for the module. |
N/A |
Readable |
Readable |
N/A |
The table below lists the settings that can be configured using LoRaWAN® downlink commands.
Table 282. Downlink commands
|
Field name |
TLV |
Number of bytes in configuration |
Configuration |
Example |
|---|---|---|---|---|
|
Configuration lock |
0x05 |
0x01 |
0x00 = Locked 0x01 = Open |
0x00050101 (Disables the configuration lock) |
|
Transmit interval |
0x06 |
0x02 |
0xNumber of minutes between transmission (lsByte -> msByte) |
0x0006021E00 (Sets the Tx interval to 30 minutes) |
|
Message format |
0x07 |
0x01 |
0x15 = Message format Standard 0x16 = Message format Compact 0x17 = Message format JSON 0x18 = Message format Scheduled-daily redundant 0x19 = Message format Scheduled-Extended 0x1A = Message format Combined heat/cooling 0x1B = Message format Heat Intelligence 0x3B* = Message format Scheduled Extended+ 0x1C* = Message format Pulse 0x4D* = Message format Pulse Extended Note*Message formats built up by 2 telegrams. only the first Message ID should be included in the downlink command) |
0x00070116 (Sets the message format to compact) |
|
EcoMode |
0x0F |
0x01 |
0x00 = Disable EcoMode 0x01 = Enable EcoMode |
0x000F0100 (Disables EcoMode) |
|
Set Time Relative |
0x13 |
0x04 |
0xNumber of seconds* (lsByte -> msByte) *Negative numbers supported. |
0x0013043C000000 (Adds 60 seconds to the current time) 0x0013043C000080 (Subtracts 60 seconds from the current time) |
|
UTC offset |
0x17 |
0x02 |
0xNumber of minutes* (lsByte -> msByte) *Negative numbers supported. |
0x17023C00 (Sets the UTC offset to +60 minutes) 0x17023C80 (Sets the UTC offset to -60 minutes) |
|
Reboot |
0x22 |
0x02 |
0x759E is used to reboot device (note endianness, LSB first). |
0x0022029E75 (Reboots the device) |
To allow a flexible output from the device, CMi4140 has several message formats. Some are scheduled, meaning the meter is read at the top of every hour, and a clock message is sent once per day, see Scheduled message formats.
Table 283. CMi4140 message formats
|
Message format name |
Message ID |
Scheduled |
Introduced in FW |
|---|---|---|---|
|
Standard |
|
No |
1.0.1 |
|
Compact |
|
No |
1.0.1 |
|
JSON |
|
No |
1.0.1 |
|
Scheduled Daily Redundant |
|
Yes |
1.0.1 |
|
Scheduled Extended |
|
Yes |
1.0.1 |
|
Combined heating/cooling |
|
Yes |
1.0.1 |
|
Heat Intelligence |
|
Yes |
1.0.1 |
|
Scheduled Extended+ |
|
Yes |
1.0.3 |
|
Pulse |
|
Yes |
1.0.4 |
|
Pulse Extended |
|
Yes |
1.0.4 |
|
Scheduled Monthly |
|
Yes |
1.0.5 |
|
Scheduled Daily |
|
Yes |
1.0.5 |
|
Maximum Flow |
|
No |
1.0.5 |
Note
Message formats with more than one message ID, such as Pulse Extended, have been divided into several telegrams due to size limitations.
Table 284. Payload, message format Standard [0x15]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x15 (Standard) |
|
Heat energy E1 / Cooling energy E3 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Power |
4 bytes |
INT16 |
Power (W) 022Bxxxx = xxxx W 022Cxxxx = xxxx * 10 W 022Dxxxx = xxxx * 100 W 022Exxxx = xxxx kW 022Fxxxx = xxxx * 10 kW |
|
Flow |
4 bytes |
INT16 |
Flow ( m³/h) 023Bxxxx = xxxx * 0.001 m³/h 023Cxxxx = xxxx * 0.01 m³/h 023Dxxxx = xxxx * 0.1 m³/h 023Exxxx = xxxx m³/h 023Fxxxx = xxxx * 10 m³/h |
|
Fw temp |
4 bytes |
INT16 |
Forward temperature (°C) 0258xxxx = xxxx * 0.001 °C 0259xxxx = xxxx * 0.01 °C 025Axxxx = xxxx * 0.1 °C 025Bxxxx = xxxx °C |
|
Rt temp |
4 bytes |
INT16 |
Return temperature (°C) 025Cxxxx = xxxx * 0.001 °C 025Dxxxx = xxxx * 0.01 °C 025Exxxx = xxxx * 0.1 °C 025Fxxxx = xxxx °C |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Info bits |
7 bytes |
INT32 |
Error and warning flags 04FD17xxxxxxxx For further information about Info bits please refer to the meter’s manual |
Table 285. Payload, message format Compact [0x16]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x16 (Compact) |
|
Heat energy E1 / Cooling energy E3 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Info bits |
7 bytes |
INT32 |
Error and warning flags 04FD17xxxxxxxx For further information about Info bits please refer to the meter’s manual |
For message format JSON, the data is presented in plain text rather than M-Bus format, unlike the other message formats. The table below contains a description of all fields included in the JSON telegram.
Table 286. Payload, message format JSON [0x17]
|
Field |
Description |
|---|---|
|
Message format identifier |
0x17 (Message format JSON) |
|
Energy |
Energy consumption |
|
Unit |
Unit of energy consumption (Wh, kWh, MWh, GWh, J, kJ, MJ, GJ, Cal, kCal, MCal or GCal) |
|
Meter ID |
Identification number of the meter in which the module is mounted. |
See the following example of a telegram for message format JSON:
{"E":12345678,"U":"kWh","ID":87654321}
The Maximum flow message format includes the maximum flow from the previous month, as well as the date on which it occurred. See the details of the content in the table below.
Table 287. Payload, message format Maximum flow [0x53]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x53 |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field. Example: 0C7896979072 (Meter 72909796) |
|
Energy E1 or E3 |
6-7 |
INT32 |
Example: 040612340000 (13330 kWh), 040812340000 (13330 J) |
|
Max. flow rate in the last completed month |
5 |
INT16 |
Example: D2013Bxxxx. Maximum flow last month. Storage nr 3 is used (DIF=0x44, DIFE=0x01). Function field of DIF set to 0b01 for “maximum” value. |
|
Date of max flow |
5 |
INT16 |
Date (Type G), Example: D2016C1A36 (2024-06-26). Storage nr 3 is used (DIF=0x44, DIFE=0x01). Function field of DIF set to 0b01 for “maximum” value. This is the date for the maximum flow, typically different from the due date timestamp. Note: This date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Energy E1 or E3 at reporting date |
7-8 |
INT32 |
Example: 840106xxxxxxxx. Monthly energy value, either heat or cooling. Storage nr 2 is used for monthly value. |
|
Rt temp |
4 |
INT16 |
Example: 425Exxxx. Storage nr 1 is used for daily values in DIF. |
|
Info codes |
7 |
INT32 |
Error and warning flags. Example: 44FD17xxxxxxxx or 42FD170000. Note: 4 bytes in MC603/803 and 2 in MC403. This register is read and updated prior to transmission and not taken from the monthly log. |
For scheduled message formats, such as Scheduled Daily Redundant and Pulse Extended, two types of messages will be transmitted from the module - a clock message and a data message. Scheduled message formats will read the meter on top of the hour, making received telegrams more predictable. The difference between a clock message and a data message is described in the following table.
Table 288. Clock message and data message
|
Message |
Time interval |
Description |
|---|---|---|
|
Clock message |
Once per day |
The clock message presents the current time of the meter. It can be used to verify that the clock is correct and has not drifted more than accepted. |
|
Data message |
Determined by Transmit interval parameter |
The actual meter data collected from the meter. |
The following table contains a detailed description of the payload of the clock message.
Table 289. Payload, clock message
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0xFA (=Clock message) |
|
Date/Time |
6 bytes |
32 bit binary integer M-Bus type F |
046Dxxxxxx = Valid date/time message 346Dxxxxxx = Invalid date/time message |
The clock message will be transmitted once every day and the data message at least (regulated by transmit interval parameter or EcoMode) once every day. The transmit interval can only be set to the values listed in Table 290, “Transmit interval options ”.
Although the meter readout will occur on top-of-the-hour, the data message will not necessarily be transmitted at that exact time. The LoRaWAN® transmission will occur after a random delay of 0-15 minutes to decrease the risk of collisions. The readout for the clock message occurs at a random hour (00:00-23:00) at a random minute in the 35-45 minute interval and will be transmitted immediately after the readout.
Note
When using scheduled message formats, the transmit interval cannot be set to higher than 1440 (24 hours).
Table 290. Transmit interval options
|
Parameter |
Values |
Unit |
|---|---|---|
|
Transmit interval |
60, 120, 180, 240, 360, 480, 720, 1440 |
Minutes |
Message format Scheduled Daily Redundant contains an accumulated daily energy field, which is updated at 24:00 each day. In other words, depending on transmit interval settings and data rate, the same field will be included in 1 to 24 telegrams per day. This will increase the probability of the value being received. For example, if the transmit interval is set to “120”, the accumulated energy read at 24:00 will be transmitted 12 times during the next 24 hours (every second hour).
Table 291. Payload, message format Scheduled Daily Redundant [0x18]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x18 (Scheduled-daily redundant) |
|
Heat energy E1 / Cooling Energy E3 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Info bits |
7 bytes |
INT32 |
Error and warning flags 04FD17xxxxxxxx For further information about Info bits please refer to the meter’s manual |
|
Meter date/time |
6 bytes |
INT32 |
Meter date and time (YY-MM-DD HH:MM) 046Dxxxxxxxx Bit 31-28 = Year-high* Bit 27-24 = Month Bit 23-21 = Year-low* Bit 20-16 = Day Bit 15 = Summertime flag** Bit 12-8 = Hour Bit 7 = Error flag*** Bit 6 = Reserved for future use*** Bit 5-0 = Minute *The year is read by combining the year-high and year-low field. For example, year-high = 0010 and year-low = 010 => year = 0010010 **0 = standard time, 1= daylight-saving time ***0 = timestamp is valid, 1 = timestamp is not valid |
|
Accumulated heat / cooling energy at 24:00 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 4400xxxxxxxx = xxxxxxxx,xxx Wh 4401xxxxxxxx = xxxxxxxx,xx Wh 4402xxxxxxxx = xxxxxxxx,x Wh 4403xxxxxxxx = xxxxxxxx Wh 4404xxxxxxxx = xxxxxxxx *10 Wh 4405xxxxxxxx = xxxxxxxx *100 Wh 4406xxxxxxxx = xxxxxxxx kWh 4407xxxxxxxx = xxxxxxxx * 10 kWh 440Exxxxxxxx = xxxxxxxx MJ 440Fxxxxxxxx = xxxxxxxx * 10 MJ 44FB0Dxxxxxxxx = xxxxxxxx MCal 44FB0Exxxxxxxx = xxxxxxxx * 10 MCal 44FB0Fxxxxxxxx = xxxxxxxx * 100 MCal Note: Before a midnight reading has been performed the Function field of the DIF is set to “value during error state” to indicate that the value is not valid. |
The data message format Scheduled Extended contains all the data fields from message format Standard. In addition to these, it also includes the meter date/time to transmit messages at the top of the hour. As for all scheduled message formats, the transmit interval can only be set to the values included in Table 238, “Transmit interval options ”.
The following table contains a detailed description of the payload of message format Scheduled Extended.
Table 292. Payload, message format Scheduled Extended [0x19]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x19 (Scheduled-Extended) |
|
Heat energy E1 / Cooling Energy E3 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Power / Flow / Fw temp / Rt temp |
12 bytes |
INT64 |
Byte 0-2 = DIF/VIF codes, 0x07FFA0 Byte 3 = VIFE defining scaling of Power/Flow -Bit 6.4 (n), 10n-3 W, n = 0..7 -Bit 2..0 (m), 10m-3 m³/h, m = 0..7 Byte 4-5 = Fw temp (lsByte -> msByte), °C, 2 decimals Byte 6-7 = Rt temp (lsByte -> msByte), °C, 2 decimals Byte 8-9 = Flow (lsByte -> msByte), 10m-6 m³/h Byte 10-11 = Power (lsByte -> msByte), 10n-3 W |
|
Meter ID / Info bits |
11 bytes |
INT96 |
Byte 0-2 = DIF/VIF codes, 0x07FF21 Byte 3-6 = Info bits (lsByte -> msByte) Byte 7-10 = Meter ID (lsByte -> msByte)* *Sent in binary format |
|
Meter date/time |
6 bytes |
INT32 |
Meter date and time (YY-MM-DD HH:MM) 046Dxxxxxxxx Bit 31-28 = Year-high* Bit 27-24 = Month Bit 23-21 = Year-low* Bit 20-16 = Day Bit 15 = Summertime flag** Bit 12-8 = Hour Bit 7 = Error flag*** Bit 6 = Reserved for future use*** Bit 5-0 = Minute *The year is read by combining the year-high and year-low field. For example, year-high = 0010 and year-low = 010 => year = 0010010 **0 = standard time, 1= daylight-saving time ***0 = timestamp is valid, 1 = timestamp is not valid |
Table 293. Payload, message format Combined heat/cooling [0x1A]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x1A (Combined heat/cooling) |
|
Heat energy E1 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Cooling Energy E3 |
8-9 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0483FF02xxxxxxxx = xxxxxxxx Wh 0484FF02xxxxxxxx = xxxxxxxx * 10 Wh 0485FF02xxxxxxxx = xxxxxxxx * 100 Wh 0486FF02xxxxxxxx = xxxxxxxx kWh 0487FF02xxxxxxxx = xxxxxxxx * 10 kWh 048EFF02xxxxxxxx = xxxxxxxx MJ 048FFF02xxxxxxxx = xxxxxxxx * 10 MJ 04FB8DFF02xxxxxxxx = xxxxxxxx MCal 04FB8EFF02xxxxxxxx = xxxxxxxx * 10 MCal 04FB8FFF02xxxxxxxx = xxxxxxxx * 100 MCal |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Fw temp |
4 bytes |
INT16 |
Forward temperature (°C) 0258xxxx = xxxx * 0.001 °C 0259xxxx = xxxx * 0.01 °C 025Axxxx = xxxx * 0.1 °C 025Bxxxx = xxxx °C |
|
Rt temp |
4 bytes |
INT16 |
Return temperature (°C) 025Cxxxx = xxxx * 0.001 °C 025Dxxxx = xxxx * 0.01 °C 025Exxxx = xxxx * 0.1 °C 025Fxxxx = xxxx °C |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Info bits |
7 bytes |
INT32 |
Error and warning flags 04FD17xxxxxxxx For further information about Info bits please refer to the meter’s manual |
This telegram will be adapted to the type of meter in which the module is mounted. That means that it will look slightly different depending on whether the module is mounted in a heat meter, a cooling meter or a combined heat/cooling meter. Please note for instance that DIB 2 in the table below is only included in combined heat/cooling meters, i.e. not in pure heat meters or pure cooling meters.
Table 294. Payload, message format Heat Intelligence [0x1B]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x1B (Heat intelligence) |
|
Heat energy E1 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Cooling energy E3 |
8-9 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0480 FF02xxxxxxxx = xxxxxxxx,xxx Wh 0481 FF02xxxxxxxx = xxxxxxxx,xx Wh 0482 FF02xxxxxxxx = xxxxxxxx,x Wh 0483FF02xxxxxxxx = xxxxxxxx Wh 0484FF02xxxxxxxx = xxxxxxxx * 10 Wh 0485FF02xxxxxxxx = xxxxxxxx * 100 Wh 0486FF02xxxxxxxx = xxxxxxxx kWh 0487FF02xxxxxxxx = xxxxxxxx * 10 kWh 048EFF02xxxxxxxx = xxxxxxxx MJ 048FFF02xxxxxxxx = xxxxxxxx * 10 MJ 04FB8DFF02xxxxxxxx = xxxxxxxx MCal 04FB8EFF02xxxxxxxx = xxxxxxxx * 10 MCal 04FB8FFF02xxxxxxxx = xxxxxxxx * 100 MCal |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Meter ID / Info bits |
16 bytes |
INT96 |
Byte 0-2 = DIF/VIF codes, 0x07FF21 Byte 3-6 = Info bits (lsByte -> msByte) Byte 7-10 = Meter ID (lsByte -> msByte)* *Sent in binary format |
|
Energy E8 |
7 bytes |
INT32 |
Energy ( m³ * °C) 04FF07xxxxxxxx = xxxxxxxx m³ * °C |
|
Energy E9 |
7 bytes |
INT32 |
Energy ( m³ * °C) 04FF08xxxxxxxx = xxxxxxxx m³ * °C |
The data message of message format Scheduled Extended+ contains three tariffs and all the meter data included in the Standard telegram. In addition to these, a timestamp from the meter (meter date/time) is included in each telegram. It is divided into two telegrams to keep each telegram below 45 bytes.
Table 295. Telegram 1 - Payload, message format Scheduled Extended+ [0x3B]
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x3B (Scheduled Extended+, telegram 1) |
|
Heat energy E1 / Cooling energy E3 |
6-7 bytes |
INT32 |
Energy consumption (Wh, J, Cal) 0400xxxxxxxx = xxxxxxxx,xxx Wh 0401xxxxxxxx = xxxxxxxx,xx Wh 0402xxxxxxxx = xxxxxxxx,x Wh 0403xxxxxxxx = xxxxxxxx Wh 0404xxxxxxxx = xxxxxxxx * 10 Wh 0405xxxxxxxx = xxxxxxxx * 100 Wh 0406xxxxxxxx = xxxxxxxx kWh 0407xxxxxxxx = xxxxxxxx * 10 kWh 040Exxxxxxxx = xxxxxxxx MJ 040Fxxxxxxxx = xxxxxxxx * 10 MJ 04FB0Dxxxxxxxx = xxxxxxxx MCal 04FB0Exxxxxxxx = xxxxxxxx * 10 MCal 04FB0Fxxxxxxxx = xxxxxxxx * 100 MCal |
|
Energy Tariff 2 |
8 |
INT32 |
840203xxxxxxxx = xxxxxxxx Wh |
|
Energy Tariff 3 |
8 |
INT32 |
840303xxxxxxxx = xxxxxxxx Wh |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Meter date/time |
6 bytes |
INT32 |
Meter date and time (YY-MM-DD HH:MM) 046Dxxxxxxxx Bit 31-28 = Year-high* Bit 27-24 = Month Bit 23-21 = Year-low* Bit 20-16 = Day Bit 15 = Summertime flag** Bit 12-8 = Hour Bit 7 = Error flag*** Bit 6 = Reserved for future use*** Bit 5-0 = Minute *The year is read by combining the year-high and year-low field. For example, year-high = 0010 and year-low = 010 => year = 0010010 **0 = standard time, 1= daylight-saving time ***0 = timestamp is valid, 1 = timestamp is not valid |
Table 296. Telegram 2 - Payload, message format Scheduled Extended+
|
Field |
Size |
Data type |
Description |
|---|---|---|---|
|
Message format identifier |
1 byte |
- |
0x3C (Scheduled Extended+) |
|
Volume |
6 bytes |
INT32 |
Volume ( m³ ) 0411xxxxxxxx = xxxxxxxx * 0.00001 m³ 0412xxxxxxxx = xxxxxxxx * 0.0001 m³ 0413xxxxxxxx = xxxxxxxx * 0.001 m³ 0414xxxxxxxx = xxxxxxxx * 0.01 m³ 0415xxxxxxxx = xxxxxxxx * 0.1 m³ 0416xxxxxxxx = xxxxxxxx m³ 0417xxxxxxxx = xxxxxxxx * 10 m³ |
|
Power |
4 bytes |
INT16 |
Power (W) 022Bxxxx = xxxx W 022Cxxxx = xxxx * 10 W 022Dxxxx = xxxx * 100 W 022Exxxx = xxxx kW 022Fxxxx = xxxx * 10 kW |
|
Flow |
4 bytes |
INT16 |
Flow ( m³/h) 023Bxxxx = xxxx * 0.001 m³/h 023Cxxxx = xxxx * 0.01 m³/h 023Dxxxx = xxxx * 0.1 m³/h 023Exxxx = xxxx m³/h 023Fxxxx = xxxx * 10 m³/h |
|
Fw temp |
4 bytes |
INT16 |
Forward temperature (°C) 0258xxxx = xxxx * 0.001 °C 0259xxxx = xxxx * 0.01 °C 025Axxxx = xxxx * 0.1 °C 025Bxxxx = xxxx °C |
|
Rt temp |
4 bytes |
INT16 |
Return temperature (°C) 025Cxxxx = xxxx * 0.001 °C 025Dxxxx = xxxx * 0.01 °C 025Exxxx = xxxx * 0.1 °C 025Fxxxx = xxxx °C |
|
Meter ID |
6 bytes |
According to M-Bus EN13757-3 identification field |
Meter ID 0C78xxxxxxxx |
|
Meter date/time |
6 bytes |
INT32 |
Meter date and time (YY-MM-DD HH:MM) 046Dxxxxxxxx Bit 31-28 = Year-high* Bit 27-24 = Month Bit 23-21 = Year-low* Bit 20-16 = Day Bit 15 = Summertime flag** Bit 12-8 = Hour Bit 7 = Error flag*** Bit 6 = Reserved for future use*** Bit 5-0 = Minute *The year is read by combining the year-high and year-low field. For example, year-high = 0010 and year-low = 010 => year = 0010010 **0 = standard time, 1= daylight-saving time ***0 = timestamp is valid, 1 = timestamp is not valid |
|
Info bits |
7 bytes |
INT32 |
Error and warning flags 04FD17xxxxxxxx For further information about Info bits please refer to the meter’s manual |
Message format Pulse includes data from the pulse inputs In A and In B of the module. How the pulses should be interpreted can be configured in the meter interface. Depending on configuration, the pulses can represent either volume or energy. Due to size, the message format is divided in two telegrams.
The following table contains a detailed description of the payload of message format Pulse.
Table 297. Telegram 1 - Payload, message format Pulse [0x1C]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x1C |
|
Date and time |
6 |
INT32 |
Date and Time (M-Bus Type F) Example: 046Dxxxxxxxx |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field Example: 0C78xxxxxxxx |
|
Energy |
6-7 |
INT32 |
Example: 0406xxxxxxxx, 040Fxxxxxxxx |
|
Volume |
6 |
INT32 |
Example: 0413xxxxxxxx |
|
Power |
4 |
INT16 |
Example: 022Bxxxx |
|
Flow |
4 |
INT16 |
Example: 023Bxxxx |
|
Fw temp |
4 |
INT16 |
Example: 025Axxxx |
|
Rt temp |
4 |
INT16 |
Example: 025Exxxx |
Table 298. Telegram 2 - Payload, message format Pulse [0x1D]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x1D |
|
Date and time |
6 |
INT32 |
Date and Time (M-Bus Type F) Example: 046Dxxxxxxxx |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field Example: 0C78xxxxxxxx |
|
Pulse In A |
7 |
INT32 |
Reads the registers corresponding to the In A connector on the module. Sub-unit 1 is used in DIFE for In A. Examples: Volume: 844014B1EB0100 = 1258,73 m3 Energy: 84400725120000 = 46450 kWh |
|
Pulse In B |
8 |
INT32 |
Reads the registers corresponding to the In B connector on the module Sub-unit 2 is used in DIFE for In B Examples: Volume: 848040144E1E0100 = 732,94 m3 Energy: 8480400601230000 = 8961 kWh |
|
Operating hours |
6 |
INT32 |
Reads the Operating Hours register of the meter. Examples: 042238220000 = 8 760h (~1 year) 042280230200 = 140 160h (~16 years) |
|
Info codes |
7 |
INT32 |
Error and warning flags. Example: 04FD17xxxx Note that this field is always 32 bits, even when using MULTICAL® 403 which only reports 16 bits. |
Message format Pulse Extended is similar to message format Pulse and includes data from the pulse inputs In A and In B of the module. Besides other data points, this message format also includes energy tariffs. How the pulses should be interpreted can be configured in the meter interface. Depending on configuration, the pulses can represent either volume or energy. Due to size, the message format is divided in two telegrams.
The following table contains a detailed description of the payload of message format Pulse Extended.
Table 299. Telegram 1 - Payload, message format Pulse Extended [0x4D]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x4D |
|
Date and time |
6 |
INT32 |
Date and Time (M-Bus Type F) Example: 046Dxxxxxxxx |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field Example: 0C78xxxxxxxx |
|
Energy |
6-7 |
INT32 |
Example: 0406xxxxxxxx, 040Fxxxxxxxx |
|
Volume |
6 |
INT32 |
Example: 0413xxxxxxxx |
|
Power |
4 |
INT16 |
Example: 022Bxxxx |
|
Fw temp |
4 |
INT16 |
Example: 025Axxxx |
|
Rt temp |
4 |
INT16 |
Example: 025Exxxx |
|
Info codes |
7 |
INT32 |
Error and warning flags Example: 04FD17xxxx Note that this field is always 32 bits, even when using MULTICAL® 403 which only reports 16 bits. |
Table 300. Telegram 2 - Payload, message format Pulse Extended [0x4E]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x4E |
|
Date and time |
6 |
INT32 |
Date and Time (M-Bus Type F) Example: 046Dxxxxxxxx |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field Example: 0C78xxxxxxxx |
|
Energy Tariff 2 |
7-8 |
INT32 |
842003xxxxxxxx |
|
Energy Tariff 3 |
7-8 |
INT32 |
843003xxxxxxxx |
|
Pulse In A |
7 |
INT32 |
Reads the registers corresponding to the In A connector on the module. Sub-unit 1 is used in DIFE for In A. Examples: Volume: 844014B1EB0100 = 1258,73 m3 Energy: 84400725120000 = 46450 kWh |
|
Pulse In B |
8 |
INT32 |
Reads the registers corresponding to the In B connector on the module Sub-unit 2 is used in DIFE for In B Examples: Volume: 848040144E1E0100 = 732,94 m3 Energy: 8480400601230000 = 8961 kWh |
The Scheduled Monthly Extended message format is developed to meet the requirements of customers with high data privacy requirements. Unlike several other message formats, current values are not sent. Instead, the meter log is used to get values from the last day or month. For example, this means that the same monthly value will be repeated throughout a month. Due to size limitations, this message format is divided into two telegrams.
Note
The availability of the log data is dependent on correct configuration of the meter. If the meter is not configured to store the needed log data it will not be part of the payload.
This is an important prerequisite for using this message format. Monthly values are read from the monthly log in the meter (using storage number 2 when sent as M-Bus). Storage number bit in DIF unset and bit 0 in DIFE set means storage number 2.
There are three timestamps included in this format, separated by storage number. Date of monthly value (storage number 2), Date of max flow value last month (storage number 3), and Date and time of info codes (storage number 0)
Table 301. Telegram 1 - Payload message format Scheduled Monthly Extended [0x4F]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x4F |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field. Example: 0C7896979072 (Meter 72909796) |
|
Date part of reporting date (monthly log) |
5 |
INT32 |
Date (M-Bus Type G), Example: 82016C1A36 (2024-06-26). Storage number 2 used for monthly value. Note: this date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Energy E1 or E3 at reporting date (monthly log) |
7-8 |
INT32 |
Example: 840106xxxxxxxx. Monthly energy value, either heat or cooling. Storage number 2 is used for monthly value. |
|
Volume at the reporting date (monthly log) |
7 |
INT32 |
Example: 840111xxxxxxxx. Monthly volume value. Storage number 2 is used for monthly value. |
|
Power at reporting date (monthly log) |
5 |
INT16 |
Example: 82012Bxxxx. Storage number 2 is used for monthly value. |
|
Date and Time |
6 |
INT32 |
Date and Time (Type F), Example: 046D00262332 (2025-02-03 06:00). Note: this is the time for the info codes! |
|
Info codes |
5-7 |
INT32 |
Error and warning flags. Example: 04FD17xxxxxxxx or 02FD170000. Note: 4 bytes in MC603/803 and 2 in MC403. This register is read and updated prior to transmission and not taken from the monthly log. |
Table 302. Telegram 2 - Payload message format Scheduled Monthly Extended [0x50]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x50 |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field. Example: 0C7896979072 (Meter 72909796) |
|
Date part of reporting date (daily log) |
4 |
INT32 |
Date (M-Bus Type G), Example: 426C1A36 (2024-06-26). Storage number 1 used for daily value. Note: this date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Flow at reporting date (daily log) |
4 |
INT16 |
Example: 423Bxxxx. Storage number 1 is used for daily value. |
|
Fw temp at reporting date (daily log) |
4 |
INT16 |
Example: 425Axxxx. Storage number 1 is used for daily value. |
|
Rt temp at reporting date (daily log) |
4 |
INT16 |
Example: 425Exxxx. Storage number 1 is used for daily value. |
|
Max. flow rate in the last completed month |
5 |
INT16 |
Example: D2013Bxxxx. Maximum flow last month. Storage number 3 is used (DIF=0xD2, DIFE=0x01). Function field of DIF set to 0b01 for “maximum” value. Note: this date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Date of max flow |
5 |
INT32 |
Date and Time (Type G), Example: C2016C1A36 (2024-06-26). Storage number 3 is used (DIF=0xC2, DIFE=0x01). This is the date for the maximum flow, typically different from the due date timestamp. |
The Scheduled Daily Extended message format is developed to meet the requirements of customers with high data privacy requirements. Unlike several other message formats, current values are not sent. Instead, the meter log is utilized to get values from the last day or month. For example, this means that the same daily value will be repeated throughout the day if sent multiple times (which in turn will increase the probability of receiving the message). Due to size limitations, this message format is divided into two telegrams.
Note
The availability of the log data is dependent on correct configuration of the meter. If the meter is not configured to store the needed log data it will not be part of the payload.
This is an important prerequisite for using this message format. Monthly values are read from the monthly log in the meter (using storage number 2 when sent as M-Bus). Storage number bit in DIF unset and bit 0 in DIFE set means storage number 2.
There are three timestamps included in this format, separated by storage number. Date of monthly value (storage number 2), Date of max flow value last month (storage number 3), and Date and time of info codes (storage number 0)
Table 303. Telegram 1 - Payload message format Scheduled Daily Extended [0x51]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x51 |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field. Example: 0C7896979072 (Meter 72909796) |
|
Date part of reporting date |
4 |
INT32 |
Date (M-Bus Type G), Example: 426C1A36 (2024-06-26). Storage number 1 used for daily value. Note: this date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Energy (E1 or E3 depending on meter type) |
6-7 |
INT32 |
Example: 4406xxxxxxxx, 440Fxxxxxxxx. Storage number 1 is used for daily values in DIF. |
|
Volume |
6 |
INT32 |
Example: 4413xxxxxxxx. Storage number 1 is used for daily values in DIF. |
|
Power |
4 |
INT16 |
Example: 422Bxxxx. Storage number 1 is used for daily values in DIF. |
|
Flow |
4 |
INT16 |
Example: 423Bxxxx. Storage number 1 is used for daily values in DIF. |
Table 304. Telegram 2 - Payload message format Scheduled Daily Extended [0x52]
|
Field |
Size (bytes) |
Data type |
Description |
|---|---|---|---|
|
Message ID |
1 |
UINT8 |
Always 0x52 |
|
Meter ID |
6 |
BCD8 |
According to M-Bus EN13757-3 identification field. Example: 0C7896979072 (Meter 72909796) |
|
Date part of reporting date |
4 |
INT32 |
Date (M-Bus Type G), Example: 426C1A36 (2024-06-26). Storage number 1 used for daily value. Note: this date is not compensated to be sent in UTC since it is only a date. It is the date stored in the meter, which may be local time, not UTC. |
|
Fw temp |
4 |
INT16 |
Example: 425Axxxx. Storage number 1 is used for daily values in DIF. |
|
Rt temp |
4 |
INT16 |
Example: 425Exxxx. Storage number 1 is used for daily values in DIF. |
|
Date and Time |
6 |
INT32 |
Date and Time (Type F), Example: 046Dxxxxxxxx. |
|
Info codes |
5-7 |
INT32 |
Error and warning flags. Example: 04FD17xxxxxxxx or 02FD170000. Note: 4 bytes in MC603/803 and 2 in MC403. This register is read and updated prior to transmission and not taken from the daily log. |
Comments (0 comments)