Table of medium IDs

One data type 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.

Note that integral aggregation is not available at the moment

ID

Name

Unit

Type

Processing

Aggregation

Post-aggregation ID

Notes

0

(reserved)

[1]

1

electric power / temperature

W / °C

float

scalar

integral

22

[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]

10

LQI

float

scalar

average

10

11

RSSI

dBm

float

scalar

average

11

12

electric power

W

float

flow

integral

22

[6]

13

gas flow rate

L/h

float

flow

integral

23

14

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

21

REG

uint8

raw

last

21

[8]

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

[9]

26

UNIQ

uint32

raw

last

26

[10]

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

[11]

39

pulse flow rate

#/h

float

scalar

average

39

48

illuminance

lx

float

scalar

average

48

49

smoke

uint

flag

last

49

[12]

51

motion count

#

uint

counter

last

51

52

flooding

uint

flag

last

52

[13]

53

precise battery voltage

mVh

float

scalar

average

53

[14]

54

valve state

uint16

raw

last

54

55

holder

uint

flag

last

55

[15]

56

heat power

W

float

flow

integral

57

57

heat consumption

Wh

float

volume

last

57

59

VOC index

float

scalar

average

59

60

PM1 concentration

µg/m³

float

scalar

average

60

61

PM2.5 concentration

µg/m³

float

scalar

average

61

62

PM4 concentration

µg/m³

float

scalar

average

62

63

PM10 concentration

µg/m³

float

scalar

average

63

64

NOX index

float

scalar

average

64

127

(extension)

[16]

128

connection status

uint

flag

last

128

[17]

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

  • flag — should be processed as a boolean flag

  • 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