Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion vendor/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2157,6 +2157,15 @@ vendors:
#instagram: radionodekorea
github: radionode


- id: sensocon
name: Sensocon, Inc.
description: Sensocon delivers reliable wireless sensors for pressure, temp, humidity, and more—easy to install, integrate, and scale.
website: https://sensocon.com/wireless-sensors.html
logo: sensocon-logo.png
social:
linkedin: https://www.linkedin.com/company/sensocon/

- id: sensus
name: Sensus GmbH Ludwigshafen
vendorID: 1170
vendorID: 1170
8 changes: 8 additions & 0 deletions vendor/sensocon/index.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
devices:
- ws-dp
- ws-g
- ws-w
- ws-ti
- ws-ht
- ws-ai
- ws-vi
112 changes: 112 additions & 0 deletions vendor/sensocon/sensocon-codec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
// Sensocon unified uplink/downlink codec for The Things Network

function decodeUplink(input) {
let bytes = input.bytes;
let data = {};
data.rawHex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
data.header = bytes.length > 0 ? bytes[0] : null;

bytes = bytes.slice(1);

for (let i = 0; i < 10; i++) {
if (bytes.length < 5) break;
let type = bytes[0];
let value = getFloat32(bytes.slice(1, 5));
let key = getType(type);
if (key !== "EMPTY") data[key] = value;
bytes = bytes.slice(5);
}
return { data };
}

function getType(typeByte) {
const typeMap = {
0: "pressure",
1: "humidity_temp",
2: "humidity",
3: "batt_voltage",
4: "contact",
5: "velocity",
6: "voltage",
7: "current",
8: "temperature",
9: "altitude",
10: "latitude",
11: "light",
12: "longitude",
13: "resistance",
14: "vibration",
15: "x_position",
16: "y_position",
17: "z_position",
18: "reserved",
19: "gauge_diff_pressure"
};
return typeMap[typeByte] || "EMPTY";
}

function getFloat32(bytes) {
let buffer = new ArrayBuffer(4);
let view = new Uint8Array(buffer);
for (let i = 0; i < 4; i++) view[i] = bytes[i];
return new DataView(buffer).getFloat32(0, true);
}

function encodeDownlink(input) {
let bytes = [];
switch (input.data.cmd) {
case "set_interval":
bytes.push(0x00);
bytes.push(0x02);
bytes.push((input.data.seconds >> 8) & 0xff);
bytes.push(input.data.seconds & 0xff);
break;
case "set_pressure_offset":
bytes.push(0x02);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_temp_offset":
bytes.push(0x04);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_humidity_offset":
bytes.push(0x06);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_voltage_offset":
bytes.push(0x08);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_current_offset":
bytes.push(0x0A);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_humidity_temp_offset":
bytes.push(0x0C);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
case "set_gauge_diff_pressure_offset":
bytes.push(0x10);
bytes.push(0x02);
bytes.push((input.data.offset >> 8) & 0xff);
bytes.push(input.data.offset & 0xff);
break;
}
return { bytes };
}

// Example usage for integrators:
// Set reporting interval to 900 seconds: { cmd: "set_interval", seconds: 900 }
// Apply +0.1 inWC offset: { cmd: "set_pressure_offset", offset: 100 }
Binary file added vendor/sensocon/sensocon-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions vendor/sensocon/us915-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
macVersion: "1.0.3"
regionalParametersVersion: "RP002-1.0.1"
supportsJoin: true
supportsClassB: false
supportsClassC: false
maxEIRP: 24
supports32bitFCnt: true
rx1Delay: 1
rx2DataRateIndex: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 902300000
- 902500000
- 902700000
- 902900000
- 903100000
- 903300000
- 903500000
- 903700000
25 changes: 25 additions & 0 deletions vendor/sensocon/ws-ai-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: ws-ai--profile
codec: sensocon-codec
lorawanCertified: false
region: US902-928
supportsClassB: false
supportsClassC: false
macVersion: 1.0.3
regParamsRevision: RP002-1.0.3
supportsJoin: true
supports32bitFCnt: true
maxPayloadSize: 52
pingSlotPeriod: 128
rx1Delay: 1
rx1DataRateOffset: 0
rx2DataRate: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 903900000
- 904100000
- 904300000
- 904500000
- 904700000
- 904900000
- 905100000
- 905300000
Binary file added vendor/sensocon/ws-ai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions vendor/sensocon/ws-ai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: WS-AI Analog 4-20mA Current Sensor
description: Analog 4-20mA Current Sensors enable wireless monitoring of current-loop signals from industrial transmitters. They are compatible with a wide range of sensing devices, supporting remote monitoring via LoRaWAN networks.

hardwareVersions:
- version: 90309-1
numeric: 1

firmwareVersions:
- version: AA
hardwareVersions:
- 90309-1
profiles:
US902-928:
id: ws-ai-profile
codec: sensocon-codec

