Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт ESP

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Скрипт ESP

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

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

      Так выглядит страница ESP http://IP/debug с прошивкой от Homesmart.
      380_3.jpg
      Когда есть соединение с MQTT State: Будет равен 15, а когда нет 7.

      Решено было следить за извинением ESP по пингу и в случаи появлении связи, проверять состояние State: и если оно равно 7, то перезагружать устройство.

      var request = require('request');
      on("ping.0.debian.192_168_1_35"/*ESP_F3F006*/, function (obj){  // подписываемся на изменения переменной 
          if (obj.newState.val ===true){       // Если появилась связь с ESP 
              sendTo("pushbullet", "Появилась связь с ESP35"); // отправляем сообщение через pushbullet
              log("Появилась связь с ESP35");  // записывает в лог
          request("http://192.168.1.35/debug", function (error, response, body) { // отправляем запрос ESP о состоянии
             var m = body.match(/State: ([0-9.]+)/); //создаем массив m присваиваем найденное в body значением со совпадение "State: "
             var espstate = m[1];              // создаем переменную espstate и присваиваем значения массива m[1]  
                if (espstate == 7) {           // если значения espstate = 7 
                  var url = "http://192.168.1.35/restart";  
                  request(url);                // отправляем запрос на перезагрузку ESP
                  sendTo("pushbullet", "Перезагрузка ESP35");  // отправляем сообщение через pushbullet
                  log("Перезагрузка ESP35");   // записывает в лог
             }
       });}
          else{
              log("Пропала связь с ESP35");     // записывает в лог 
              sendTo("pushbullet", "Пропала связь с ESP35");  // отправляем сообщение через pushbullet
          }    
      });
      
      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        @bondrogeen:

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

        Так выглядит страница ESP http://IP/debug с прошивкой от Homesmart.
        filename="3.jpg" index="0">~~
        Когда есть соединение с MQTT State: Будет равен 15, а когда нет 7.

        Решено было следить за извинением ESP по пингу и в случаи появлении связи, проверять состояние State: и если оно равно 7, то перезагружать устройство.

        var request = require('request');
        on("ping.0.debian.192_168_1_35"/*ESP_F3F006*/, function (obj){  // подписываемся на изменения переменной 
            if (obj.newState.val ===true){       // Если появилась связь с ESP 
                sendTo("pushbullet", "Появилась связь с ESP35"); // отправляем сообщение через pushbullet
                log("Появилась связь с ESP35");  // записывает в лог
            request("http://192.168.1.35/debug", function (error, response, body) { // отправляем запрос ESP о состоянии
               var m = body.match(/State: ([0-9.]+)/); //создаем массив m присваиваем найденное в body значением со совпадение "State: "
               var espstate = m[1];              // создаем переменную espstate и присваиваем значения массива m[1]  
                  if (espstate == 7) {           // если значения espstate = 7 
                    var url = "http://192.168.1.35/restart";  
                    request(url);                // отправляем запрос на перезагрузку ESP
                    sendTo("pushbullet", "Перезагрузка ESP35");  // отправляем сообщение через pushbullet
                    log("Перезагрузка ESP35");   // записывает в лог
               }
         });}
            else{
                log("Пропала связь с ESP35");     // записывает в лог 
                sendTo("pushbullet", "Пропала связь с ESP35");  // отправляем сообщение через pushbullet
            }    
        });
        ```` `  
        

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

        1 Reply Last reply Reply Quote 0
        • B
          bondrogeen last edited by

          @instalator:

          может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики? `
          В коде ESP?

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

            @bondrogeen:

            @instalator:

            может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики? В коде ESP?
            Ну да

            1 Reply Last reply Reply Quote 0
            • B
              bondrogeen last edited by

              @instalator:

              @bondrogeen:

              @instalator:

              может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики? В коде ESP?
              Ну да `

              Я писал об этом MaksMS, проблема возникает только у меня и с локальным MQTT брокером, но пока решения нет.

              1 Reply Last reply Reply Quote 0
              • Z
                znammut last edited by

                Приветствую, ошибка возникает не только у вас. У меня правда ESP на даче.

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

                  Странно, может зависит от версии АПИ, так как у меня такой проблемы не наблюдается.

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

                    У меня тоже прошивка от MaksMS использую управление RGB подсветкой 3 порта как PWM.

                    Управляю через MQTT.

                    Сейчас еще с помощью здешнего сообщества сделал вывод на OLED информации об времени, громкости, названии трека в Squezee.

                    А так-же управление громкостью, паузой, вкл/выкл при помощи 4-х кнопок (как прерывания).

                    Все по MQTT работает уже неделю бес сбоев с локальным MQTT брокером (правда с авторизацией)

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    933
                    Online

                    31.7k
                    Users

                    79.6k
                    Topics

                    1.3m
                    Posts

                    5
                    8
                    2904
                    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