Dear Community,
I am currently working on integrating a RAK7289 LoRaWAN gateway with ThingsBoard using MQTT for data transmission. While I have made significant progress, I am encountering an issue where the device does not appear in ThingsBoard despite seemingly correct configurations. I would appreciate any insights or guidance to help me resolve this issue.
Here’s a detailed overview of my setup and the problem:
Current Setup
- ThingsBoard Deployment:
Running ThingsBoard in a Docker container.
The ThingsBoard gateway (tb-gateway) is also containerized and configured to connect to the MQTT broker.
- RAK7289 Gateway:
Successfully connected to the ThingsBoard MQTT broker.
Publishing data to the topic: application/1/device/DEVICE_EUI/rx.
- MQTT Payload Structure:
The payload being sent by the RAK7289 gateway is as follows:
{ "topic": "application/1/device/DEVICE_EUI/rx", "payload": { "applicationID": "1", "applicationName": "app1", "devEUI": "DEVICE_EUI", "deviceName": "example_device", "timestamp": 1741353903, "fCnt": 1, "fPort": 1, "data": "AQ==", "data_encode": "base64", "adr": false, "rxInfo": [ { "gatewayID": "GATEWAY_EUI", "loRaSNR": 7.5, "rssi": -74, "location": { "latitude": 36.89579, "longitude": 10.18586, "altitude": 21 }, "time": "2025-03-07T13:25:03.661349Z" } ], "txInfo": { "frequency": 868100000, "dr": 0 } } }
ThingsBoard Gateway Configuration:
The tb-gateway is configured with the following settings:
version: '3.4' services: tb-gateway: image: thingsboard/tb-gateway container_name: tb-gateway restart: always ports: - "5000:5000" extra_hosts: - "host.docker.internal:host-gateway" environment: - host=MY_IP #not local host - port=1883 - accessToken=MY_ACCESS_TOKEN volumes: - tb-gw-config:/thingsboard_gateway/config - tb-gw-logs:/thingsboard_gateway/logs - tb-gw-extensions:/thingsboard_gateway/extensions volumes: tb-gw-config: name: tb-gw-config tb-gw-logs: name: tb-gw-logs tb-gw-extensions: name: tb-gw-extensions
- Data Mapping in ThingsBoard:
The MQTT connector is configured with the following data mapping:
Topic Filter: application/+/device/+/rx
Payload Type: JSON
Device Name: Extracted from ${payload.deviceName}
Profile Name: Set to default
Attributes and Time Series: Configured to parse the payload fields.
and this is the configuration in request mapping
Despite the above configurations, the device does not appear in ThingsBoard. I have verified the following:
The RAK7289 gateway is successfully publishing data to the MQTT broker.
The tb-gateway container is running without errors.
The MQTT payload structure matches the expected format.
However, the device is not being created or recognized in ThingsBoard. I suspect there might be an issue with the data mapping or a potential bug in ThingsBoard.
when following the tutorial things board how to add gateway I succeeded in adding the device demo and receiving values, but I couldn’t proceed successfully and don’t know where the problem could be.
Any help would be greatly appreciated.