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
    #41

    @VictorS:

    @MSapogov:

    @Bluefox:

    Создать в админ такой объект ручками `
    Сначала создаем в нужном устройстве lcd (у меня OLED дисплей), а потом внутри него line1, line2 и так далее…

    ! [imgioBroker.admin.png] `

    Спасибо, все получилось. Хотелось бы уточнить - надо для этой переменной ставить Role: variable, или text как у вас? У меня работает variable. Значит без разницы? Вообще на что влияет свойвство common.role? Сходу не нашел в ддокументации. `
    Role используется для отображения. Что бы знать, как это значение показывать в vis или mobile

    1 Reply Last reply
    0
    • V Offline
      V Offline
      VictorS
      wrote on last edited by
      #42

      @Bluefox:

      @VictorS:

      Добрый день всем,

      строку для отображения. Но проблема в том, что ESP не публикует этот топик (но подписан на все топики /nodename/* по willcard, следовательно получит информауию и обработает).

      Следовательно надо этот топик опубликовать средствами IOB. Вопрос - как? Создать в админ такой объект ручками

      Возникла странная проблема. Создаю объект руками, через админку назначаю значение, все отлично, по MQTT модуль принимает данные и отображает мгновенно.

      А вот когда я изменяю состояние этого объекта из JavaScript, то в админке вижу что состояние меняется, но модуль по MQTT обновления не получает. Пробовал setState с ask = true, и false,

      без разницы. При рестарте модуля ESP он читает данные из топика, но при обновлении из скрипта - нет.

      Куда копать, где грабли ? :)

      1 Reply Last reply
      0
      • aurodionovA Offline
        aurodionovA Offline
        aurodionov
        wrote on last edited by
        #43

        @VictorS:

        @Bluefox:

        @VictorS:

        Добрый день всем,

        строку для отображения. Но проблема в том, что ESP не публикует этот топик (но подписан на все топики /nodename/* по willcard, следовательно получит информауию и обработает).

        Следовательно надо этот топик опубликовать средствами IOB. Вопрос - как? Создать в админ такой объект ручками

        Возникла странная проблема. Создаю объект руками, через админку назначаю значение, все отлично, по MQTT модуль принимает данные и отображает мгновенно.

        А вот когда я изменяю состояние этого объекта из JavaScript, то в админке вижу что состояние меняется, но модуль по MQTT обновления не получает. Пробовал setState с ask = true, и false,

        без разницы. При рестарте модуля ESP он читает данные из топика, но при обновлении из скрипта - нет.

        Куда копать, где грабли ? :) `
        Попробуй слать и отслеживать с помощью mqtt-spy. Мне часто помогает помогает понять ,что происходит с mqtt

        Пишу с пульта….

        1 Reply Last reply
        0
        • V Offline
          V Offline
          VictorS
          wrote on last edited by
          #44

          @aurodionov:

          @VictorS:

          @Bluefox:

          Создать в админ такой объект ручками `

          Возникла странная проблема. Создаю объект руками, через админку назначаю значение, все отлично, по MQTT модуль принимает данные и отображает мгновенно.

          А вот когда я изменяю состояние этого объекта из JavaScript, то в админке вижу что состояние меняется, но модуль по MQTT обновления не получает. Пробовал setState с ask = true, и false,

          без разницы. При рестарте модуля ESP он читает данные из топика, но при обновлении из скрипта - нет.

          Куда копать, где грабли ? :) Попробуй слать и отслеживать с помощью mqtt-spy. Мне часто помогает помогает понять ,что происходит с mqtt

          Поставил mqtt-spy и вижу что MQTT драйвер не шлет ничего, когда топик обновляется из javascript. Мистика.

          Куда копать дальше?

          1 Reply Last reply
          0
          • I Offline
            I Offline
            instalator
            wrote on last edited by
            #45

            @VictorS:

            @aurodionov:

            @VictorS:

            Возникла странная проблема. Создаю объект руками, через админку назначаю значение, все отлично, по MQTT модуль принимает данные и отображает мгновенно.

            А вот когда я изменяю состояние этого объекта из JavaScript, то в админке вижу что состояние меняется, но модуль по MQTT обновления не получает. Пробовал setState с ask = true, и false,

            без разницы. При рестарте модуля ESP он читает данные из топика, но при обновлении из скрипта - нет.

            Куда копать, где грабли ? :) Попробуй слать и отслеживать с помощью mqtt-spy. Мне часто помогает помогает понять ,что происходит с mqtt

            Поставил mqtt-spy и вижу что MQTT драйвер не шлет ничего, когда топик обновляется из javascript. Мистика.

            Куда копать дальше? ` клиент подписан? Js скрипт запущен?

            Высокий уровень Децибел вреден для здоровья!

            http://blog.instalator.ru/

            1 Reply Last reply
            0
            • V Offline
              V Offline
              VictorS
              wrote on last edited by
              #46

              @instalator:

              @VictorS:

              @aurodionov:

              Попробуй слать и отслеживать с помощью mqtt-spy. Мне часто помогает помогает понять ,что происходит с mqtt `

              Поставил mqtt-spy и вижу что MQTT драйвер не шлет ничего, когда топик обновляется из javascript. Мистика.

              Куда копать дальше? клиент подписан? Js скрипт запущен?

              Да, конечно.

              1. Клиент (ESP) подписан, и обрабатывает изменение топика как нужно. Тут нет проблем. Ставим ручками в админке значение mqtt объекта, оно передается подписчикам (mqtt-spy подтверждает), ESP тоже получает и отрабатывает.

              2. Js скрипт запущен. Он производит установку значения объекта через setState. В админке я вижу что изменение состояние объекта есть (from: javascript.0). НО: mqtt-spy подписанный на этот топик не видит изменений. ESP соответственно тоже.

              Отсюда вывод: MQTT - брокер на IOB не рассылает изменения подписчикам. Топик (объект) MQTT создан ручками в админке. Может в этом дело? Не могу понять.

              1 Reply Last reply
              0
              • I Offline
                I Offline
                instalator
                wrote on last edited by
                #47

                @VictorS:

                @instalator:

                @VictorS:

                Поставил mqtt-spy и вижу что MQTT драйвер не шлет ничего, когда топик обновляется из javascript. Мистика.

                Куда копать дальше? клиент подписан? Js скрипт запущен?

                Да, конечно.

                1. Клиент (ESP) подписан, и обрабатывает изменение топика как нужно. Тут нет проблем. Ставим ручками в админке значение mqtt объекта, оно передается подписчикам (mqtt-spy подтверждает), ESP тоже получает и отрабатывает.

                2. Js скрипт запущен. Он производит установку значения объекта через setState. В админке я вижу что изменение состояние объекта есть (from: javascript.0). НО: mqtt-spy подписанный на этот топик не видит изменений. ESP соответственно тоже.

                Отсюда вывод: MQTT - брокер на IOB не рассылает изменения подписчикам. Топик (объект) MQTT создан ручками в админке. Может в этом дело? Не могу понять. ` а в какой ветке создан? Подписывается на отдельный топик или на всю ветку?

                Высокий уровень Децибел вреден для здоровья!

                http://blog.instalator.ru/

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  VictorS
                  wrote on last edited by
                  #48

                  @instalator:

                  @VictorS:

                  @instalator:

                  клиент подписан? Js скрипт запущен? `

                  Да, конечно.

                  1. Клиент (ESP) подписан, и обрабатывает изменение топика как нужно. Тут нет проблем. Ставим ручками в админке значение mqtt объекта, оно передается подписчикам (mqtt-spy подтверждает), ESP тоже получает и отрабатывает.

                  2. Js скрипт запущен. Он производит установку значения объекта через setState. В админке я вижу что изменение состояние объекта есть (from: javascript.0). НО: mqtt-spy подписанный на этот топик не видит изменений. ESP соответственно тоже.

                  Отсюда вывод: MQTT - брокер на IOB не рассылает изменения подписчикам. Топик (объект) MQTT создан ручками в админке. Может в этом дело? Не могу понять. а в какой ветке создан? Подписывается на отдельный топик или на всю ветку?

                  Вот видно на скрине (выделен красным) топик который я создал.

                  ! 1605_mqtt_topic.jpg

                  Клиент ESP подписывается регэкспом на всю свою ветку:

                  mqtt-0 2016-11-21 12:01:32.004 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^mqtt.0.sh-esp-klad..*/

                  mqtt-0 2016-11-21 12:01:32.003 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^sh-esp-klad..*/

                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    instalator
                    wrote on last edited by
                    #49

                    @VictorS:

                    @instalator:

                    @VictorS:

                    Да, конечно.

                    1. Клиент (ESP) подписан, и обрабатывает изменение топика как нужно. Тут нет проблем. Ставим ручками в админке значение mqtt объекта, оно передается подписчикам (mqtt-spy подтверждает), ESP тоже получает и отрабатывает.

                    2. Js скрипт запущен. Он производит установку значения объекта через setState. В админке я вижу что изменение состояние объекта есть (from: javascript.0). НО: mqtt-spy подписанный на этот топик не видит изменений. ESP соответственно тоже.

                    Отсюда вывод: MQTT - брокер на IOB не рассылает изменения подписчикам. Топик (объект) MQTT создан ручками в админке. Может в этом дело? Не могу понять. а в какой ветке создан? Подписывается на отдельный топик или на всю ветку?

                    Вот видно на скрине (выделен красным) топик который я создал.

                    ! mqtt_topic.jpg

                    Клиент ESP подписывается регэкспом на всю свою ветку:

                    mqtt-0 2016-11-21 12:01:32.004 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^mqtt.0.sh-esp-klad..*/

                    mqtt-0 2016-11-21 12:01:32.003 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^sh-esp-klad..*/ ` очень странно, последние версии драйверов? В настройках драйвера все ок? Дебаг Включи еще

                    Высокий уровень Децибел вреден для здоровья!

                    http://blog.instalator.ru/

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      MSapogov
                      wrote on last edited by
                      #50

                      Вот у меня MQTT в прошивке от MaksMS, стабильно работает только с авторизацией…

                      Но драйвер MQTT уже много с того времени потерпел изменений.

                      1 Reply Last reply
                      0
                      • V Offline
                        V Offline
                        VictorS
                        wrote on last edited by
                        #51

                        @instalator:

                        @VictorS:

                        @instalator:

                        а в какой ветке создан? Подписывается на отдельный топик или на всю ветку? `

                        Вот видно на скрине (выделен красным) топик который я создал.

                        ! mqtt_topic.jpg

                        Клиент ESP подписывается регэкспом на всю свою ветку:

                        mqtt-0 2016-11-21 12:01:32.004 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^mqtt.0.sh-esp-klad..*/

                        mqtt-0 2016-11-21 12:01:32.003 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^sh-esp-klad..*/ очень странно, последние версии драйверов? В настройках драйвера все ок? Дебаг Включи еще

                        Странно. Включил Trace output for every message: в настройках драйвера (версия 1.2.4, я так понимаю последняя). Но никаких дополнительных сообщений в логе с уровнем debug не увидел. Или я включил отладку не в том месте?

                        1 Reply Last reply
                        0
                        • V Offline
                          V Offline
                          VictorS
                          wrote on last edited by
                          #52

                          @MSapogov:

                          Вот у меня MQTT в прошивке от MaksMS, стабильно работает только с авторизацией…

                          Но драйвер MQTT уже много с того времени потерпел изменений. `

                          ну у меня он то работает и без авторизации с ESP. да и проблема не в ESP собственно, а в том, что почему-то MQTT не отдает изменения сделанные через JS . Причем только в случае с самодельным топиком. А управление gpio например на те же ESP работает отлично.

                          1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            Haus
                            wrote on last edited by
                            #53

                            @VictorS:

                            @instalator:

                            @VictorS:

                            Вот видно на скрине (выделен красным) топик который я создал.

                            ! mqtt_topic.jpg

                            Клиент ESP подписывается регэкспом на всю свою ветку:

                            mqtt-0 2016-11-21 12:01:32.004 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^mqtt.0.sh-esp-klad..*/

                            mqtt-0 2016-11-21 12:01:32.003 info Client [ESP8266001a53d2] subscribes on "sh-esp-klad.#" with regex /^sh-esp-klad..*/ очень странно, последние версии драйверов? В настройках драйвера все ок? Дебаг Включи еще

                            Странно. Включил Trace output for every message: в настройках драйвера (версия 1.2.4, я так понимаю последняя). Но никаких дополнительных сообщений в логе с уровнем debug не увидел. Или я включил отладку не в том месте? `
                            http://forum.iobroker.net/download/file … &mode=view

                            js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                            admin: 3.6.0

                            javascript: 4.1.10

                            web: 2.4.1 vis: 1.1.10

                            cloud: 2.6.2

                            Server: DELL FX170 / linux: Debian 9.5 Stretch

                            Adapter: MegaD-2561, Mega-ES…

                            1 Reply Last reply
                            0
                            • V Offline
                              V Offline
                              VictorS
                              wrote on last edited by
                              #54

                              @Haus:

                              @VictorS:

                              @instalator:

                              очень странно, последние версии драйверов? В настройках драйвера все ок? Дебаг Включи еще `

                              Странно. Включил Trace output for every message: в настройках драйвера (версия 1.2.4, я так понимаю последняя). Но никаких дополнительных сообщений в логе с уровнем debug не увидел. Или я включил отладку не в том месте? [http://forum.iobroker.net/download/file … &mode=view](http://forum.iobroker.net/download/file.php?id=6886&mode=view)

                              Спасибо, было перед глазами но не заметил :)

                              Впрочем проблема решилась следующим образом - я при помощи mqtt-spy запостил данные в созданный ручками объект топика MQTT. После этого видимо что-то внутри драйвера пришло в состояние шеншуя, и после этого апдейт топика из JS работает нормально, и сообщения уходят подписчикам.

                              По мере изучения IOB я все больше прихожу к пониманию необходимости приобретения шаманского бубна. Самый полезный инструмент, после синей изоленты, конечно :)

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                VictorS
                                wrote on last edited by
                                #55

                                Новая проблема с брокером MQTT.

                                Начал разбиратся почему при рестарте брокера иногда самопроизвольно включаются устройства, управляемые по MQTT, и вот что при включении логирования выяснил:

                                1. запуск mqtt брокера и подписка интересующего нас клиента

                                2016-11-23 10:58:23.135 - ^[[32minfo^[[39m: mqtt.0 Starting MQTT server on port 1883

                                2016-11-23 10:58:25.091 - ^[[32minfo^[[39m: mqtt.0 Client [color=#ff0000][ESP826600d3304e] connected

                                2016-11-23 10:58:25.104 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^sh-esp-ver2..*/

                                2016-11-23 10:58:25.105 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^mqtt.0.sh-esp-ver2..*/

                                2. Клиент получает от брокера сохраненное значение интересующего нас GPIO, посколько при создании топика установлен флаг retain : (пока все нормально, выход выключен)

                                2016-11-23 10:58:25.133 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//~~[color=#ff0000]~~sh-esp-ver2/output15] "/sh-esp-ver2/output15": 0

                                3. ESP отдает брокеру тоже самое:

                                2016-11-23 10:58:25.195 - ^[[34mdebug^[[39m: mqtt.0 Server received "[color=#ff0000]/sh-esp-ver2/output15" (number): 0

                                4. Брокер запоминает это:

                                2016-11-23 10:58:25.206 - ^[[34mdebug^[[39m: mqtt.0 stateChange mqtt.0.~~[color=#ff0000]~~sh-esp-ver2.output15: {"val":0,"ack":true,"ts":1479887905196,"q":0,"from":"system.adapter.mqtt.0","lc":1479887085735}

                                5. И шлет клиенту ESP нечто в своем внутреннем представлении. <u>Упс:</u>

                                2016-11-23 10:58:27.848 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//sh-esp-ver2/output15] "/sh-esp-ver2/output15": {"val":0}

                                6. Бедная ESP отпарсив очевидно это {"val":0} решает что надо включить GPIO что и делает, и бодро репортует брокеру:

                                2016-11-23 10:59:49.070 - ^[[34mdebug^[[39m: mqtt.0 Server received [color=#ff0000]"/sh-esp-ver2/output15" (number): 1

                                Вопрос по пункту 5: а зачем брокер шлет это подписчикам. И можно ли это отключить?

                                Может быть Bluefox может подключится и прокоментировать?

                                1 Reply Last reply
                                0
                                • I Offline
                                  I Offline
                                  instalator
                                  wrote on last edited by
                                  #56

                                  @VictorS:

                                  Новая проблема с брокером MQTT.

                                  Начал разбиратся почему при рестарте брокера иногда самопроизвольно включаются устройства, управляемые по MQTT, и вот что при включении логирования выяснил:

                                  1. запуск mqtt брокера и подписка интересующего нас клиента

                                  2016-11-23 10:58:23.135 - ^[[32minfo^[[39m: mqtt.0 Starting MQTT server on port 1883

                                  2016-11-23 10:58:25.091 - ^[[32minfo^[[39m: mqtt.0 Client [color=#ff0000][ESP826600d3304e] connected

                                  2016-11-23 10:58:25.104 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^sh-esp-ver2..*/

                                  2016-11-23 10:58:25.105 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^mqtt.0.sh-esp-ver2..*/

                                  2. Клиент получает от брокера сохраненное значение интересующего нас GPIO, посколько при создании топика установлен флаг retain : (пока все нормально, выход выключен)

                                  2016-11-23 10:58:25.133 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//~~[color=#ff0000]~~sh-esp-ver2/output15] "/sh-esp-ver2/output15": 0

                                  3. ESP отдает брокеру тоже самое:

                                  2016-11-23 10:58:25.195 - ^[[34mdebug^[[39m: mqtt.0 Server received "[color=#ff0000]/sh-esp-ver2/output15" (number): 0

                                  4. Брокер запоминает это:

                                  2016-11-23 10:58:25.206 - ^[[34mdebug^[[39m: mqtt.0 stateChange mqtt.0.~~[color=#ff0000]~~sh-esp-ver2.output15: {"val":0,"ack":true,"ts":1479887905196,"q":0,"from":"system.adapter.mqtt.0","lc":1479887085735}

                                  5. И шлет клиенту ESP нечто в своем внутреннем представлении. <u>Упс:</u>

                                  2016-11-23 10:58:27.848 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//sh-esp-ver2/output15] "/sh-esp-ver2/output15": {"val":0}

                                  6. Бедная ESP отпарсив очевидно это {"val":0} решает что надо включить GPIO что и делает, и бодро репортует брокеру:

                                  2016-11-23 10:59:49.070 - ^[[34mdebug^[[39m: mqtt.0 Server received [color=#ff0000]"/sh-esp-ver2/output15" (number): 1

                                  Вопрос по пункту 5: а зачем брокер шлет это подписчикам. И можно ли это отключить?

                                  Может быть Bluefox может подключится и прокоментировать? ` 4 ым пунктом просто говорит что объект изменился, 5ым пунктом шлет изменение клиенту. Что не так? Код Меги давай и настройкиmqtt

                                  Высокий уровень Децибел вреден для здоровья!

                                  http://blog.instalator.ru/

                                  1 Reply Last reply
                                  0
                                  • V Offline
                                    V Offline
                                    VictorS
                                    wrote on last edited by
                                    #57

                                    @instalator:

                                    @VictorS:

                                    Новая проблема с брокером MQTT.

                                    Начал разбиратся почему при рестарте брокера иногда самопроизвольно включаются устройства, управляемые по MQTT, и вот что при включении логирования выяснил:

                                    1. запуск mqtt брокера и подписка интересующего нас клиента

                                    2016-11-23 10:58:23.135 - ^[[32minfo^[[39m: mqtt.0 Starting MQTT server on port 1883

                                    2016-11-23 10:58:25.091 - ^[[32minfo^[[39m: mqtt.0 Client [color=#ff0000][ESP826600d3304e] connected

                                    2016-11-23 10:58:25.104 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^sh-esp-ver2..*/

                                    2016-11-23 10:58:25.105 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^mqtt.0.sh-esp-ver2..*/

                                    2. Клиент получает от брокера сохраненное значение интересующего нас GPIO, посколько при создании топика установлен флаг retain : (пока все нормально, выход выключен)

                                    2016-11-23 10:58:25.133 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//~~[color=#ff0000]~~sh-esp-ver2/output15] "/sh-esp-ver2/output15": 0

                                    3. ESP отдает брокеру тоже самое:

                                    2016-11-23 10:58:25.195 - ^[[34mdebug^[[39m: mqtt.0 Server received "[color=#ff0000]/sh-esp-ver2/output15" (number): 0

                                    4. Брокер запоминает это:

                                    2016-11-23 10:58:25.206 - ^[[34mdebug^[[39m: mqtt.0 stateChange mqtt.0.~~[color=#ff0000]~~sh-esp-ver2.output15: {"val":0,"ack":true,"ts":1479887905196,"q":0,"from":"system.adapter.mqtt.0","lc":1479887085735}

                                    5. И шлет клиенту ESP нечто в своем внутреннем представлении. <u>Упс:</u>

                                    2016-11-23 10:58:27.848 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//sh-esp-ver2/output15] "/sh-esp-ver2/output15": {"val":0}

                                    6. Бедная ESP отпарсив очевидно это {"val":0} решает что надо включить GPIO что и делает, и бодро репортует брокеру:

                                    2016-11-23 10:59:49.070 - ^[[34mdebug^[[39m: mqtt.0 Server received [color=#ff0000]"/sh-esp-ver2/output15" (number): 1

                                    Вопрос по пункту 5: а зачем брокер шлет это подписчикам. И можно ли это отключить?

                                    Может быть Bluefox может подключится и прокоментировать? 4 ым пунктом просто говорит что объект изменился, 5ым пунктом шлет изменение клиенту. Что не так? Код Меги давай и настройкиmqtt

                                    Не то что он шлет в топик не 0, а {"val":0}. Кроме того обрати внимание что в том state стоит флаг ask = true. А настройке mqtt драйвера сказано что не слать состояние с ask = true. Смори скрин с настройками ниже:

                                    ! 1605_mqtt_settings.jpg

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

                                      @VictorS:

                                      Новая проблема с брокером MQTT.

                                      Начал разбиратся почему при рестарте брокера иногда самопроизвольно включаются устройства, управляемые по MQTT, и вот что при включении логирования выяснил:

                                      1. запуск mqtt брокера и подписка интересующего нас клиента

                                      2016-11-23 10:58:23.135 - ^[[32minfo^[[39m: mqtt.0 Starting MQTT server on port 1883

                                      2016-11-23 10:58:25.091 - ^[[32minfo^[[39m: mqtt.0 Client [color=#ff0000][ESP826600d3304e] connected

                                      2016-11-23 10:58:25.104 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^sh-esp-ver2..*/

                                      2016-11-23 10:58:25.105 - ^[[32minfo^[[39m: mqtt.0 Client [ESP826600d3304e] subscribes on "sh-esp-ver2.#" with regex /^mqtt.0.sh-esp-ver2..*/

                                      2. Клиент получает от брокера сохраненное значение интересующего нас GPIO, посколько при создании топика установлен флаг retain : (пока все нормально, выход выключен)

                                      2016-11-23 10:58:25.133 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//~~[color=#ff0000]~~sh-esp-ver2/output15] "/sh-esp-ver2/output15": 0

                                      3. ESP отдает брокеру тоже самое:

                                      2016-11-23 10:58:25.195 - ^[[34mdebug^[[39m: mqtt.0 Server received "[color=#ff0000]/sh-esp-ver2/output15" (number): 0

                                      4. Брокер запоминает это:

                                      2016-11-23 10:58:25.206 - ^[[34mdebug^[[39m: mqtt.0 stateChange mqtt.0.~~[color=#ff0000]~~sh-esp-ver2.output15: {"val":0,"ack":true,"ts":1479887905196,"q":0,"from":"system.adapter.mqtt.0","lc":1479887085735}

                                      5. И шлет клиенту ESP нечто в своем внутреннем представлении. <u>Упс:</u>

                                      2016-11-23 10:58:27.848 - ^[[34mdebug^[[39m: mqtt.0 Send to client [ESP826600d3304e//sh-esp-ver2/output15] "/sh-esp-ver2/output15": {"val":0}

                                      6. Бедная ESP отпарсив очевидно это {"val":0} решает что надо включить GPIO что и делает, и бодро репортует брокеру:

                                      2016-11-23 10:59:49.070 - ^[[34mdebug^[[39m: mqtt.0 Server received [color=#ff0000]"/sh-esp-ver2/output15" (number): 1

                                      Вопрос по пункту 5: а зачем брокер шлет это подписчикам. И можно ли это отключить?

                                      Может быть Bluefox может подключится и прокоментировать? `
                                      Номер 5 действительно странно.

                                      Но вот что более странно, так это зачем клиенту знать о своих же состояниях при старте?

                                      Отключи выдавать собственные значения при старте.

                                      1 Reply Last reply
                                      0
                                      • V Offline
                                        V Offline
                                        VictorS
                                        wrote on last edited by
                                        #59

                                        @Bluefox:

                                        @VictorS:

                                        Новая проблема с брокером MQTT.

                                        …..

                                        Номер 5 действительно странно.

                                        Но вот что более странно, так это зачем клиенту знать о своих же состояниях при старте?

                                        Отключи выдавать собственные значения при старте.

                                        Ну собственно знать собcтвенные состояние при коннекте иногда полезно. Например было что-то включено, затем клиент ребутнулся по питанию, и IOB ему сделает Total Recall :)

                                        Отключить я попробую.

                                        Но все-таки может посмотреть в чем проблемы:

                                        1. брокер отдает state несмотря что в нем ask = true

                                        2. state отформатирован во внутреннем формате IOB (т.е. {"val":0}).

                                        В принципе если исправить п.2, чтобы слал без всяких тегов типа val: - это проблему бы решило, я так думаю.

                                        Но и с п.1. тоже по-хорошему разобратся бы надо. Мало ли где еще это вылезет.

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

                                          Я не пойму пока откуда это приходит {val: 0}, но попробуй заменить в lib/common.js функцию state2string на

                                          function state2string(val) {
                                              if (typeof val === 'object') {
                                                  if (val.ack === undefined && val.val !== undefined) {
                                                      if (val.val === null) return 'null';
                                                      return val.val.toString();
                                                  } else {
                                                      return JSON.stringify(val);
                                                  }
                                              } else {
                                                  return (val === null) ? 'null' : (val === undefined ? 'undefined' : val.toString());
                                              }
                                          }
                                          

                                          и перестартуй драйвер.

                                          Насчёт ack: true

                                          Mqtt сервер ещё и брокер. То есть он пересылает сообщения от клиентов mqtt другим участникам. Ну а так как твой клиент подписан на свои топики, то он их и получает.

                                          ack работает на сообщения, которые приходят со стороны ioBroker. От других драйверов.

                                          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

                                          224

                                          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