LEAPS Docker system "MQTT/TCP Connection Error"

Hello,

We have purchased a UDK1 kit and successfully got the DL-TDoA demo running with the LEAPS Manager Android app.
As a next step, I went through the LEAPS Docker quick start guide on an Ubuntu machine to get the LEAPS Gateway, Server, MQTT Broker and Center applications running. The containers seem to start and stay running, but I get an “MQTT/TCP Connection Error” in the bottom corner of the Leaps Center web app (Screenshot Attached).

Here is all the relevant information I can think to add:

  • I’m using the LC13 AoA device as the gateway, plugged into the Laptop via USB.
  • Ubuntu’s firewall is disabled.
  • I ran the update_configuration_ip script
  • I ran the leaps_docker_run_all script
  • The LC13 device blinked and beeped twice while starting the containers (proves USB communication with gateway daemon?)
  • If I run mosquitto_sub -p 1883 -d -v -t /# It connects, subscribes and pings successfully, however nothing is ever received on any topic.

Can you provide any information or debugging tips on why this is happening?

Thanks,

Screenshot from 2024-02-13 10-57-43

Hi @PeterB-NS
it seems that some IP address detection/configuration has failed during running the update_configuration_ip script.

Please try following:

  1. Run following command:
    docker ps
    and check if all 4 docker instances are running. You should se there: lc_center, ls_server lg_gateway and lm_mosquitto

  2. Please check following configuration files:
    leaps_gateway_hub\data\leaps-gateway.conf
    Find leaps-server-host = localhost and check if the localhost is replaced with your local IP address. This needs to point to the IP address where is running the leaps_server.
    leaps_server_hub\data\leaps-server.conf
    Find mqtt_host = localhost and check if the localhost is replaced with your local IP address. This needs to point to the IP address where is running the MQTT broker.

Cheers
JK

Thanks @JK-LEAPS ,

I have verified that all 4 docker instances are still running and that my local IP address has been populated in the two scripts.

I figured out my issue connecting to the MQTT broker. The configuration in Leaps Center was using localhost as the “Host” address (In Network->Edit dialog box). After changing the host address to my machine’s 10.100.64.xx address, Center connected to the broker. It was my misunderstanding of docker’s networking that led me to believe my local IP and localhost were equivalent, but it appears the actual address must be used in Center’s network configuration dialog.

So I’m one step closer to getting the Docker system working.

Leaps center now connects to the mqtt broker, but there are no Anchors or Tag(s) present in the Node list (And nothing in the grid). If I switch over to Leaps Manager I can verify that the locationing is still working. (That was just to test, I don’t expect the Android Manager app and the docker containers to work simultaneously).

Below is the docker status and the individual logs from docker. Hopefully they help.

Also, is the “gateway” node one of the Anchor nodes, or is it an additional node that sniffs the UWB traffic? (I’ve tried both ways).

