NEWS
Драйвер MQTT
-
Спасибо! Значит так… попробовал эмулировать перезагрузку контроллера просто программно отключая на несколько минут на коммутаторе порт, где висит контроллер. В этом случае все нормально, поток данных MQTT восстанавливается. Хотя в логе при этом Disconnected вообще не появляется. В отличие от случая если перегружать контроллер.
Включил дебаг, перегрузил контроллер (вообще говоря проблематично его часто дергать на рабочей системе - при старте начинаются разные переходные процессы в самом контроллере, шлются смс-ки и тп) - все повторилось, поток данных не восстановился, глазами в логах ничего не попалось интересного, записей в логе ну очень много... пробовал это скопировать для детального изучения - в итоге заглючил админ в части логов (то ли от числа записей, то ли что-то не то сделал), перегрузил его, стало нормально, но логи потерял. Поскольку у меня подключено 2 сервера с MQTT драйвером к контроллеру, глянул на второй - там висит Disconnected в логах (без дебага). Ну и ни на первом ни на втором данные не идут. Подождал несколько минут - перезапустил MQTT на первом сервере - данные пошли на этот сервер. На втором - нет. Подождал еще несколько минут - перезапустил драйвер MQTT на втором сервере. Пошли данные на втором.
Уж не знаю что за стечение обстоятельств, может особенности контроллера... но решил больше пока не экспериментировать с этим. Контроллер очень редко перегружается, только при большой нужде или обновлениях, потеря связи не приводит к тому же явлению (что радует), поэтому пусть будет как есть. Если что-то еще всплывет - я сообщу.
Из моего ограниченного познания работы MQTT есть ощущение, что при перезагрузке контроллер сообщает, что он больше слать MQTT данные не будет, а драйвер, получив это - больше и не принимает (уйдя в disconnect), пока его не рестартануть. Иначе потеря связи при отключении порта приводила бы к похожему результату. Лог без дебага:
` > mqtt.0 2017-01-21 00:12:54.445 info Connected to 192.168.118.123
mqtt.0 2017-01-21 00:12:54.374 info Subscribe on: "/devices/#"
mqtt.0 2017-01-21 00:12:54.299 info Try to connect to mqtt://192.168.118.123:1883?clientId=Zero
mqtt.0 2017-01-21 00:12:52.459 info starting. Version 1.3.0 in /opt/iobroker/node_modules/iobroker.mqtt, node: v4.7.2
host.orangepizero 2017-01-21 00:12:49.145 info instance system.adapter.mqtt.0 started with pid 2984
host.orangepizero 2017-01-21 00:12:49.071 info object change system.adapter.mqtt.0
host.orangepizero 2017-01-21 00:12:47.199 info instance system.adapter.mqtt.0 terminated with code 0 (OK)
mqtt.0 2017-01-21 00:12:47.086 info terminating
host.orangepizero 2017-01-21 00:12:46.543 info stopInstance system.adapter.mqtt.0 killing pid 1501
host.orangepizero 2017-01-21 00:12:46.541 info stopInstance system.adapter.mqtt.0
host.orangepizero 2017-01-21 00:12:46.514 info object change system.adapter.mqtt.0
mqtt.0 2017-01-21 00:12:46.563 info Disconnected from 192.168.118.123 `
-
Ну уже не плохо ;)
@Adav:перегрузил его, стало нормально, но логи потерял.
Логи потерять нельзя. Поройся в ****/opt/iobroker/log/2017_…log****Потерял. Когда админ заглючил, я начал стирать и стер. Ну раз такое дело - перегрузил контроллер еще раз. В этот раз логи я просто взял по ссылке, не пытаясь с ними что-то делать в интерфейсе. Итог:
https://cloud.mail.ru/public/9rBC/mM5aYm4k6
Запустил дебаг, отправил контроллер в перезагрузку. Убедился, что контроллер перегрузился и что данные не приходят. Остановил дебаг, скопировал лог, перегрузил драйвер. Данные пошли. Или надо видеть логи и при рестарте драйвера?
-
После обновления 1.3.0 драйвер в циклическом ребуте.
! debian 2017-02-04 18:51:50.653 info host.debian Restart adapter system.adapter.mqtt.0 because enabled
! debian 2017-02-04 18:51:50.652 error host.debian instance system.adapter.mqtt.0 terminated with code 0 (OK)
! mqtt.0 2017-02-04 18:51:50.137 error mqtt.0 TypeError: Object 111,102,102,108,105,110,101 has no method 'trim' at receivedTopic (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:301:59) at Connection. (/opt/iobro
! mqtt.0 2017-02-04 18:51:50.137 error mqtt.0 uncaught exception: Object 111,102,102,108,105,110,101 has no method 'trim'
! mqtt.0 2017-02-04 18:51:50.136 info mqtt.0 Client [ESP826600f3f637] closed
! mqtt.0 2017-02-04 18:51:50.136 error mqtt.0 TypeError: Object 111,102,102,108,105,110,101 has no method 'trim' at receivedTopic (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:301:59) at Connection. (/opt/iobro
! mqtt.0 2017-02-04 18:51:50.136 error mqtt.0 uncaught exception: Object 111,102,102,108,105,110,101 has no method 'trim'
! mqtt.0 2017-02-04 18:51:50.136 warn mqtt.0 Client error [ESP826600f3f637]: Error: not implemented
! mqtt.0 2017-02-04 18:51:50.135 info mqtt.0 Client [ESP826600f3f637] connected
! mqtt.0 2017-02-04 18:51:46.293 info mqtt.0 Starting MQTT authenticated server on port 1883
! mqtt.0 2017-02-04 18:51:45.711 info mqtt.0 starting. Version 1.3.0 in /opt/iobroker/node_modules/iobroker.mqtt, node: v0.10.46
! debian 2017-02-04 18:51:44.686 info host.debian instance system.adapter.mqtt.0 started with pid 2392
! host.debian 2017-02-04 18:51:14.676 info Restart adapter system.adapter.mqtt.0 because enabled -
После обновления 1.3.0 драйвер в циклическом ребуте. `
Установил сразу после появления версии 1.3.0 на github - таких проблем не наблюдаю. Установлено было на 3 разных серверах, работающих с одним контроллером (WB). На третьем (тестовом) недавно обновил до 1.3.1 - тоже пока нормально. Может у Вас проблема с источником данных mqtt?
-
До обновление все работало нормально, скопилось много обновлений сегодня решил все обновить.
-
Обнаружилась ошибка в коде MQTT клиента.
http://forum.iobroker.net/viewtopic.php?f=22&t=5095
Надо заменить (смотря что у вас за система или версия npm)
этот файл /opt/iobroker/node_modules/mqtt-packet/writeToStream.js
или этот /opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-packet/writeToStream.js
или как было в моём случаи этот файл /opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/node_modules/mqtt-packet/writeToStream.js
на этот
-
Обновил node до 4 версии все заработало.
-
Обновил node до 4 версии все заработало. `
обновился до 1.3.0, затем до 1.3.1 0 глюк с циклической перезагрузкой.
у меня nodejs 6.6.0 - ты говоришь что обновил до 4 версии. немного не понял какая же у тебя версия?
update: или ты имеешь ввижу ветку 4.x.x LTS (v4.7.3 (Latest LTS: Argon))? Так это же наооборот downgrade, а не обновление…
народ, а вообще какая сейчас версия Node актуальна по феншую для IOB? вчера обновил до v6.9.5 - вроде памяти стало меньше потреблять..
-
Здравствуйте.
Прошу помощи с MQTT драйвером.
IOBroker установлен на RPi3, При перезагрузке сервера,он отсылает на ардуино(стоит клиент) инверсные значения.
прикрутить это на управление светом,стало проблематично (( `
поясни что такое "инверные значения"? можно с картинками.
были проблемы что mqtt версии до 1.2.5 посылал неверно отформатированные сообщения подписчикам. а у тебя какая версия?
-
Здравствуйте еще раз.
Версия MQTT драйвера - 1.3.2.
Инверсное- например на данный момент на ардуино сейчас имеются 16 выходов (каждый выход-свой топик). При старте ардуины на первых двух лог "1", на остальных лог. "0". При старте,ребуте железки RPi или при ручном рестарте самого драйвера , на ардуинке выходы меняют своё значение. т.е. "1" становятся нулями
и наоборот,нули - еденицами. Т.к. пока подключены только светодиоды,заметно что это происходит сразу одновременно по всем выходам.
С настройками драйвера игрался,на данный момент убрал все галки- результат тот же (((
з.ы. до этого IOBroker стоял на винде (версию драйвера не помню) но такого "изменения выходов" не было.
-
на всякий случай выкладываю скетч,может подскажите что не так?
есть подозрениие,что именно он косячит.
Cам слабо понимаю. скетч создавал в Flprog.
1648_pr4.7z -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). В логе ошибки:
! mqtt.0 2017-02-19 20:03:55.369 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:55.368 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.377 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 publishOnSubscribe
! mqtt.0 2017-02-19 20:03:54.376 info mqtt.0 Client [ESP82660006940a] subscribes on "mqtt.0.timestamp"
! mqtt.0 2017-02-19 20:03:54.375 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.370 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^mqtt.0.testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "testtopic.#" with regex /^testtopic../
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:54.369 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.368 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:54.205 info mqtt.0 Client [ESP82660006940a] connected
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 publishOnSubscribe send all known states
! mqtt.0 2017-02-19 20:03:49.765 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^mqtt.0.ESP0006940A../
! mqtt.0 2017-02-19 20:03:49.764 info mqtt.0 Client [ESP82660006940a] subscribes on "ESP0006940A.#" with regex /^ESP0006940A../
! mqtt.0 2017-02-19 20:03:47.397 info mqtt.0 Client [ESP82660006940a] closed
! mqtt.0 2017-02-19 20:03:47.396 error mqtt.0 Closed because of error
! mqtt.0 2017-02-19 20:03:47.396 warn mqtt.0 Client error [ESP82660006940a]: Error: read ECONNRESET -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). `
Если и в интерфейсе ESP проблемы - то тут MQTT совсем не при чем. Думаю, Вы это понимаете сами. Зря Вы эту поделку (pzem) купили… Я сначала тоже на нее поглядывал, все прикидывал как подключать, куда и как прикручивать. В итоге просто взял маленький (1DIN) счетчик за 20$ (SDM120). Как индикатор - не очень из-за размеров, зато места не занимает много в щитке и проблем с подключением (modbus) никаких. Да и разных параметров отдает побольше (реактивная составляющая и частота). Была бы возможность подключиться к счетчику мосэнерго - сделал бы так, но увы, не дают, поэтому такой вот мониторинг через второй счетчик...
-
Проблема исчезает при отключении драйвера, так что железяка скорей всего исправно работает. Через облако все работало очень долго и без сбоев. Кстати через несколько часов проблема пропала сама собой :shock: .
-
Проблема исчезает при отключении драйвера, так что железяка скорей всего исправно работает. Через облако все работало очень долго и без сбоев. Кстати через несколько часов проблема пропала сама собой :shock: . `
Опять сбой. В логе ошибок нет. -
Собрал монитор энергии на pzem-004t и esp (прошивка Wifi-iot). Драйвер MQTT настроен как сервер. Вначале все работало, потом началась какая-то ерунда - часть объектов отображается некорректно, в т.ч. и на веб-интерфейсе esp(при этом он ещё заметно подвисает). `
Если и в интерфейсе ESP проблемы - то тут MQTT совсем не при чем. Думаю, Вы это понимаете сами. Зря Вы эту поделку (pzem) купили… Я сначала тоже на нее поглядывал, все прикидывал как подключать, куда и как прикручивать. В итоге просто взял маленький (1DIN) счетчик за 20$ (SDM120). Как индикатор - не очень из-за размеров, зато места не занимает много в щитке и проблем с подключением (modbus) никаких. Да и разных параметров отдает побольше (реактивная составляющая и частота). Была бы возможность подключиться к счетчику мосэнерго - сделал бы так, но увы, не дают, поэтому такой вот мониторинг через второй счетчик... `
sdm120 - это хорошо. но все не совсем тривиально при передаче rs485 на сервер. конечно если есть медный кабель прямиком в сервер - не проблема. Но если нет - то пляски с бубном.
У меня HLK-RM04 прокидывает serial через TCP , потом эмулятор tty под linux (socat), потом mdbusd (Mudbus RTU -> Modbus TCP).
с учетом стоимости HLK-RM04 и sdm120 - выходит под $50 уже.
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать.
-
sdm120 - это хорошо. но все не совсем тривиально при передаче rs485 на сервер. конечно если есть медный кабель прямиком в сервер - не проблема. Но если нет - то пляски с бубном.
У меня HLK-RM04 прокидывает serial через TCP , потом эмулятор tty под linux (socat), потом mdbusd (Mudbus RTU -> Modbus TCP).
с учетом стоимости HLK-RM04 и sdm120 - выходит под $50 уже.
а что касаемо героя pzem-004t и esp - тут надо смотреть на коммуникации esp и pzem-004t. если на esp плате есть чип usb-uart , его надо отключить. об этом кстати вот https://wifi-iot.com/p/wiki/15/ сказано. он может серьезно мешать. `
Как у Вас все заморочено… Не, у меня проще, в качестве сервера WB контроллер (который фактически является ядром) c RS-485, а уж с него MQTT на ioBroker. Может когда-нибудь прикручу к Orange Pi, где также стоит ioBroker, RS-485 - UART и отправлю прямо туда modbus RTU. Но пока нужды нет.
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