Downlinks

This page describes all LoRaWAN downlinks supported by Fencyboy. You can use them to configure and manage a Fencyboy device remotely.

Fencyboy supports several downlink commands to change config settings, manage the lifecycle (e.g. restart the device) and get debug information. Fencyboy accepts the commands on downlink port 2. Some commands require additional parameters, which are validated on the client side. The following table lists all currently supported downlink commands.

Description
Opcode
Parameter

Restart device

0x10

One uint16 (2 bytes, Big-endian) encoding the delay before restarting the device in minutes. For example sending 0x100005 restarts the device in 5 minutes.

Get time till restart

0x11

Returns the time until the next periodic or forced restart happens in minutes as a single uint16 (See Restart device 0x10).

0x80

One uint8 (1 byte) encoding the transmission interval length in minutes minus 1. For example sending 0x8004 will set the interval to 1+4=5 minutes.

Set expected time between impulses

0x81

One uint16 (2 bytes, Big-endian) encoding the expected time between impulses in milliseconds. For example sending 0x8103E8 sets the time to 1000ms.

Set voltage divider multiplier

0x82

One IEE-754 float (4 bytes, Big-endian) encoding the multiplier as decimal value. For example sending 0x8245a14000 sets the multiplier to 5160.

Set smart sleep status

0x83

Save config to EEPROM

0x90

-

Load config from EEPROM

0x91

-

Get currently used config via LoRaWAN uplink

0x92

-

Reset config to default values

0x93

-

Save currently used battery capacity to EEPROM

0xA0

-

Reset used battery capacity in EEPROM

0xA1

-

Sending Multiple Commands

Fencyboy supports multiple commands in one downlink request. You can add up to 16 bytes of commands and parameters in a single request. The request is ignored if you exceed this limit. All commands in your request are processed sequentially. Some common sequences of commands are listed below.

Updating the Transmission Interval Permanently

If you want to permanently change the transmission interval, you can make use of a combination of three commands. First, set the new transmission interval using opcode 0x80 to the desired value. Next, save the currently used settings to the EEPROM using opcode 0x90 so that they won't get lost after the device restarts. Finally use opcode 0x92 to get the currently active config to assure that all settings are correct.

// Permanently sets the transmission interval to 15 minutes
0x80149092

Save Used Battery Capacity and Reboot

// saves the currently used battery capacity to the EEPROM and reboots the device
0xA010

Last updated