NEWS
Скрипт ESP
-
Проблема в том, что если по какой-то причине на время пропадает связь с роутером, то ESP перестает передавать данные по MQTT, пока ее не перегрузишь.
Так выглядит страница ESP http://IP/debug с прошивкой от Homesmart.
Когда есть соединение с 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 } });
-
Проблема в том, что если по какой-то причине на время пропадает связь с роутером, то 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 } }); ```` `
может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики?
-
может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики? `
В коде ESP? -
может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики?
В коде ESP?
Ну да -
может быть в коде не хватает условия чтобы при пропадании связи железяка заново подписывалась на топики?
В коде ESP?
Ну да `Я писал об этом MaksMS, проблема возникает только у меня и с локальным MQTT брокером, но пока решения нет.
-
Приветствую, ошибка возникает не только у вас. У меня правда ESP на даче.
-
Странно, может зависит от версии АПИ, так как у меня такой проблемы не наблюдается.
-
У меня тоже прошивка от MaksMS использую управление RGB подсветкой 3 порта как PWM.
Управляю через MQTT.
Сейчас еще с помощью здешнего сообщества сделал вывод на OLED информации об времени, громкости, названии трека в Squezee.
А так-же управление громкостью, паузой, вкл/выкл при помощи 4-х кнопок (как прерывания).
Все по MQTT работает уже неделю бес сбоев с локальным MQTT брокером (правда с авторизацией)