photos:
main: ws-ai.png
25 changes: 25 additions & 0 deletions vendor/sensocon/ws-dp-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: ws-dp-profile
codec: sensocon-codec
lorawanCertified: false
region: US902-928
supportsClassB: false
supportsClassC: false
macVersion: 1.0.3
regParamsRevision: RP002-1.0.3
supportsJoin: true
supports32bitFCnt: true
maxPayloadSize: 52
pingSlotPeriod: 128
rx1Delay: 1
rx1DataRateOffset: 0
rx2DataRate: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 903900000
- 904100000
- 904300000
- 904500000
- 904700000
- 904900000
- 905100000
- 905300000
Binary file added vendor/sensocon/ws-dp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions vendor/sensocon/ws-dp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: WS-DP Differential Pressure Sensor
description: Differential Pressure Sensors provide high-accuracy monitoring of air and gas differential pressures, ideal for filter monitoring, cleanrooms, and HVAC system performance verification.

hardwareVersions:
- version: 90309-1
numeric: 1

firmwareVersions:
- version: AA
hardwareVersions:
- 90309-1
profiles:
US902-928:
id: ws-dp-profile
codec: sensocon-codec

photos:
main: ws-dp.png
25 changes: 25 additions & 0 deletions vendor/sensocon/ws-g-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: ws-g-profile
codec: sensocon-codec
lorawanCertified: false
region: US902-928
supportsClassB: false
supportsClassC: false
macVersion: 1.0.3
regParamsRevision: RP002-1.0.3
supportsJoin: true
supports32bitFCnt: true
maxPayloadSize: 52
pingSlotPeriod: 128
rx1Delay: 1
rx1DataRateOffset: 0
rx2DataRate: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 903900000
- 904100000
- 904300000
- 904500000
- 904700000
- 904900000
- 905100000
- 905300000
Binary file added vendor/sensocon/ws-g.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions vendor/sensocon/ws-g.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: WS-G Gauge Pressure Sensor
description: Gauge Pressure Sensors deliver precise monitoring of system pressures in liquids or gases, suited for water systems, air compressors, and industrial process monitoring.

hardwareVersions:
- version: 90309-1
numeric: 1

firmwareVersions:
- version: AA
hardwareVersions:
- 90309-1
profiles:
US902-928:
id: ws-g-profile
codec: sensocon-codec

photos:
main: ws-g.png
25 changes: 25 additions & 0 deletions vendor/sensocon/ws-ht-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: ws-ht-profile
codec: sensocon-codec
lorawanCertified: false
region: US902-928
supportsClassB: false
supportsClassC: false
macVersion: 1.0.3
regParamsRevision: RP002-1.0.3
supportsJoin: true
supports32bitFCnt: true
maxPayloadSize: 52
pingSlotPeriod: 128
rx1Delay: 1
rx1DataRateOffset: 0
rx2DataRate: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 903900000
- 904100000
- 904300000
- 904500000
- 904700000
- 904900000
- 905100000
- 905300000
Binary file added vendor/sensocon/ws-ht.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions vendor/sensocon/ws-ht.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: WS-HT Humidity + Temperature Sensor
description: Humidity + Temperature sensor provides combined RH and temperature measurements, optimized for HVAC, building automation, and agricultural climate monitoring.

hardwareVersions:
- version: 90309-1
numeric: 1

firmwareVersions:
- version: AA
hardwareVersions:
- 90309-1
profiles:
US902-928:
id: ws-ht-profile
codec: sensocon-codec

photos:
main: ws-ht.png
25 changes: 25 additions & 0 deletions vendor/sensocon/ws-ti-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
id: ws-ti-profile
codec: sensocon-codec
lorawanCertified: false
region: US902-928
supportsClassB: false
supportsClassC: false
macVersion: 1.0.3
regParamsRevision: RP002-1.0.3
supportsJoin: true
supports32bitFCnt: true
maxPayloadSize: 52
pingSlotPeriod: 128
rx1Delay: 1
rx1DataRateOffset: 0
rx2DataRate: 8
rx2Frequency: 923300000
factoryPresetFrequencies:
- 903900000
- 904100000
- 904300000
- 904500000
- 904700000
- 904900000
- 905100000
- 905300000
Binary file added vendor/sensocon/ws-ti.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions vendor/sensocon/ws-ti.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: WS-TI Temperature Sensor
description: Temperature Sensors use high-accuracy thermistor input for ambient or process temperature monitoring. These sensors support LoRaWAN wireless networks and are ideal for HVAC, cold storage, and environmental monitoring.

hardwareVersions:
- version: 90309-1
numeric: 1

firmwareVersions:
- version: AA
hardwareVersions:
- 90309-1
profiles:
US902-928:
id: ws-ti-profile
codec: sensocon-codec

photos:
main: ws-ti.png
Loading