NEWS
Драйвер MQTT
-
Я 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 -
-
Новый вопрос. Какая то ошибка в логе, при подключении клиента 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);По крайней мере, клиент стал подключаться… ;) -
P.S. - нашёл - проблема растёт от последнего обновления - https://github.com/ioBroker/ioBroker.mq … 6da0fdf4fe - за комментил строки со 102 по 108, 101 строку привёл к предыдущему состоянию````
client = mqtt.connect(_url);По крайней мере, клиент стал подключаться… ;) `Время коннекта, реконтекта увеличивал в настройках драйвера?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login