Ambiance Monitor
Product Datasheet
Device Profile for Tesenso IoT Cloud
Decoder/Payload Converter for Tesenso IoT Cloud
//V1.0, 09.08.2021,DS
//V1.1 04.09.2021, FU: changed pir to motion
if (msg.data) {
var decoded = decodeFromHex(msg.data);
decoded.ts = msg.ts;
decoded.rssi = msg.rssi;
decoded.snr = msg.snr;
decoded.toa = msg.toa;
decoded.frequency = msg.frequency;
decoded.dr = msg.dr;
decoded.bat = decodeBattery(msg.bat);
decoded.hex = msg.data;
return {
msg: decoded,
metadata: metadata,
msgType: msgType
};
} else {
return {
msg: msg,
metadata: metadata,
msgType: msgType
};
}
function decodeFromHex(data) {
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
var decoded = {};
//Temperature
var rawTemp = data.substr(14, 4);
var intTemp = parseInt(rawTemp, 16);
var doubleTemp = intTemp * 175 / 65535 - 45;
decoded.temperature = doubleTemp;
//Humidity
var rawHum = data.substr(18, 4);
var intHum = parseInt(rawHum, 16);
var hum = 100 * intHum / 65536;
decoded.humidity = hum;
//Pressure
var rawPressure = data.substr(22, 4);
var intPressure = parseInt(rawPressure, 16);
var pressure = intPressure * 2;
decoded.barometricPressure = pressure;
//CO2
var rawCO2 = data.substr(34, 4);
var intCO2 = parseInt(rawCO2, 16);
var co2 = intCO2 - 32768;
decoded.co2 = co2;
//PIR = motion
var rawmotion = data.substr(46, 4);
var intmotion = parseInt(rawmotion, 16);
var motion = intmotion;
decoded.motion = motion;
//VOC
var rawVOC = data.substr(50, 4);
var intVOC = parseInt(rawVOC, 16);
var voc = intVOC;
decoded.voc = voc;
//Battery
var rawBattery = data.substr(10, 4);
var intBattery = parseInt(rawBattery, 16);
var battery = intBattery/1000.00;
decoded.batteryVoltage = battery;
return decoded;
}
function parseHexString(hex) {
for (var bytes = [], c = 0; c < hex.length; c += 2) {
bytes.push(parseInt(hex.substr(c, 2), 16));
}
return bytes;
}
function decodeBattery(byte) {
if (byte == 0) {
return 'External power source';
} else if (byte > 0 && byte < 255) {
return byte / 254 * 100;
} else {
return 'Unknown battery state';
}
}
Device Labels
Battery voltage
batteryVoltage
telemetry
float
Air temperature
temperature
telemetry
float
Air humidity
humidity
telemetry
float
Barometric pressure
barometricPressure
telemetry
integer
CO2 concentration
co2
telemetry
integer
PIR sensor: activity counter
motion
telemetry
integer
Gas sensor: total VOC
voc
telemetry
integer
Uplink/Downlink documentation
Uplink message
Details
Header
Version
uint8
Header
Device ID
uint16
Header
Flags
uint16
Sensor 0
Battery voltage
uint16
x / 1000
V
Sensor 1
Air temperature
uint16
x / 65535 ∙ 175 − 45
°C
Sensor 1
Air humidity
uint16
x / 65535 ∙ 100
%
Sensor 2
Barometric pressure
uint16
x ∙ 2
Pa
Sensor 3
Ambient light CH0 (visible + infrared)
uint16
x
Sensor 3
Ambient light CH1 (infrared)
uint16
x
Sensor 4
CO2 concentration
uint16
x - 32768
ppm
Sensor 4
CO2 sensor status
uint16
x
Sensor 4
Raw IR reading
uint16
x
Sensor 5
PIR sensor: activity counter
uint16
x
Sensor 6
Gas sensor: total VOC
uint16
x
ppb
sample Message (hex) (all sensor data included):
020bbd007f0b926a515d48bc4e0262006981c7000093d4000b0111
02
Version
2
0bbd
Device ID
3005
007f
Flags
0b0000000001111111
0b92
Battery voltage
2.96
V
6a51
Air temperature
27.68
deg
5d48
Air humidity
36.44
%
bc4e
Barometric pressure
96412
Pa
0262
Ambient light CH0
610
0069
Ambient light CH1
105
81c7
CO2 concentration
455
ppm
0000
CO2 sensor status
0
93d4
Raw IR reading
37844
000b
PIR activity counter
11
0111
Gas sensor: total VOC
273
ppb
Illuminance
679
lx
sample Message(hex) (battery voltage only):
020bbd00010b92
02
Version
2
0bbd
Device ID
3005
0001
Flags
0b0000000000000001
0b92
Battery voltage
2.96
V
Downlink message
Command List
set period
0x0001
Set sampling period in seconds (1...65535).
≥ 0.2.7
set period + save
0x0002
... + save settings
≥ 0.2.7
set dr
0x0003
Set default TX data rate. Used for next TX. Actual data rate for following TX may vary, if ADR is enabled.
≥ 0.2.7
set dr + save
0x0004
... + save settings
≥ 0.2.7
set adr on
0x0005
Enable ADR.
≥ 0.2.7
set adr on + save
0x0006
... + save settings
≥ 0.2.7
set adr off
0x0007
Disable ADR.
≥ 0.2.7
set adr off + save
0x0008
... + save settings
≥ 0.2.7
set dr_min
0x0009
Set minimum data rate (dr_min overrides ADR settings)
≥ 1.2.0
set dr_min + save
0x000A
... + save settings
≥ 1.2.0
set dr_max
0x000B
Set maximum data rate (dr_max overrides ADR settings)
≥ 1.2.0
set dr_max + save
0x000C
... + save settings
≥ 1.2.0
set pwridx_min
0x000D
Set minimum TX power index (overrides ADR settings)
≥ 1.2.0
set pwridx_min + save
0x000E
... + save settings
≥ 1.2.0
set pwridx_max
0x000F
Set maximum TX power index (overrides ADR settings)
≥ 1.2.0
set pwridx_max + save
0x0010
... + save settings
≥ 1.2.0
set send_period
0x0011
Set send period. Examples: 0 or 1: send after every sampling. 4: send after every fourth sampling.
≥ 1.4.0
set send_period + save
0x0012
... + save settings
≥ 1.4.0
set join_period
0x0013
Set re-join period in hours (0... 1000). Examples: 24: re-join network every 24 hours. 0: never re-join
≥ 1.4.2
set join_period + save
0x0014
... + save settings
≥ 1.4.2
set pwridx
0x0015
Set default TX power index. Used for next TX. Actual pwridx for following TX may vary, if ADR is enabled.
≥ 1.4.5
set pwridx + save
0x0016
... + save settings
≥ 1.4.5
set linkcheck_period
0x0017
Set link check period (default: 36)
≥ 1.5.0
set linkcheck_period + save
0x0018
... + save settings
≥ 1.5.0
set linkcheck_tolerance
0x0019
Set link check period (default: 6)
≥ 1.5.0
set linkcheck_tolerance + save
0x001A
... + save settings
≥ 1.5.0
set linkcheck_limit
0x001B
Set link check limit (default: 12)
≥ 1.5.0
set linkcheck_limit + save
0x001C
... + save settings
≥ 1.5.0
set port
0x001D
Set LoRaWAN uplink port (1...223, default: 1)
≥ 1.6.0
set port + save
0x001E
... + save settings
≥ 1.6.0
set param 0 set param 1 ... set param 15
0x0020 0x0021 ... 0x002F
Set device specific parameter 0. Range: 0...65534; 65535: parameter is ignored. Set device specific parameter 1 ... Set device specific parameter 15
≥ 1.4.0
set sensor_period 0 set sensor_period 1 ... set sensor_period 9
0x0050 0x0051 ... 0x0059
Set (sub-)sampling period of sensor 0 Set (sub-)sampling period of sensor 1 ... Set (sub-)sampling period of sensor 9
≥ 1.4.5
set sensor_period 0 + save set sensor_period 1 + save ... set sensor_period 9 + save
0x0060 0x0061 ... 0x0069
... + save settings
≥ 1.4.5
reset
0xFEFE
Reset device. Unsaved parameter changes are lost.
≥ 0.2.7
factory reset
0xFEF0
Erase settings in flash and reset
≥ 0.2.7
sleep
0xFEF1
Enter sleep mode (power off)
≥ 1.5.0
Downlink Command Examples
set period 60 seconds + save
0002003CF5A1
set dr 2 + save
0004000224C0
set send_period 20 + save
001200142EA0
reset
FEFE00003C50
factory reset
FEF00000FF31
FAQ
Last updated