NEWS
Драйвер 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Насколько это критично?
-
Новый вопрос. Какая то ошибка в логе, при подключении клиента 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);По крайней мере, клиент стал подключаться… ;) `Время коннекта, реконтекта увеличивал в настройках драйвера?
-
Время коннекта, реконтекта увеличивал в настройках драйвера? `
Всё, что можно, перепробовал..Только исключив данные строки удалось запустить…А вот с сервером проблема, описанная выше, остаётся - клиент, на базе ESP, работающий на больших публичных сетевых серверах, при попытке подключения к брокеру на базе IOBroker - перезапускается - https://github.com/4refr0nt/iot-manager ... nydata.inoИ ещё - где-то уже это читал на форуме, почему-то ТОЛЬКО при установленной галочке, как на вложении, с брокера отсылаются значения (имеется ESP8266 - которая отправляет иногда значение 1 в топик. На второго клиента, подключенному к этому же брокеру значение этого топика отсылаются ТОЛЬКО при установленной галочке - хотя это не логично..)
Ещё ньюанс - отправляю в Телеграм слово, присваиваю действие этому слову "записать" через Text2command - строку в переменную..И почему-то происходит запись в неё через tText2command и тут же подтверждается эта запись драйвером mqtt.1 - в моём случае это брокер...
К чему бы это??
532_mqtt_broker.jpg -
P.S. - нашёл - проблема растёт от последнего обновления - https://github.com/ioBroker/ioBroker.mq … 6da0fdf4fe - за комментил строки со 102 по 108, 101 строку привёл к предыдущему состоянию````
client = mqtt.connect(_url);По крайней мере, клиент стал подключаться… ;) `Исправил.
-
Есть очередной девайс на 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/) Может, подскажите, где затык в клиенте или всё-таки в исходниках драйвера...Клиент работает стабильно на всех серверах и в сети и в локалке... `А у тебя галочка стоит, что публиковать всё при соединении?
Может esp не выдерживает количество переменных?
-
растет потребление RAM (уже 290). параметр Max RAM установлен в 50. клиент на arduino. `
MaxRam работает только для 0.х.х.
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