Configuration options

Elvaco OTC App 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


Downlink configuration options

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)


Message formats

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

0x15

No

1.0.1

Compact

0x16

No

1.0.1

JSON

0x17

No

1.0.1

Scheduled Daily Redundant

0x18

Yes

1.0.1

Scheduled Extended

0x19

Yes

1.0.1

Combined heating/cooling

0x1A

Yes

1.0.1

Heat Intelligence

0x1B

Yes

1.0.1

Scheduled Extended+

0x3B telegram 1

0x3C telegram 2

Yes

1.0.3

Pulse

0x1C telegram 1

0x1D telegram 2

Yes

1.0.4

Pulse Extended

0x4D telegram 1

0x4E telegram 2

Yes

1.0.4

Scheduled Monthly

0x4F telegram 1

0x50 telegram 2

Yes

1.0.5

Scheduled Daily

0x51 telegram 1

0x52 telegram 2

Yes

1.0.5

Maximum Flow

0x53

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.

Unscheduled message formats

Standard

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


Compact

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


JSON

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} 

Maximum flow

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.


Scheduled message formats

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


Scheduled Daily Redundant

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.


Scheduled Extended

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


Combined heat/cooling

Note

Message format Combined heat/cooling is only meant to be used in combined heat/cooling meters.

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


Heat intelligence

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


Scheduled Extended+

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


Pulse

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.


Pulse Extended

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


Scheduled Monthly Extended

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.


Scheduled Daily Extended

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.


Was this article helpful?

0 out of 0 found this helpful
Have more questions? Submit a request

Comments (0 comments)

Article is closed for comments.