Skip to content
1 change: 1 addition & 0 deletions vendor/ellenex/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ endDevices:
- plm2-l
- tts2-l
- fms2-l
- pls2-l-v6
#- rs1-l
#- rm1-l
#- csd2-l
Expand Down
193 changes: 193 additions & 0 deletions vendor/ellenex/pls2-l-v6-codec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
# Uplink decoder decodes CBOR data uplink into a JSON object (optional)
# For documentation on writing encoders and decoders, see: https://thethingsstack.io/integrations/payload-formatters/javascript/
uplinkDecoder:
fileName: pls2-l-v6.js
examples:
- description: payload BF614CFA3FCEC8C86176190CF8FF -> Level(m) 1.6155023574829102 m, Battery_Voltage(mv) 3320mV
input:
fPort: 15
bytes: [0xBF, 0x61, 0x4C, 0xFA, 0x3F, 0xCE, 0xC8, 0xC8, 0x61, 0x76, 0x19, 0x0C, 0xF8, 0xFF]
output:
data:
Level(m): 1.6155023574829102
Battery_Voltage(mv): 3320

# Downlink encoder encodes JSON object into a binary data downlink (optional)
downlinkEncoder:
fileName: encoder.js
examples:
- description: Change sampling rate - sample every 180 minutes (3hrs)
input:
command: 1
data:
unit: 'minute'
time: 180
output:
bytes: [0x10, 0x01, 0x00, 0xB4]
fPort: 5
- description: Change sampling rate - sample every 180 seconds (3mins)
input:
command: 1
data:
unit: 'second'
time: 180
output:
bytes: [0x10, 0x00, 0x00, 0xB4]
fPort: 5
- description: Change sampling rate - wrong time unit
input:
command: 1
data:
unit: 'seconds'
time: 59
output:
errors:
- 'Invalid time unit: must be either "minute" or "second"'
- description: Change sampling rate - shorter than minimum interval in minutes
input:
command: 1
data:
unit: 'minute'
time: 0.6
output:
errors:
- 'Invalid sampling interval: minimum is 60 seconds (i.e. 1 minute)'
- description: Change sampling rate - shorter than minimum interval in seconds
input:
command: 1
data:
unit: 'second'
time: 59
output:
errors:
- 'Invalid sampling interval: minimum is 60 seconds (i.e. 1 minute)'
- description: Change sampling rate - non-string input for unit
input:
command: 1
data:
unit: 60
time: 59
output:
errors:
- 'Missing required field or invalid input: unit'
- description: Change sampling rate - non-numeric input for time
input:
command: 1
data:
unit: 'second'
time: 'second'
output:
errors:
- 'Missing required field or invalid input: time'
- description: Change sampling rate - missing input for unit
input:
command: 1
data:
time: 180
output:
errors:
- 'Missing required field or invalid input: unit'
- description: Change sampling rate - missing input for time
input:
command: 1
data:
unit: 'second'
output:
errors:
- 'Missing required field or invalid input: time'
- description: Enable confirmation
input:
command: 2
data:
confirmation: true
output:
bytes: [0x07, 0x01]
fPort: 5
- description: Disable confirmation
input:
command: 2
data:
confirmation: false
output:
bytes: [0x07, 0x00]
fPort: 5
- description: Enable/Disable confirmation with non-boolean value
input:
command: 2
data:
confirmation: 'confirmation'
output:
errors:
- 'Missing required field or invalid input: confirmation'
- description: Enable/Disable confirmation with missing confirmation input
input:
command: 2
data:
confirm: true
output:
errors:
- 'Missing required field or invalid input: confirmation'
- description: Reset device
input:
command: 3
data:
reset: true
output:
bytes: [0xFF, 0x00]
fPort: 5
- description: Reset device with false
input:
command: 3
data:
reset: false
output:
errors:
- 'Missing required field or invalid input: reset'
- description: Reset device with non-boolean value
input:
command: 3
data:
reset: 'reset'
output:
errors:
- 'Missing required field or invalid input: reset'
- description: Reset device with missing reset input
input:
command: 3
data:
confirmation: 'reset'
output:
errors:
- 'Missing required field or invalid input: reset'
- description: Change periodic auto-reset settings - device automatically reset after sending 3000 samples
input:
command: 4
data:
count: 3000
output:
bytes: [0x16, 0x0B, 0xB8]
fPort: 5
- description: Change periodic auto-reset settings - disable autoreset
input:
command: 4
data:
count: 0
output:
bytes: [0x16, 0x00, 0x00]
fPort: 5
- description: Change periodic auto-reset settings - non-numeric input
input:
command: 4
data:
count: '0'
output:
errors:
- 'Missing required field or invalid input: count'
- description: Change periodic auto-reset settings - missing input
input:
command: 4
data:
confirmation: true
output:
errors:
- 'Missing required field or invalid input: count'
47 changes: 47 additions & 0 deletions vendor/ellenex/pls2-l-v6-profile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# LoRaWAN MAC version: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4 or 1.1
macVersion: 1.0.3
# LoRaWAN Regional Parameters version. Values depend on the LoRaWAN version:
# 1.0: TS001-1.0
# 1.0.1: TS001-1.0.1
# 1.0.2: RP001-1.0.2 or RP001-1.0.2-RevB
# 1.0.3: RP001-1.0.3-RevA
# 1.0.4: RP002-1.0.0 or RP002-1.0.1
# 1.1: RP001-1.1-RevA or RP001-1.1-RevB
regionalParametersVersion: RP001-1.0.3-RevA

# Whether the end device supports join (OTAA) or not (ABP)
supportsJoin: true
# If your device is an ABP device (supportsJoin is false), uncomment the following fields:
# RX1 delay
#rx1Delay: 5
# RX1 data rate offset
#rx1DataRateOffset: 0
# RX2 data rate index
#rx2DataRateIndex: 0
# RX2 frequency (MHz)
#rx2Frequency: 869.525
# Factory preset frequencies (MHz)
#factoryPresetFrequencies: [868.1, 868.3, 868.5, 867.1, 867.3, 867.5, 867.7, 867.9]

# Maximum EIRP
maxEIRP: 16
# Whether the end device supports 32-bit frame counters
supports32bitFCnt: true

# Whether the end device supports class B
supportsClassB: false
# If your device supports class B, uncomment the following fields:
# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds)
#classBTimeout: 60
# Ping slot period (seconds)
#pingSlotPeriod: 128
# Ping slot data rate index
#pingSlotDataRateIndex: 0
# Ping slot frequency (MHz). Set to 0 if the band supports ping slot frequency hopping.
#pingSlotFrequency: 869.525

# Whether the end device supports class C
supportsClassC: false
# If your device supports class C, uncomment the following fields:
# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds)
#classCTimeout: 60
Loading