This cluster delivers the concentration of the remote sensor, and the minimumum and maximum measured since last power on or reset.
This cluster can be used to manage different kind of concentration measurements. As an exemple, for a CO2 sensor the unit may be 'ppm', while for a VOC sensor the measurement is is only an Indoor Air Quality indicator usually in range of 0(Best) to 500(Worst).
If a field of the payload starts with 0x, this means that it’s an hexadecimal representation, and if it starts with 0b, it is a binary representation. Any multi-byte numerical value is serialized in “Big Endian” order.
Measurement Attributes
The Measured Value reportable attribute contains last measured value data for CO2 or COV sensors. A readonly Unit attribute gives information about unit managed by current endpoint.
Measured Value
The Measured value information attribute set contains the attribute representing the current concentration value measured by the device.
Notice that the Measured Value Attribute (0x0000) is the source of calculated attributes that keep currents Mean (0x0100), Minimal(0x0101) and Maximal(0x0102) values since startup or reset of the sensor. All these calculated attributes can be accessed the same way than the source one.
0x15: 0bsssssss is the size of configuration string after attributeID (obsssssss1 right shifted). The size here is 0x0A. 0x0000: AttributeID 0x00: the index of required field( the MeasuredValue attribute has got only one field 0) 0xmmmm: minimum reporting interval 0xMMMM: maximum reporting interval 0xdddd: required delta value (the size depends on the attribute data type) 0xrrrr: required resolution (the size depends on the attribute data type) 0xtt: the tag value
0xss: status 0x15: 0bsssssss is the size of configuration string after attributeID (obsssssss1 right shifted). The size here is 0x0A. 0x0000: AttributeID 0x00: the index of required field( the MeasuredValue attribute has got only one field 0) 0xmmmm: minimum reporting interval 0xMMMM: maximum reporting interval 0xdddd: required delta value (the size depends on the attribute data type) 0xrrrr: required resolution (the size depends on the attribute data type) 0xtt: the tag value
Ask the maximum value that the sensor is capable to measure
Read attribute response
0x11 or 0x31 or
...
0x01
0x800C
0x8004
0x00
0x20
0xuu
0xuu: Possible concentration units:
0xFF: Unit is undefined
0x01: Parts per 10
0x02: Parts per 100
0x03: Parts per 1000
0x06: Parts per Million
0x09: Parts per Billion
0x0C: Parts par Trillion
0x0F: Parts par Quintillion
0x80: 0 to 500 Indicator (IAQ)
Statistic Attributes
These reportables attributes show the Minimal, Mean and Maximum values of CO2 or VOC sensor since sensor startup or last "Reset statistics" cluster specific command.
They can be read and reported in the same way than the "Measurement Attribute", by just changing the "Attribute ID" to the right one:
Mean : 0x0100
Minimum : 0x0101
Maximum : 0x0102
Concentration level classification and display Attributes
These attributes are used to manage "ranges" of air quality levels.
The Classification attribute can be used to make specific reports on current classification levels (CO2). Classification levels and HMI Display period attributes can also be used to settle classification level display on the sensor HMI For VAQAO sensors the HMI is made of the Leds.
The classification is done accross 6 different levels (5 thresholds), however the HMI display uses only 3 indications on current LED display, using RED,ORANGE and GREENcoding on the dedicated IAQ Led.
When HMI display is required on both CO2 and VOC endpoint, the displayed is done according the current worst classification of both.
Following table summarize Classifications, default values and HMI display for CO2 and/or VOC.
Level Value
level name
CO2
VOC
IAQ Led blink
0
EXCELLENT
< 500
50
GREEN (Default blinks each 30s)
1
GOOD
[500, 700]
[50, 100]
GREEN (Default blinks each 30s)
2
AVERAGE
[700, 1100]
[100, 150]
ORANGE (Default blinks each 15s)
3
BAD
[1100, 1300]
[150, 200]
ORANGE (Default blinks each 15s)
4
VERY BAD
[1300, 1700]
[200, 300]
RED (Default blinks each 7s)
5
UNHEALTHY
> 1700
> 300
RED (Default blinks each 7s)
Notes about level classification display:
EXCELLENT/GOOD status is display at the HMI Display period attribute (Default 30s). AVERAGE and BAD are displayed at half the period (Default 15s). VERY and UNHEALTHY are displyed at about a quarter of the period (Default 7s).
When they exists, the air quality display can be based on CO2 or COV or both of them, by configuring the two endpoints of concentrations attributes (COV: 1105800C802021xxxx and CO2: 3105800C802021xxxx). The min of both periods will be used.
The concentration level display can be removed (stopped) by setting theHMI Display period attribute to 0xFFFF, the downlink frames to send is should be 1105800C802021FFFF and/or 3105800C802021FFFF
Classification
The Classification attribute represent the current classification of current measured value.
0x00 0x55: attributeID 0x20: attribute type 0xmmmm: minimum reporting interval 0xMMMM: maximum reporting interval 0xcc: 0x00: do not report on change/ 0x01: report on any change
0x11: Batch(size+flag); 0bsssssss is the size of configuration string after attributeID (obsssssss1 right shifted). The size here is 0x08. 0x00 0x55: AttributeID 0x00: the index of required field 0xmmmm: minimum recorting interval 0xMMMM: maximum recorting interval 0xdd: the required delta value (the size depends on the attribute data type) 0xrr: the required resolution value (the size depends on the attribute data type) 0xtt:the tag value
0xss : status 0x11: Batch(size+flag); 0bsssssss is the size of configuration string after attributeID (obsssssss1 right shifted). The size here is 0x08. 0x00: the index of required field 0xmmmm: minimum reporting interval 0xMMMM: maximum reporting interval 0xdd: the required delta value (the size depends on the attribute data type) 0xrr: the required resolution value (the size depends on the attribute data type) 0xtt: the tag value
Classification levels
5 classification levels can be read or written with this attributes.
Ask the minimal/normal concentration level defined for this sensor
Read attribute response
0x11 or 0x31 or
...
0x01
0x800C
0x8020
0x00
0x21
0xpppp
0xpppp: HMI display period (Seconds)
0xFFFF : Not displayed (Leds off)
Write no response
0x11 or 0x31 or
...
0x05
0x800C
0x8020
0x21
0xpppp
Buzzer alarms parameters (VAQAO 2 only)
A buzzer alarm can be fired peiodically when defined classificationLevel threshold is overpassed. Some attributes of cluster concentration are used to manage Buzzer behavior according to current classification levels.
It can be configured on CO2 and/or COV concentration measurement. The buzzer alarms will ring if one of the two (CO2 and COV) thresholds is overpassed. The hysteresis around each threshold is defined with two attributes ThesholdHigh and ThresholdLow. Attributes BuzzerPeriod defines ringing periodicity of the alarm.
Whatever (CO2 or COV) has trig the alarm the sound is the following one:
It is possible to "pause" the Alarm for while by HMI. The Alarm won't ring anymore during the defined PauseDuration attribute (In minutes, default 24h).
To do so, when alarm is on, the user can "pause" it during a while (snooze) by actuating ILS2 once or TAP the sensor once. The sensor will then ring following specific sound, and stop its periodical ringing for the duration of the "pause":
After Factory reset following attributes parameters are set on each instance of associated cluster:
AttributeID
COV
CO2
BuzzerAlarmPeriod (Seconds)
0x8031 [U16:0x21]
30s
30s
BuzzerAlarmPauseDuration (Minutes)
0x8032 [U16:0x21]
1440mn (24h)
1440mn (24h)
BuzzerAlarmThresholdHigh
0x8033 [U8:0x20]
UNDEFINED
UNHEALTHY
BuzzerAlarmThresholdLow
0x8034 [U8:0x20]
UNDEFINED
VERY BAD
Notes:
If two Alarms periods (CO2 and COV) are defined the smaller one will be used.
If BuzzerAlarmPeriod is UNDEFINED (0xFFFF), the corresponding measurement won't trig an alarm.
If BuzzerAlarmPeriod is lower than 5 (0x0005), alarm period will be 5 s
If BuzzerAlarmPausePeriod is UNDEFINED (0xFFFF), alarm pause won't be possible
If one of the two Threshold attributes is UNDEFINED (0xFF) the corresponding measurement won't trig any alarm
It is possible to reactivate a paused (snoozed) alarm before end of pause duration, by sending any "write no response" to configure one of the 4 buzzer alarm parameters
Ask the defined "Buzzer alarm Low threshold" of the sensor
Read attribute response
0x11 or 0x31 or
...
0x01
0x800C
0x8034
0x00
0x20
0xpp
0xpp: Buzzer Alarm threshold Low (Classification level [0 to 5])
0xFF : UNDEFINED => No alarm trigged from the corresponding measurement
Write no response
0x11 or 0x31 or
...
0x05
0x800C
0x8034
0x20
0xpp
Automatic Baseline Calibration (ABC) Attributes
These attributes are relevant only for the CO2 sensor of VAQAO products (Endpoint 0x31). A continuous autocalibration of the CO2 sensor, based on ABC principles, is done according to a "minimal/normal" value of CO2 concentration that the device should "see" in a defined "Calibration period".
Most of the time these parameters should not be changed. However, in some specifics cases, user may have to change Min/Normal level and Calibration period.
Exemples:
The ABC should be unactivated by setting 0 in "Calibration period" attribut, if :
User is able to periodically (about once a year) recalibrate the sensor. (see Cluster commands)
The sensor installation place will never be exposed to a regular "Min/Normal level"
The "Min/Normal" could be changed, if:
Used above 2000m of altitude, then "Min/Normal" level could be decrease of about 70ppm from 410ppm to 350ppm
The CO2 concentration in the atmosphere continue to increase (Notice in 2019 about 415ppm mean)
The ABC could be trimmed using "Calibration period" and "Min/Normal level" attributes according to known specificities of the place where the sensor is installed.
Min/Normal level
Used for CO2 sensor Automatic Baseline Calibration.
Ask the minimal/normal concentration level defined for this sensor
Read attribute response
0x11 or 0x31 or
...
0x01
0x800C
0x8009
0x00
0x20
0xpp
0xpp: Calibration period (Day)
Mainly used for CO2 ABC calibration:
0x00 : No Autocalibration
0x01 : 1 day
...
0xFF : 255 days
Write no response
0x11 or 0x31 or
...
0x05
0x800C
0x8009
0x20
0xpp
Cluster specific commands
Specific commands can be used to :
Reset current Min/Mean/Max statistics attributes.
Make different kind of CO2 calibration for a VAQAO sensor. These calibration commands should be used carefully with knowledge of concequences. A typical use case could be to settle the current calibration of the CO2 sensor according a reference measurement.
Notice:On VAQA'O Lt and VAQA'O+Lt, calibration requests are constrained to target contexts of 400 to 1500 ppm.Please do not attempt to set a calibration that takes the current measurement outside of this range.
Command: Calibrate with actual value
(Only for CO2 sensor ==> Endpoint 0x31 on VAQAO sensor)
0x31
0x50
0x800C
0x01 0xpppp
0xpppp: Actual measured CO2 concentration (ppm)
Command: Calibrate with actual and reported value
(Only for CO2 sensor ==> Endpoint 0x31 on VAQAO sensor)
0x31
0x50
0x800C
0x02 0xpppp 0xqqqq
0xpppp: Actual measured value 0xpppp: Corresponding reported value
The actual measured value should be a measurement made with a calibrated external CO2 meter.
Command: Calibrate with fresh air
(Only for CO2 sensor ==> Endpoint 0x31 on VAQAO sensor)
0x31
0x50
0x800C
0x03
Sensor will consider that measurement is done in "fresh air condition"
Last Calibration Status Attribute (VAQAO 2 only)
The Last calibration status reportable attribute contains informations about last calibration for CO2 calibration (not available on COV).
Last Calibration Status
The attribute contains a string of fields describing the last calibration that has occured for the CO2 part of the sensor. This attribute can be reported on changes or some of his fields can be embeded in a specific batch.
0xgggggggg: U32. Start timstamp of last calibration 0xhhhhhhhh: U32. End timstamp of last calibration 0xii: U8. Source of calibration [0: Undefined, 1: ABC, 2: Downlink, 3: Manual, 4: Action] 0xjj : U8. Type of calibration [0: Undefined, 1: Actual, 2: Actual vs Reported, 3: Fresh Air] 0xkk : U8: Number of tries 0xll : U8: Final status [0: Undefined; 1 OK; 2: NOK] 0xmmmm: I16. Offset applied 0xnnnn: U16. Before calibration value 0xoooo: U16. After calibration value
0xss:status 0x80 0x00: attributeID 0x41: attribute type 0xmmmm: minimum reporting interval 0xMMMM: maximum reporting interval
0x12: data length
Following "reportable changes" fields, trig a report when corresponding value changes of more than specififed value.
A null (0) field does not trig the report.
0xgggggggg: U32. Start timstamp of last calibration 0xhhhhhhhh: U32. End timstamp of last calibration 0xii: U8. Source of calibration [0: Undefined, 1: ABC, 2: Downlink, 3: Manual, 4: Action] 0xjj : U8. Type of calibration [0: Undefined, 1: Actual, 2: Actual vs Reported, 3: Fresh Air] 0xkk : U8: Number of tries 0xll : U8: Final status [0: Undefined; 1 OK; 2: NOK] 0xmmmm: I16. Offset applied 0xnnnn: U16. Before calibration value 0xoooo: U16. After calibration value
0x12: data length 0xgggggggg: U32. Start timstamp of last calibration 0xhhhhhhhh: U32. End timstamp of last calibration 0xii: U8. Source of calibration [0: Undefined, 1: ABC, 2: Downlink, 3: Manual, 4: Action] 0xjj : U8. Type of calibration [0: Undefined, 1: Actual, 2: Actual vs Reported, 3: Fresh Air] 0xkk : U8: Number of tries 0xll : U8: Final status [0: Undefined; 1 OK; 2: NOK] 0xmmmm: I16. Offset applied 0xnnnn: U16. Before calibration value 0xoooo: U16. After calibration value