Is there a way to test the gateway container? I don’t get logs even though I set log-level=4 in leaps-gateway.conf

ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS         PORTS                                                                                      NAMES
dd8406c3c363   lluwb/lm_mosquitto:latest   "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:15675->15675/tcp, :::15675->15675/tcp   lm_mosquitto
236f366f0d7f   lluwb/lg_gateway:latest     "/app/leaps-gateway …"   5 minutes ago   Up 5 minutes                                                                                              lg_gateway
1650487c6f46   lluwb/ls_server:latest      "/app/leaps-server -…"   5 minutes ago   Up 5 minutes   0.0.0.0:7777->7777/tcp, 0.0.0.0:7777->7777/udp, :::7777->7777/tcp, :::7777->7777/udp       ls_server
f1ce65cbe0cb   lluwb/lc_center:latest      "sh -c 'cd /app &&  …"   5 minutes ago   Up 5 minutes   80/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp                                              lc_center
ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ docker logs lc_center 
   _     _____    _    ____  ____     ____           _             __        __   _
  | |   | ____|  / \  |  _ \/ ___|   / ___|___ _ __ | |_ ___ _ __  \ \      / /__| |__
  | |   |  _|   / _ \ | |_) \___ \  | |   / _ \ '_ \| __/ _ \ '__|  \ \ /\ / / _ \ '_ \
  | |___| |___ / ___ \|  __/ ___) | | |__|  __/ | | | ||  __/ |      \ V  V /  __/ |_) |
  |_____|_____/_/   \_\_|   |____/   \____\___|_| |_|\__\___|_|       \_/\_/ \___|_.__/
 
  |  Version: 3.0.0.A7  | Build time: 2023-08-28T01:56:34.553Z  |

ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ docker logs lm_mosquitto 
1708456227: mosquitto version 1.5.11 starting
1708456227: Config loaded from /mosquitto/config/mosquitto.conf.
1708456227: Opening ipv4 listen socket on port 1884.
1708456227: Opening ipv6 listen socket on port 1884.
1708456227: Opening websockets listen socket on port 15675.
1708456227: Opening ipv4 listen socket on port 1883.
1708456227: Opening ipv6 listen socket on port 1883.
1708456227: New connection from 172.17.0.1 on port 1883.
1708456227: New client connected from 172.17.0.1 as 1 (c0, k5, u'leapsuser').
1708456227: New connection from 172.17.0.1 on port 1883.
1708456227: New client connected from 172.17.0.1 as f754022f-1abe-481e-8884-a3c4aecbc0fd (c1, k60).
1708456280: New connection from 172.17.0.1 on port 1883.
1708456280: New client connected from 172.17.0.1 as LEAPSCenter@paho15142386158315 (c0, k60, u'leapsuser').
ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ docker logs ls_server 
2024-02-20 19:10:26.286 NONE  [1] [leaps::core::run@368] 
 _                _ __           ___                          
