Skip to content

Setup Guide

Frank Edwards edited this page Nov 13, 2017 · 7 revisions

Home > Setup Guide

This Setup Guide provides guidance on system requirements, installation and configuration of Floranet.

Note Floranet is supported on MacOS 10.13 and Ubuntu Linux 16.04. Other operating systems may be used, provided the prerequisite software is available and configured.

Prerequisites

Floranet requires the following prerequisites:

  • PostgreSQL 9.3+
  • Python 2.7
  • Libpq-dev

MacOS

Install the following software components.

PostgreSQL

Review the PostgreSQL MacOS packages and choose an installation method or project. Once installed, create a user and a database for Floranet using the psql command line tool.

Create a user 'floranet' with password 'florapass'.

$ psql postgres
# CREATE ROLE floranet WITH LOGIN PASSWORD 'florapass';

Then create a database 'floranet' and grant the user created above full access.

# CREATE DATABASE floranet;
# GRANT ALL PRIVILEGES ON DATABASE floranet TO floranet;

Python 2.7

Python 2.7.10 is installed by default on MacOS.

Libpq-dev

Libpq-dev is a requirement for the psycopg2 PostgreSQL driver used by Floranet. It provides development header files for the offical PostgreSQL libpq client library. The package can be installed using Homebrew.

$ brew install libpq-dev

Ubuntu

Install the following software components.

Postgres

To install PostgreSQL:

$ sudo apt install postgresql

Once installed, create a user and a database for Floranet using the psql command line tool.

Create a user 'floranet' with password 'florapass'.

$ sudo -u postgres psql template1
# CREATE ROLE floranet WITH LOGIN PASSWORD 'florapass';

Then create a database 'floranet' and grant the user created above full access.

# CREATE DATABASE floranet;
# GRANT ALL PRIVILEGES ON DATABASE floranet TO floranet;

Python Ubuntu 16.04 comes by default with Python 3.5.1 installed. Python 2 can be installed as follows.

$ sudo apt install python

Libpq-dev

Libpq-dev is a requirement for the psycopg2 Postgres driver used by Floranet. It provides development header files for the offical Postgres libpq client library. Install this package using apt.

$ sudo apt install libpq-dev

Installation

Clone the repository:

$ git clone https://github.com/Fluent-networks/floranet.git

Run setup.py to install to the system, or in your virtual environment:

$ sudo python setup.py install

Database Migration

To create the required database tables, first edit the file config/database.cfg. This file is read by the alembic migration tool to obtain the PostgreSQL host, database, username and password parameters. The file below shows an example with the parameters as per the Prerequisites section above.

# Database connection parameters
[database]
host = localhost
user = postgres
password = florapass
database = floranet

To run the migration, change to the floranet/data directory and run the migration.

$ cd floranet/data
$ alembic upgrade head

Starting the Server

The command line for starting floranet is:

$ floranet -c [config] -f -l [logfile] -d

The parameters are:

  • -c [config]: Use database configuration file config. If omitted, the default database.cfg will be used.
  • -f: Log in foreground to stdout. If this is set, the log file parameter is ignored.
  • -l [logfile]: Log to logfile. By default, floranet will log to /tmp/floranet.log.
  • -d: Enable debug mode. The log will include detailed debug information.

The first time that floranet is started, it will create a factory default configuration. The defaults used are described in the configuration section below. The example log output below shows this process.

