Table of medium IDs

Types of data measured by Energomonitor devices are called mediums and they are identified by a medium ID — a 16-bit identifier, usually written as a decimal number. This identifier is used in various places, including the MQTT protocol, API, and Forwarder.

The medium ID consists of two 8-bit components:

  • quantity (lower 8 bits) — specifies the measured quantity (e.g. electric power)

  • modifier (higher 8 bits) — describes additional semantics of the measured value:

    • 0 — immediate value at the measurement time

    • 1 — minimum value over the measurement interval

    • 2 — maximum value over the measurement interval

For example, medium ID 12 (quantity 12, modifier 0) denotes immediate electric power, while medium ID 524 (quantity 12, modifier 2) denotes maximum electric power.

In this document, we consider only medium IDs with modifier 0 with an implicit assumption that a different modifier can be applied to any medium ID discussed.

The following table lists all medium IDs together with related information. Medium IDs not listed in the table are reserved for future use by Energomonitor. For the explanation of table columns, see the legend below.

ID

Name

Unit

Type

Processing

Aggregation

Post-aggregation ID

Notes

0

(reserved)

1

1

electric power / temperature

W / °C

float

scalar

average

1

2

2

pulse count

#

uint

counter

last

2

3

3

gas meter pulse count

#

uint

counter

last

3

4

4

water meter pulse count

#

uint

counter

last

4

5

11

RSSI

dBm

float

scalar

average

11

12

electric power

W

float

flow

integral

22

6

13

volumetric gas flow rate

L/h

float

flow

integral

23

14

volumetric water flow rate

L/h

float

flow

integral

24

15

pulse count

#

uint

counter

last

15

16

temperature

°C

float

scalar

average

16

17

constant voltage

V

float

scalar

average

17

7

20

switch state

uint16

raw

last

20

22

electricity consumption

Wh

float

volume

last

22

23

gas consumption

L

float

volume

last

23

24

water consumption

L

float

volume

last

24

25

IPU

#/kWh / #/m3

uint

scalar

last

25

8

29

CO2 concentration

ppm

float

scalar

average

29

35

voltage

V

float

scalar

average

35

37

relative humidity

%

float

scalar

average

37

38

battery voltage

V

float

scalar

average

38

9

39

pulse flow rate

#/h

float

scalar

average

39

127

(reserved)

10

Legend

ID

Medium ID identifying the medium.

Name

Name of the medium.

Unit

Unit of measurement of the medium.

Type

Data type needed to save medium’s values.

  • For mediums corresponding to hardware registers, bit fields, identifiers, etc., an exact data type is specified (e.g. uint16).

  • For mediums corresponding to continuous measured quantities (which is most quantities), data type float is specified. Its exact size depends on the data processor and its needs. A minimum required is float32.

  • For mediums corresponding to discrete measured quantities (which is mainly counters), data type uint is specified. Its exact size depends on the data processor and its needs. A minimum required is uint32.

  • In practice, values of all mediums can be processed as float64 without a loss of precision. This is because this data type can precisely represent numbers up to 253.

Processing

Defines how to process medium’s values:

  • raw — should not be processed

  • counter — should be processed as a counter that increases over time

  • scalar — should be processed as a scalar

  • flow — should be processed as a flow rate, possibly used to compute a volume accumulated over time

  • volume — should be processed as a volume accumulated over time, possibly used to compute a flow rate

Note that a counter can also occasionaly decrease (e.g. when sensor’s internal counter overflows, the battery is replaced, etc.). Such occasions should be detected and treated as invalid data.

Aggregation

Defines how to compute the result when aggregating medium’s values over a time interval:

  • last — return the last value in the interval

  • average — return the average of the values in the interval

  • integral — compute volume from the flow and return the total volume accumulated over the time interval

Post-aggregation ID

Medium ID of the resulting value when aggregating medium’s values over a time interval.

Notes

Additional notes.

Notes

1

Should never appear in the data.

2

Defined by Current Cost for their old sensors. Replaced by mediums 12 a 16.

3

Defined by Current Cost for their old sensors. Use for any pulse input (electricity, water, gas). Replaced by medium 15.

4

Defined by Current Cost for their old sensors.

5

Defined by Current Cost for their old sensors.

6

It is not specified what kind of power this is (active or apparent), this depends on the sensor.

7

Voltage which is not measured, but set to a fixed value.

8

The number of pulses per unit, necessary when converting pulses to consumption.

9

Voltage of device’s own battery.

10

Reserved for possible extension.