-
Notifications
You must be signed in to change notification settings - Fork 388
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
43 changed files
with
2,078 additions
and
643 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
uplinkDecoder: | ||
fileName: cd10.js | ||
examples: | ||
- description: MerryIoT Air Quality CO2 detected | ||
input: | ||
fPort: 127 | ||
bytes: [0x11, 0x0f, 0xe7, 0x00, 0x43, 0x07, 0x19] | ||
output: | ||
data: | ||
status: 1 | ||
button: 0 | ||
co2threshold: 1 | ||
co2calibration: 0 | ||
battery: 3.6 | ||
temperature: 23.1 | ||
humidity: 67 | ||
co2_ppm: 6407 | ||
- description: Unknown FPort | ||
input: | ||
fPort: 42 | ||
bytes: [0x01] | ||
output: | ||
errors: | ||
- unknown FPort |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
function decodeUplink(input) { | ||
var bytes = input.bytes; | ||
|
||
switch (input.fPort) { | ||
case 127: | ||
return { | ||
data: { | ||
status: bytes[0] & 0x01, | ||
button: (bytes[0] >> 1) & 0x01, | ||
co2threshold: (bytes[0] >> 4) & 0x01, | ||
co2calibration: (bytes[0] >> 5) & 0x01, | ||
battery: (21 + (bytes[1] & 0x0f)) / 10, | ||
temperature: ((bytes[3] << 8) | bytes[2])/10, | ||
humidity: bytes[4], | ||
co2_ppm: (bytes[6] << 8) | bytes[5], | ||
} | ||
}; | ||
default: | ||
return { | ||
errors: ['unknown FPort'], | ||
}; | ||
} | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: MerryIoT Air Quality CO2 | ||
description: The MerryIoT Air Quality CO2 is designed for in-home and in-building usage for consumer or facility management applications. The design is optimized for high-volume manufacturing, optimal battery lifetime, and pleasing aesthetics for in-building placement. | ||
|
||
hardwareVersions: | ||
- version: '1.0' | ||
numeric: 1 | ||
|
||
firmwareVersions: | ||
- # Firmware version | ||
version: '1.0.1' # unknown | ||
numeric: 1 | ||
hardwareVersions: | ||
- '1.0' | ||
|
||
profiles: | ||
EU863-870: | ||
id: tabs-profile | ||
lorawanCertified: true | ||
codec: cd10-codec | ||
US902-928: | ||
id: tabs-profile | ||
lorawanCertified: true | ||
codec: cd10-codec | ||
|
||
sensors: | ||
- co2 | ||
|
||
dimensions: | ||
width: 70 | ||
length: 90 | ||
height: 35 | ||
|
||
weight: 96 | ||
|
||
battery: | ||
replaceable: true | ||
type: 3.6V AA Li-SOCl2 2700mAh *2 | ||
|
||
operatingConditions: | ||
temperature: | ||
min: 0 | ||
max: 50 | ||
|
||
ipCode: IPX0 | ||
|
||
productURL: https://www.browan.com/product/CO2-Sensor/detail | ||
|
||
photos: | ||
main: cd10.png | ||
|
||
keySecurity: none | ||
|
||
keyProvisioning: | ||
- manifest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,3 +7,5 @@ endDevices: | |
- tbwl100 | ||
- tbpb100 | ||
- tbhv110 | ||
- cd10 | ||
- l0010 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
uplinkDecoder: | ||
fileName: l0010.js | ||
examples: | ||
- description: Gasmatic Sensor | ||
input: | ||
fPort: 51 | ||
bytes: [0x04, 0x37, 0xcd, 0x05, 0xca, 0x05, 0xc7, 0x05, 0xbf, 0x05] | ||
output: | ||
data: | ||
Reading_Type: 0 | ||
Device_Type: 2 | ||
ADC_group: 0 | ||
battery: 86.27 | ||
ADC1: 1485 | ||
ADC2: 1482 | ||
ADC4: 1479 | ||
ADC6: 1471 | ||
- description: Gasmatic Sensor WIFI | ||
input: | ||
fPort: 51 | ||
bytes: [0x0b, 0xa5, 0xcf, 0xf3, 0x7b, 0x49, 0x1c, 0x1e, 0x38] | ||
output: | ||
data: | ||
Reading_Type: 1 | ||
WiFi_MACs_found: 5 | ||
packet_seq_number: 0 | ||
wifi_mac: '1c497bf3cfa5' | ||
RSSI: -30 | ||
battery: 87.84 | ||
- description: Gasmatic Sensor BLE | ||
input: | ||
fPort: 64 | ||
bytes: [0x28, 0xa6, 0x5f, 0x31, 0xd0, 0x55, 0x03, 0xFA, 0x00, 0x38, 0x5b] | ||
output: | ||
data: | ||
Reading_Type: 0 | ||
Device_Type: 4 | ||
found_beacons: 2 | ||
ble_mac: '0355d0315fa6' | ||
pressure: 250 | ||
battery_main: 87.84 | ||
battery_transducer: 91 | ||
- description: Unknown FPort | ||
input: | ||
fPort: 42 | ||
bytes: [0x01] | ||
output: | ||
errors: | ||
- unknown FPort |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
function decodeUplink(input) { | ||
var bytes = input.bytes; | ||
var payloadlens = input.bytes.length; | ||
switch (input.fPort) { | ||
case 51: | ||
if(payloadlens==10){ | ||
//ADC uplink payload | ||
var battery_cal = (bytes[1]/63.75)*100; | ||
var battery_final = parseFloat(battery_cal.toFixed(2)); | ||
var dev_type_1 = (bytes[0] >> 1) & 0x01; | ||
var dev_type_2 = (bytes[0] >> 2) & 0x01; | ||
var dev_type_3 = (bytes[0] >> 3) & 0x01; | ||
var dev_type_bin = dev_type_3.toString()+dev_type_2.toString()+dev_type_1.toString(); | ||
var dev_type_final = parseInt(dev_type_bin, 2);// Device Type: ADC=>2 ; BLE=>4 | ||
var adc_group =(bytes[0] >> 4) & 0x01; // 0: ADC Group 0 | ||
return { | ||
data: { | ||
Reading_Type: bytes[0] & 0x01, | ||
Device_Type: dev_type_final, | ||
ADC_group: adc_group, | ||
battery: battery_final, | ||
ADC1: (bytes[3] << 8) | bytes[2], | ||
ADC2: (bytes[5] << 8) | bytes[4], | ||
ADC4: (bytes[7] << 8) | bytes[6], | ||
ADC6: (bytes[9] << 8) | bytes[8], | ||
} | ||
}; | ||
} | ||
if(payloadlens==9){ | ||
//WIFI uplink payload | ||
var wifi_mac_sum = bytes[6].toString(16).padStart(2, "0")+ | ||
bytes[5].toString(16).padStart(2, "0")+ | ||
bytes[4].toString(16).padStart(2, "0")+ | ||
bytes[3].toString(16).padStart(2, "0")+ | ||
bytes[2].toString(16).padStart(2, "0")+ | ||
bytes[1].toString(16).padStart(2, "0"); | ||
var rssi_cal = 0 - bytes[7]; | ||
var battery_cal = (bytes[8]/63.75)*100; | ||
var battery_final = parseFloat(battery_cal.toFixed(2)); | ||
var wifi_macs_b1 = (bytes[0] >> 1) & 0x01; | ||
var wifi_macs_b2 = (bytes[0] >> 2) & 0x01; | ||
var wifi_macs_b3 = (bytes[0] >> 3) & 0x01; | ||
var wifi_macs_bin = wifi_macs_b3.toString()+wifi_macs_b2.toString()+wifi_macs_b1.toString(); | ||
var wifi_macs_final = parseInt(wifi_macs_bin, 2);// found WiFi MAC Numbers | ||
var pk_seq_n1 = (bytes[0] >> 4) & 0x01; | ||
var pk_seq_n2 = (bytes[0] >> 5) & 0x01; | ||
var pk_seq_n3 = (bytes[0] >> 6) & 0x01; | ||
var pk_seq_bin = pk_seq_n3.toString()+pk_seq_n2.toString()+pk_seq_n1.toString(); | ||
var pk_seq_final = parseInt(pk_seq_bin, 2);//WiFi Packet Sequence serial number | ||
return { | ||
data: { | ||
Reading_Type: bytes[0] & 0x01, | ||
WiFi_MACs_found: wifi_macs_final, | ||
packet_seq_number: pk_seq_final, | ||
wifi_mac: wifi_mac_sum, | ||
RSSI: rssi_cal, | ||
battery: battery_final, | ||
} | ||
}; | ||
} | ||
case 64: | ||
//BLE uplink payload | ||
var ble_mac_sum = bytes[6].toString(16).padStart(2, "0")+ | ||
bytes[5].toString(16).padStart(2, "0")+ | ||
bytes[4].toString(16).padStart(2, "0")+ | ||
bytes[3].toString(16).padStart(2, "0")+ | ||
bytes[2].toString(16).padStart(2, "0")+ | ||
bytes[1].toString(16).padStart(2, "0"); | ||
var battery_cal = (bytes[9]/63.75)*100; | ||
var battery_final = parseFloat(battery_cal.toFixed(2)); | ||
var dev_type_1 = (bytes[0] >> 1) & 0x01; | ||
var dev_type_2 = (bytes[0] >> 2) & 0x01; | ||
var dev_type_3 = (bytes[0] >> 3) & 0x01; | ||
var dev_type_bin = dev_type_3.toString()+dev_type_2.toString()+dev_type_1.toString(); | ||
var dev_type_final = parseInt(dev_type_bin, 2);// Device Type: ADC=>2 ; BLE=>4 | ||
var ble_beacons_f1 = (bytes[0] >> 4) & 0x01; | ||
var ble_beacons_f2 = (bytes[0] >> 5) & 0x01; | ||
var ble_beacons_f3 = (bytes[0] >> 6) & 0x01; | ||
var ble_beacons_bin = ble_beacons_f3.toString()+ble_beacons_f2.toString()+ble_beacons_f1.toString(); | ||
var ble_beacons_final = parseInt(ble_beacons_bin, 2);//The numbers of BLE Beacon found | ||
return { | ||
data: { | ||
Reading_Type: bytes[0] & 0x01, | ||
Device_Type: dev_type_final, | ||
found_beacons: ble_beacons_final, | ||
ble_mac: ble_mac_sum, | ||
pressure: (bytes[8] << 8) | bytes[7], | ||
battery_main: battery_final, | ||
battery_transducer: bytes[10], | ||
} | ||
}; | ||
default: | ||
return { | ||
errors: ['unknown FPort'], | ||
}; | ||
} | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: Gasmatic Sensor | ||
description: Gasmatic Sensor is designed for in-home and in-building usage for consumer or facility management applications. The design is optimized for high-volume manufacturing, optimal battery lifetime, and pleasing aesthetics for in-building placement. | ||
|
||
hardwareVersions: | ||
- version: '1.0' | ||
numeric: 1 | ||
|
||
firmwareVersions: | ||
- # Firmware version | ||
version: '1.0.1' # unknown | ||
numeric: 1 | ||
hardwareVersions: | ||
- '1.0' | ||
|
||
profiles: | ||
EU863-870: | ||
id: merryiot-profile | ||
lorawanCertified: true | ||
codec: l0010-codec | ||
US902-928: | ||
id: merryiot-profile | ||
lorawanCertified: true | ||
codec: l0010-codec | ||
|
||
#sensors: | ||
# - gasmatic sensor | ||
|
||
dimensions: | ||
width: 180 | ||
length: 100 | ||
height: 65 | ||
|
||
weight: 380 | ||
|
||
battery: | ||
replaceable: true | ||
type: 3.6V Li-ER34615 19000mAh | ||
|
||
operatingConditions: | ||
temperature: | ||
min: 0 | ||
max: 50 | ||
|
||
ipCode: IPX0 | ||
|
||
productURL: https://www.browan.com/product/XP/Rd | ||
|
||
photos: | ||
main: l0010.png | ||
|
||
keySecurity: none | ||
|
||
keyProvisioning: | ||
- manifest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
vendorProfileID: 613 | ||
supportsClassB: false | ||
supportsClassC: false | ||
macVersion: 1.0.3 | ||
regionalParametersVersion: RP001-1.0.3-RevA | ||
supportsJoin: true | ||
maxEIRP: 16 | ||
supports32bitFCnt: true |
Oops, something went wrong.