NEWS
Драйвер MQTT
-
Я Websocket ни разу не пробовал. Надо попробовать :) `
Если не трудно, посмотри, пожалуйста..Никакие настройки не помогают, изменение портов и т.д. Обычный порт отлично, Websocket (который обычный+1) - не работает..Тут удобные утилитки - https://github.com/kamilfb/mqtt-spy/wiki/Downloads -
Я Websocket ни разу не пробовал. Надо попробовать :)
Если не трудно, посмотри, пожалуйста..Никакие настройки не помогают, изменение портов и т.д. Обычный порт отлично, Websocket (который обычный+1) - не работает..Тут удобные утилитки - [https://github.com/kamilfb/mqtt-spy/wiki/Downloads](https://github.com/kamilfb/mqtt-spy/wiki/Downloads)
Заработало? У меня да. -
Я Websocket ни разу не пробовал. Надо попробовать :)
Если не трудно, посмотри, пожалуйста..Никакие настройки не помогают, изменение портов и т.д. Обычный порт отлично, Websocket (который обычный+1) - не работает..Тут удобные утилитки - [https://github.com/kamilfb/mqtt-spy/wiki/Downloads](https://github.com/kamilfb/mqtt-spy/wiki/Downloads)
Заработало? У меня да. `
SSL не пробовал, но WebSocket работает, спасибо огромное! -
Кстати, драйвер в режиме клиента работает, у меня, например, стабильно, неделями только при следующих изменениях файла client.js:
defaultConnectOptions = {
keepalive: 1000,
protocolId: 'MQTT',
protocolVersion: 4,
reconnectPeriod: 10,
connectTimeout: 30 * 1000,
clean: false
};
Проверено уже на протяжении месяцев 6-8 точно, иначе постоянное отсоединение от брокера.
Вот сегодня обновил драйвер, опять пришлось вручную изменять..
-
Кстати, драйвер в режиме клиента работает, у меня, например, стабильно, неделями только при следующих изменениях файла client.js:
defaultConnectOptions = {
keepalive: 1000,
protocolId: 'MQTT',
protocolVersion: 4,
reconnectPeriod: 10,
connectTimeout: 30 * 1000,
clean: false
};
Проверено уже на протяжении месяцев 6-8 точно, иначе постоянное отсоединение от брокера.
Вот сегодня обновил драйвер, опять пришлось вручную изменять.. `
Я не понимаю твои настройки:keepalive - 1000 секунд (раз в 15 минут будет проверка, жив ли клиент)
reconnectPeriod - 10 миллисекунд (зачем так быстро?)
clean - вроде нигде не используется
-
Проблема с брокером…Клиент mqtt.0 - подписывается на топик flat129 на брокере mqtt.1
Судя по логу, сенсор отправляет и брокер получается корректные значения (что отражено в статистике).
Но клиент, подключенный по сетке, клиент iobrokera mqtt.0 (внутри одного Iobrokera) - уже почему-то получают значение "undefined"....(
532_mqtt1.jpg
532_mqtt2.jpg
532_mqtt3.jpg
532_mqtt4.jpg -
Измени строчку 160 в /opt/iobroker/node/modules/iobroker.mqtt/lib/server.js c
sendState2Client(clients[k], id, message);на
sendState2Client(clients[k], id, {val: message}); ```` `Да, заработало! Измени, пожалуйста, в следующем обновлении.
-
Новый вопрос. Какая то ошибка в логе, при подключении клиента mqtt.0 в той же ситуации, как на скринах, к серверу mqtt.1 -
mqtt-0 2016-04-24 19:09:24 info Connected to 129.ddns.net mqtt-1 2016-04-24 19:09:24 info Client [undefined] connected mqtt-1 2016-04-24 19:09:24 warn [undefined] Error: invalid protocol id mqtt-0 2016-04-24 19:09:24 info Subscribe on: "pir2" mqtt-0 2016-04-24 19:09:24 info Subscribe on: "pir1" mqtt-0 2016-04-24 19:09:24 info Subscribe on: "129/#" mqtt-0 2016-04-24 19:09:24 info Try to connect to mqtt://129.ddns.net:1883?clientId=ioBroker.mqtt.0 mqtt-0 2016-04-24 19:09:23 info starting. Version 1.0.0 in C:/iobroker/node_modules/iobroker.mqttНасколько это критично?
-
Новый вопрос. Какая то ошибка в логе, при подключении клиента mqtt.0 в той же ситуации, как на скринах, к серверу mqtt.1 -
mqtt-0 2016-04-24 19:09:24 info Connected to 129.ddns.net mqtt-1 2016-04-24 19:09:24 info Client [undefined] connected mqtt-1 2016-04-24 19:09:24 warn [undefined] Error: invalid protocol id mqtt-0 2016-04-24 19:09:24 info Subscribe on: "pir2" mqtt-0 2016-04-24 19:09:24 info Subscribe on: "pir1" mqtt-0 2016-04-24 19:09:24 info Subscribe on: "129/#" mqtt-0 2016-04-24 19:09:24 info Try to connect to mqtt://129.ddns.net:1883?clientId=ioBroker.mqtt.0 mqtt-0 2016-04-24 19:09:23 info starting. Version 1.0.0 in C:/iobroker/node_modules/iobroker.mqttНасколько это критично? `
protocol Id должен быть 'MQTT' или 'MQIsdp' и по идее соединения не должно быть -
protocol Id должен быть 'MQTT' или 'MQIsdp' и по идее соединения не должно быть `
Ну так ситуация, как описана выше..На одном компе mqtt.0 -клиент, mqtt.1 - сервер…это сообщение появилось после последнего обновления драйвера mqtt до версии 1.0Хотя клиент подключается через и-нет, сервак принимает топики, клиент mqtt.0 -подключается к серваку и видит изменения в топиках с клиента...
-
Сегодня обновился, такая же байда..
mqtt.0 2016-04-26 10:34:49 info mqtt.0 Connected to 129.ddns.net mqtt.1 2016-04-26 10:34:49 info mqtt.1 Client [undefined] connected mqtt.1 2016-04-26 10:34:49 warn mqtt.1 [undefined] Error: invalid protocol id mqtt.1 2016-04-26 10:34:49 info mqtt.1 Client [ESP8266] subscribes on topic "smarttopic" mqtt.1 2016-04-26 10:34:49 info mqtt.1 Client [ESP8266] connected mqtt.1 2016-04-26 10:34:49 info mqtt.1 Starting MQTT-WebSocket server on port 1884 mqtt.1 2016-04-26 10:34:49 info mqtt.1 Starting MQTT server on port 1883 mqtt-1 2016-04-26 10:34:47 info starting. Version 1.0.1 in C:/iobroker/node_modules/iobroker.mqtt -
Bug report (ver.1.0.2)
mqtt-0 2016-04-27 09:24:48 info Connected to 129.ddns.net mqtt-1 2016-04-27 09:24:48 info Client [ESP8266] subscribes on topic "smarttopic" mqtt-1 2016-04-27 09:24:48 info Client [undefined] connected mqtt-1 2016-04-27 09:24:48 warn [undefined] Error: invalid protocol id mqtt-1 2016-04-27 09:24:47 info Client [ESP8266] connected mqtt-1 2016-04-27 09:24:47 info Starting MQTT-WebSocket server on port 1884 mqtt-1 2016-04-27 09:24:47 info Starting MQTT server on port 1883 -
Bug report (ver.1.0.2)
mqtt-0 2016-04-27 09:24:48 info Connected to 129.ddns.net mqtt-1 2016-04-27 09:24:48 info Client [ESP8266] subscribes on topic "smarttopic" mqtt-1 2016-04-27 09:24:48 info Client [undefined] connected mqtt-1 2016-04-27 09:24:48 warn [undefined] Error: invalid protocol id mqtt-1 2016-04-27 09:24:47 info Client [ESP8266] connected mqtt-1 2016-04-27 09:24:47 info Starting MQTT-WebSocket server on port 1884 mqtt-1 2016-04-27 09:24:47 info Starting MQTT server on port 1883 ```` `Почему esp8266 не сообщает, что за протокол у него?
-
Есть очередной девайс на ESP8266: вот часть кода на Arduino IDE для взаимодействия c MQTT сервером:
! ````
void loop() {! if (WiFi.status() == WL_CONNECTED) {
if (!client.connected()) {
Serial.println("Connecting to MQTT server ...");
bool success;
if (mqttuser.length() > 0) {
success = client.connect( MQTT::Connect( deviceID ).set_auth(mqttuser, mqttpass) );
} else {
success = client.connect( deviceID );
client.publish("ControlTopic","I Work!");
}
if (success) {
client.set_callback(callback);
Serial.println("Connect to MQTT server: Success");
client.subscribe(prefix); // for receiving HELLO messages and handshaking
client.subscribe(prefix + "/" + deviceID + "/+/control"); // subscribe to all "control" messages for all widgets of this device
pubConfig();
} else {
Serial.println("Connect to MQTT server: FAIL");
////delay(1000);
}
}
! ````
Если подключаюсь на одном и том же компе с работающем сервером HiveMQ - девайс отлично коннектится с сервером, публикут данные и подписывается на изменения топиков..работает сутками.Отключаю HiveMQ, запускаю копию драйвера MQTT в режиме сервера на том же порту (1883), тот же клиент уже нормально не работает, вот лог:
WiFi connected IP address: 192.168.0.121 Starting UDP Local port: 2390 sending NTP packet... packet received, length=48 The UTC time is 19:18:22 Connecting to MQTT server ... Connect to MQTT server: Success pm open,type:2 0 Publish config FAIL! ({"id":0,"page":"котёл","widget":"anydata","topic":"/IoTmanager/143162-1458400/anydata0","class1":"item no-border text-center","descr":"КОТЕЛЬНАЯ","class2":"balanced","style2":"font-size:21px;font-weight:bold;"}) Restarting after 5 sec...Вот лог сервака на IO Broker:
! ````
mqtt-1 2016-04-29 19:18:20 info publishOnSubscribe send all known states
mqtt-1 2016-04-29 19:18:20 info Client [143162-1458400] subscribes on "IoTmanager.143162-1458400.+.control" with regex /mqtt.1.IoTmanager.143162-1458400.[^.].control/
mqtt-1 2016-04-29 19:18:20 info Client [143162-1458400] subscribes on "IoTmanager.143162-1458400.+.control" with regex /IoTmanager.143162-1458400.[^.].control/
mqtt-1 2016-04-29 19:18:20 info Client [143162-1458400] subscribes on topic "/IoTmanager"То есть, подключаться у него получается, но дальше, где-то на стадии подписки на изменения, происходит затык, он видит ошибку и перезапускается, и так по кругу…На любых других серверах данный клиент работает сутками без нареканий... Суть скетчка для клиента описана подробна описана тут - [http://esp8266.ru/forum/threads/iot-man ... denij.651/](http://esp8266.ru/forum/threads/iot-manager-arxiv-obsuzhdenij.651/) Может, подскажите, где затык в клиенте или всё-таки в исходниках драйвера...Клиент работает стабильно на всех серверах и в сети и в локалке... -
P.S. к своему огромному сожалению, вынужден сделать вывод - драйвер mqtt в клиентской и серверной частях в текущей его версии для меня не применим; выше описывал серверную часть проблемы, сейчас даже клиента не могу подключить, например к серверу broker.mqttdashboard.com - любые клиенты (сторонние подключаются) видят при подписке на все топики 5-10 изменений в секунду - а здесь светодиод клиента горит жёлтым цветом, в логе видим````
mqtt-0 2016-04-29 21:26:06 info Subscribe on: "#"
mqtt-0 2016-04-29 21:26:06 info Try to connect to mqtt://broker.mqttdashboard.com:1883?clientId=ioBroker.mqtt.0
mqtt-0 2016-04-29 21:26:05 info starting. Version 1.0.2 in C:/iobroker/node_modules/iobroker.mqttПроверил все брандмауэры, перебробовал разные публичные серваки, удалял и снова инсталлировал адаптер - толку 0.... УВЫ..... -
Странно как то это все, и вообще я ничего не понял что не так с MQTT.
Несколько месяцев круглосуточно работают как часы несколько ESP именно по MQTT, с прошивкой от Макса https://wifi-iot.com/, так что думаю что драйвер MQTT ioBroker не причем.
P.S. Lstt просьба к Вам сворачивайте простыни под спойлер, это просто уважение остальных.
-
Странно как то это все, и вообще я ничего не понял что не так с MQTT.
Несколько месяцев круглосуточно работают как часы несколько ESP именно по MQTT, с прошивкой от Макса https://wifi-iot.com/, так что думаю что драйвер MQTT ioBroker не причем. `
Поэтому и хочу разобраться..Первая просьба ко всем - подключитесь, пожалуйста, например, к серверу broker.mqttdashboard.com - и подпишитесь на все топики. Можно потом выложить лог? -
P.S. - нашёл - проблема растёт от последнего обновления - https://github.com/ioBroker/ioBroker.mq … 6da0fdf4fe - за комментил строки со 102 по 108, 101 строку привёл к предыдущему состоянию````
client = mqtt.connect(_url);По крайней мере, клиент стал подключаться… ;)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden