Опубликовано сообщение MQTT, для нового устройства, не зарегистрированного в шлюзе TB, ошибки в логах

Настройка Windows 10:

  1. Сервер Thingsboard работает как локальная служба в Windows

    Параметры mqtt для Thingsboard.yml

     MQTT server parameters
        mqtt:
          bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}"
          bind_port: "${MQTT_BIND_PORT:1883}"
          adaptor: "${MQTT_ADAPTOR_NAME:JsonMqttAdaptor}"
          timeout: "${MQTT_TIMEOUT:10000}"
    
  2. Служба шлюза Thingsboard работает как локальная служба в Windows

> tb-gateway.yml mqtt parameters
>     mqtt:
>       enabled: true
>       configuration: mqtt-config.json

файл конфигурации mqtt установлен по умолчанию, ниже.

mqtt-config.json mqtt parameters
 "brokers": [
    {
      "host": "localhost",
      "port": 1883,
      "ssl": false,
      "retryInterval": 3000,
      "credentials": {
        "type": "anonymous"
      },

Это единственные две службы, работающие на моем ноутбуке, я опубликовал сообщение mqtt следующим образом, согласно документам:

mosquitto_pub -h localhost -p 1883 -u "XXXXXXXX" -t "sensors" -m '{"serialNumber":"TB-GW-SN-001","model":"TB-GW-T1000","temperature":35.2}'

Я вижу ошибки в обоих журналах.

thingsboard.log

2018-01-10 20:14:56,174 [nioEventLoopGroup-6-11] INFO  o.t.s.t.mqtt.MqttTransportHandler - [mqtt815] Processing connect msg for client: efd91958-ba8f-480a-9a56-ad9d5588c8c7!
2018-01-10 20:14:56,177 [nioEventLoopGroup-6-12] INFO  o.t.s.t.mqtt.MqttTransportHandler - [127.0.0.1:51192] Invalid message received
2018-01-10 20:14:59,183 [nioEventLoopGroup-6-1] INFO  o.t.s.t.mqtt.MqttTransportHandler - [mqtt817] Processing connect msg for client: efd91958-ba8f-480a-9a56-ad9d5588c8c7!
2018-01-10 20:14:59,188 [nioEventLoopGroup-6-2] INFO  o.t.s.t.mqtt.MqttTransportHandler - [127.0.0.1:51194] Invalid message received
2018-01-10 20:15:02,193 [nioEventLoopGroup-6-3] INFO  o.t.s.t.mqtt.MqttTransportHandler - [mqtt819] Processing connect msg for client: efd91958-ba8f-480a-9a56-ad9d5588c8c7!
2018-01-10 20:15:02,197 [nioEventLoopGroup-6-4] INFO  o.t.s.t.mqtt.MqttTransportHandler - [127.0.0.1:51196] Invalid message received

ошибка в шлюзе Thingsboard странная, скорее.

tb-gateway.log

2018-01-10 20:14:59,191 [main] WARN  o.t.g.e.m.client.MqttBrokerMonitor - [localhost:1883] MQTT broker connection failed!
org.eclipse.paho.client.mqttv3.MqttException: Connection lost
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:164)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: null
    at java.io.DataInputStream.readByte(Unknown Source)
    at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:92)
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:116)
    ... 1 common frames omitted
2018-01-10 20:15:02,198 [main] WARN  o.t.g.e.m.client.MqttBrokerMonitor - [localhost:1883] MQTT broker connection failed!
org.eclipse.paho.client.mqttv3.MqttException: Connection lost
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:164)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: null
    at java.io.DataInputStream.readByte(Unknown Source)
    at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:92)
    at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:116)
    ... 1 common frames omitted

Что я делаю не так? У меня mosquitto установлен локально, поэтому я использовал инструмент mosquitto_pub для публикации сообщений.

Есть подсказки, ребята?


person MaMuDragon    schedule 10.01.2018    source источник
comment
Вы уверены, что токен доступа шлюза правильно указан в конфиге и устройство помечено как шлюз? Непонятно, почему вы используете один и тот же порт (1883) как в конфигурации mqtt, так и в общей конфигурации. Конфигурация Mqtt должна указывать на ваш порт mosquitto, а общая конфигурация шлюза должна указывать на порт TB.   -  person Andrew    schedule 10.01.2018
comment
Нужно ли, чтобы комар работал в фоновом режиме? Я думал, что ТБ будет выступать в роли MQTT-брокера. скажем, mosquitto работает на порту 1882. Я публикую полезную нагрузку на 1882, используя mosquitto_pub. TB-шлюз должен прослушивать порт mosquitto (это 1882, как в mqtt-config.json) и, в свою очередь, публиковать полезную нагрузку на 1883 для сервера TB. Это означает, что демон mosquitto должен работать в 1882 году в фоновом режиме. Я прав?   -  person MaMuDragon    schedule 11.01.2018


Ответы (1)


Все хорошо.

Как указал https://stackoverflow.com/users/3203737/andrew, я не запускал mosquitto, а порты были такой же. Я убрал беспорядок, и устройства были отлично зарегистрированы с помощью TB-gateway в панели инструментов.

person MaMuDragon    schedule 11.01.2018