Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    768

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    577

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

Драйвер MQTT

Geplant Angeheftet Gesperrt Verschoben ioBroker драйвера
162 Beiträge 31 Kommentatoren 52.1k Aufrufe 1 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #66

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

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

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      Adav
      schrieb am zuletzt editiert von
      #67

      Добрый день!

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

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

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

      Спасибо!

      1 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #68

        @Adav:

        Добрый день!

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

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

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

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

        http://iobroker.net:8000

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          Adav
          schrieb am zuletzt editiert von
          #69

          @Bluefox:

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

          http://iobroker.net:8000 `

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

          1 Antwort Letzte Antwort
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            schrieb am zuletzt editiert von
            #70

            @Adav:

            Добрый день!

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

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

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

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

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              Adav
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                schrieb am zuletzt editiert von
                #72

                @Adav:

                @Bluefox:

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

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

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  Adav
                  schrieb am zuletzt editiert von
                  #73

                  @Bluefox:

                  @Adav:

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

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

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    Adav
                    schrieb am zuletzt editiert von
                    #74

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

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

                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #75

                      @Adav:

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

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

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        Adav
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            Adav
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • BluefoxB Offline
                              BluefoxB Offline
                              Bluefox
                              schrieb am zuletzt editiert von
                              #79

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

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

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                Adav
                                schrieb am zuletzt editiert von
                                #80

                                @Bluefox:

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

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

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

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

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

                                1 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  bondrogeen
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    Adav
                                    schrieb am zuletzt editiert von
                                    #82

                                    @bondrogeen:

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

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      bondrogeen
                                      schrieb am zuletzt editiert von
                                      #83

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • Alex1808A Offline
                                        Alex1808A Offline
                                        Alex1808
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • B Offline
                                          B Offline
                                          bondrogeen
                                          schrieb am zuletzt editiert von
                                          #85

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

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          395

                                          Online

                                          32.8k

                                          Benutzer

                                          82.9k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe