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 брокером, но пока решения нет.
-
У меня тоже прошивка от MaksMS использую управление RGB подсветкой 3 порта как PWM.
Управляю через MQTT.
Сейчас еще с помощью здешнего сообщества сделал вывод на OLED информации об времени, громкости, названии трека в Squezee.
А так-же управление громкостью, паузой, вкл/выкл при помощи 4-х кнопок (как прерывания).
Все по MQTT работает уже неделю бес сбоев с локальным MQTT брокером (правда с авторизацией)
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