VAQA'O sensor
Presentation
The VAQA'O sensor is a LoRaWAN class A sensor that manages two different power supplies: one is external and may range from 3,6V to 24V, the other one is internal on 3 AA battery slots.Usually it is powered with 3 x 2600 mAh AA Lithium Batteries.
VAQA'O can sensor measure following environemental parameters: Temperature, Hygrometry, Volatil Organic Compound*, Carbon dioxyde*, Occupancy, Illuminance. Furthermore, it can also detects effractions like openning or displacements of the sensor casing.
*About CO2 and VOC/Air Quality Index CO2 concentration is measured with a dedicated CO2 gaz sensor using NDIR technology. This measurement can be normative. Note about the "Indoor Air Quality" index: The VAQAO/VAQAO+ sensor uses a "Static IAQ" index of the MOX sensor". This index is suitable for "non-mobile" use of the sensor. The sensor gradually adapts to its environment, and the value read is "normally" between 0 and 500. However, it can make excursions, greater than 500, in the event of "significant/sudden" variations in the environment. As an indication, the "IAQ" value (rather for mobile use) is really constrained between 0 and 500, by specific filtering. This value is available on Concentration cluster Endpoint 2, but it is not part of the default reporting configuration. The family codes of VAQA'O sensors are:
A separated MOX sensor embeded in VAQAO, is used to estimate an Air Quality Index. This AQI (or IAQ) is deduced from the measurement of the concentration of volatile organic compounds in the air. The compounds taken into account are numerous, such as formaldehydes, ethanol, acetone or others, coming from paints, cleaning products, solvents, alcohol, glues, etc and even CO2 itself. The concentration attribute for IAQ gives an estimator of air polution with the following scale:Family code
50-70-074-xxx : VAQAO+Plus
Temperature, Hygrometry,
VOC, CO2, Opening,
Displacement, Pressure, Occupancy, Illuminance
Temperature, Hygrometry,
VOC, CO2, Opening
LoRaWAN release
v1.0.2 Region Parameter rev B
Installation and operation
Installation
Manual and QuickStart guide are available in our download center.
The housing is intended to be installed inside a building and it must be protected from any water spray and must be used in environnement with less than 80% relative humidity. The product should not be installed in direct heat source (Heater, sunlight, ...) to avoid local heating effects that may alter a global estimation of environnemental parameters in the measured room. The product should be installed in a representative position in regard of the required environnemental parameters survey. IUsualy it should be installed beetween 1m50 and 2m50 from floor.
The product has "2 leds" and one "reed switch" as human to machine interface.These elements should placed down when installing the sensor.
To correctly install the sensor:
- Open the product from the two clips at the botom using a small flat screw driver.
- Use the base as a template and obtain horizontality using a level.
- Once done you can clip back the front, containing electronic parts, on the base.
Once installed, the two leds are visible through the bottom left vertical windows and the reed switch can be actuated like a simple button using a magnet.
Replacing batteries
Batteries can be replaced with lithium-thionyl-chloride (Li-SOCI2) LR6/AA of 2600mAh each (exemple: SAFT LS14500). They can be replace on the fly, one afer each other, as each battery slot is protected against side overvoltage.
However operator must carefully avoid any short circuit or electrostatic discharge during batery replacement.
Steps to replace batteries are :
- Open the product from the two clips at the botom using a small flat screw driver.
- Once front has been separated from base, use a spudger to remove the PCB from front of the sensor. Do it by slightly making lever between casing and PCB on one of the long sides (Bottom or Up).
- The PCB should now be separated from front. You can now extract a battery with the spludger and replace it with a new one.
BEWARE that batteries must all be placed in the same direction. Notice the "+" sign on the PCB.
Renew this operation for the 2 other batteries. - Gently clip back the PCB in the front of the casing, starting from lower or upper side.
- Once done you can clip back the front containing electronic parts, on the base starting from upper side.
Batteries replacement principle The information in the table below represents how long the battery can last. It is based on the default configuration at ambient temperature (+25°C) within the optimal operating range of the sensor via a LoRaWAN network (one uplink frame), when the spreading factor used is SF12. Following estimations are given with default reporting configuration and using three 3.6Ah capacity AA batteries installed, of which 85% is used. Notice that VAQAO can give an indication about air quality on its leds, according to some tunable parameters. Please refer to "Concentration levels classification attributes" to learn more about that function. Below are only the usual behavior for any Watteco sensors. There are 1 reed switch (label ILS) and two LEDs to interract with the product: GREEN LED : LoRaNetwork status, mainly working when sensor try to join a network. Notice: in case the sensor would not react to magnet actuation, please verify that internal ON/OFF switch is set to "ON" position. Switch is ON when pushed toward outside of the electronic board. Standard reports are disabled during this configuration mode. The sensor keeps the AppEUi and DevAddr configured, Confirmed/Unconfirmed configuration and all applicative configurations. However, LoRaWAN configurations (channel, data rate…) are lost. The sensor keeps the AppEUi and DevAddr configured. However, LoRaWAN configurations (channel, data rate…) and applicative configurations are lost. Codecs are available to decode frames: Downloads All downlink frames have to be sent on port 125 Please, try and see also Watteco Online codecs The VAQA’O device implements many applicative clusters associated to different sensors entries. The associations beetween measurment functionnalities and EndPoints/Clusters are shown below: VAQA'O sensors have got a default, Batch and Standard, configuration, that manages all embeded measurements through a periodic reporting of up to 2 frames per hour. This default configuration can be summerized as follow : It records environnemental parameters with a 10 minutes max time sampling and sends them once or twice per hour: On VAQAO+Plus, following parameters are also recorded : It monitors critical events on environnemental parameters On VAQAO+Plus, following alarms can also occur : Any of these configurations can be removed or modified, and some different ones can be set. However, every change made to the default configuration must comply with the legal duty cycle. For example, the most restrictive in the EU is 0.1%, corresponds to approximately 2 frames per hour with the most constrained Spreading Factor : SF12. VAQA'O r5317 # . Passage en mode "NON confirmé" VAQA'O+Plus r5317 # . Passage en mode "NON confirmé" VAQA'O+Plus r5134 # . Passage en mode "NON confirmé" From this revision VAQA'O sensors has got an alternate default configuration that can be activated instead of default one.In this alternate configuration Batch is not used. Beware that this configuration is more verbose on radio, and will drain battery faster. Following configuration commands can be used to swap beetween default configuration and alternate one: VAQA'O+Plus Alternate 'No batch' configuration (Since r5365) # All report unconfirmed VAQA'O Alternate 'No Batch' configuration (Since r5365) # All report unconfirmed Codecs are available to decode frames: Downloads Please, try and see also Watteco Online codecs Typical VAQA'O batch report Input uplink frame to decode: 42338080a84f011da0e800dc91fd815368f742060e51682ffa6626fad692167d6b498bbe9844b14551141571689e20149b19 Batch attributes : 3 1,10,7,T 2,100,6,H 3,10,6,CO2 4,10,6,COV Decoding results: { Typical VAQA'O+Plus batch report Input uplink frame to decode: 70060000e2760090cfc0015b028423fb03272919804c121c003ebc5bd6895f0040000b68b72c27a0ddb4dc8076db920c68b72c19605b04 Batch attributes : 3 0,1,4,OCC 1,10,7,T 2,100,6,H 3,10,6,CO2 4,10,6,COV 5,10,6,LUX 6,10,6,P Decoding results: { Report on case opened (violation) 110a000f00551001 Decoded payload: {"version": "Frame_Codec_v_1.0.svn5087", "TimeStamp": "2020-03-02 17:01:45.232452"} Alarm on Humidity level getting lower than specified threshold 318a0405000021053398b0 Decoded payload: {"version": "Frame_Codec_v_1.0.svn5087", "TimeStamp": "2020-03-02 16:58:38.024454"} Alarm on CO2 level getting lower than Thresold 318a800c000021023a98b0 Decoded payload: {"version": "Frame_Codec_v_1.0.svn5087", "TimeStamp": "2020-03-02 17:06:46.277547"}Autonomy
With the default configuration the sensor will record all significative measurements up to once each 10 minutes and at least once per hour. Then batch reports will be regularly send containning all these last measurements. It may contains several sample for any of the measured parameters (T, H, VOC, CO2, P, OCC, Lux...). Some specific reports/alarms may also be sent because of default configuration (case opening, moves, threshold crossing for CO2, VOC ...). Due to all these possibly reported informations comsumption estimation is based on a périodic transmissions in range from 20 minutes to one hour.
Transmission periodicity Spreading factor Batteries life
1 Frame / Hour SF12 4,5 Years
3 Frames / Hour SF12 3,6 Years
1 Frame / Hour SF9 5,3 Years
3 Frames / Hour SF9 5 Years
Human Machine Interface
RED LED : miror of "Reed switch" actuation, and working during configuration mode.
Switch ON
(disable storage mode)1 second
Switch OFF
(enable storage mode)5 seconds
Consequently, "Void" frames are then sent every minute for 10 minutes allowing to probe uplink communication and send quickly downlink frames (configurations, requests, ...) to the class A sensor.
Way to trigger it One press on the USER button or specific ZCL command
Way to stop it Another press on the USER button or specific ZCL command
Effects on the sensor The CONF led (red) blinks (3 sec. OFF, 3 sec. ON) and the sensor sends an uplink frame every minute. The blinking is illustrated below this table.
Duration The configuration mode lasts 10 minutes when it is triggered by pressing the USER button
Way to trigger it Three short presses on the USER button or ZCL command from LoRaWAN cluster.
Effects on the sensor The ASSO LED (green) blinks as the “no commissioned sensor” LED is lit.
Way to trigger it Two short presses and one long press for approximately 7 seconds on the USER button.
Effects on the sensor The CONF LED (red) and ASSO LED (green) blink at the same time briefly. All the applicative settings (for batches and reports) are deleted. The blinking is illustrated below this table.
Applicative layer
Cluster Cluster name EndPoint: Rôle Product Managed attributes
0x0402 Temperature EP0 (0x11): Accuracy +/- 0,5°C [1/100 °C] All All
EP1 (0x31): Accuracy +/-0,2°C [1/100 °C] All All
0x405 Humidity EP0 (0x11): Accuracy +/-3% [1/100 %RH] All All
EP1 (0x31): Accuracy +/-2% [1/100 %RH] All All
0x800C Concentration EP0 (0x11): VOC [IAQ] All All, Except calibration attributes and commands
EP1 (0x31): CO2 [ppm] All All
0x000F Binary input EP0 (0x11): Open case status [Casing, 1: Opened, 0: Closed] All All
0x0406 Occupancy EP0 (0x11): Current PIR sensor status [1: Occupied, 0: Not occupied] VAQA'O+Plus All
0x0400 Illuminance EP0 (0x11): Illuminance measurement [Lux] VAQA'O+Plus All
0x000C AnalogInput (Vertical angle displacement) EP0 (0x11): Angle displacement of casing [°] VAQA'O+Plus All
0x0403 Pressure (Ambiant atmospheric) EP0 (0x11): Ambiant atmospheric pressure [1/10 mBar or hPa] VAQA'O+Plus All
0x0000 Basic EP0 (0x11): Sensor firmware and hardware informations All All
0x0050 Configuration EP0 (0x11): Sensor global configuration parameters and commands All All
0x8004 LoRaWAN EP0 (0x11): Sensor LoRaWAN parameters management All All
Default configuration
The "Batch" configuration
The value should be coerced between 0 and 500 in regular indoor usage. It can exceptionnaly has greater values on unsual environmental events.
The "Standard" configuration
Detailed default configurations
08 11 05 8004 0000 08 00
#
# . CO2 Configuration
# Set Autocalibration péeriod to 5 days
08 11 05 800C 8009 20 05
#
# . Effacement des configurations (Batch et Standard)
06 11 50 0050 02 03
#
# ------------------------ STANDARD REPORTS -------------------------
# . POWERDESC [mV]
# . Periodic MAX = 1 J => 1440mn => x85A0; MIN = 10mn => 0x800A
# . Length of remaining payload (for 0x41 type ): 0x08
# . ALARM on power treshold : 2,9v (hyst 100mV)
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# Disposable battery field index : 0x04
# THRS: 2900 : 0x0B54; HYST: 100 mV : 0x0064
# OCC : 2
14 11 06 0050 98 0006 41 800A 85A0 07 F0 04 0B54 0064 02
#
# . VIOLATION (OpenCase button) ([Binary state 0/1]
# . Configure POLLING PERIOD based on REPORT CONFIGURATION (0xFFFF)
09 11 05 000F 0403 21 FFFF
# . Box openning and closing
# Min 10s => 0x000A, Max max, Delta=1
0D 11 06 000F 00 0055 10 000A FFFF 01
#
# . VOC LEVEL (BME680) ** SIAQ ** [0-500]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 300; hyst 50
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 300 : 0x012C; HYST: 50 : 0x0032
# OCC : 2
# 12 11 06 800C 98 0000 21 800A FFFF F0 012C 0032 02
#
# . CO2 CONCENTRATION (COZIR) [ppm]
# STANDARD REPORT:
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 1500; hyst 100
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 1500 : 0x05DC; HYST: 100 : 0x0064
# OCC : 2
# 12 31 06 800C 98 0000 21 800A FFFF F0 05DC 0064 02
#
# ------------------------- BATCH REPORT ---------------------------------------
# . OCCUPANCY
# . TEMPERATURE (SHTC3)
# Min 10mn => 0x800A, Max 1h, Delta=0.1°, resol=0.1°, Tag Label 1, Tag Size 3, Type I16 7
11 31 06 0402 15 0000 00 800A 803C 000A 000A 0B
# . HYGROMETRY (SHTC3)
# Min 10mn => 0x800A, Max 1h, Delta=1%, resol=1%, Tag Label 2, Tag Size 3, Type U16 6
11 31 06 0405 15 0000 00 800A 803C 0064 0064 13
# . CO2 CONCENTRATION (COZIR)
# Min 10mn => 0x800A, Max 1h, Delta=10ppm,resol=10, Tag Label 3, Tag Size 3, Type U16 6
11 31 06 800C 15 0000 00 800A 803C 000A 000A 1B
# . VOC LEVEL (BME680) ** SIAQ **
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 4, Tag Size 3, Type U16 6
11 11 06 800C 15 0000 00 800A 803C 000A 000A 23
#
# Typical batch decoding parameters:
# ----------------------------------
# Ex. de trame batch (hexadécimal): 42338080a84f011da0e800dc91fd815368f742060e51682ffa6626fad692167d6b498bbe9844b14551141571689e20149b19
# Utilitaire windows: echo "<Hexadecimal string>>" | ./br_uncompress.exe -a 3 1,10,7 2,100,6 3,10,6 4,10,6
# Codec en ligne : 3 1,10,7,T 2,100,6,H 3,10,6,CO2 4,10,6,COV
#---------------------------------------------------------------------------------------------
08 11 05 8004 0000 08 00
#
# . PIR config
# Occ to Unocc delai: 30min (30 minutes WITHOUT move (notice that PIR activity won't be processed 1/10 x 30mn )
09 11 05 0406 0010 21 0708
# UnOcc to Occ delai: 0s (Immediatly)
09 11 05 0406 0011 21 0000
#
# . CO2 Configuration
# Set Autocalibration period to 5 days
08 11 05 800C 8009 20 05
#
# . Effacement des configurations (Batch et Standard)
06 11 50 0050 02 03
#
# ------------------------ STANDARD REPORTS -------------------------
# . POWERDESC [mV]
# . Periodic MAX = 5 J => 7200mn => x9C20; MIN = 10mn => 0x800A
# . Length of remaining payload (for 0x41 type ): 0x08
# . ALARM on power treshold : 2,7v (hyst 100mV)
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# Disposable battery field index : 0x04
# THRS: 2700 : 0x0A8C; HYST: 100 mV : 0x0064
# OCC : 2
14 11 06 0050 98 0006 41 800A 9C20 07 F0 04 0A8C 0064 02
#
# . OCCUPANCY (EKMB110411) [Occupancy state 0/1]
# . ROOM occupation changes
# Min 1mn => 0x8001, Max max, Delta=1
# Note: Min 1minute (But beware that UnOcc to OCC and Occ to UnOcc impact the reporting behaviour)
0D 11 06 0406 00 0000 18 8001 FFFF 01
#
# . VIOLATION (OpenCase button) ([Binary state 0/1]
# . Configure POLLING PERIOD based on REPORT CONFIGURATION (0xFFFF)
09 11 05 000F 0403 21 FFFF
# . Box openning and closing
# Min 10s => 0x000A, Max max, Delta=1
0D 11 06 000F 00 0055 10 000A FFFF 01
#
# . ANGLE DISPLACEMENT (LIS2DX12) (AnalogInput) [°]
# . Periodic MAX = 10 J => xB840; MIN = 30s => 0x001E (will be polling period)
# . ALARM when sensor is displaced: Variation of 5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/-/Delta/Slot0 : b 1 1 0 01 000 => xC8
# DELTA: 5° => 0x40a00000;
11 11 06 000C 98 0055 39 001E B840 C8 40a00000
#
# . TEMPERATURE (bme280) [1/100 °C]
#
# . PRESSURE (bme280) [1/10 mb]
#
# . HUMIDITY (bme280) [1/100 %]
#
# . TEMPERATURE (bme680) [1/100 °C]
#
# . HUMIDITY (bme680) [1/100 %]
#
# . TEMPERATURE (sht3c) [1/100 °C]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold LOW: 14°; hyst 0.5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 1400 : 0x0578; HYST: 50 : 0x0032
# OCC : 2
# . ALARM on treshold HIGH: 28°; hyst 0.5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot1 : b 1 1 1 10 001 ==> xF1
# THRS: 2800 : 0x0AF0; HYST: 50 : 0x0032
# OCC : 2
18 31 06 0402 98 0000 29 800A FFFF F0 0578 0032 02 F1 0AF0 0032 02
#
# . PRESSURE (bme680) [1/10 mb]
#
# . HUMIDITY (sht3c) [1/100 %]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold LOW: 20%; hyst 5%
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 2000 : 0x7D0; HYST: 500 : 0x01F4
# OCC : 2
# . ALARM on treshold HIGH: 70%; hyst 5%
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot1 : b 1 1 1 10 001 ==> xF1
# THRS: 2300 : 0x08FC; HYST: 500 : 0x01F4
# OCC : 2
18 31 06 0405 98 0000 21 800A FFFF F0 07D0 01F4 02 F1 08FC 01F4 02
#
# . VOC LEVEL (bme680) ** SIAQ ** [0-500]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 300; hyst 50
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 300 : 0x012C; HYST: 50 : 0x0032
# OCC : 2
12 11 06 800C 98 0000 21 800A FFFF F0 012C 0032 02
#
# . CO2 CONCENTRATION (COZIR) [ppm]
# STANDARD REPORT:
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 1500; hyst 100
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 1500 : 0x05DC; HYST: 100 : 0x0064
# OCC : 2
12 31 06 800C 98 0000 21 800A FFFF F0 05DC 0064 02
#
# . ILLUMINANCE [lux]
#
# ------------------------- BATCH REPORT ---------------------------------------
# . OCCUPANCY
# Min 30mn => 0x801E, Max 1h, Delta=1, resol=1, Tag Label 0, Tag Size 3, Type Bool 1
0F 11 06 0406 11 0000 00 801E 803C 01 01 03
# . TEMPERATURE (SHTC3)
# Min 10mn => 0x800A, Max 1h, Delta=0.1°, resol=0.1°, Tag Label 1, Tag Size 3, Type I16 7
11 31 06 0402 15 0000 00 800A 803C 000A 000A 0B
# . HYGROMETRY (SHTC3)
# Min 10mn => 0x800A, Max 1h, Delta=1%, resol=1%, Tag Label 2, Tag Size 3, Type U16 6
11 31 06 0405 15 0000 00 800A 803C 0064 0064 13
# . CO2 CONCENTRATION (COZIR)
# Min 10mn => 0x800A, Max 1h, Delta=10ppm,resol=10, Tag Label 3, Tag Size 3, Type U16 6
11 31 06 800C 15 0000 00 800A 803C 000A 000A 1B
# . VOC LEVEL (BME680) ** SIAQ **
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 4, Tag Size 3, Type U16 6
11 11 06 800C 15 0000 00 800A 803C 000A 000A 23
# . ILLUMINANCE
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 5, Tag Size 3, Type U16 6
11 11 06 0400 15 0000 00 800A 803C 000A 000A 2B
# . PRESSURE (BME680)
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 6, Tag Size 3, Type U16 6
11 11 06 0403 15 0000 00 800A 803C 000A 000A 33
#
# Typical batch decoding parameters:
# ----------------------------------
# Ex. de trame batch (hexadécimal): 70060000e2760090cfc0015b028423fb03272919804c121c003ebc5bd6895f0040000b68b72c27a0ddb4dc8076db920c68b72c19605b04
# Utilitaire windows: echo "<Hexadecimal string>>" | ./br_uncompress.exe -a 3 0,1,4 1,10,7 2,100,6 3,10,6 4,10,6 5,10,6 6,10,6
# Codec en ligne : 3 0,1,4,OCC 1,10,7,T 2,100,6,H 3,10,6,CO2 4,10,6,COV 5,10,6,LUX 6,10,6,P
#---------------------------------------------------------------------------------------------
08 11 05 8004 0000 08 00
#
# . PIR config
# Occ to Unocc delai: 30min (30 minutes WITHOUT move (notice that PIR activity won't be processed 1/10 x 30mn )
09 11 05 0406 0010 21 0708
# UnOcc to Occ delai: 0s (Immediatly)
09 11 05 0406 0011 21 0000
#
# . CO2 Configuration
# Set Autocalibration péeriod to 1 day
08 11 05 800C 8009 20 01
#
# . Effacement des configurations (Batch et Standard)
06 11 50 0050 02 03
#
# ------------------------ STANDARD REPORTS -------------------------
# . POWERDESC [mV]
# . Periodic MAX = 5 J => 7200mn => x9C20; MIN = 10mn => 0x800A
# . Length of remaining payload (for 0x41 type ): 0x08
# . ALARM on power treshold : 2,7v (hyst 100mV)
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# Disposable battery field index : 0x04
# THRS: 2700 : 0x0A8C; HYST: 100 mV : 0x0064
# OCC : 2
14 11 06 0050 98 0006 41 800A 9C20 07 F0 04 0A8C 0064 02
#
# . OCCUPANCY [Occupancy state 0/1]
# . ROOM occupation changes
# Min 1mn => 0x8001, Max max, Delta=1
# Note: Min 1minute (But beware that UnOcc to OCC and Occ to UnOcc impact the reporting behaviour)
0D 11 06 0406 00 0000 18 8001 FFFF 01
#
# . VIOLATION [Binary state 0/1]
# . Box openning and closing
# Min 1mn => 0x8001, Max max, Delta=1
0D 11 06 000F 00 0055 10 8001 FFFF 01
#
# . ANGLE DISPLACEMENT (AnalogInput) [°]
# . Periodic MAX = 10 J => xB840; MIN = 3s => 0x0003 (will be polling period)
# . ALARM when sensor is displaced: Variation of 5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/-/Delta/Slot0 : b 1 1 0 01 000 => xC8
# DELTA: 5° => 0x40a00000;
11 11 06 000C 98 0055 39 0003 B840 C8 40a00000
#
# . TEMPERATURE (bme280) [1/100 °C]
#
# . PRESSURE (bme280) [1/10 mb]
#
# . HUMIDITY (bme280) [1/100 %]
#
# . TEMPERATURE (bme680) [1/100 °C]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold LOW: 14°; hyst 0.5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 1400 : 0x0578; HYST: 50 : 0x0032
# OCC : 2
# . ALARM on treshold HIGH: 28°; hyst 0.5°
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot1 : b 1 1 1 10 001 ==> xF1
# THRS: 2800 : 0x0AF0; HYST: 50 : 0x0032
# OCC : 2
18 11 06 0402 98 0000 29 800A FFFF F0 0578 0032 02 F1 0AF0 0032 02
#
# . PRESSURE (bme680) [1/10 mb]
#
# . HUMIDITY (bme680) [1/100 %]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold LOW: 20%; hyst 5%
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 2000 : 0x7D0; HYST: 500 : 0x01F4
# OCC : 2
# . ALARM on treshold HIGH: 70%; hyst 5%
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot1 : b 1 1 1 10 001 ==> xF1
# THRS: 2300 : 0x08FC; HYST: 500 : 0x01F4
# OCC : 2
18 11 06 0405 98 0000 21 800A FFFF F0 07D0 01F4 02 F1 08FC 01F4 02
#
# . VOC LEVEL [0-500]
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 300; hyst 50
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 300 : 0x012C; HYST: 50 : 0x0032
# OCC : 2
12 11 06 800C 98 0000 21 800A FFFF F0 012C 0032 02
#
# . CO2 CONCENTRATION [ppm]
# STANDARD REPORT:
# . Periodic MAX = Inf => xFFFF; MIN = 10mn => 0x800A
# . ALARM on treshold HIGH: 1500; hyst 100
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
# THRS: 1500 : 0x05DC; HYST: 100 : 0x0064
# OCC : 2
12 31 06 800C 98 0000 21 800A FFFF F0 05DC 0064 02
#
# . ILLUMINANCE [lux]
#
# ------------------------- BATCH REPORT ---------------------------------------
# . OCCUPANCY
# Min 30mn => 0x801E, Max 1h, Delta=1, resol=1, Tag Label 0, Tag Size 3, Type Bool 1
0F 11 06 0406 11 0000 00 801E 803C 01 01 03
# . TEMPERATURE (BME680)
# Min 10mn => 0x800A, Max 1h, Delta=0.1°, resol=0.1°, Tag Label 1, Tag Size 3, Type I16 7
11 11 06 0402 15 0000 00 800A 803C 000A 000A 0B
# . HYGROMETRY (BME680)
# Min 10mn => 0x800A, Max 1h, Delta=1%, resol=1%, Tag Label 2, Tag Size 3, Type U16 6
11 11 06 0405 15 0000 00 800A 803C 0064 0064 13
# . CO2 CONCENTRATION (COZIR)
# Min 10mn => 0x800A, Max 1h, Delta=10ppm,resol=10, Tag Label 3, Tag Size 3, Type U16 6
11 31 06 800C 15 0000 00 800A 803C 000A 000A 1B
# . VOC LEVEL (BME680)
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 4, Tag Size 3, Type U16 6
11 11 06 800C 15 0000 00 800A 803C 000A 000A 23
# . ILLUMINANCE
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 5, Tag Size 3, Type U16 6
11 11 06 0400 15 0000 00 800A 803C 000A 000A 2B
# . PRESSURE (bme680)
# Min 10mn => 0x800A, Max 1h, Delta=10, resol=10, Tag Label 6, Tag Size 3, Type U16 6
11 11 06 0403 15 0000 00 800A 803C 000A 000A 33
#
# Typical batch decoding parameters:
# ----------------------------------
# echo "" | ./br_uncompress.exe -a 3 0,1,4 1,10,7 2,100,6 3,10,6 4,10,6 5,10,6 6,10,6
#---------------------------------------------------------------------------------------------Alternate 'No Batch' configuration (From Software r5365)
Detailed alternate 'No batch' configurations
08 11 05 8004 0000 08 00
#
# Remove current reports configuration (Standard and batchs)
06 11 50 0050 02 03
#
# T: 30mn or variation of 0.4°C, no more than once per minute
0F 31 06 0402 80 0000 29 8001 801E 48 0028
#
# RH: 30mn or variation of 4%, no more than onceper minute
0F 31 06 0405 80 0000 21 8001 801E 48 0190
#
# VBATT: 24 h ou or variation of 0.5V, no more than once per minute
12 11 06 0050 00 0006 41 800a 85a0 05 00 04 01f4 00
#
# OPEN/CLOSE: 24 h or changing, no more than once per minute
0D 11 06 000f 00 0055 10 8001 85a0 01
#
# CO2 and COV secured because not frequent
# CO2: 1h ou ar variation of100ppm, no more than once per 10 minutes
0F 31 06 800c 84 0000 21 800a 803c 48 0064
#
# COV(IAQ 0-500): 1h or variation of 100, no more than once per 10 minutes
0F 11 06 800c 84 0000 21 800a 803c 48 0064
#
# Atmos. pressure: 60 mn or variation of0,5mBar(<=>5m), no more than once per minute
0F 11 06 0403 80 0000 29 8001 803c 48 0005
#
# ANGLEDISP: 24 h or variation of 5°, no more than once per minute
11 11 06 000c 80 0055 39 8001 85a0 48 40a00000
#
# PRESENCE:
# Unoccupied after30m without move
09 11 05 0406 0010 21 0708
# Report 12h or changing, no more than once per 10 minutes
0D 11 06 0406 00 0000 18 800a 82d0 01
#
# LUMINOSITY:12h or 50lux variation, no more than once per minute
0E 11 06 0400 00 0000 21 8001 82D0 0032
08 11 05 8004 0000 08 00
#
# Remove current reports configuration (Standard and batchs)
06 11 50 0050 02 03
#
# T: 30mn or variation of 0.4°C, no more than once per minute
0F 31 06 0402 80 0000 29 8001 801E 48 0028
#
# RH: 30mn or variation of 4%, no more than onceper minute
0F 31 06 0405 80 0000 21 8001 801E 48 0190
#
# VBATT: 24 h ou or variation of 0.5V, no more than once per minute
12 11 06 0050 00 0006 41 800a 85a0 05 00 04 01f4 00
#
# OPEN/CLOSE: 24 h or changing, no more than once per minute
0D 11 06 000f 00 0055 10 8001 85a0 01
#
# CO2 and COV secured because not frequent
# CO2: 1h ou ar variation of100ppm, no more than once per 10 minutes
0F 31 06 800c 84 0000 21 800a 803c 48 0064
#
# COV(IAQ 0-500): 1h or variation of 100, no more than once per 10 minutes
0F 11 06 800c 84 0000 21 800a 803c 48 0064Received frame examples
Batch report
"batch_counter": 3,
"batch_relative_timestamp": 88831,
"batch_absolute_timestamp": "2020-03-02T16:44:45.770",
"dataset": [
{
"data_relative_timestamp": 86674,
"data": {
"value": 1870,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:08:48.770Z"
},
{
"data_relative_timestamp": 87274,
"data": {
"value": 1900.0,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:18:48.770Z"
},
{
"data_relative_timestamp": 87874,
"data": {
"value": 1920.0,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:28:48.770Z"
},
{
"data_relative_timestamp": 88474,
"data": {
"value": 1960.0,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:38:48.770Z"
},
{
"data_relative_timestamp": 87574,
"data": {
"value": 3100,
"label": 2,
"label_name": "H"
},
"data_absolute_timestamp": "2020-03-02T16:23:48.770Z"
},
{
"data_relative_timestamp": 88174,
"data": {
"value": 3000.0,
"label": 2,
"label_name": "H"
},
"data_absolute_timestamp": "2020-03-02T16:33:48.770Z"
},
{
"data_relative_timestamp": 86431,
"data": {
"value": 570,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:04:45.770Z"
},
{
"data_relative_timestamp": 87031,
"data": {
"value": 460.0,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:14:45.770Z"
},
{
"data_relative_timestamp": 87631,
"data": {
"value": 450.0,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:24:45.770Z"
},
{
"data_relative_timestamp": 88231,
"data": {
"value": 500.0,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:34:45.770Z"
},
{
"data_relative_timestamp": 86674,
"data": {
"value": 220,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:08:48.770Z"
},
{
"data_relative_timestamp": 87274,
"data": {
"value": 230.0,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:18:48.770Z"
},
{
"data_relative_timestamp": 87874,
"data": {
"value": 240.0,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:28:48.770Z"
},
{
"data_relative_timestamp": 88474,
"data": {
"value": 250.0,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:38:48.770Z"
}
]
}
"batch_counter": 6,
"batch_relative_timestamp": 51629,
"batch_absolute_timestamp": "2020-03-02T16:37:38.055",
"dataset": [
{
"data_relative_timestamp": 50413,
"data": {
"value": 0,
"label": 0,
"label_name": "OCC"
},
"data_absolute_timestamp": "2020-03-02T16:17:22.055Z"
},
{
"data_relative_timestamp": 50428,
"data": {
"value": 1870,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:17:37.055Z"
},
{
"data_relative_timestamp": 51029,
"data": {
"value": 1850.0,
"label": 1,
"label_name": "T"
},
"data_absolute_timestamp": "2020-03-02T16:27:38.055Z"
},
{
"data_relative_timestamp": 50427,
"data": {
"value": 3100,
"label": 2,
"label_name": "H"
},
"data_absolute_timestamp": "2020-03-02T16:17:36.055Z"
},
{
"data_relative_timestamp": 50428,
"data": {
"value": 450,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:17:37.055Z"
},
{
"data_relative_timestamp": 51028,
"data": {
"value": 470.0,
"label": 3,
"label_name": "CO2"
},
"data_absolute_timestamp": "2020-03-02T16:27:37.055Z"
},
{
"data_relative_timestamp": 50635,
"data": {
"value": 240,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:21:04.055Z"
},
{
"data_relative_timestamp": 51235,
"data": {
"value": 250.0,
"label": 4,
"label_name": "COV"
},
"data_absolute_timestamp": "2020-03-02T16:31:04.055Z"
},
{
"data_relative_timestamp": 50516,
"data": {
"value": 50,
"label": 5,
"label_name": "LUX"
},
"data_absolute_timestamp": "2020-03-02T16:19:05.055Z"
},
{
"data_relative_timestamp": 51118,
"data": {
"value": 160.0,
"label": 5,
"label_name": "LUX"
},
"data_absolute_timestamp": "2020-03-02T16:29:07.055Z"
},
{
"data_relative_timestamp": 51235,
"data": {
"value": 10110,
"label": 6,
"label_name": "P"
},
"data_absolute_timestamp": "2020-03-02T16:31:04.055Z"
}
]
}Standard report
{
"EndPoint": 0,
"Report": "Standard",
"CommandID": "ReportAttributes",
"ClusterID": "BinaryInput",
"AttributeID": "PresentValue",
"AttributeType": "Boolean",
"Data": true,
"Cause": []
}
{
"EndPoint": 1,
"Report": "Standard",
"CommandID": "ReportAttributesAlarm",
"ClusterID": "RelativeHumidity",
"AttributeID": "MeasuredValue",
"AttributeType": "UInt16",
"Data": 1331,
"Cause": [
{
"ReportParameters": {
"New": "Yes",
"Reserved": 0,
"CauseRequest": "Short",
"SecuredIfAlarm": "Yes",
"Secured": "No",
"NoHeaderPort": "No",
"Batch": "No"
},
"SlotDescriptors": [
{
"CriteriaSlotDescriptor": {
"Alarm": "Yes",
"OnExceed": "No",
"OnFall": "Yes",
"Mode": "Threshold",
"CriterionIndex": 0
}
}
]
}
]
}
{
"EndPoint": 1,
"Report": "Standard",
"CommandID": "ReportAttributesAlarm",
"ClusterID": "Concentration",
"AttributeID": "MeasuredValue",
"AttributeType": "UInt16",
"Data": 570,
"Cause": [
{
"ReportParameters": {
"New": "Yes",
"Reserved": 0,
"CauseRequest": "Short",
"SecuredIfAlarm": "Yes",
"Secured": "No",
"NoHeaderPort": "No",
"Batch": "No"
},
"SlotDescriptors": [
{
"CriteriaSlotDescriptor": {
"Alarm": "Yes",
"OnExceed": "No",
"OnFall": "Yes",
"Mode": "Threshold",
"CriterionIndex": 0
}
}
]
}
]
}Known Issues