$ floranet -c database.cfg -f
2017-10-14T15:27:12+1000 [Floranet#info] Starting up
2017-10-14T15:27:12+1000 [Floranet#info] Reading database configuration from database.cfg
2017-10-14T15:27:12+1000 [Floranet#info] No system configuration found. Loading factory defaults
2017-10-14T15:27:12+1000 [Floranet#info] Initialising the server
2017-10-14T15:27:12+1000 [Floranet#info] Starting the server
2017-10-14T15:27:12+1000 [Floranet#info] Starting the web server
2017-10-14T15:27:12+1000 [-] Site starting on 8000
2017-10-14T15:27:12+1000 [twisted.web.server.Site#info] Starting factory <twisted.web.server.Site instance at 0x109deb200>
2017-10-14T15:27:12+1000 [Floranet#info] Starting the LoRaWAN interface
2017-10-14T15:27:12+1000 [-] LoraWAN starting on 1700
2017-10-14T15:27:12+1000 [-] Starting protocol <floranet.lora.wan.LoraWAN instance at 0x109dee248>

Configuration

Overview

Floranet provides you with the ability to configure the logical representations of associated LoRaWAN IoT elements, including devices, gateways, applications and application interfaces. For more information about LoRa technology, refer to the LoRaWAN Overview.

Floranet is configured using a command-line tool called floracmd. floracmd allows you to configure all aspects of the server, the connected LoRa networks, and upstream application server interfaces. floracmd uses a set of CLI commands to communicate to a Floranet server via the server's REST management interface.

Starting floracmd

To start floracmd:

$ floracmd -s [server:port] -t [token] [command]

The parameters are:

  • -s [server]: Connect to the floranet server listening at server:port. If omitted, the default localhost:8000 will be used.
  • -t [token]: Set the security token to token for authenticated access to the server.
  • [command]: Command to be issued to the server.

Note:

  • The server parameter can be specified using the environment variable FLORANET_SERVER. This will be used if the -s option is not specified.
  • The token parameter can be specified using the environment variable FLORANET_TOKEN. This will be used if the -t option is not specified.
  • If a command is not specified on the command line, floracmd will drop into an interactive shell, allowing multiple commands to be issued.

For example, to start the floracmd interactive shell, connecting to a server running at localhost:8000 and using the server default token, issue the following commands.

$ export FLORANET_TOKEN="IMxHj@wfNkym@*+V85Rs^G<QXMD~p[eaX3S=_D8f7{z0q{GN"
$ floracmd 
Using floranet server localhost:8000
floranet> 

For the remainder of this guide, we will assume configuration commands are issued from the interactive shell, as indicated by the floranet> prompt.

At the prompt, help is available for each command by issuing the help command.

floranet> help

Documented commands (type help <topic>):
========================================
app  device  gateway  interface  property  system

Undocumented commands:
======================
exit  help  quit

floranet> help system
Usage: system [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  set   set system configuration parameters.
  show  show the system configuration.
floranet>

System

The system command displays and modifies the current server configuration. Assuming the default configuration is loaded, we can view the configuration using system show:

floranet> system show
System: floranet at localhost:8000
          Network interface: 0.0.0.0
          LoraWAN port: 1700
          Web server port: 8000
          Frequency band: US915
          Network ID: 0x01.02.03
          OTAA Address Range: 0x0600.0001 - 0x060f.ffff
          ADR enabled: Yes
          ADR margin: 0.0 dB
          ADR cycle time: 9000 s
          ADR message time: 10 s
          Relaxed frame count: Yes
          MAC queueing: Yes
          MAC queue limit: 120 s
floranet> 

The available system parameters are listed in the table below.

Parameter Value Description Comment
name Alphanumeric string A name used to identify the server. Default is floranet
listen IP address The interfaces the server will listen on for LoRa messages. To listen on all available interfaces, use 0.0.0.0. This is the default.
port Integer 0 to 65535 The LoRaWAN UDP port for messages from gateways. Default is 1700
webport Integer 0 to 65535 The port that the built-in web server will listen on for REST requests. Default is 8000. Note if this port is changed, you need to restart floracmd with the new setting.
apitoken Alphanumeric string The API token used to authenticate floracmd to the server. Note if this is changed, you need to restart floracmd with the new token string.
freqband US915 | AU915 | EU868 The LoRa frequency band being used. Floranet currently supports the US (US915), Australian (AU915) and European (EU868) bands. Default is US915
netid 3 octet hex nnnnnn (n = 0 to f) Identifies a LoRa network. Note that the 7 LSB of the NetID must match the 7 MSB of devices' devaddr. Default is 010203 (Local: Experimental nodes).
duplicateperiod Integer 0 to 60 The time in seconds that the server will cache messages in order to remove duplicates received from different gateways. Default is 10 seconds. To disable de-duplication, set to 0.
fcrelaxed yes | no Whether the server will accept a reset of a device's frame count to zero. Caters for devices that restart and cannot persistently store their previous frame count value. Default is yes
otaastart 4 octet devaddr hex nnnn.nnnn (n = 0 to f) The starting address of the OTAA range. OTAA devices will receive a device address from within the defined start - end range. Default is 0600.0001
otaaend 4 octet devaddr hex nnnn.nnnn (n = 0 to f) The final address of the OTAA range. OTAA devices will receive a device address from within the defined start - end range. Default is 060f.ffff
macqueueing yes | no MAC message queuing. If enabled, downstream MAC addresses will be queued and piggybacked onto the next downstream message. Default is yes
macqueuelimit Integer 60 to 86400 The time in seconds that the server will queue MAC messages. Default is 120 seconds.

Examples

Example system configuration commands.

  • Set the LoRa frequency band to the Australian 915 MHz band.
floranet> system set freqband=AU915
  • Set the network ID to 0x010218
floranet> system set netid=010218
  • Set the OTAA start and end addresses to match the netid above.
floranet> system set otaastart=0c00.0001 otaaend=0c0f.ffff
  • Turn macqueuing on, and set the queue to ten minutes.
floranet> system set macqueueing=yes macqueuelimit=600
  • Show the system configuration.
floranet> system show
System: floranet at localhost:8000
          Network interface: 0.0.0.0
          LoraWAN port: 1700
          Web server port: 8000
          Frequency band: AU915
          Network ID: 0x01.02.18
          OTAA Address Range: 0x0c00.0001 - 0x0c0f.ffff
          ADR enabled: Yes
          ADR margin: 0.0 dB
          ADR cycle time: 9000 s
          ADR message time: 10 s
          Relaxed frame count: Yes
          MAC queueing: Yes
          MAC queue limit: 600 s
floranet> 

Applications

Applications represent groupings of devices that are associated with an upstream application server, and share a common security context for joining the LoRaWAN network. Applications are uniquely identified within a network server by an AppEUI parameter, and devices associated with that application must have prior knowledge of parameters required for authentication and message transfer.

Floranet associates devices with applications using the AppEUI, and implements a concept known as application interfaces, as a property of an application, to define how messages are exchanged with an upstream application server. Note that multiple applications may be associated with a single application interface.

To add, modify, display and delete applications, use the app command, with the appeui parameter as the first argument.

Application parameters are listed in the table below.

Parameter Values Description Comment
appeui 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Unique application identifier.
name Alphanumeric string The name used to identify an application.
domain Alphanumeric string Identifies an autonomous system domain, e.g. to associate an application with a customer. Optional.
appkey 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Secret key used for encryption.
appnonce 3 octet hex nnnnnn (n = 0 to f) Nonce used for join requests. Random number.
fport Integer 1 to 223 Default LoraWAN port used for messages.
appinterface_id Integer Identifies the Application interface associated with this application See Application Interfaces below.

Examples

Example application configuration commands.

  • Create a new application.
floranet> app add 0a0a.0b0b.0c0c.0d0d name=Test appkey=0937.c721.8c66.0b42 appnonce=ac03f2 fport=15
  • Show all applications.
floranet> app show all
Application   AppEUI                  Domain         Fport Interface 
Test          0a0a.0b0b.0c0c.0d0d     -              22    -         
Test          0a0b.0c0d.0a0b.0c0d     fluentnetworks 15    1    
  • Show the newly created application.
Application EUI: 0a0a.0b0b.0c0c.0d0d
          name: Test
          domain: -
          fport: 15
          interface: -
  • Modify the fport parameter, then show the application.
floranet> app set 0a0a.0b0b.0c0c.0d0d fport=22
floranet> app show 0a0a.0b0b.0c0c.0d0d
Application EUI: 0a0a.0b0b.0c0c.0d0d
          name: Test
          domain: -
          fport: 22
          interface: -
  • Delete the application 0a0b.0c0d.0a0b.0c0d.
floranet> app delete 0a0b.0c0d.0a0b.0c0d
Error: Cannot delete - devices exist with Application EUI 0a0b.0c0d.0a0b.0c0d

Note that floranet will not permit applications to be deleted if there are devices associated with the application. Let's try deleting 0a0a.0b0b.0c0c.0d0d.

floranet> app delete 0a0a.0b0b.0c0c.0d0d

Application Interfaces

Floranet uses the concept of Application Interfaces in order to define how application data is exchanged between devices and an upstream application server. Application Interfaces (or interfaces for short) provide a proxy function between LoRaWAN networks and upstream IoT application server platforms.

The interface command is used to create, display, modify and delete application interfaces.

To assign an interface to an application, use the app set command with an interface=[id] command.

Currently, Floranet supports two types of application interfaces:

  • Reflector: A generic application interface that is only useful for testing purposes. This interface simply takes data received form a device, and sends it back to that device.
  • Azure: Used to communicate with Microsoft's Azure IoT platform. Currently, Floranet only supports the Azure HTTPS protocol to send time-series telemetry and alerts from devices, and to receive Azure IoT cloud-to-device messages.

The parameters associated with these application interfaces are shown below.

Reflector Interface

Parameter Values Description Comment
id Integer Uniquely identifies the interface
type Reflector Identifies the interface type
name Alphanumeric string Interface name

Azure Interface

Parameter Values Description Comment
id Integer Uniquely identifies the interface
type Azure Identifies the interface type
name Alphanumeric string Interface name
protocol HTTPS Protocol used for the interface Only HTTPS is supported.
iothost Alphanumeric string Azure IoT hub host name. Typically iothubname.azure-devices.net where iothubname is the IoT Hub's name property.
keyname Alphanumeric string Azure IoT shared access policy name Defined by the IoT Hub's shared access policy
keyvalue Alphanumeric string Azure IoT shared access policy primary key Defined by the IoT Hub's shared access policy
pollinterval Integer 1 to 65536 Azure IoT HTTPS polling interval For the HTTPS protocol, Azure IoT Hub requires us to poll for cloud-to-device messages. Under current guidelines, each device should poll for messages every 25 minutes or more.

Examples

  • Create a new Reflector application interface and show all interfaces.
floranet> interface add reflector name="Test Interface"
floranet> interface show all
ID  Name                    Type           
  1 Test Interface          Reflector 
  • Assign the new interface to an application.
floranet> app set 0a0b.0c0d.0a0b.0c0d interface=1
floranet> app show 0a0b.0c0d.0a0b.0c0d
Application EUI: 0a0b.0c0d.0a0b.0c0d
          name: Test
          domain: fluentnetworks.com.au
          fport: 15
          interface: 1
          Properties:
  • Create a new Azure interface.
floranet> interface add azure name="Azure IoT Hub" protocol=https iothost=test-azure022.azure-devices.net keyname=iothubowner keyvalue='oCk9sf4lCgqCQ1nMMk22HYDU6vVc5wgipQfXK9u7STc8=' pollinterval=25
floranet> interface show all
ID  Name                    Type           
  1 Test Interface          Reflector     
  2 Azure IoT Hub           Azure HTTPS 
  • Show the new interface details.
floranet> interface show 2
          name: Azure IoT Hub
          protocol: HTTPS
          key name: iothubowner
          key value: oCk9sf4lCgqCQ1nMMk22HYDU6vVc5wgipQfXK9u7STc8=
          Polling interval: 25 minutes
          status: Started
  • Assign this interface to our application.
floranet> app set 0a0b.0c0d.0a0b.0c0d interface=2
floranet> app show 0a0b.0c0d.0a0b.0c0d
Application EUI: 0a0b.0c0d.0a0b.0c0d
          name: Test
          domain: fluentnetworks.com.au
          fport: 15
          interface: 2
          Properties:

Application Properties

Application properties are an optional feature that assists devices in efficiently sending data to upstream application servers. Application properties use LoRaWAN ports to mark message data as a particular data type, enabling the data to be translated to an upstream application server data format. This optimises LoRaWAN constrained message payloads.

An example serves to illustrate the use of application properties. Assume we have devices that are required to transmit a temperature measurement to an Azure IoT Hub application. An example Azure device-to-cloud JSON encoded message payload message might look like:

{ ""deviceID": "azuredevice01", Temperature": 42.4620 }

Assuming the device is operating in the US915 LoRaWAN band at DR0, the maximum LoRaWAN MAC message payload length is 11 bytes, and the message above cannot be accommodated via a single uplink message.

An application property has the following parameters.

Parameter Values Description Comment
port 1 to 223 LoRaWAN port
name Alphanumeric string Property name
type Alphanumeric string Data type Allowable data types are defined by Python's struct standard library module.

In the example above, we can define an application property using port 21 with a name of Temperature and data type float. In this case, the device sends a 4-byte binary value on LoRaWAN port 21, and Floranet reformats the message to be sent upstream.

To add, modify and delete application properties, use the property command, with the application's appeui parameter as the first argument.

Examples

  • Add a new float data type property called Temperature using port 21.
floranet> property add 0a0b.0c0d.0a0b.0c0d name=Temperature type=float port=21
  • Add a new integer data type property called Serial using port 22.
floranet> property add 0a0b.0c0d.0a0b.0c0d name=Serial type=int port=22
  • Show the application and verify the properties are added.
floranet> app show 0a0b.0c0d.0a0b.0c0d
Application EUI: 0a0b.0c0d.0a0b.0c0d
          name: Test
          domain: fluentnetworks.com.au
          fport: 15
          interface: 2
          Properties:
            21  Temperature:float
            22  Serial:int

Gateways

As outlined in the LoRaWAN Overview, gateways provide the interface between a LoRa wireless network and the IP internetwork. Each gateway sends messages from devices to the network server(s), and delivers messages sent from a network server to connected devices.

By policy, Floranet will discard messages from a gateway unless it has been explicitly registered in the server's configuration. If a gateway is sending messages to Floranet, but has not been added, you will see log messages similar to the following:

2017-10-15T09:45:27+1000 [Floranet#error] Gateway message from unknown gateway 192.168.1.125

To add, modify and delete application properties, use the gateway command, with the gateway's IP address as the first argument.

Gateway parameters are listed in the table below.

Parameter Values Description Comment
address IP address The IP address of the gateway. This must be a unique, fixed address and able to receive UDP messages from the server on the required ports.
name Alphanumeric string Name to identify the gateway.
eui 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Gateway identifier.
power Integer 0 to 30 Power in dBm used for downstream messages transmitted by this gateway.
enabled yes or no Enables or disables the gateway.

Examples

  • Add a gateway with address 192.168.1.125 and EUI 0080.0000.b1af.0000.
floranet> gateway add 192.168.1.125 eui=0080.0000.b1af.0000 power=26 enabled=yes name="test"
  • Change the gateway's power output to 20 dBm.
floranet> gateway modify 192.168.1.125 power=20
  • Remove the gateway.
floranet> gateway delete 192.168.1.125

Devices

Devices are IoT endpoints that send and receive LoRa messages over a LoRaWAN network to a network server. Some messages are processed internally by the network server (e.g. authentication messages), and some are forwarded upstream to an application server.

By policy, Floranet will ignore messages from a device unless it has been explicitly registered with the server's configuration, and is enabled. If a device is sending messages to Floranet, but has not been added, you will see log messages similar to the following:

2017-10-15T10:36:45+1000 [Floranet#info] Message from unregistered device 0f0e.0e0d.0001.0203

To add, modify and delete application properties, use the device command, with the device's deveui parameter as the first argument.

Device parameters are listed in the table below. Note that the required parameters are different, depending on whether the device is activated by personalisation (ABP) or over the air (OTAA). ABP devices require additional devaddr, nwkskey and appskey parameters.

Parameter Values Description Comment
deveui 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Unique device identifier.
name Alphanumeric string Name to identify the device.
class A or C LoRaWAN device class. Class B is not supported.
appeui 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) The associated application EUI.
otaa yes or no If yes, device is OTAA. If no, device is ABP.
enabled yes or no Enables or disables the device.
devaddr 4 octet hex nnnn.nnnn (n = 0 to f) Network devaddr. Required for ABP devices.
appskey 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Application secret key. Required for ABP devices.
nwkskey 8 octet hex nnnn.nnnn.nnnn.nnnn (n = 0 to f) Network secret key. Required for ABP devices.
appname Alphanumeric string An alternative name that identifies this device to the upstream application server. Optional.
latitude Floating point number Device latitude in degrees (positive for N and E, negative for S and W) Optional
longitude Floating point number Device longitude in degrees (positive for N and E, negative for S and W) Optional

Note that if a device is activated over-the-air (OTAA), the devaddr that is assigned is defined by the server's OTAA address range, as discussed in the System configuration section above. If the device is activated by personalisation, it must be assigned a fixed devaddr, compliant with the server's netid parameter, as well as appskey and nwkskey secret keys.

Examples

In the examples below, the system configuration is:

Parameter Value
Netid 010203
OTAA range 0600.0001 - 0x060f.ffff
Application EUI 0a0b.0c0d.0a0b.0c0d
  • Add a ABP device, Class C. deveui is 0f0e.0e0d.0000.0003, assign devaddr 0600.0002.
floranet> device add 0f0e.0e0d.0000.0003 name=abp_device_01 class=C otaa=no appeui=0a0b.0c0d.0a0b.0c0d devaddr=0600.0002 appskey=85b0.10b6.51c8.34d3.65a2.8622.80c2.7761 nwkskey=9e58.3c0b.4b64.789a.882a.671f.9bc6.220c enabled=yes
Error: Device devaddr 0600.0002 is within configured OTAA address range

Note we have attempted to assign the device's devaddr within the OTAA range. Let's change the address to be outside the range.

floranet> device add 0f0e.0e0d.0000.0003 name=abp_device_01 class=C otaa=no appeui=0a0b.0c0d.0a0b.0c0d devaddr=0610.0002 appskey=85b0.10b6.51c8.34d3.65a2.8622.80c2.7761 nwkskey=9e58.3c0b.4b64.789a.882a.671f.9bc6.220c enabled=yes
floranet> device show 0f0e.0e0d.0000.0003 
Device EUI: 0f0e.0e0d.0000.0003
          device address 0610.0002 nwkID 0x3 enabled
          name: abp_device_01
          application EUI: 0a0b.0c0d.0a0b.0c0d
          activation: Personalization (ABP)
          appname: N/A
          latitude: N/A
          longitude: N/A
          appskey: 85b0.10b6.51c8.34d3.65a2.8622.80c2.7761
          nwkskey: 9e58.3c0b.4b64.789a.882a.671f.9bc6.220c
          data rate: N/A
          average SNR: N/A
  • Set the device's latitude and longitude
floranet> device set 0f0e.0e0d.0000.0003 latitude=-33.856159 longitude=151.215256
floranet> device show 0f0e.0e0d.0000.0003
Device EUI: 0f0e.0e0d.0000.0003
          device address 0610.0002 nwkID 0x3 enabled
          name: abp_device_01
          class: C
          application EUI: 0a0b.0c0d.0a0b.0c0d
          activation: Personalization (ABP)
          appname: N/A
          latitude: -33.8562
          longitude: 151.2153
          appskey: 85b0.10b6.51c8.34d3
          nwkskey: 9e58.3c0b.4b64.789a
          data rate: N/A
          average SNR: N/A
  • Add an OTAA device, Class A. deveui is 0f0e.0e0d.0000.1234, with an appname deviceId001.
floranet> device add 0f0e.0e0d.0000.1234 name=otaa_device_22 class=A otaa=yes appeui=0a0b.0c0d.0a0b.0c0d appname=deviceId001 enabled=yes
floranet> device show 0f0e.0e0d.0000.1234
Device EUI: 0f0e.0e0d.0000.1234
          device address 0000.0000 nwkID 0x0 enabled
          name: otaa_device_22
          class: A
          application EUI: 0a0b.0c0d.0a0b.0c0d
          activation: Over the air (OTAA)
          appname: N/A
          latitude: N/A
          longitude: N/A
          data rate: N/A
          average SNR: N/A

Note that this device's devaddr is currently zero, indicating it has not yet joined the network. Once a OTAA device has joined, it is assigned an address and the data rate and SNR values are shown.

floranet> device show 0f0e.0e0d.0001.0203
Device EUI: 0f0e.0e0d.0001.0203
          device address 0600.0001 nwkID 0x3 enabled
          name: ota_device_1
          class: A
          application EUI: 0a0b.0c0d.0a0b.0c0d
          activation: Over the air (OTAA)
          appname: N/A
          latitude: N/A
          longitude: N/A
          data rate: SF10BW125
          average SNR: 9.17 dBm

When a device configured for OTAA joins, the log message will look similar to that shown below.

2017-10-15T11:48:04+1000 [Floranet#info] Successful Join request from DevEUI 0f0e.0e0d.0001.0203 for AppEUI 0a0b.0c0d.0a0b.0c0d | Assigned address 0600.0001
2017-10-15T11:48:04+1000 [Floranet#info] Sending join response for devaddr 0600.0001

If the device is using ADR, in time the network server will request an adjustment to its data rate, assuming the received SNR allows.

floranet> device show 0f0e.0e0d.0001.0203
Device EUI: 0f0e.0e0d.0001.0203
          device address 0600.0001 nwkID 0x3 enabled
          name: ota_device_1
          application EUI: 0a0b.0c0d.0a0b.0c0d
          activation: Over the air (OTAA)
          appname: N/A
          latitude: N/A
          longitude: N/A
          data rate: SF7BW125
          average SNR: 9.67 dBm
  • Show all devices. Provides a summary of all devices configured on the server.
floranet> device show all
Device         DeviceEUI               DevAddr     Enabled  Act  Average-SNR 
abp_device_01  0f0e.0e0d.0000.0003     0610.0002   Yes      ABP  N/A         
abp_device_2   0f0e.0e0d.0000.0002     0610.0001   Yes      ABP  N/A         
abp_device_1   0f0e.0e0d.0000.0001     0610.0000   Yes      ABP  N/A         
otaa_device_22 0f0e.0e0d.0000.1234     0000.0000   Yes      OTA  N/A         
ota_device_1   0f0e.0e0d.0001.0203     0600.0001   Yes      OTA  9.72 dBm