Bosch IoT Device Management

LoRa adapter

The LoRa protocol (or more precise LoRaWAN: Long Range Wide Area Network) is a wireless protocol well suited for constrained devices. Due to its power saving implementation is fits well for use-cases where battery capacity is a limited resource.

The Bosch IoT Hub supports forwarding of telemetry messages received from a LoRa Network Server Gateway to a business application, Command & control communication is not supported.

Supported LoRa networks

Network provider

Endpoint

HTTP Method

Actility Enterprise

https://lora.bosch-iot-hub.com/actilityEnterprise

POST

Actility Wireless

https://lora.bosch-iot-hub.com/actilityWireless

POST

Kerlink

https://lora.bosch-iot-hub.com/kerlink/dataUp

https://lora.bosch-iot-hub.com/kerlink/rxmessage

POST

The Things Network (TTN)

https://lora.bosch-iot-hub.com/ttn

POST

Objenious

https://lora.bosch-iot-hub.com/objenious

POST

Everynet

https://lora.bosch-iot-hub.com/everynet

POST

Proximus

https://lora.bosch-iot-hub.com/proximus

POST

ChirpStack

https://lora.bosch-iot-hub.com/chirpstack

POST

FireFly

https://lora.bosch-iot-hub.com/firefly

POST

Loriot

https://lora.bosch-iot-hub.com/loriot

POST

Orbiwise

https://lora.bosch-iot-hub.com/orbiwise/*

POST

LoRa application properties

The following list shows the properties which are available for messages received through the LoRa adapter:

Property Name

Description

JMS_AMQP_CONTENT_TYPE

application/json

device_id

The identifier of the device which sent the message.

orig_adapter

The identifier of the LoRa protocol adapter: hono-lora.

orig_address

The relative uri path the device pushed its data to.

orig_lora_provider

The name of the LoRa protocol provider over which an uploaded message has originally been received.

function_port

The LoRa function port used by a device in an uplink message.

meta_data

JSON object containing adapter-specific meta data. The semantics of the meta data can be taken from the particular provider’s documentation.

additional_data

Additional data gathered in the context of an uplink message.

These properties can be mapped in the header mappings of the IoT Things connection.

LoRa payload format

The message body and content-type of invoking HTTP requests are LoRa provider specific and therefore vary based on the chosen endpoint. Each LoRa uplink message can contain an arbitrary payload which will be used as the outgoing AMQP message body. Potential meta information of the LoRa uplink message is put in the AMQP message application properties. The available AMQP application properties vary per LoRa provider.

How to get started using the LoRa adapter

  1. The LoRa adapter is currently only available in the Starter and Standard Plan (see Easy and secure device connectivity for the IoT - Service plans at a glance). Therefore you need to make sure that you have subscribed to a payed service plan. Otherwise you will get a 403 FORBIDDEN error even-though the supplied credentials are correct.

  2. Register a device and credentials for the LoRa Network Server Gateway with the Bosch IoT Hub.

  3. Register sensors with the Bosch IoT Hub. The device-id must correspond with the LoRa end-device identifier DevEUI send by the sensor and the LoRa Network Server Gateway. Keep in mind to include the via property with the device-id of the previously registered LoRa Network Server Gateway. This is necessary to link the authentication. The LoRa Network Server Gateway will then be allowed to send messages on behalf of the sensors. Registering credentials for the sensors is not required - authentication will be performed using the credentials of the LoRa Network Server Gateway.

  4. Next, setup and install the LoRa Network Server Gateway as described by the network provider. For the HTTPS endpoint and the HTTP method to use please refer to the table above. For Basic Auth the credentials of the LoRa Network Server Gateway have to be used. LoRa protocol adapter also supports authentication via client certificates. See Device authentication for more information.


Some LoRa providers don’t allow special characters (e.g. “@") in the fields used for HTTP basic authentication. In such cases the auth credentials can also be passed entirely in the username field as base64 encoded string in the form of auth-id@tenant:password. The password field has to be empty in that case.