Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. аппаратные средства
    4. Железо
    5. ESP8266 протокол MQTT или как я сделал проверку что ESP в сети.

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    ESP8266 протокол MQTT или как я сделал проверку что ESP в сети.

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

      Спасибо! Попробую так как сделано у Вас.

      1 Reply Last reply Reply Quote 0
      • V
        v965 last edited by

        @aurodionov:

        Я для этих целей использую бордюры виджетов и крашу их в разный цвет скриптом

        ! ````
        // для этого в значение цвет прописать {javascript.0.system.ping.color}
        ! createState('system.ping.color', "blank"); // Отображает статус разными цветами
        ! //********************** Состояние Интернета *******************************
        on({id: 'ping.0.SmartHome.www_yandex_ru', change: 'ne'}, function (obj) {

        if (obj.newState.val === true) {
            setState('javascript.0.system.ping.color',"blank");
            toLog(' Интернет появился.', true, 'blue');
        

        }

        else if (obj.newState.val === false) {
        setState('javascript.0.system.ping.color',"red");
        toLog(' Интернет отвалился.', true, 'red');
        }
        });
        ```` `
        Что то я пытался, пытался но так и не вышло. (SmartHome.www_yandex_ru) заменял на ip адрес устройства в локальной сети (ESP) но никакого эффекта не получилось достичь. Код вставлял в поле цвет выбранного элемента в vis.

        Что я делал не так?

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

          Ок, тогда по порядку.

          В админке iobroker переходите в сетевые, там есть драйвер ping ,нажимаете плюсик справа ,начнётся установка драйвера.

          Когда драйвер поставится переходите на вкладку "настройка драйверов" ,ищете только-что установленный драйвер.

          Делаете настройки по аналогии с моими, соответственно подставляя свои значения .
          filename="Скриншот - Январь 5, 2017 2.39 PM.png" index="3">~~
          После того как заполните перечень интересующих ip адресов нажимаете сохранить и выйти.

          Теперь запускаете драйвер кнопкой плей. Запустились и драйвер должен начать пинговать адреса.

          Переходим на вкладку состояния. В поле id вписываем ping.0.

          Видим похожую картину
          filename="Скриншот - Январь 5, 2017 2.46 PM.png" index="2">~~
          Находим интересующий нас объект
          filename="Скриншот - Январь 5, 2017 2.47 PM.png" index="1">~~
          И уже его используем в скриптах.

          Например так
          filename="Скриншот - Январь 5, 2017 2.50 PM.png" index="0">~~
          Всё ,теперь при пропадании интернета будет красить в красный цвет.

          1 Reply Last reply Reply Quote 0
          • V
            v965 last edited by

            @aurodionov:

            Ок, тогда по порядку.

            В админке iobroker переходите в сетевые, там есть драйвер ping ,нажимаете плюсик справа ,начнётся установка драйвера.

            Когда драйвер поставится переходите на вкладку "настройка драйверов" ,ищете только-что установленный драйвер.

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

            Скриншот - Январь 5, 2017 2.39 PM.png

            После того как заполните перечень интересующих ip адресов нажимаете сохранить и выйти.

            Теперь запускаете драйвер кнопкой плей. Запустились и драйвер должен начать пинговать адреса.

            Переходим на вкладку состояния. В поле id вписываем ping.0.

            Видим похожую картину

            Скриншот - Январь 5, 2017 2.46 PM.png

            Находим интересующий нас объект

            Скриншот - Январь 5, 2017 2.47 PM.png

            И уже его используем в скриптах.

            Например так

            Скриншот - Январь 5, 2017 2.50 PM.png

            Всё ,теперь при пропадании интернета будет красить в красный цвет. `
            Ух тыж, спасибо! Теперь понятнее намного.

            1 Reply Last reply Reply Quote 0
            • V
              v965 last edited by

              1000000500 Извинений!

              Простите, я не правильно понял куда и что прописывать :shock:

              Посидев пару дней я таки допёр )))

              Я пытался прописывать скрипты в baсkground, а надо было просто скопировать в скрипты, изменить в строке имя (id) на нужные мне и в baсkground прописать ({javascript.0.system.ping.color}) :roll:

              Ну всё получилось и работает, спасибо за помощь!
              1795_______.jpg
              1795_2.jpg

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

                Рад ,что у Вас получилось

                1 Reply Last reply Reply Quote 0
                • N
                  nop0 last edited by

                  Променлива mqtt.0.info.connection указывает всех подключены MQTT клиенты. С помощи toString().split(",") получаем array с имен и потом делаем с них что угодно (считать, оповещать на телефоне кто пропал и т.д.).

                  1 Reply Last reply Reply Quote 0
                  • P
                    Palko last edited by

                    У меня реализовано немного по другому.

                    На сервере, в кроне, каждые 30 секунд генерится "0" в MQTT топик "status" для списка беспроводных девайсов. (по очереди, с небольшой задержкой друг относительно друга)

                    Все MQTT девайсы, получая "status" не зависимо от его содержания, отправляют свой status "1" на сервер.

                    Сервер все запоминает, и так по кругу).

                    но предидущая версия с парсингом может быть проще… если разбирать список не лень 🙂

                    1 Reply Last reply Reply Quote 0
                    • M
                      mrmomba last edited by

                      Я не говорю по-русски. Надеюсь, это понятно, что я пишу.

                      У меня время в Интернете гораздо проще просматривать. И я передаю от ESP термин с.

                      Для этого я использую следующий исходный код ESP:

                      [color]static unsigned long[/color] TMP_long_var_LaufzeitInSekunden = millis()/1000
                      client.publish(Value5.c_str(),String(TMP_long_var_LaufzeitInSekunden).c_str()); [color] // D04_Uptime[/color]
                      
                      

                      Таким образом, я вижу во время выполнения в секундах - и если это не изменится, я знаю, что случилось.

                      Вы можете поймать это через javascript.

                      Проверяйте каждые 15 минут

                      Время выполнения == Время выполнения

                      ОШИБКА

                      –------------------------------------------

                      Original / оригинал

                      Ich kann kein russisch. Ich hoffe es ist verständlich was ich schreibe.

                      Die Onlinezeit lasse ich mir viel einfacher anzeigen. Und zwar übermittel ich vom ESP die Laufzeit mit.

                      Dazu verwende ich folgenden Quelltext auf dem ESP:

                      [color]static unsigned long[/color] TMP_long_var_LaufzeitInSekunden = millis()/1000
                      client.publish("/mqtt/sensor1/uptime/",String(TMP_long_var_LaufzeitInSekunden).c_str()); [color] // D04_Uptime[/color]
                      
                      

                      Damit sehe ich in Laufzeit in Sekunden - und wenn sich das nicht ändert weiß ich das was falsch ist.

                      Das könnte man über ein Javascript abfangen.

                      Prüfe alle 15 Minuten

                      Laufzeit == Laufzeit

                      FEHLER

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

                        На самом деле это недочёты иоб.

                        Должно работать так: как только связь теряется, то quality состояния должно меняться на отличное от 0. И виджеты должны поддерживать отображение quality.

                        В системе уже штатно поддерживаются quality. Вот только их ещё mqtt не обрабатывает, а в виз по моему можно привязать иконку на qualitg

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

                          У себя проверку статусов железок которые используют MQTT для обмена с брокером организовал следующим образом.

                          Для каждого девайса создаю логическую переменную alive и в настройках mqtt клиента для этой переменной в подписке включаю галочку "как объект", т.е. mqtt-client будет ожидать в топике от устройства JSON объект.

                          В каждом девайсе ESP32 или ESP8266 настраиваю отправку каждые 60 секунд в топик alive следующей строки (объекта) - "{"val":true, "expire":70}".

                          Свойство expire это внутреннее свойство брокера, которое указывает на период жизни значения переменной. В моем случае 70 сек.

                          Работает это так. Если в течении 60 секунд ESP не обновило свой статус, то на 70й секунде брокер сам сбросит значение alive в пустышку.

                          Все что далее необходимо, это проверять наличие знаения true в переменной alive. Если истина, то устройство живое, если пусто, то что-то отвалилось.

                          1 Reply Last reply Reply Quote 0
                          • P
                            Pooh last edited by

                            @algar:

                            ..и в настройках mqtt клиента для этой переменной в подписке включаю галочку "как объект", т.е. mqtt-client будет ожидать в топике от устройства JSON объект. `
                            тема актуальная, но не понял…

                            т.е. надо кроме MQTT брокера еще и экземпляр MQTT клиента создать?

                            можно со скриншотами разжевать?

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

                              @Pooh:

                              тема актуальная, но не понял…

                              т.е. надо кроме MQTT брокера еще и экземпляр MQTT клиента создать?

                              можно со скриншотами разжевать? `

                              Ну у меня москито брокер стоит отдельно и в iobroker у меня есть только драйвер mqtt_client.

                              В картинках это выглядит так:

                              1. У объекта создаем свойство alive:
                              7907_obj.jpg

                              2. в настройках свойства включаем опцию mqtt клиента:
                              7907_obj_prop.jpg

                              3. в коде ESP32 шлем раз в минуту сигнал пульса вот так:
                              7907_mqtt_code.jpg

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              887
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              8
                              15
                              9184
                              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