NEWS
Драйвер MQTT
-
В двух словах, что нужно ему сказать поправить?
Если ещё буду приобретать хоть одну лицензию на ESP, перед приобретением вынесу мозг ему по возможности `
` > Привет Максим,
Речь идёт о https://wifi-iot.com/p/wiki/23/ru/ и приёме пакетов.
Например пакет connack выглядит следующим образом: 0x20 0x02 0x00 0x00
Если посылать эти байты по отдельности, то ваш клиент не отвечает. Хотя должен, т.к. TCP это поток, а не пакетный протокол.
Вот переписка по этому поводу на гите: https://github.com/mqttjs/mqtt-packet/issues/24 `
Конкретно речь идёт об этой функции:
https://github.com/tuanpmt/esp_mqtt/blo … qtt.c#L290
Которая должна быть модифицирована, так, что она может принимать на вход отрезки байтов произвольной длинны и сама должна дробить или соединять их, как сделано здесь: https://github.com/knolleary/pubsubclie ... t.cpp#L232
-
….
Как у Вас все заморочено... Не, у меня проще, в качестве сервера WB контроллер (который фактически является ядром) c RS-485, а уж с него MQTT на ioBroker. Может когда-нибудь прикручу к Orange Pi, где также стоит ioBroker, RS-485 - UART и отправлю прямо туда modbus RTU. Но пока нужды нет. `
WB контроллер с RS-485 это что? можно подробнее?
-
-
В двух словах, что нужно ему сказать поправить?
Если ещё буду приобретать хоть одну лицензию на ESP, перед приобретением вынесу мозг ему по возможности `
` > Привет Максим,
Речь идёт о https://wifi-iot.com/p/wiki/23/ru/ и приёме пакетов.
Например пакет connack выглядит следующим образом: 0x20 0x02 0x00 0x00
Если посылать эти байты по отдельности, то ваш клиент не отвечает. Хотя должен, т.к. TCP это поток, а не пакетный протокол.
Вот переписка по этому поводу на гите: https://github.com/mqttjs/mqtt-packet/issues/24 `
Конкретно речь идёт об этой функции:
https://github.com/tuanpmt/esp_mqtt/blo … qtt.c#L290
Которая должна быть модифицирована, так, что она может принимать на вход отрезки байтов произвольной длинны и сама должна дробить или соединять их, как сделано здесь: https://github.com/knolleary/pubsubclie ... t.cpp#L232 `
Я так понял у кого стены крепче…Есть у меня москито на роутере, есть сервер mqtt на винде, нет вопросов работает с прошивкой Максима без проблем, на мобилке приложения управляют без проблем. Проблемы начались после переустановки ioBroker ( умерла миниСД, какой был драйвер до этого был не знаю, но заплаток не было). Вторые сутки колбасит все те устройства которые до этого работали с ioBroker, ложит их в safe mode. Ничего сделать не могу. Я не силен в том должен быть это поток или не поток, знаю только что это протокол и есть его описание. Прошивка Максима работает с двумя серверами которые на данный момент я могу запустить, и протестировал. Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень. -
Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень. `
Ошибка в библиотеке MQTT которую Максим использует в своей прошивке. Для обхода этой проблемы Bluefox вставил заплатку в драйвер MQTT на ioBroker-е, заплатка активируется чекбоксом на второй страничке драйвера "Pathch für Chunking"
-
Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень. `
Ошибка в библиотеке MQTT которую Максим использует в своей прошивке. Для обхода этой проблемы Bluefox вставил заплатку в драйвер MQTT на ioBroker-е, заплатка активируется чекбоксом на второй страничке драйвера "Pathch für Chunking" `
Странная ошибка однако…Только драйвер ioBroker ее видит, причем прозрел недавно. Месяц назад другой драйвер ее в упор не видел. -
` > Например пакет connack выглядит следующим образом: 0x20 0x02 0x00 0x00
Если посылать эти байты по отдельности, то ваш клиент не отвечает. Хотя должен, т.к. TCP это поток, а не пакетный протокол.
Вот переписка по этому поводу на гите: https://github.com/mqttjs/mqtt-packet/issues/24 `
Че то я в танке…"Например пакет connack" тут говорим пакет, потом говорим а вот давайте мы этот пакет отправим отдельными байтами :shock: дальше больше, TCP это поток, ну и естественно этот поток точно знает куда в какую то сторону "течь" и где этот брокер сидит. Блин я окончательно туплю...Если делать пинг то теряются (иногда) какие то части "потока" и какого то пня их назвали "пакетами"...Ну кто нибудь человеческими словами объяснит почему перед этим четыре устройства с ioBroker работали на ура а после переустановки оного неделю назад, напрочь отказались работать? Устройства не перепрошивались с декабря прошлого года. Почему устройства работают с москитто на OpenWRT и Windows, также нормально общаются с облачными серверами? Да кстати, библиотека Arduino PubSubClient.h (врядли Максим ее использует ) оказывается тоже кривая :shock: . Есть у меня еще одно устройство на ESP в котором работает мой скетч Arduino с выше названной библиотекой так оно при подключении к драйверу ioBroker вообще теряет WiFi клиента и переходит в AP. Еще вопрос, а почему приложения для Андроид очень часто аварийно закрываются при работе с драйвером, чего раньше тоже не было?
-
Да кстати, библиотека Arduino PubSubClient.h (врядли Максим ее использует ) оказывается тоже кривая :shock: . Есть у меня еще одно устройство на ESP в котором работает мой скетч Arduino с выше названной библиотекой так оно при подключении к драйверу ioBroker вообще теряет WiFi клиента и переходит в AP. Еще вопрос, а почему приложения для Андроид очень часто аварийно закрываются при работе с драйвером, чего раньше тоже не было? ` PubSubClient.h работает на 10 ардуинах и одной есп без проблем и с новой и старой версией драйвера.
-
Да кстати, библиотека Arduino PubSubClient.h (врядли Максим ее использует ) оказывается тоже кривая :shock: . Есть у меня еще одно устройство на ESP в котором работает мой скетч Arduino с выше названной библиотекой так оно при подключении к драйверу ioBroker вообще теряет WiFi клиента и переходит в AP. Еще вопрос, а почему приложения для Андроид очень часто аварийно закрываются при работе с драйвером, чего раньше тоже не было?
PubSubClient.h работает на 10 ардуинах и одной есп без проблем и с новой и старой версией драйвера.
На ардуино не знаю работает или нет. А на ESP в моем скетче без всем известной птички у меня не работает, клиент WiFi библиотеки WiFiManager.h включает Configuration Portal по какой причине я исследование не проводил, но что то мне подсказывает что по таймауту, который происходит в PubSubClient.h (это мое имхо ). Наверное что то подобное происходит и в прошивке Максима, она переходит в Safe mode с периодичностью отсылки на mggt (сколько секунд установлено). Я не профи в кодировании, по большей части я технарь. И у нас технарей есть очень хороший девиз:" Не мешай технике работать…" . Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? А как быть с приложением Андроид MQTT IoT? До этого работало без особых нареканий, теперь же слетает через раз.Не поленился посмотрел доки по mqtt. Какие такие байты? Это пакетный протокол который работает поверх TCP/IP (в нашем случае) опять же пакетного сетевого протокола.
Я когда случайно встретил инфу о ioBroker и установил то на радоваться не мог. После Majordomo у которого то циклы останавливаются то не запускаются а установка отдельная песня (даже не песня а ода ), чего стоит только это клинопись (PHP) :shock:. А тут все раз и поехало, так на тебе приехало...Теперь у меня очередной трабл java драйвер останавливается.
-
Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? `
Что тебе мешает использовать старую версию?
! filename="Screenshot at März 19 10-40-30.png" index="0">~~
-
Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? `
Что тебе мешает использовать старую версию?
! Screenshot at März 19 10-40-30.png `
За картинку спасибо. А то я не совсем разобрался как делать откат. Теперь только бы знать какая версия драйвера была :shock: . Ставил ioBroker где то в первой половине января. -
Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли?
Просто два программиста решили пропихнуть идею ускорения коммуникации и стали отсылать байты сразу, а не составив сначала полное сообщение.Это в этом пакете https://www.npmjs.com/package/mqtt-packet, который за последний месяц скачали 125 925 раз.
Я не смог их уговорить вернуть изменение обратно.
Они упёрлись, как два барана: "Мы всё сделали по спецификации и отвали".
Что мне оставалось делать? Пусть Максим и Вьетнамцы правят свою библиотеку. Я буду тогда третьим бараном. :lol:
-
@Alex1808:
Просто два программиста решили пропихнуть идею ускорения коммуникации и стали отсылать байты сразу, а не составив сначала полное сообщение.Это в этом пакете https://www.npmjs.com/package/mqtt-packet, который за последний месяц скачали 125 925 раз.
Я не смог их уговорить вернуть изменение обратно.
Они упёрлись, как два барана: "Мы всё сделали по спецификации и отвали".
Что мне оставалось делать? Пусть Максим и Вьетнамцы правят свою библиотеку. Я буду тогда третьим бараном. :lol: `
Я так и думал. Что проблема в экономии количества TCP/IP пакетов для отправки пакетов mqtt, иными словами они решили что нечего гонять иногда полупустые пакеты, умники их…Скорость и трафик ускорить решили :lol:, при этом угробить простоту использования. А еще им начхать что основное применение это МК, а они как известно не безразмерные. Любое усложнение библиотек, увеличивает естественно объем кода и замедляет их работу. Интересно небось хорошо знают http://docs.oasis-open.org/mqtt/mqtt/v3 ... c398718018.
Во дают , "специфическое" понимание спецификации :shock: :lol: . Чего то кажется что это они придумали пятое колесо в телеге. Подергаются и утихнут быстренько рога то отвалятся сами собой :lol: . Платформ которые работают без их "улучшений" значительно больше. Жаль нервную систему :evil:. Не дай Боже найдутся другие "рационализаторы - ускорители" и возьмутся за TCP/IP...
-
Теперь только бы знать какая версия драйвера была :shock: . Ставил ioBroker где то в первой половине января. `
две странички назад самое верхние сообщение.
> После обновления 1.3.0 драйвер в циклическом ребуте.
-
Связка iobroker (на Raspberry) + Arduino общаются по протоколу MQTT (драйвер версии 1.3.2). На Arduino стоит Ethernet Shield и коммуникации по кабелю. Началась проблема с
mqtt.0 2017-09-17 08:41:51.485 warn Client error [Arduino_00]: Error: read ECONNRESET ````и постоянные дисконнекты. Почитал форум и решил поставить в настройках драйвера "Использовать заплатку для Chunking"=YES. После этого, драйвер падает при первом же обращении:
mqtt.0 2017-09-17 09:14:13.387 error TypeError: Cannot read property 'length' of undefined at Function.Buffer.concat (buffer.js:289:24) at publish (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/node_module
mqtt.0 2017-09-17 09:14:13.386 error uncaught exception: Cannot read property 'length' of undefinedСобственно вопрос: а как можно избавиться от первоначальной проблемы?
-
Всем добрый день!
Искал платформу для домашней автоматизации, по описанию ioBroker все понравилось, инсталляция -Блеск!, интерфейс - отлично! ..
Но MQTT - проблема в точности как описано выше sigma:
драйвер версии 1.3.2 ==> Error: read ECONNRESET
"Использовать заплатку для Chunking"=YES, ==> uncaught exception: Cannot read property 'length' of undefined
и читая эту ветку форума создается впечатление, что существует три автора, которые не могут договориться …
Подскажите плиз - может кто-то знает решение указанной проблемы?
и в целом - проект то вообще жив? стоит ли на него ориентироваться?
-
@Lom:Всем добрый день!
Искал платформу для домашней автоматизации, по описанию ioBroker все понравилось, инсталляция -Блеск!, интерфейс - отлично! ..
Но MQTT - проблема в точности как описано выше sigma:
драйвер версии 1.3.2 ==> Error: read ECONNRESET
"Использовать заплатку для Chunking"=YES, ==> uncaught exception: Cannot read property 'length' of undefined
и читая эту ветку форума создается впечатление, что существует три автора, которые не могут договориться …
Подскажите плиз - может кто-то знает решение указанной проблемы?
и в целом - проект то вообще жив? стоит ли на него ориентироваться? `
Проект живее всех живых, и динамично развивается огромными темпами. Выше описанная проблема с mqtt в основном возникает из-за использования прошивки на конечных устройствах, от автора - который не сильно добрасовестно относится к своему проекту. Что касается mqtt драйвера самого Iobroker`а, то тут автор своевременно делает обновление библиотек и исправляет ошибки. Что касается вашей проблемы, вы какую используете прошивку на клиенте, которого подключаете, самописную или что-то из интернета? Еще можно посоветовать на вкладке драйвера, выбрать режим информирования не "info", а "debug" будет больше информации, возможно увидите после чего возникает ошибка.
-
Возникли непонятки, не знаю связана это с новой версией или всегда так было.
Брокер начинает слать топики ещё до subscribe. На subscribe кроме suback другой реакции незамеченно.
-
@X13:Возникли непонятки, не знаю связана это с новой версией или всегда так было.
Брокер начинает слать топики ещё до subscribe. На subscribe кроме suback другой реакции незамеченно. `
Куда он начинает слать если никто не подписан? -
Здравствуйте. Подскажите новичку как всё-таки реализовать подписку и публикацию в разные топики для одного и того же устройства. Например, имеем контроллер wb к которому подключен модуль управления освещением wb-mr6c с 6-ю реле К1-К6. Контроллер публикует состояние, например, реле К1 в топике /devices/wb-mr6c_122/controls/K1. Для управления этими реле необходимо отправить данные в топик /devices/wb-mr6c_122/controls/K1/on. Как это реализовать? Спасибо.