Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. ioBroker драйвера
  5. Драйвер MQTT

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    643

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Драйвер MQTT

Scheduled Pinned Locked Moved ioBroker драйвера
162 Posts 31 Posters 51.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    wrote on last edited by
    #66

    Взял MQTT Dash… Работает.

    Как конкретно мне воспроизвести ошибку?

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Adav
      wrote on last edited by
      #67

      Добрый день!

      Начал осваивать потихоньку ioBroker и столкнулся с полезными мне (и надеюсь другим) хотелками в части MQTT Adapter:

      1. Ввести поле имени клиента - иначе два одинаковых клиента с одним брокером работать не хотят. Лечится добавлением к адресу в поле ?clientId=…... . Но отдельное поле - нагляднее.

      2. Опцию клиента "Использовать разные имена для чтения и записи:" хорошо бы снабдить возможностью пользовательской настройки для топика записи, а не использовать по умолчанию /set. Мне, к примеру понадобилось использовать /on для работы с контроллером Wiren Board (такие его особенности). Замена в файле client.js /set на /on приводит к ошибкам обмена. Видимо надо где-то еще вносить изменения.

      Спасибо!

      1 Reply Last reply
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        wrote on last edited by
        #68

        @Adav:

        Добрый день!

        Начал осваивать потихоньку ioBroker и столкнулся с полезными мне (и надеюсь другим) хотелками в части MQTT Adapter:

        1. Ввести поле имени клиента - иначе два одинаковых клиента с одним брокером работать не хотят. Лечится добавлением к адресу в поле ?clientId=…... . Но отдельное поле - нагляднее.

        2. Опцию клиента "Использовать разные имена для чтения и записи:" хорошо бы снабдить возможностью пользовательской настройки для топика записи, а не использовать по умолчанию /set. Мне, к примеру понадобилось использовать /on для работы с контроллером Wiren Board (такие его особенности). Замена в файле client.js /set на /on приводит к ошибкам обмена. Видимо надо где-то еще вносить изменения.

        Спасибо! `
        А можно в jira внести? Я потеряю это здесь и не найду. :)

        http://iobroker.net:8000

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Adav
          wrote on last edited by
          #69

          @Bluefox:

          А можно в jira внести? Я потеряю это здесь и не найду. :)

          http://iobroker.net:8000 `

          Внес. Надеюсь на положительный результат. Спасибо!

          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #70

            @Adav:

            Добрый день!

            Начал осваивать потихоньку ioBroker и столкнулся с полезными мне (и надеюсь другим) хотелками в части MQTT Adapter:

            1. Ввести поле имени клиента - иначе два одинаковых клиента с одним брокером работать не хотят. Лечится добавлением к адресу в поле ?clientId=…... . Но отдельное поле - нагляднее.

            2. Опцию клиента "Использовать разные имена для чтения и записи:" хорошо бы снабдить возможностью пользовательской настройки для топика записи, а не использовать по умолчанию /set. Мне, к примеру понадобилось использовать /on для работы с контроллером Wiren Board (такие его особенности). Замена в файле client.js /set на /on приводит к ошибкам обмена. Видимо надо где-то еще вносить изменения.

            Спасибо! `
            Первый пункт я сделал. Нужно бы его проверить (c гит)

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Adav
              wrote on last edited by
              #71

              @Bluefox:

              Первый пункт я сделал. Нужно бы его проверить (c гит) `

              А как правильнее всего обновить оттуда? Я заменил измененные файлы и перезапустил. Драйвер MQTT Adapter стал версией 1.3.0, но больше никаких изменений не увидел, в настройках драйвера не появилось поля Client ID, хотя я его поле вижу в новом файле index.html. Я что-то не так сделал или Вы что-то упустили?

              Касаемо второго пункта… я пока вышел из положения путем использования в VIS прозрачных кнопок с управлением поверх кнопок с индикацией состояния. Появилась у меня такая мысль... Вот есть сейчас возможность включать/отключать возможность чтения/записи в разные топики с разницей в /set. Добавим возможность использовать не только /set, но и то, что захочет пользователь. В моем случае - /on. Но такой подход все равно остается слишком грубым. Предположим, что ioBroker подключается к разным типам контроллеров, у которых в этом смысле у каждого свои заморочки... а возможности гибко подойти в настройке mqtt нет... Может имеет смысл вообще выбросить эту настройку из MQTT? И в VIS сделать возможность привязывать к объектам 2 топика mqtt на чтение и запись?

              upd:

              Разобрался с первым пунктом. Оказалось, что все проще - в админе есть пункт "установить из собственного источника" с выбором git. Обновил, запустил двух клиентов - поле появилось, два клиента с разными ID нормально работают. Каких-либо проблем не заметил. Спасибо!

              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #72

                @Adav:

                @Bluefox:

                Может имеет смысл вообще выбросить эту настройку из MQTT? И в VIS сделать возможность привязывать к объектам 2 топика mqtt на чтение и запись?
                Некоторые виджеты так и работают (hqWidgets/button).

                А если завтра придёт OPC с ещё другой идеологией управления? Надо добить mqtt, что бы подходил под идеологию ioBrokera. :)

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Adav
                  wrote on last edited by
                  #73

                  @Bluefox:

                  @Adav:

                  А если завтра придёт OPC с ещё другой идеологией управления? Надо добить mqtt, что бы подходил под идеологию ioBrokera. :)

                  Согласен. Не сообразил, что для другого контроллера с mqtt и другой идеологией все равно надо будет ставить еще один драйвер MQTT Adapter в ioBroker со своим IP в настройках. В нем и устанавливать эту идеологию. Так что первоначальная мысль была правильная. :)

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Adav
                    wrote on last edited by
                    #74

                    Вечер добрый! Обнаружил неприятную ошибку в работе MQTT драйвера. После перезагрузки контроллера, с которого драйвер забирает данные, данные перестают поступать. Лечится перезагрузкой драйвера. То есть такое впечатление, что после потери связи он впадает в спячку и сам не способен восстановить связь. Проверял несколько раз и на разных машинах - повторяемость 100%.

                    PS Что там с новой версией и опцией клиента "Использовать разные имена для чтения и записи:"?

                    1 Reply Last reply
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      wrote on last edited by
                      #75

                      @Adav:

                      Вечер добрый! Обнаружил неприятную ошибку в работе MQTT драйвера. После перезагрузки контроллера, с которого драйвер забирает данные, данные перестают поступать. Лечится перезагрузкой драйвера. То есть такое впечатление, что после потери связи он впадает в спячку и сам не способен восстановить связь. Проверял несколько раз и на разных машинах - повторяемость 100%. `
                      Было бы очень полезно, если бы ты смог помочь и посмотреть в чём проблема. У меня ошибка не воспроизводится и вероятность её исправления стремится таким образом к нулю. Ты же не показал ни каких логов и никаких wireshark записей.
                      @Adav:

                      PS Что там с новой версией и опцией клиента "Использовать разные имена для чтения и записи:"? `
                      Давай догадаюсь. Я встрою в настройки, что можно настроить "set" и поменять на "on". Ты попросишь, что бы можно было на каждую переменную настраивать. Верно? :lol:

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        Adav
                        wrote on last edited by
                        #76

                        @Bluefox:

                        Было бы очень полезно, если бы ты смог помочь и посмотреть в чём проблема. У меня ошибка не воспроизводится и вероятность её исправления стремится таким образом к нулю. Ты же не показал ни каких логов и никаких wireshark записей. `

                        mqtt.0 2017-01-20 22:44:54.502 info Connected to 192.168.118.123

                        mqtt.0 2017-01-20 22:43:22.483 info Disconnected from 192.168.118.123

                        mqtt.0 2017-01-20 22:41:23.425 info Connected to 192.168.118.123

                        При этом в событиях данных mqtt нет пока не сделаешь рестарт драйвера. Можно как-то повысить уровень логирования и видеть побольше?

                        @Bluefox:

                        Давай догадаюсь. Я встрою в настройки, что можно настроить "set" и поменять на "on". Ты попросишь, что бы можно было на каждую переменную настраивать. Верно? :lol: `

                        Ага :)

                        1 Reply Last reply
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          wrote on last edited by
                          #77

                          @Adav:

                          @Bluefox:

                          Было бы очень полезно, если бы ты смог помочь и посмотреть в чём проблема. У меня ошибка не воспроизводится и вероятность её исправления стремится таким образом к нулю. Ты же не показал ни каких логов и никаких wireshark записей. `

                          mqtt.0 2017-01-20 22:44:54.502 info Connected to 192.168.118.123

                          mqtt.0 2017-01-20 22:43:22.483 info Disconnected from 192.168.118.123

                          mqtt.0 2017-01-20 22:41:23.425 info Connected to 192.168.118.123

                          При этом в событиях данных mqtt нет пока не сделаешь рестарт драйвера. Можно как-то повысить уровень логирования и видеть побольше?

                          @Bluefox:

                          Давай догадаюсь. Я встрою в настройки, что можно настроить "set" и поменять на "on". Ты попросишь, что бы можно было на каждую переменную настраивать. Верно? :lol: `

                          Ага :) `
                          48_2017-01-20_20_53_48-iobroker.admin.png

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Adav
                            wrote on last edited by
                            #78

                            Спасибо! Значит так… попробовал эмулировать перезагрузку контроллера просто программно отключая на несколько минут на коммутаторе порт, где висит контроллер. В этом случае все нормально, поток данных 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 `

                            1 Reply Last reply
                            0
                            • BluefoxB Offline
                              BluefoxB Offline
                              Bluefox
                              wrote on last edited by
                              #79

                              Ну уже не плохо ;)
                              @Adav:

                              перегрузил его, стало нормально, но логи потерял. `
                              Логи потерять нельзя. Поройся в /opt/iobroker/log/2017_…log

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                Adav
                                wrote on last edited by
                                #80

                                @Bluefox:

                                Ну уже не плохо ;)
                                @Adav:

                                перегрузил его, стало нормально, но логи потерял. Логи потерять нельзя. Поройся в ****/opt/iobroker/log/2017_…log****

                                Потерял. Когда админ заглючил, я начал стирать и стер. Ну раз такое дело - перегрузил контроллер еще раз. В этот раз логи я просто взял по ссылке, не пытаясь с ними что-то делать в интерфейсе. Итог:

                                https://cloud.mail.ru/public/9rBC/mM5aYm4k6

                                Запустил дебаг, отправил контроллер в перезагрузку. Убедился, что контроллер перегрузился и что данные не приходят. Остановил дебаг, скопировал лог, перегрузил драйвер. Данные пошли. Или надо видеть логи и при рестарте драйвера?

                                1 Reply Last reply
                                0
                                • B Offline
                                  B Offline
                                  bondrogeen
                                  wrote on last edited by
                                  #81

                                  После обновления 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 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    Adav
                                    wrote on last edited by
                                    #82

                                    @bondrogeen:

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

                                    Установил сразу после появления версии 1.3.0 на github - таких проблем не наблюдаю. Установлено было на 3 разных серверах, работающих с одним контроллером (WB). На третьем (тестовом) недавно обновил до 1.3.1 - тоже пока нормально. Может у Вас проблема с источником данных mqtt?

                                    1 Reply Last reply
                                    0
                                    • B Offline
                                      B Offline
                                      bondrogeen
                                      wrote on last edited by
                                      #83

                                      До обновление все работало нормально, скопилось много обновлений сегодня решил все обновить.

                                      1 Reply Last reply
                                      0
                                      • Alex1808A Offline
                                        Alex1808A Offline
                                        Alex1808
                                        Developer
                                        wrote on last edited by
                                        #84

                                        Обнаружилась ошибка в коде 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

                                        на этот

                                        https://github.com/GermanBluefox/mqtt-p … oStream.js

                                        1 Reply Last reply
                                        0
                                        • B Offline
                                          B Offline
                                          bondrogeen
                                          wrote on last edited by
                                          #85

                                          Обновил node до 4 версии все заработало.

                                          1 Reply Last reply
                                          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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          182

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe