Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. ioBroker драйвера
    5. Драйвер MQTT

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Драйвер MQTT

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Freemen last edited by

      @Bluefox:

      @v965:

      В двух словах, что нужно ему сказать поправить?

      Если ещё буду приобретать хоть одну лицензию на 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. Ничего сделать не могу. Я не силен в том должен быть это поток или не поток, знаю только что это протокол и есть его описание. Прошивка Максима работает с двумя серверами которые на данный момент я могу запустить, и протестировал. Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень.

      1 Reply Last reply Reply Quote 0
      • Alex1808
        Alex1808 last edited by

        @Freemen:

        Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень. `

        Ошибка в библиотеке MQTT которую Максим использует в своей прошивке. Для обхода этой проблемы Bluefox вставил заплатку в драйвер MQTT на ioBroker-е, заплатка активируется чекбоксом на второй страничке драйвера "Pathch für Chunking"

        1 Reply Last reply Reply Quote 0
        • F
          Freemen last edited by

          @Alex1808:

          @Freemen:

          Так у меня возникает резонный вопрос кого лечить надо, меня, Максима или драйвер? Извините, злой очень. `

          Ошибка в библиотеке MQTT которую Максим использует в своей прошивке. Для обхода этой проблемы Bluefox вставил заплатку в драйвер MQTT на ioBroker-е, заплатка активируется чекбоксом на второй страничке драйвера "Pathch für Chunking" `
          Странная ошибка однако…Только драйвер ioBroker ее видит, причем прозрел недавно. Месяц назад другой драйвер ее в упор не видел.

          1 Reply Last reply Reply Quote 0
          • F
            Freemen last edited by

            ` > Например пакет 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. Еще вопрос, а почему приложения для Андроид очень часто аварийно закрываются при работе с драйвером, чего раньше тоже не было?

            1 Reply Last reply Reply Quote 0
            • I
              instalator last edited by

              @Freemen:

              Да кстати, библиотека Arduino PubSubClient.h (врядли Максим ее использует 😉 ) оказывается тоже кривая :shock: . Есть у меня еще одно устройство на ESP в котором работает мой скетч Arduino с выше названной библиотекой так оно при подключении к драйверу ioBroker вообще теряет WiFi клиента и переходит в AP. Еще вопрос, а почему приложения для Андроид очень часто аварийно закрываются при работе с драйвером, чего раньше тоже не было? ` PubSubClient.h работает на 10 ардуинах и одной есп без проблем и с новой и старой версией драйвера.

              1 Reply Last reply Reply Quote 0
              • F
                Freemen last edited by

                @instalator:

                @Freemen:

                Да кстати, библиотека 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 драйвер останавливается.

                1 Reply Last reply Reply Quote 0
                • Alex1808
                  Alex1808 last edited by

                  @Freemen:

                  Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? `

                  Что тебе мешает использовать старую версию?

                  ! filename="Screenshot at März 19 10-40-30.png" index="0">~~

                  1 Reply Last reply Reply Quote 0
                  • F
                    Freemen last edited by

                    @Alex1808:

                    @Freemen:

                    Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? `

                    Что тебе мешает использовать старую версию?

                    ! Screenshot at März 19 10-40-30.png `
                    За картинку спасибо. А то я не совсем разобрался как делать откат. Теперь только бы знать какая версия драйвера была :shock: . Ставил ioBroker где то в первой половине января.

                    1 Reply Last reply Reply Quote 0
                    • Bluefox
                      Bluefox last edited by

                      @Freemen:

                      @Alex1808:

                      @Freemen:

                      Просто интересно у программистов есть что то подобное? Зачем было ломать то что работало? Для того что бы потом делать костыли? `
                      Просто два программиста решили пропихнуть идею ускорения коммуникации и стали отсылать байты сразу, а не составив сначала полное сообщение.

                      Это в этом пакете https://www.npmjs.com/package/mqtt-packet, который за последний месяц скачали 125 925 раз.

                      Я не смог их уговорить вернуть изменение обратно.

                      Они упёрлись, как два барана: "Мы всё сделали по спецификации и отвали".

                      Что мне оставалось делать? Пусть Максим и Вьетнамцы правят свою библиотеку. Я буду тогда третьим бараном. :lol:

                      1 Reply Last reply Reply Quote 0
                      • F
                        Freemen last edited by

                        @Bluefox:

                        @Freemen:

                        @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...

                        1 Reply Last reply Reply Quote 0
                        • Alex1808
                          Alex1808 last edited by

                          @Freemen:

                          Теперь только бы знать какая версия драйвера была :shock: . Ставил ioBroker где то в первой половине января. `

                          две странички назад самое верхние сообщение.

                          > После обновления 1.3.0 драйвер в циклическом ребуте.

                          1 Reply Last reply Reply Quote 0
                          • sigma
                            sigma last edited by

                            Связка 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

                            
                            Собственно вопрос: а как можно избавиться от первоначальной проблемы?
                            1 Reply Last reply Reply Quote 0
                            • L
                              Lom last edited by

                              Всем добрый день!

                              Искал платформу для домашней автоматизации, по описанию ioBroker все понравилось, инсталляция -Блеск!, интерфейс - отлично! ..

                              Но MQTT - проблема в точности как описано выше sigma:

                              драйвер версии 1.3.2 ==> Error: read ECONNRESET

                              "Использовать заплатку для Chunking"=YES, ==> uncaught exception: Cannot read property 'length' of undefined

                              и читая эту ветку форума создается впечатление, что существует три автора, которые не могут договориться …

                              Подскажите плиз - может кто-то знает решение указанной проблемы?

                              и в целом - проект то вообще жив? стоит ли на него ориентироваться?

                              1 Reply Last reply Reply Quote 0
                              • S
                                spectrekr last edited by

                                @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" будет больше информации, возможно увидите после чего возникает ошибка.

                                1 Reply Last reply Reply Quote 0
                                • X
                                  X13 last edited by

                                  Возникли непонятки, не знаю связана это с новой версией или всегда так было.

                                  Брокер начинает слать топики ещё до subscribe. На subscribe кроме suback другой реакции незамеченно.

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    instalator last edited by

                                    @X13:

                                    Возникли непонятки, не знаю связана это с новой версией или всегда так было.

                                    Брокер начинает слать топики ещё до subscribe. На subscribe кроме suback другой реакции незамеченно. `
                                    Куда он начинает слать если никто не подписан?

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      Alkanaft last edited by

                                      Здравствуйте. Подскажите новичку как всё-таки реализовать подписку и публикацию в разные топики для одного и того же устройства. Например, имеем контроллер wb к которому подключен модуль управления освещением wb-mr6c с 6-ю реле К1-К6. Контроллер публикует состояние, например, реле К1 в топике /devices/wb-mr6c_122/controls/K1. Для управления этими реле необходимо отправить данные в топик /devices/wb-mr6c_122/controls/K1/on. Как это реализовать? Спасибо.

                                      1 Reply Last reply Reply Quote 0
                                      • I
                                        instalator last edited by

                                        @Alkanaft:

                                        Здравствуйте. Подскажите новичку как всё-таки реализовать подписку и публикацию в разные топики для одного и того же устройства. Например, имеем контроллер wb к которому подключен модуль управления освещением wb-mr6c с 6-ю реле К1-К6. Контроллер публикует состояние, например, реле К1 в топике /devices/wb-mr6c_122/controls/K1. Для управления этими реле необходимо отправить данные в топик /devices/wb-mr6c_122/controls/K1/on. Как это реализовать? Спасибо. `
                                        А если создать обьект руками?

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          Alkanaft last edited by

                                          Создавал. Устройство не реагирует. Поэтому и прошу более подробную инструкцию. Что, где прописать, какой тип и т.д?

                                          Спасибо

                                          1 Reply Last reply Reply Quote 0
                                          • I
                                            instalator last edited by

                                            @Alkanaft:

                                            Создавал. Устройство не реагирует. Поэтому и прошу более подробную инструкцию. Что, где прописать, какой тип и т.д?

                                            Спасибо `
                                            Ну значит твой клиент тупо не подписывается на эти топики. ковырять надо код клиента

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            31
                                            162
                                            41768
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo