ESP32-PaxCounter/docs/remotecontrol.md

205 lines
5.6 KiB
Markdown
Raw Normal View History

2022-11-19 18:07:39 +01:00
# Remote control
The device listenes for remote control commands on LoRaWAN Port 2. Multiple commands per downlink are possible by concatenating them, but must not exceed a maximum of 10 bytes per downlink.
2022-11-20 21:23:43 +01:00
!!! info
Settings can be stored in NVRAM to make them persistant (reloaded during device startup / restart). To store settings, use command `0x21`.
2022-11-19 18:07:39 +01:00
Send for example `83` `86` as Downlink on Port 2 to get battery status and time/date from the device.
2022-11-20 19:15:53 +01:00
![Remote Control](img/paxcounter_downlink_example.png)
2022-11-19 18:07:39 +01:00
0x01 set scan RSSI limit
1 ... 255 used for wifi and bluetooth scan radius (greater values increase scan radius, values 50...110 make sense)
0 = RSSI limiter disabled [default]
0x02 set counter mode
0 = cyclic unconfirmed, mac counter reset after each wifi scan cycle, data is sent only once [default]
1 = cumulative counter, mac counter is never reset
2 = cyclic confirmed, like 0 but data is resent until confirmation by network received
0x03 set GPS data on/off
0 = GPS data off
1 = GPS data on, sends GPS data on port 4 (default, use port 1 for mobile pax counter), if GPS is present and has a fix
0x04 set display on/off
0 = display off
1 = display on [default]
0x05 set LoRa datarate
0 ... 15 see LoRaWAN regional parameters for details [default: 5]
Example for EU868:
2022-11-20 21:23:43 +01:00
DataRate Configuration Bit/s
0 LoRa: SF12 / 125 kHz 250
1 LoRa: SF11 / 125 kHz 440
2 LoRa: SF10 / 125 kHz 980
3 LoRa: SF9 / 125 kHz 1760
4 LoRa: SF8 / 125 kHz 3125
5 LoRa: SF7 / 125 kHz 5470
6* LoRa: SF7 / 250 kHz 11000
7* FSK: 50 kbps 50000
2022-11-19 18:07:39 +01:00
8 .. 14 reserved for future use (RFU)
2022-11-20 21:23:43 +01:00
15 ignored (device keeps current setting)
2022-11-19 18:07:39 +01:00
*) not supported by TheThingsNetwork
0x06 set LoRa TXpower
0 ... 255 desired TX power in dBm [default: 14]
0x07 set LoRa Adaptive Data Rate mode
0 = ADR off
1 = ADR on [default]
If ADR is set to off, SF value is shown inverted on display.
0x08 do nothing
useful to clear pending commands from LoRaWAN server quere, or to check RSSI on device
0x09 reset functions (send this command UNconfirmed only to avoid boot loops!)
0 = restart device (coldstart)
1 = (reserved, currently does nothing)
2 = reset device to factory settings and restart device
3 = flush send queues
4 = restart device (warmstart)
8 = reboot device to maintenance mode (local web server)
9 = reboot device to OTA update via Wifi mode
0x0A set payload send cycle
5 ... 255 payload send cycle in seconds/2
e.g. 120 -> payload is transmitted each 240 seconds [default]
0x0B set Wifi channel hopping interval timer
0 ... 255 duration for scanning a wifi channel in seconds/100
e.g. 50 -> each channel is scanned for 500 milliseconds [default]
0 means no hopping, scanning on fixed single channel WIFI_CHANNEL_1
0x0C set Bluetooth channel switch interval timer
0 ... 255 duration for scanning a bluetooth advertising channel in seconds/100
e.g. 8 -> each channel is scanned for 80 milliseconds [default]
0x0E set Bluetooth scanner
0 = disabled
1 = enabled [default]
0x0F set WIFI antenna switch (works on LoPy/LoPy4/FiPy only)
0 = internal antenna [default]
1 = external antenna
0x10 set RGB led luminosity (works on LoPy/LoPy4/FiPy and LoRaNode32 shield only)
0 ... 100 percentage of luminosity (100% = full light)
e.g. 50 -> 50% of luminosity [default]
0x13 set user sensor mode
byte 1 = user sensor number (1..3)
byte 2 = sensor mode (0 = disabled / 1 = enabled [default])
0x14 set payload mask
byte 1 = sensor data payload mask (0..255, meaning of bits see below)
0x01 = COUNT_DATA
0x02 = RESERVED_DATA
0x04 = MEMS_DATA
0x08 = GPS_DATA
0x10 = SENSOR_1_DATA
0x20 = SENSOR_2_DATA
0x40 = SENSOR_3_DATA
0x80 = BATT_DATA
bytes can be combined eg COUNT_DATA + SENSOR_1_DATA + BATT_DATA: `0x01 | 0x10 | 0x80 = 0x91`
0x15 set BME data on/off
0 = BME data off
1 = BME data on, sends BME data on port 7 [default]
0x16 set battery data on/off
0 = battery data off [default]
1 = battery data on, sends voltage on port 8
0x17 set Wifi scanner
0 = disabled
1 = enabled [default]
0x18 reserved
unused, does nothing
0x19 set sleep cycle
bytes 1..2 = device sleep cycle in seconds/10 (MSB), 1 ... 255
e.g. {0x04, 0xB0} -> device sleeps 200 minutes after each send cycle [default = 0]
0x20 load device configuration
Current device runtime configuration will be loaded from NVRAM, replacing current settings immediately (use with care!)
0x21 store device configuration
Current device runtime configuration is stored in NVRAM, will be reloaded after restart
0x80 get device configuration
Device answers with it's current configuration on Port 3.
0x81 get device status
Device answers with it's current status on Port 2.
0x83 get battery status
Device answers with battery voltage on Port 8.
0x84 get device GPS status
Device answers with it's current status on Port 4.
0x85 get BME280 / BME680 sensor data
Device answers with BME sensor data set on Port 7.
0x86 get time/date
Device answers with it's current time on Port 2:
bytes 1..4 = time/date in UTC epoch seconds (LSB)
byte 5 = time source & status, see below
bits 0..3 time source
0x00 = GPS
0x01 = RTC
0x02 = LORA
0x03 = unsynched
0x04 = set (source unknown)
bits 4..7 esp32 sntp time status
0x00 = SNTP_SYNC_STATUS_RESET
0x01 = SNTP_SYNC_STATUS_COMPLETED
0x02 = SNTP_SYNC_STATUS_IN_PROGRESS
0x87 sync time/date
Device synchronizes it's time/date by calling the preconfigured time source.
0x88 set time/date
bytes 1..4 = time/date to set in UTC epoch seconds (MSB, e.g. https://www.epochconverter.com/hex)