| |    ___  __ _ | '_ \ ___     / __| ___  _ _ __ __ ___  _ _ 
| |__ / -_)/ _` || .__/(_-/     \__ \/ -_)| '_|\ V // -_)| '_|
|____|\___|\__/_||_|   /__/     |___/\___||_|   \_/ \___||_|

LEAPS Server version: 2.2.2 | Build time: Sep 17 2023 | Published by: LEAPS s.r.o.

2024-02-20 19:10:26.286 WARN  [1] [leaps::core::run@371] TCP connection to the gateways is not secure, SSL/TLS is not used!
2024-02-20 19:10:26.286 WARN  [1] [leaps::mq::client::configure@132] MQTT client 1 connection to the broker is not secure, SSL/TLS is not used!
2024-02-20 19:10:26.297 INFO  [8] [leaps::slot::start@329] MQTT client 1 - Connection refused
2024-02-20 19:10:27.350 INFO  [8] [leaps::slot::mq_events::on_connect@217] MQTT client 1 - Connection Accepted.
2024-02-20 19:10:28.682 INFO  [11] [leaps::stream::run@184] incoming connection from 172.17.0.1
2024-02-20 19:10:28.682 INFO  [11] [leaps::stream::run@166] connected to 172.17.0.1
ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ docker logs lg_gateway 
ns@ns-Precision-M4700:~/Downloads/LEAPS-DOCKER-LINUX-v0.15.0$ 


Thanks,
-Peter

Hi @PeterB-NS
sorry for the late reply. A Setting up Docker can be a bit tricky one. Each container have its own IP address so whey you use the local host will point to the docker container IP address.

I have two questions:

  • In your setup which demo do you use? The web interface is working only with the TWR one.
  • Did you used the Demo selector guide in the mobile app?

Regarding your question anchor/gateway question. In LEAPS RTLS the gateway is also anchor at the same time - they run concurrently.

regarding the gateway log) You need to uncomment the log-file option and redirect it to the data directory. Example:
log-file = /app/data/leaps-gateway.log

Regarding the logs) Center and server seems to be fine. In server you can see the incoming connection from 172.17.0.1 - that’s connection from the gateway.

The problem seem to be between gateway and LC13/14 . Just to double check - on the LC13/14 node you need to use the upper port - the one closer to the antenna.

Cheers
JK

Hi JK,

I was running the DL-TDoA demo and trying to use the web interface. I use the mobile app to select the demo, and autorange 4 anchors. Once I see the tag moving around in the map, I closed the mobile app and bring up the docker system.

We had an internal discussion today and decided that while TDoA is the more “correct” option (more scalability, lower power, etc.), we are likely OK with using TWR for this initial pilot test implementation.

So I configured the TWR demo with the mobile app, then closed the app, plugged in Anchor 1’s top USB port to my laptop and started the 4 docker containers.
When I bring up the web interface, MQTT connects, and I get the green check mark in the bottom left corner. However, I get no nodes in the Anchor and Tag list.

I agree with you, the disconnect seems to be between the gateway and LC13/14. I’ve been using the top USB port. (I tested both but the node only beeps when I start the gateway app if it’s plugged into the top port).

I ran usbtop, which is a linux tool I found to measure the bandwidth of each USB device on the bus. The Anchor was using up about 0.70 kbps, so it looks like the gateway and LC14 are communicating. This is also supported by the 2 beeps if I restart the gateway container.

I have more questions about the anchors and gateway, to ensure I’m doing things correctly.

  • Does the gateway anchor have to be the Initiator anchor? Can the initiator also be the gateway?

  • Typically, I set the anchor located at 0,0,0 as the initiator anchor, and power it up first, however, anchor 3 seems to keep taking over as initiator. Does this system care which is the initiator?

We don’t necessarily need Leaps Center to work. If we can get an MQTT client to receive the location topics of our tags, we would be perfectly content. I can connect with a client called MQTTX. I will post the topics I receive in the next reply to this thread.

Thanks,

-Peter

Here are the messages I receive when I connect. Split into 2 parts due to 32000 character maximum.

[
  {
    "id": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
    "clientId": "mqttx_1655b2b7",
    "name": "LEAPS_UWB",
    "clean": true,
    "protocol": "mqtt",
    "host": "127.0.0.1",
    "port": 1883,
    "keepalive": 60,
    "connectTimeout": 10,
    "reconnect": true,
    "reconnectPeriod": 4000,
    "username": "leapsuser",
    "password": "leapspass",
    "path": "/mqtt",
    "certType": "",
    "ssl": false,
    "mqttVersion": "3.1.1",
    "unreadMessageCount": 0,
    "clientIdWithTime": false,
    "parentId": null,
    "orderId": null,
    "rejectUnauthorized": true,
    "ALPNProtocols": "",
    "ca": "",
    "cert": "",
    "key": "",
    "isCollection": false,
    "createAt": "2024-02-19T21:50:03.585Z",
    "updateAt": "2024-02-22T22:21:18.812Z",
    "sessionExpiryInterval": 0,
    "receiveMaximum": null,
    "maximumPacketSize": null,
    "topicAliasMaximum": null,
    "requestResponseInformation": null,
    "requestProblemInformation": null,
    "userProperties": null,
    "authenticationMethod": null,
    "authenticationData": null,
    "pushPropsPayloadFormatIndicator": null,
    "pushPropsMessageExpiryInterval": null,
    "pushPropsTopicAlias": null,
    "pushPropsResponseTopic": null,
    "pushPropsCorrelationData": null,
    "pushPropsUserProperties": null,
    "pushPropsSubscriptionIdentifier": null,
    "pushPropsContentType": null,
    "messages": [
      {
        "id": "message_fb6eb4df-3120-438b-84e3-bf68b4ceecb9",
        "createAt": "2024-02-22 17:18:05:665",
        "out": false,
        "payload": "{\"state\":\"CONNECTED\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/server/status",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_fb6eb4df-3120-438b-84e3-bf68b4ceecb9",
          "createAt": "2024-02-22 17:18:05:665",
          "out": false,
          "payload": "{\"state\":\"CONNECTED\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/server/status",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_11a0a1d0-d476-4cfa-ab47-174c27d606e1",
        "createAt": "2024-02-22 17:18:05:665",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":true,\"uwb\":\"CONNECTED\",\"origins\":[{\"id\":\"39536\",\"hop_level\":0}],\"profile\":{\"sfn_range\":1440,\"microseconds_per_sf\":100000,\"microseconds_per_slot\":500,\"update_rate_default\":30,\"node_signup_optional\":true,\"latency\":2,\"max_buffer_size_downlink\":1024},\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/gateway/uplink/status/deca687912909a70",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_11a0a1d0-d476-4cfa-ab47-174c27d606e1",
          "createAt": "2024-02-22 17:18:05:665",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":true,\"uwb\":\"CONNECTED\",\"origins\":[{\"id\":\"39536\",\"hop_level\":0}],\"profile\":{\"sfn_range\":1440,\"microseconds_per_sf\":100000,\"microseconds_per_slot\":500,\"update_rate_default\":30,\"node_signup_optional\":true,\"latency\":2,\"max_buffer_size_downlink\":1024},\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/gateway/uplink/status/deca687912909a70",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_1863e541-9c16-4222-a071-6026d9c42d6b",
        "createAt": "2024-02-22 17:18:05:666",
        "out": false,
        "payload": "{\"label\":\"ID17A8_A2\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":2.865,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\",\"bridge\":false},\"inet\":{\"ip\":[{\"addr\":\"0.0.0.0\",\"mask\":\"0.0.0.0\",\"gateway\":\"0.0.0.0\"}],\"iface\":\"ETHERNET\",\"tls\":\"OFF\",\"dhcp\":true,\"mac_filter\":false,\"server\":{\"host\":\"192.168.1.46\",\"port\":7777}},\"mac\":[{\"addr\":\"68:79:12:90:9a:70\",\"type\":\"DEFAULT\",\"iface\":\"UWB\"},{\"addr\":\"68:79:12:90:9a:71\",\"type\":\"DEFAULT\",\"iface\":\"BLE\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"ETHERNET\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"WIFI\"}],\"timestamp\":\"1708639375476667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/gateway/uplink/config/deca687912909a70",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_1863e541-9c16-4222-a071-6026d9c42d6b",
          "createAt": "2024-02-22 17:18:05:666",
          "out": false,
          "payload": "{\"label\":\"ID17A8_A2\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":2.865,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\",\"bridge\":false},\"inet\":{\"ip\":[{\"addr\":\"0.0.0.0\",\"mask\":\"0.0.0.0\",\"gateway\":\"0.0.0.0\"}],\"iface\":\"ETHERNET\",\"tls\":\"OFF\",\"dhcp\":true,\"mac_filter\":false,\"server\":{\"host\":\"192.168.1.46\",\"port\":7777}},\"mac\":[{\"addr\":\"68:79:12:90:9a:70\",\"type\":\"DEFAULT\",\"iface\":\"UWB\"},{\"addr\":\"68:79:12:90:9a:71\",\"type\":\"DEFAULT\",\"iface\":\"BLE\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"ETHERNET\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"WIFI\"}],\"timestamp\":\"1708639375476667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/gateway/uplink/config/deca687912909a70",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_063895ec-4587-45ad-a966-1142ee200a19",
        "createAt": "2024-02-22 17:18:05:667",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":false,\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a6c",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_063895ec-4587-45ad-a966-1142ee200a19",
          "createAt": "2024-02-22 17:18:05:667",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":false,\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a6c",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_3e1dcd35-115e-43bc-92ea-78dc6db1dc1f",
        "createAt": "2024-02-22 17:18:05:668",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":true,\"timestamp\":\"1708639376207412\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a6e",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_3e1dcd35-115e-43bc-92ea-78dc6db1dc1f",
          "createAt": "2024-02-22 17:18:05:668",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":true,\"timestamp\":\"1708639376207412\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a6e",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_63dbf55b-1371-407d-aacd-3c9f795e8b85",
        "createAt": "2024-02-22 17:18:05:669",
        "out": false,
        "payload": "{\"present\":false,\"downlink\":false,\"timestamp\":\"1708640139107319\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a66",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_63dbf55b-1371-407d-aacd-3c9f795e8b85",
          "createAt": "2024-02-22 17:18:05:669",
          "out": false,
          "payload": "{\"present\":false,\"downlink\":false,\"timestamp\":\"1708640139107319\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a66",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_6af03335-08a1-4277-891e-2f188f300584",
        "createAt": "2024-02-22 17:18:05:669",
        "out": false,
        "payload": "{\"label\":\"ID0E0D_Tag\\u0001\\u0001\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"tag\":{\"location_engine\":true,\"low_power\":false,\"stationary_detection\":false,\"update_rate_nominal\":1,\"update_rate_stationary\":1},\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a6c",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_6af03335-08a1-4277-891e-2f188f300584",
          "createAt": "2024-02-22 17:18:05:669",
          "out": false,
          "payload": "{\"label\":\"ID0E0D_Tag\\u0001\\u0001\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"tag\":{\"location_engine\":true,\"low_power\":false,\"stationary_detection\":false,\"update_rate_nominal\":1,\"update_rate_stationary\":1},\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a6c",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_b6458600-630a-409d-847e-dcefced2c988",
        "createAt": "2024-02-22 17:18:05:670",
        "out": false,
        "payload": "{\"label\":\"ID4899_AI\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_OFF\"},\"timestamp\":\"1708639376207412\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a6e",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_b6458600-630a-409d-847e-dcefced2c988",
          "createAt": "2024-02-22 17:18:05:670",
          "out": false,
          "payload": "{\"label\":\"ID4899_AI\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_OFF\"},\"timestamp\":\"1708639376207412\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a6e",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_8087eeac-1d12-49c5-8e8b-e7287e622e03",
        "createAt": "2024-02-22 17:18:05:671",
        "out": false,
        "payload": "{\"label\":\"ID9994_A4\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0.533,\"y\":1.968,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\"},\"timestamp\":\"1708640123107392\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a66",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_8087eeac-1d12-49c5-8e8b-e7287e622e03",
          "createAt": "2024-02-22 17:18:05:671",
          "out": false,
          "payload": "{\"label\":\"ID9994_A4\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0.533,\"y\":1.968,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\"},\"timestamp\":\"1708640123107392\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a66",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },

Part 2 of 2:

      {
        "id": "message_01f53475-8586-441b-b8d9-2be3d70e1bac",
        "createAt": "2024-02-22 17:21:19:616",
        "out": false,
        "payload": "{\"state\":\"CONNECTED\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/server/status",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_01f53475-8586-441b-b8d9-2be3d70e1bac",
          "createAt": "2024-02-22 17:21:19:616",
          "out": false,
          "payload": "{\"state\":\"CONNECTED\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/server/status",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_9b8d8001-aeb1-439b-90ea-68587755d31e",
        "createAt": "2024-02-22 17:21:19:616",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":true,\"uwb\":\"CONNECTED\",\"origins\":[{\"id\":\"39536\",\"hop_level\":0}],\"profile\":{\"sfn_range\":1440,\"microseconds_per_sf\":100000,\"microseconds_per_slot\":500,\"update_rate_default\":30,\"node_signup_optional\":true,\"latency\":2,\"max_buffer_size_downlink\":1024},\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/gateway/uplink/status/deca687912909a70",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_9b8d8001-aeb1-439b-90ea-68587755d31e",
          "createAt": "2024-02-22 17:21:19:616",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":true,\"uwb\":\"CONNECTED\",\"origins\":[{\"id\":\"39536\",\"hop_level\":0}],\"profile\":{\"sfn_range\":1440,\"microseconds_per_sf\":100000,\"microseconds_per_slot\":500,\"update_rate_default\":30,\"node_signup_optional\":true,\"latency\":2,\"max_buffer_size_downlink\":1024},\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/gateway/uplink/status/deca687912909a70",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_a7cfb42b-b013-4262-bcc0-5988ad52b894",
        "createAt": "2024-02-22 17:21:19:617",
        "out": false,
        "payload": "{\"label\":\"ID17A8_A2\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":2.865,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\",\"bridge\":false},\"inet\":{\"ip\":[{\"addr\":\"0.0.0.0\",\"mask\":\"0.0.0.0\",\"gateway\":\"0.0.0.0\"}],\"iface\":\"ETHERNET\",\"tls\":\"OFF\",\"dhcp\":true,\"mac_filter\":false,\"server\":{\"host\":\"192.168.1.46\",\"port\":7777}},\"mac\":[{\"addr\":\"68:79:12:90:9a:70\",\"type\":\"DEFAULT\",\"iface\":\"UWB\"},{\"addr\":\"68:79:12:90:9a:71\",\"type\":\"DEFAULT\",\"iface\":\"BLE\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"ETHERNET\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"WIFI\"}],\"timestamp\":\"1708639375476667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/gateway/uplink/config/deca687912909a70",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_a7cfb42b-b013-4262-bcc0-5988ad52b894",
          "createAt": "2024-02-22 17:21:19:617",
          "out": false,
          "payload": "{\"label\":\"ID17A8_A2\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":2.865,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\",\"bridge\":false},\"inet\":{\"ip\":[{\"addr\":\"0.0.0.0\",\"mask\":\"0.0.0.0\",\"gateway\":\"0.0.0.0\"}],\"iface\":\"ETHERNET\",\"tls\":\"OFF\",\"dhcp\":true,\"mac_filter\":false,\"server\":{\"host\":\"192.168.1.46\",\"port\":7777}},\"mac\":[{\"addr\":\"68:79:12:90:9a:70\",\"type\":\"DEFAULT\",\"iface\":\"UWB\"},{\"addr\":\"68:79:12:90:9a:71\",\"type\":\"DEFAULT\",\"iface\":\"BLE\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"ETHERNET\"},{\"addr\":\"00:00:00:00:00:00\",\"type\":\"EMPTY\",\"iface\":\"WIFI\"}],\"timestamp\":\"1708639375476667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/gateway/uplink/config/deca687912909a70",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_26363350-932e-4f2a-807e-7567165c74c4",
        "createAt": "2024-02-22 17:21:19:619",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":false,\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a6c",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_26363350-932e-4f2a-807e-7567165c74c4",
          "createAt": "2024-02-22 17:21:19:619",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":false,\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a6c",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_ff9323f5-d7f4-417d-9604-292e12f1077f",
        "createAt": "2024-02-22 17:21:19:620",
        "out": false,
        "payload": "{\"present\":true,\"downlink\":true,\"timestamp\":\"1708639376207412\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a6e",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_ff9323f5-d7f4-417d-9604-292e12f1077f",
          "createAt": "2024-02-22 17:21:19:620",
          "out": false,
          "payload": "{\"present\":true,\"downlink\":true,\"timestamp\":\"1708639376207412\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a6e",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_6130a9ee-232a-443b-b257-8fd0497c0930",
        "createAt": "2024-02-22 17:21:19:620",
        "out": false,
        "payload": "{\"present\":false,\"downlink\":false,\"timestamp\":\"1708640139107319\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/status/9a66",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_6130a9ee-232a-443b-b257-8fd0497c0930",
          "createAt": "2024-02-22 17:21:19:620",
          "out": false,
          "payload": "{\"present\":false,\"downlink\":false,\"timestamp\":\"1708640139107319\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/status/9a66",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_baffa7d9-3ac2-400a-b24c-87f1e0ebcdff",
        "createAt": "2024-02-22 17:21:19:621",
        "out": false,
        "payload": "{\"label\":\"ID0E0D_Tag\\u0001\\u0001\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"tag\":{\"location_engine\":true,\"low_power\":false,\"stationary_detection\":false,\"update_rate_nominal\":1,\"update_rate_stationary\":1},\"timestamp\":\"1708639375376667\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a6c",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_baffa7d9-3ac2-400a-b24c-87f1e0ebcdff",
          "createAt": "2024-02-22 17:21:19:621",
          "out": false,
          "payload": "{\"label\":\"ID0E0D_Tag\\u0001\\u0001\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"tag\":{\"location_engine\":true,\"low_power\":false,\"stationary_detection\":false,\"update_rate_nominal\":1,\"update_rate_stationary\":1},\"timestamp\":\"1708639375376667\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a6c",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_6389e934-17d5-4440-9311-be558a89fbf9",
        "createAt": "2024-02-22 17:21:19:622",
        "out": false,
        "payload": "{\"label\":\"ID4899_AI\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_OFF\"},\"timestamp\":\"1708639376207412\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a6e",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_6389e934-17d5-4440-9311-be558a89fbf9",
          "createAt": "2024-02-22 17:21:19:622",
          "out": false,
          "payload": "{\"label\":\"ID4899_AI\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0,\"y\":0,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_OFF\"},\"timestamp\":\"1708639376207412\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a6e",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      },
      {
        "id": "message_9f33a1a9-f894-4bdc-9b83-8db3af0f42ff",
        "createAt": "2024-02-22 17:21:19:622",
        "out": false,
        "payload": "{\"label\":\"ID9994_A4\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0.533,\"y\":1.968,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\"},\"timestamp\":\"1708640123107392\"}",
        "qos": 0,
        "retain": true,
        "topic": "leaps/1234/node/uplink/config/9a66",
        "meta": "{\"msgType\":\"Plaintext\"}",
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "topicAlias": null,
        "responseTopic": null,
        "correlationData": null,
        "userProperties": null,
        "subscriptionIdentifier": null,
        "contentType": null,
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62",
        "properties": {
          "id": "message_9f33a1a9-f894-4bdc-9b83-8db3af0f42ff",
          "createAt": "2024-02-22 17:21:19:622",
          "out": false,
          "payload": "{\"label\":\"ID9994_A4\",\"uwb_mode\":\"UWB_MODE_ACTIVE\",\"ble\":true,\"leds\":true,\"fw_update\":true,\"anchor\":{\"initiator\":false,\"location\":{\"x\":0.533,\"y\":1.968,\"z\":0,\"quality\":0},\"routing\":\"ROUTING_ON\"},\"timestamp\":\"1708640123107392\"}",
          "qos": 0,
          "retain": true,
          "topic": "leaps/1234/node/uplink/config/9a66",
          "meta": "{\"msgType\":\"Plaintext\"}",
          "payloadFormatIndicator": null,
          "messageExpiryInterval": null,
          "topicAlias": null,
          "responseTopic": null,
          "correlationData": null,
          "subscriptionIdentifier": null,
          "contentType": null,
          "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
        }
      }
    ],
    "subscriptions": [
      {
        "id": "scription_9c84c597-8a27-4391-9af0-ad38415aa5ee",
        "topic": "leaps/#",
        "qos": 0,
        "disabled": false,
        "alias": "",
        "retain": false,
        "nl": false,
        "rap": false,
        "rh": 0,
        "subscriptionIdentifier": null,
        "userProperties": null,
        "color": "#24B2BA",
        "createAt": "2024-02-19T21:48:38.249Z",
        "connectionId": "8c0a3e69-0e2c-4360-8691-ca30f9ac4b62"
      }
    ],
    "will": {
      "id": "1a8524a1-d8ec-4c58-8a3d-476ced10944d",
      "lastWillTopic": "",
      "lastWillPayload": "",
      "lastWillQos": 0,
      "lastWillRetain": false,
      "willDelayInterval": null,
      "payloadFormatIndicator": null,
      "messageExpiryInterval": null,
      "contentType": "",
      "responseTopic": "",
      "correlationData": null,
      "userProperties": null,
      "properties": {
        "willDelayInterval": null,
        "payloadFormatIndicator": null,
        "messageExpiryInterval": null,
        "contentType": "",
        "responseTopic": "",
        "correlationData": null,
        "userProperties": null
      }
    },

  }
]

Hi @PeterB-NS
so once you see MQTT topic it means that the Node - LEAPS Gateway - LEAPS Server - MQTT Broker is working OK.

Could you send me the print screen from LEAPS Center - Network configuration. It should looks like this:

Cheers
JK

Hi @JK-LEAPS,

Thank you, I had a bit of success today.

Here was my current network config screen. Note :that “Add network Id to topic prefix” was not checked.

After checking that checkbox the 4 anchors and 2 nodes appeared in the Infrastructure/Tags list.
The 4 Anchors also appeared in the map section, but the tags did not.
Any idea what’s going on there?

Thanks,

-Peter

Hi @PeterB-NS
I want to doublecheck that you are using TWR demo. In the TWR scheme the position is reported to the Leaps server as the communication between TN and AN/BN is done booth ways.

In DL-TDoA scheme (or Reverse TDoA), Anchors are just sending blinks which are received by the TN and TN calculate its position. But there is no communication from TN to AN/GW so there is no way how to observe TN positions in MQTT / LEAPS center.
LEAPS manager can observe TN position because is uses Bluetooth connection to get the information.

Cheers
JK

Hi @JK-LEAPS,

Sorry about the delayed response.

Yes, since you notified me that the web interface was only working with TWR, I’ve been using the TWR demo. Let me describe my process in case I am making an error.

I use the Leaps Manager app to autorange the Anchors. I then verify that I can see the Tag moving around in the map. Then I shutdown the Manager app, and bring up the docker system. Is this incorrect? Do I need to reboot the devices after they have been talking to the Manager app over BLE?

Since it’s been a while, here is my current situation:
In the web interface, there are 2 sections. The main grid/map, and the box on the right that shows the Anchors under “Infrastructure” and Tags under “Tags”. ( I’ll call this box on the right hand side the Node list. )

The Anchors show up both in the map and the node list, but only the anchors show up in the map. Also, in the node list, the Tag’s position is always 0,0.

Also, for future reference, I’ve been subscribing to the wildcard MQTT topic “/#”. Can you provide a list of topics available with the TWR demo?

Thanks,

-Peter

Hi @PeterB-NS
when you subscribe to the MQTT wildcard do you see location topics? I believe that here is some basic misconfiguration we just need to find out which one. Can you check on your LEAPS Manager the TN configuration - the measurement mode should be set to 0 (TWR).

Regarding the LEAPS Manager) You can run it at the same as the bridges / leaps server and LEAPS Center. LEAPS Manager uses Bluetooth for configuration / system observing. With the DL-TDoA you can observe TN positions on LEAPS Manager is connected via Bluetooth to the node.

Regarding the MQTT please see this document:
https://docs.leapslabs.com/leaps-rtls/integration-guide/leaps-api/mqtt-api-new/

Cheers
JK

Hi @JK-LEAPS,

No, when I subscribe to the MQTT wildcard I do not see any location topics. The topics I do see are:
leaps/server/status
leaps/1234/gateway/uplink/status/
leaps/1234/gateway/uplink/config/
leaps/1234/node/uplink/status/
leaps/1234/node/uplink/config/

Thanks,

-Peter

Hi @PeterB-NS
is it still not working? If so then I believe that there is something wrong in your docker setup. Maybe for beginning you should try the VMware or RPI image - it contains everything preinstalled. Please see LEAPS VMWare — LEAPS or LEAPS Raspberry Pi — LEAPS

The docker installation is for more advanced users.

Cheers
JK