Inclin'O sensor
Presentation
The Inclin'O sensor is a LoRaWAN class A sensor that uses a disposable 3.6V A-type battery as power supply, and includes an internal antenna.
Initially used to check the closing state of the roof windows, It constantly measures the displacement of the vertical angle of the sensor (Φ). The current angle displacement is measured relative to the initial position of the sensor, awaken from storage mode, or reset to factory state. The initial reference 0° can therefore be a none-horizontal position.
|
With its default configuration Inclin'O is configured to report :
- a secured alarm each time the threshold of 40 degrees is crossed on exceed.
- a secured alarm each time the threshold of 10 degrees is crossed on fall.
- a secured alarm if the voltage of the battery goes under the 2.7V threshold, with a report of the battery level every weeks.
However, angle shift reports or alarms can be reconfigured for any specific use.
Since software revision v3.5.2r6163, the sensor is able to set it's "zero degree" angle referencing mode:
|
Since software revision v3.5.2r6163, the sensor is also able to measure chocks (accelerations) that occurs on it. Even if the configuration stays the same on the default products, new clusters and commands are available to change/activate parameters of Chocks measurements. (See also family code below). When chocks measurement is activated, the sensor will monitor permanently chocks that occurs on it. The maximum amplitude of dynamic acceleration is evaluated from first chocks until end of a period given by the "Min report" parameter of the configured report. Following parameters can be configured for the survey:
Resulting measurement is the modulus accelerations from the 3 axes : √ AccX² . AccY² . AccZ² |
Family code
The family code of Inclin'O devices is: 50-70-201-xxx
Inclin'o sensors can be delivered with a different default configuration that makes chocks and angle measurement. This alternate default configuration is available when sensor is tagged with the "36-70-201-000" identifier (sticker). See also Applicative Layer and Default configutrations. |
LoRaWAN release
v1.0.2 Region Parameter rev B
Casing
Flammability rating: UL94V0
Ingress protection: IP68
Dimension: 100x75x35mm
Weight : 130g without fastening solution / 180g with 2 magnets (magnets kit (71-70-132-000))
Installation and operation
Installation
The casing is intended to be installed inside or outside a building.
The casing can be fastened using the double-sided tape provided with the sensor, the optional magnet kit, the optional pole-mounting braket kit or even screwed.
Default configuration : double-sided tape*
Optional fastening solutions: magnets kit (71-70-132-000) or pole-mounting braket kit** (71-70-133-000)
Pole-mounting bracket dimension:
* Double-sided tape is provided along with a 3M wipe, please use this wipe to clean the area where the device is to be installed.
** No ties/collars are provided in the kit, only pole-mounting brakets. Tie/collar size: width=11mm, height=1.5mm.
Radio propagation
In order for the sensor to operate correctly, the number of obstacles should be limited in order to avoid excessive radio wave attenuation. It is also important to place the sensor as high as possible.
Notice that for roof windows use case, the sensor may not be bound vertically, but even if the sensor is not in the best position, the upper situation (on the roof) of the sensor should ensure good results.
Autonomy
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.
The disposable battery has a 3.6Ah capacity, of which 85% is used.
Mode | Transmission periodicity | Battery life |
---|---|---|
Inclin'o (Angle meas 30s) | 1 frame / hour | +12 years |
Inclin'o (Angle meas 15mn) + Chocks monitoring (100Hz) | 1 frame / hour | +10 years |
Inclin'o (Angle meas 15mn) + Chocks monitoring (400Hz) | 1 frame / hour | + 5years |
Inclin'o (Angle meas 30s) + Chocks monitoring (100Hz) | 1 frame / hour | +9 years |
Inclin'o (Angle meas 30s) + Chocks monitoring (400Hz) | 1 frame / hour | +4,5 years |
Human Machine Interface
The Inclin'O sensor has a buzzer that allows it to “communicate” with the user.
A reed switch is available under the sticker "ILS".
It is possible to use a magnet to activate it and makes specific actions on the sensor (Switch off, switch on, Re-associtation…). When the reed switch is activated, the buzzer rings quickly.
Device startup and stop To Start-up the device, it is necessary to put a magnet on the side of the sensor during one second (on the right side of the device). The buzzer rings quickly during this step. After this second, the buzzer stops and rings slowly until the association is done. To switch off the device, place the magnet in front of the "ILS" label during 5 seconds. After 5 seconds, the device rings 5 times slowly and powers off. The table below describes the actions to be performed on the reed switch to disable or enable the storage mode. When the sensor is trying to associate with a network, it emits the following sound: Once the association is completed, the buzzer makes the following sound: A reed switch (or magnetic switch) is available. A magnet can be used to activate it and perform specific actions on the sensor (switch off, switch on, reassociation…). Configuration mode Configuration: "void" frames are sent every minute for 10 minutes. Standard reports are disabled in this mode. Reassociation A reassociation procedure can be requested if no downlink frame is received by the sensor during a given periodicity (4 days by default) or if a given number (100 by default) is reached or in case of failure (no acknowledgement received) by sending an applicative frame to the sensor or via the sensor’s HMI. The sensor keeps the AppEUi and DevAddr configured, Confirmed/Unconfirmed configuration and all applicative configurations. However, LoRaWAN configurations (channel, data rate…) are lost Factory reset A factory reset is available on Watteco’s sensors. It deletes all the applicative settings saved in the flash memory (i.e. configured batches and reports will be deleted). The sensor keeps the AppEUi and DevAddr configured. However, LoRaWAN configurations (channel, data rate…) and applicative configurations are lost. Set zero ° angle reference (firmware > v3.5.2.r6163) It is possible to set the Zero ° angle displacement to current position of the sensor through two short passages of the magnet. This referencing procedure can be actuated in anystate of the sensor, even stopped. Codecs are available to decode frames: Downloads The Inclin'O device implements mainly an “Analog Input” cluster associated to angle displacement measurement on, a "Number cluster" associated with last Chocks Maximum Acceleration measurement and An "occupancy cluster" is also implemented that manage a boolean status of chocks presence. Inclin'O integrates the following clusters: From r6163 The inclin'o can set its current Angle Referencing mode using an application specific command on cluster Analog input. The general format of the command s the following one: 11 50 000C FF 01 xx where xx can be: A default configuration is set: 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%, which corresponds to approximately 1 frame per hour with SF12) From r6163 a mode with chocks measurement can be configured or activated: The configuration embedding chocks measurements is referenced as (36-70-201-000). This alternative configuration uses Batch reports, with specifics actions to accelerate Batch transmission when chocks are occuring: Notice that ZCL configuration frames in following descriptions are prefixed with a frame size byte. They can be used as it is for Watteco FOTA configuration tool, but the size prefixe should be removed when frame is used for downlink. In both cases commented lines '#' must not be used. Inclin'o historical 10° / 40° thresholds for Skydomes # . Set "not confirmed" except for confirmed alarms with 3 retries (if any) Inclin'o with shocks monitoring and periodic angle reading (>= r6163 and tag 36-70-201-000) # . Set "not confirmed" except for confirmed alarms with 3 retries (if any) From revision 6163, Inclin'O sensor has got a specific command to switch between the two above configurations. For a standard default configuration: For tagged 36-70-201-000 sensors, default configuration is:
Switch ON
(disable storage mode)1 second
Switch OFF
(enable storage mode)5 seconds
Way to trigger it One passage of the magnet near the reed switch or specific ZCL command
Way to stop it Another passage of the magnet or specific ZCL command
Effects on the sensor
Duration The configuration mode lasts 10 minutes
Way to trigger it Three passages of the magnet near the reed switch or ZCL command from LoRaWAN cluster.
Effects on the sensor
Way to trigger it Two quick passages and a very long passage (until the sensor rings for the reset) of the magnet near the reed switch
Effects on the sensor
Way to trigger it Two quick passages
Effects on the sensor
1 Two Magnet passages sound return
2 Melody of referencing start
3 Melody of end of referencing
Applicative layer
Cluster Cluster name Managed attributes
0x0000 Basic All
0x0050 Configuration All
0x8004 LoRaWAN All
0x000C AnalogInput (for vertical angle displacement)
With an application specific command for angle referencing.All attributes except:
0x8004: Chocks parameters, only since r6163
0x8003: Power duration unused
0x800E (SInce r6163) Number (U16) (for chocks acceleration reports [mg])
Chocks measurement are given in mg as: √ AccX² . AccY² . AccZ²
All
0x0406 (SInce r6163) Occupancy (for Chocks/vibration status)
1: Chocked or Vibrating, 0: Idle.All
Setting Angle reference
Default configurations
Inclin'o historical 10° / 40° thresholds for Skydome
Inclin'o with shocks monitoring and periodic angle reading
Detailed default configurations
08 11 05 8004 0000 08 00
08 11 05 8004 0001 20 03
#
# . Delete all configurations (Batch and Standard)
06 11 50 0050 02 03
#
# LIS2DE TAP detection (Think about devopt LIS2DE et TAP bit activation (cf InfoMem.7010xxxVyy))
# TAP inactivated and use 100Hz for angle measurement (faster measurement):
# 0x1403 : (b00 0101 00 / 0 0000011) Idle/100Hz/2g/(3*16)=48mg
09 11 05 000c 8004 19 1403
#
# ------------------------ STANDARD REPORTS -------------------------
# . POWERDESC [mV]
# . Periodic MAX = 7j => 10080mn => xA760; 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 : 1
14 11 06 0050 98 0006 41 800A A760 07 F0 04 0A8C 0064 01
#
# . ANGLE DISP (LIS2DE12TR) (Report aperture(analoginput): Alarm Open [( > 40° + 2,5)]
# Min 30s et periodic 12h (720 min ==> x82D0)
# . RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# . CSD : IsAlarm/OnExceed/NotOnFall/Threshold/Slot0 : b 1 1 0 10 000 ==> xD0
# . THRS: 40,00°: 0x42200000; HYST: 2,50°: 0x40200000
# . OCC : 1
16 11 06 000c 98 0055 39 001E 82D0 D0 42200000 40200000 01
#
# . ANGLE DISP (LIS2DE12TR) (Report aperture(analoginput): Alarm close [( < 10° + 2,5)]
# Min 30s et periodic 12h (720 min ==> x82D0)
# . RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# . CSD : IsAlarm/NotOnExceed/OnFall/Threshold/Slot1 : b 1 0 1 10 001 ==> 0xB1
# . THRS: 10,00° : 0x41200000; HYST: 2,50° : 0x40200000
# . OCC : 1
16 11 06 000c 98 0055 39 001E 82D0 B1 41200000 40200000 01
08 11 05 8004 0000 08 00
08 11 05 8004 0001 20 03
#
# . Delete all configurations (Batch and Standard)
06 11 50 0050 02 03
#
# LIS2DE TAP detection
# Note about TAP configuration examples:
# 0x9403 : (b10 0101 00 / 0 0000011) Click/100Hz/2g/(3*16)=48mg
# 0x5403 : (b01 0101 00 / 0 0000011) Chock/100Hz/2g/(3*16)=48mg
# 0x9C03 : (b10 0111 00 / 0 0000011) Click/400Hz/2g/(3*16)=48mg
# 0xA003 : (b10 1000 00 / 0 0000011) Click/1620Hz/2g/(3*16)=48mg
# 0x6003 : (b01 1000 00 / 0 0000011) Chock/1620Hz/2g/(3*16)=48mg
# 0x5503 : (b01 0101 01 / 0 0000011) Chock/100Hz/4g/(3*32)=96mg
# 0x5D03 : (b01 0111 10 / 0 0000011) Chock/400Hz/8g/(3*62)=186mg
# 0x5706 : (b01 0101 11 / 0 0000110) Chock/100Hz/16g/(6*186)=1116mg
# 0x6306 : (b01 1000 11 / 0 0000110) Chock/1620Hz/16g/(6*186)=1116mg
# 0x5E03 : (b01 0111 10 / 0 0000011) Chock/400Hz/8g/(3*186)=558mg
# 0x5F06 : (b01 0111 11 / 0 0000101) Chock/400Hz/16g/(6*186)=1116mg
09 11 05 000c 8004 19 5706
#
# . Occupancy binded to sur chocks sensor.
# ie: when chocks occur the "occupied is set" and after a programmable delay without chocks, the "occupied is unset"
#
# UnOcc to Occ delay: 0s (Will reconfigure "fast batches (ACTION 0)" after this delay without chocks notification
09 11 05 0406 0011 21 0000
# Occ to Unocc delay: 4minutes (0xF0 sec) (> FAST BACTH period see 3mn (8003) below!).
# Will reconfigure "SLOW batches (ACTION 1)" after this delay without notification
09 11 05 0406 0010 21 00F0
#
# ------------------------- ACTIONS altering BATCH REPORT --------------------------------
#
# ACTION 0: FAST batch config for chocks
# ACCELERATION (TAP/LIS2DE) ** Acc(mg) **
# Min 5s => 0x0005, Max 3mn, Delta=0, resol=1, Tag Label 0, Tag Size 3, Type U16 6
19 11 05 0050 FF00 41 11 11 06 800E 15 0000 00 0005 8003 0000 0001 03
#
# ACTION 1: SLOW batch config for chocks (big max)
# ACCELERATION (TAP/LIS2DE) ** Acc(mg) **
# Min 1s => 0x0001, Max 24h, Delta=0, resol=1, Tag Label 0, Tag Size 3, Type U16 6
19 11 05 0050 FF01 41 11 11 06 800E 15 0000 00 0001 85A0 0000 0001 03
#
# ACTION 2: Batch Force reports
0D 11 05 0050 FF02 41 05 11 50 0050 08
#
# ------------------------- ACTIONS TRIGGER CONFIGURATION -----------------------------
# -------------- ACCORDING CHOCKS EVENTS MAPPED TO OCCUPANCY CLUSTER ------------------
#
# NOTE: New action function used here, available since this INclin'o Chocks revision:
# Execute action "Without Save" = 0x04 can be used instead of Execute action = 0x00
# ==> If any required ZCL action should be saved it won't be
# Concerned commands : Write saved parameter, Configre STD report, Configure Batch report
#
# ---> A Chock has set occupancy back to 1 : TILT is being chocked or moving => Acceleration reports are faster
# . Periodic MAX = Inf => xFFFF; MIN = 10s => 0x000A
# . ALARM on treshold HIGH: 1; hyst 00
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : NotIsAlarm/OnExceed/NotOnFall/ThresholdWAction/Slot1 : b 0 1 0 11 001 ==> x59
# THRS(Bitmap Mask): 1 : 0x01; HYST(Bitmap Pattern): 0 : 0x01
# OCC : 1
# ACTION: Without report (0x88), StopOtherActions(FF) /
# StartDelayBeforeForceBatch(010001) / Force batch report(0002) / Set batch config wo save(ACTION 0: 0400)
19 11 06 0406 98 0000 18 000A FFFF 59 01 01 01 88 FF 010001 0002 0400
#
# ---> No chock from a while occupancy back to 0 : TILT is immobile => Stop acceleration report (big Max)
# . Periodic MAX = Inf => xFFFF; MIN = 10s => 0x000A
# . ALARM on treshold LOW: 1; hyst 0
# RP : NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch : b 1 0 01 1 0 0 0 ==> x98
# CSD : NotIsAlarm/NotOnExceed/OnFall/ThresholdWAction/Slot2 : b 0 0 1 11 010 ==> x3A
# THRS(Bitmap Mask): 1 : 0x01; HYST(Bitmap Pattern): 0 : 0x01
# OCC : 1
# ACTION: Without report size 3 (0x83), StopOtherActions(FF)/Set batch config wo save(0401)
# ==> 83 FF 0401
14 11 06 0406 98 0000 18 000A FFFF 3A 01 01 01 83 FF 0401
#
# ------------------------ STANDARD REPORTS -------------------------------------------
# . POWERDESC [mV]
# . Periodic MAX = 7j => 10080mn => xA760; 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 : 1
14 11 06 0050 98 0006 41 800A A760 07 F0 04 0A8C 0064 01
#
# ------------------------- STARTUP BATCH REPORT ---------------------------------------
#
# . ACCELERATION (TAP/LIS2DE) ** Acc(mg) **
# Min 1s => 0x0001 (Note: this min sets the min maximum acc measurement when chocks occures),
# Max 24h, Delta=0, resol=1, Tag Label 0, Tag Size 3, Type U16 6
11 11 06 800E 15 0000 00 0001 85A0 0000 0001 03
#
# . ANGLEDISP (TAP/LIS2DE) ** Angle (°) **
# Min 4h => 0x80F0(angle measurement period), Max 24H, Delta=5 (0x40a00000) [1 (0x3f800000)], resol=0,1(0x3dcccccd), Tag Label 1, Tag Size 3, Type Float 12
15 11 06 000C 1D 0055 00 80F0 85A0 40a00000 3dcccccd 0B
#
# Codec params: 3 0,1,6,ACCmg 1,0.1,12,Deg
Alternate configurations
Frame examples
All frames have to be sent on port 125
(Please, Try and see also Watteco Online codecs)
Standard report
Report
Report on angle displacement crossing programmed threshold Received payload is: 11 8a 000c 0055 39 42fe23d7 98 d0 . 0x11 = FCtrl (EndPoint 0)
. 0x8a = Report is an alarm (Most significant bit is set)
. 0x42fe23d7 = Current vertical angle displacement (127°) (IEE754 float)
. 0x98 = NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch: b 1 0 01 1 0 0 0
. 0xD0 = IsAlarm/OnExceed/NotOnFall/Threshold/slot0: b 1 1 0 10 000
Configuration
Configure 27,5° Threshold crossing Report angle displacement (analoginput) alarm, when angle crosses threshold or once each 24h (1440 min ==>0x85A0): The angle displacement is given by EndPoint 0 (0x11) on Cluster “Analog Input” 0x000C, and Attribute “present value” is 0x0055. Applicative payload to send is: 11 06 000c 98 0055 39 0002 85A0 F0 41dc0000 40200000 03 . 0x98 = NewCfg/Reserved/ShortCause/SecuredIfAlarm/AllNotSecured/HeaderKept/NotBatch: b 1 0 01 1 0 0 0 Expected response: 11 07 000c 00 00 0055 To disable configuration on slot 0 : 11 06 000c 80 0055 39 0000 0000 00
. 0xF0 = IsAlarm/OnExceed/OnFall/Threshold/Slot0 : b 1 1 1 10 000 ==> xF0
. 0x41dc0000 = 27,50° Threshold
. 0x40200000 = 2,50° Hysteresis around threshold
. 0x03 = Number of succesive measured occurences crossing to set an alarm
Configure a simple periodic report on angle displacement change Report the angle displacement value when angle changes more than 10°, and report it at least least every 2 hours (120 min ==> 0x8078), but no more than one report each 30seconds (0x001E) The angle displacement is given by EndPoint 0 (0x11) on Cluster “Analog Input” 0x000C, and Attribute “present value” is 0x0055. Applicative payload to send is: 11 06 000c 00 0055 39 001E 8078 41200000 . 0x00 = NotNewCfg/NotBatch : b 0 0 0 0 0 0 0 0 Expected response: 11 07 000c 00 00 0055 To disable configuration : 11 06 000c 00 0055 39 0000 0000 00000000
. 0x41200000 = 10° Variation
Batch report
Report
Inclin'o with shocks monitoring ad periodic angle reading Input payload: 200400808049162c8a4042e0cccd000379c7a185db31f0873bc051b10bfe05beec50dc6b074b1b8005 Batch attributes/decoding parameters: 3 0,1,6,ACCmg 1,0.1,12,Deg Decoded payload: (Try it) {
"batch_counter": 4,
"batch_relative_timestamp": 735,
"batch_absolute_timestamp": "2023-06-26T11:48:43.191",
"dataset": [
{
"data_relative_timestamp": 403,
"data": {
"value": 11352,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:43:11.191Z"
},
{
"data_relative_timestamp": 409,
"data": {
"value": 19822.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:43:17.191Z"
},
{
"data_relative_timestamp": 419,
"data": {
"value": 3566.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:43:27.191Z"
},
{
"data_relative_timestamp": 424,
"data": {
"value": 7825.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:43:32.191Z"
},
{
"data_relative_timestamp": 431,
"data": {
"value": 10000.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:43:39.191Z"
},
{
"data_relative_timestamp": 733,
"data": {
"value": 3327.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:48:41.191Z"
},
{
"data_relative_timestamp": 734,
"data": {
"value": 9139.0,
"label": 0,
"label_name": "ACCmg"
},
"data_absolute_timestamp": "2023-06-26T11:48:42.191Z"
},
{
"data_relative_timestamp": 562,
"data": {
"value": 112.4000015258789,
"label": 1,
"label_name": "Deg"
},
"data_absolute_timestamp": "2023-06-26T11:45:50.191Z"
}
]
}