Доработка розетки SONOFF® S20. Используется для перезагрузки роутера.


Я расскажу о нестандартном применении управляемой розетки. Она будет автоматически перезагружать роутер при пропадании интернета.
Как известно лень — двигатель прогресса… Я живу в частном доме и иногда пропадает интернет, а потом то ли роутер зависает, то ли не обновляет подключение к сети, но главное без перезагрузки интернет не восстанавливается. Все бы и не страшно, но надо надо лезть к роутеру, а он не на видном месте стоит, так я еще и с соседом делюсь интернетом, а по закону подлости когда пропадает интернет и меня нет дома. Решение вопроса описано в статье…

Вот и появилась идея сделать автоматическую перезагрузку роутера. Я для этого даже купил плату ESP8266 и реле, но вот все это собрать в готовое изделие руки не доходили, хотя у меня и 3D принтер есть. Правда больше на заказ печатаю, а для себя уже и руки не доходят.
Случайно увидел распродажу розеток SONOFF® S20 и понял, что не стоит самому мучится, что-то паять и конструировать, когда уже все готовое есть только прошивку осталось написать, ну это уже проще :)
Правда еще 2 месяца ждал когда пришлют, видимо не хотели со скидкой продавать, но я то не тороплюсь…
Прислали розетку, поигрался я с родной прошивкой, обзоры в сети есть, но что-то постоянно отваливается она от моего роутера и решил я ее перепрошить.
Фото розетки:

Разобрал розетку.

Для первой перепрошивки необходимо необходимо припаять разъем для подключения адаптера. Адаптер у меня уже был.

Припаял разъем. Распиновка разъема с лева на право: +3.3в, RХ, TX, GND.

Подключил адаптер

Прошивку я писал в среде Arduino ide 1.8.5
Для правильной прошивки данной розетки необходимо установить следующие настройки платы:

Для перевода розетки в режим прошивки надо нажать кнопку на плате розетки и не отпуская подключить адаптер в USB компьютера, подождать не менее 3 сек, затем отпустить. При прошивке подавать 220в на розетку нельзя! Питание берется с платы адаптера.
В программе использовал библиотеку ESP8266Ping.
Текст программы
#include <ESP8266WiFi.h>
#include <ESP8266Ping.h>

const char* ssid = «ssid»; // подставить название своей сети WiFi
const char* password = «password»; //подставить пароль свой сети WiFi
//IPAddress ip(192, 168, 1, 70); //Node static IP
//IPAddress gateway(192, 168, 0, 1);
//IPAddress subnet(255, 255, 255, 0);

//const char* remote_host = «www.ya.ru»; //адрес для пинга
const IPAddress remote_ip(87, 250, 250, 242); // адрес для пинга
unsigned long previousMillis = 0;
const long interval = 300; //интервал между пингами в сек
const long T_ROUTER = 60; // время ожидания загрузки роутера в сек
const long T_RELAY = 5; // задержка от выключения реле до включения в сек

int PIN_RELAY = 12;
int PIN_LED = 13;
int PIN_BUTTON = 0;
int COUNT_PING = 0; //количество попыток при отсутствии пинга (не задается)
int COUNT_PING_MAX = 2; //максимальное количество отсутствия пинга до перезагрузки роутера
int COUNT_WIFI = 0; //счетчик попыток подключения к WiFi
int COUNT_WIFI_MAX = 60; //300; // Таймаут до перезагрузки роутера при отсутствии WiFi в сек

void setup()
{
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_RELAY, OUTPUT);
pinMode(PIN_BUTTON, INPUT);
digitalWrite(PIN_RELAY, HIGH);
digitalWrite(PIN_LED, LOW);
Serial.begin(115200);
delay(10);
attachInterrupt(PIN_BUTTON, Click, FALLING);
}

void ConnectWIFI()
{
Serial.println(«Подключаюсь к WiFi»);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
// WiFi.config(ip, gateway, subnet);
while (WiFi.status() != WL_CONNECTED)
{
if (COUNT_WIFI <= COUNT_WIFI_MAX)
{
COUNT_WIFI++;
}
else
{
Serial.println();
Relay(); //перезагружаемся так как нет подключения к WiFi
Serial.println(«Подключаюсь к WiFi»);
}
//Serial.println(WiFi.status());
digitalWrite(PIN_LED, !digitalRead(PIN_LED)); //моргаем зеленым светодиодом
delay(1000);
Serial.print(".");
}
COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi
Serial.println();
Serial.print(«WiFi подключен, ip: „);
Serial.println(WiFi.localIP());
//Serial.println(WiFi.status());
digitalWrite(PIN_LED, LOW); // зажигаем зеленый светодиод
COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов
}

void Relay()
{
if (digitalRead(PIN_RELAY) == HIGH)
{
digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке
Serial.println(“Реле ВЫключено»);
}
delay(T_RELAY*1000);
digitalWrite(PIN_RELAY, HIGH); //включаем питание на розетке
Serial.println(«Реле Включено, ждем загрузки роутера»);
delay(T_ROUTER*1000); // ждем загрузки роутера
COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов
COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi
previousMillis = 0;
}

void Click()
{
digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке
Serial.println(«Реле выключено кнопкой»);
}

void loop()
{
if (WiFi.status() != WL_CONNECTED) // нет подключения к WiFi
{
ConnectWIFI(); //подключаемся к WiFi
}
unsigned long currentMillis = millis();
if (((currentMillis — previousMillis) >= interval*1000) && (digitalRead(PIN_RELAY) == HIGH) && (WiFi.status() == WL_CONNECTED))
{
previousMillis = currentMillis;
Serial.print(«Попытка пинга: „);
//Serial.println(remote_host);
Serial.println(remote_ip);
//if(Ping.ping(remote_host))
if (Ping.ping(remote_ip))
{ //пинг есть
Serial.println(“Пинг есть!!»);
COUNT_PING = 0;// сбрасываем счетчик неуспешных пингов
} else
{ // пинга нет
Serial.print(«Пинг отсутствует :( „);
COUNT_PING ++;
Serial.println(COUNT_PING);
}
}
if (COUNT_PING >= COUNT_PING_MAX) // если превышено количество попыток пинга перезагружаем роутер
{
Relay();
}
if (digitalRead(PIN_RELAY) == LOW) // нажата кнопка, перезагружаем роутер
{
Relay();
}
}

Для тех у кого не правильно отображается скетч, можно скачать его тут yadi.sk/d/clFbY0LH3QysJ7
Суть работы заключается в следующем. Розетка подключается к домашней сети WiFi и с периодом 5 минут пингует сервер яндекса. При отсутствии пинга более двух периодов по 5 минут розетка отключает питание на 5 секунд, далее ждет 1 минуту для загрузки роутера и пытается пинговать опять. При отсутствии подключения к WiFi, так же перезагружает роутер.
При нажатии на кнопку, так же происходит отключение питания на 5 секунд для ручной перезагрузки роутера.
Все временные интервалы можно поменять на нужные вам.Текст программы хорошо прокомментирован, думаю кому надо разберутся. В крайнем случае обращайтесь в личку, помогу подправить текст программы.
В данный момент еще тестирую розетку на столе, а затем поставлю в работу. За несколько дней проблем в работе не заметил.
Для мониторинга работы хотел отправлять количество перезагрузок роутера на сайт народного мониторинга. Как сделаю, то дополню обзор.
А какое не стандартное применение розетки нашли вы?
Планирую купить +81 Добавить в избранное +89 +172
+
avatar
  • Evgene
  • 25 декабря 2017, 22:17
+2
Доброго времени суток!

Я же правильно понимаю, что прошивка подойдёт не только для розетки, но и для Sonoff Basic?
+
avatar
  • sir0ta
  • 25 декабря 2017, 22:27
+5
Для любой esp8266
+
avatar
0
Здравствуйте! А реле нужно низкого уровня? на 5 В?
+
avatar
  • sir0ta
  • 28 января 2019, 09:17
0
Какое реле? Куда?
+
avatar
0
Статья «Доработка розетки SONOFF® S20. Используется для перезагрузки роутера». У меня есть NodeMCU, хочу повторить устройство. Выводы пронумерованы реле =12, Led=13 (в статье). В Nodemcu это D6 и D7 соответственно?
+
avatar
0
Правильно? Поправьте! Я первый раз, разбираюсь )

int PIN_RELAY = D6;
int PIN_LED = D7;
int PIN_BUTTON = D0;
int COUNT_PING = 0; //количество попыток при отсутствии пинга (не задается)
int COUNT_PING_MAX = 2; //максимальное количество отсутствия пинга до перезагрузки роутера
int COUNT_WIFI = 0; //счетчик попыток подключения к WiFi
int COUNT_WIFI_MAX = 60; //300; // Таймаут до перезагрузки роутера при отсутствии WiFi в сек

Реле управляется низким уровнем или высоким?
+
avatar
  • sir0ta
  • 28 января 2019, 10:02
0
У реле будет 2 положения NC и NO. Соответственно… управляется обоими ) Но по умолчанию низкий уровень (опять де все зависит от реализации).
Nodemcu это D6 и D7 соответственно?
Открой распиновку обоих и сравни.
+
avatar
0
Отличная помощь)) Я знаю, что реле есть низкого уровня и высокого. Я спрашивал, в данной статье используется реле L или H… Распиновку я смотрел. Вот я и спрашиваю, pin =12 — это GPIO12 и на NodeMCU D6?
+
avatar
  • sir0ta
  • 28 января 2019, 11:52
-1
Отличная помощь
Я тебе обязан чем-то?
Я спрашивал, в данной статье используется реле L или H
Я по чем знаю? Открой код и посмотри.
Распиновку я смотрел. Вот я и спрашиваю, pin =12 — это GPIO12 и на NodeMCU D6?
Не заметно что смотрел.
+
avatar
  • k_r_a_b
  • 25 декабря 2017, 22:36
+6
Да, подойдет
+
avatar
  • IRAKLI
  • 30 апреля 2018, 08:09
0
Помогите, пожалуйста, подредактировать скетч для ESP. Я не силен в ардуинках, не могу понять как указать ногу, которую нужно дергать при отсутствии пинга. Насколько понял, вы планировали на nodemcu собирать, может есть уже подредактированный скетч под нее. Буду очень признателен, спасибо.
+
avatar
  • IRAKLI
  • 30 апреля 2018, 13:54
0
Вроде понял, int PIN_RELAY = 12; это нога, которую будет дергать, правильно?
+
avatar
  • k_r_a_b
  • 30 апреля 2018, 17:47
0
Все верно.Не получиться, пишите в личку, помогу.
+
avatar
  • Deimos
  • 25 декабря 2017, 22:17
+9
Обзор полезный! плюсую…
Сам мучаюсь. У меня в магазине установлена система видеонаблюдения. Иногда захожу удаленно, посматриваю что там да как… Но периодически интернет отваливается. Просто пропадает соединение, ничего не грузит и не передает. (Роутер менял, переспрашивал, провайдера звонками мучал, но так и не решил проблему)
Помогает только перезагрузка роутера. Ваше решение вполне себе может мне помочь. У меня имеется в хозяйстве несколько подобных управляемых розеток от Broadlink, но видимо придется еще и такую заказать. А то я совсем далек от программирования и подобных перепрошивок. Для того что бы разобраться самому потребуется очень много времени. Так что я уж лучше по вашим следам, по протоптанным дорожкам))
+
avatar
  • kalobyte
  • 25 декабря 2017, 22:21
0
а что за роутеры и какой тип соединения инторнета?
+
avatar
+14
чисто из интереса: а какой роутер у вас стоит?
я к тому, что может вместо костылей из розеток — поменять роутер?
три таких розетки = один роутер))
или сменить провайдера…

на работе сякие разные зухели стоят лохматых годов, дома кинетик лайт лет шесть уже без принудительных перезагрузок…
наверное, вопрос решается просто…
+
avatar
  • Burann
  • 31 декабря 2017, 20:12
0
Если не в лом, какой кинетик?
И хочу уточнить, вы хотите сказать, что если пропадет электричество на три -4 часа, то вашему кинетику пофигу и перезагружать его совсем ни разу не надо?
А в чем же секрет этого производителя, что все остальные требуют перезагрузку, а этому все по барабану?
Очень даже интересно, т.к. у нас на сельпо такая болезнь яро присутствует и не знали чем лечить, оказывается надо срочно закупить партию Zyxel Keenetic Lite и все забудут эту проблему?
Я прав?
+
avatar
+1
В некоторых роутерах есть ватчдог. Сам себя перегружает при отсутствии пинга. И да, я больше люблю пинговать 8.8.8.8
+
avatar
  • Burann
  • 02 января 2018, 15:33
0
в нек.???
например?
+
avatar
0
Ну у меня трудится уже упомянутый микротик.
+
avatar
  • Burann
  • 03 января 2018, 07:03
0
а какой упомянутый? нигде не написана модель из 4-х существующих и мне известных.
+
avatar
0
У меня модель hAP lite

Одна из самых простых, и ватчдог присутствует. Думаю, что в остальных тоже есть.
+
avatar
+1
Так тот, который AC — поддерживает стандарт AC (5ГГц). Собственно, вот и разница в цене.
+
avatar
  • Burann
  • 03 января 2018, 22:17
0
как сильно актуален АС 5 ггц? в домашнем хозяйстве.
мне важно чтобы был Watchdog
+
avatar
+1
Ну во-первых, устройства, подключаемые к маршрутизатору тоже должны быть AC (иначе не имеет смысла);
Во-вторых: если перегружен диапазон 2.4;
Ну и в третьих — это, возможно, скорость. Но не думаю что так существенно в домашнем хозяйстве. У меня 2.4 версия. Проблем нет (точнее чуть подглючивал до обновления). Настроил с телефона за 5 минут (вопреки сложившемуся мнению, вполне работает из коробки, если не требуются специфические настройки)
+
avatar
+6
То есть, пока роутер перезагружается (секунд 30-60), в магазине не будет видеонаблюдения?
Отличная идея.
+
avatar
  • kvolk
  • 25 декабря 2017, 22:42
+46
Да полностью бредовая идея, пропал маршрут до яндекса — ребут. Провайдер косякнул с маршрутом — ребут. В конце концов у Яндекса отключат ответ на icmp — и будем ребутиться по кругу. Самый старый кинетик прекрасно сам переподнимает соединение. Меняйте роутер.

Из той же оперы, был у нас псевдо сервер на freebsd 5, в общем плохо ему было иногда, зависал на кёрнелл паник и не перезагружался сам пока на клавиатуре любую кнопку не нажмёшь. В общем поставили мы клавиатуру вертикально на скотч, на втором сервере накатали скрипт который при отсутствии пинга сервера фриибсд выезжал сидюком и бил по клавиатуре отправляя сервер в перезагрузку. Сменился как-то внутренний айпишник у этого псевдосервера, приходим в серверную смотрим и плачем — один сервер лупит другой сидюком по клавиатуре, прямо в кнопку Enter, а тот ему отвечает: «Ligin incorrect». Восстание машин, блин.
+
avatar
+7
Машины здесь точно ни при чем, и клаву надо было синей изолентой приматывать.
+
avatar
  • FloX
  • 26 декабря 2017, 08:51
+3
смешно конечно
когда у северов айпишники на пустом месте меняются

а когда единственный интернет это adsl от ростелекома с его глючными роутерами/модемами, гнилыми проводами и просто залипающем интернете, когда коннект есть, а трафика нет, то такая пинговалка вполне себе решение.
я сделал на esp+реле. пингую 8.8.8.8. все работает как часы
+
avatar
  • kvolk
  • 26 декабря 2017, 09:59
0
смешно конечно
когда у северов айпишники на пустом месте меняются
Ничего в этом сверхестественного не вижу, особенно если внутренний интерфейс сидит на DHCP и это не сервер, а «псевдосервер» аля коллофдьютилокалсервер/фтп помойка — нам вообще было всё равно какой у него айпишник на внутреннем (одном из нескольких дополнительных) интерфейсов, посмотрели что выдал нам ifconfig, то в скрипт и списали.
+
avatar
0
Может надо было по MAC определять IP адрес, а потом уже пинговать и ребутить?
+
avatar
  • kvolk
  • 26 декабря 2017, 11:57
0
Надо было просто обновить/переустановить ОС, но на это просто не было ни времени ни желания :)
+
avatar
  • Akzi
  • 24 июня 2021, 16:18
0
мне для видеорегистратора. одна ip камера стабильно отрубается. ежедневно. и исит до перезагрузки " «умного» ai PoE коммутатора". но бп у "«умного » ai poe коммутатора" встроен внутрь. и сильно греется (в утепленном гараже (иначе бы там просто под 100+ градусов нагревалось бы)
крч надо 220В отрубать. а пинговать 4, 6, 8 камер.
«умный » коммутатор весело мигает у каждого ethernet коннектора, но это ничего не значит. видеорегистратор не видит, камеру по сети не отпинговать)

сейчас пусть кто-ниб из монтажников из компании (за биг прайс и еще на гарантии) поправляют. а потом уже как-ниб сам. м.быть хватит коммутатор просто поменять. или камеру.
+
avatar
  • clihlt
  • 31 декабря 2017, 02:26
0
Смотря какой интернет. У меня вот через свисток йоты и в целом все хорошо, но иногда этот свисток виснет. Причем микротик умеет питание свистка передергивать, но это не помогает, видать паразитно подсасывает с линии данных. Только физический передерг свистка рулит. Или ребут всего роутера.
+
avatar
  • Astat
  • 25 декабря 2017, 23:11
+5
Почему? Наверно, камеры подключены к видеорегистратору на прямую или к серверу через отдельный свитч/маршрутизатор по локальной сети. И отключения роутера не как не должно повлиять на работу систем видеонаблюдения. Инет нужен только для подключения к серверу/видеорегистратору для удаленного просмотра записей с камер.
+
avatar
  • kvolk
  • 25 декабря 2017, 23:16
0
Хранить записи с видеокамеры так же можно на удалённых серверах, иногда это более эффективно.
+
avatar
  • Astat
  • 25 декабря 2017, 23:56
+2
Эффективность удаленного сервера резко падает при плохом интернете. Да и вообще можно сервер с десятком «винтов» на пару терабайт и одновременно зеркалить на удаленный сервер через разных провайдеров по оптике и беспроводным сетям (если какой из них отрубиться шло через резервное подключение)… Вопрос в другом, как найти золотую середину между желанием и возможностью.
+
avatar
  • denis999
  • 25 декабря 2017, 22:52
0
это дороже, но без переделок. ORCAM R2 правда в питере — 3800р. фишка в управлениии звонком «другу»(на вставленную симку). один звонок выключил второй — включил. а можно и не включать (если решили подождать подольше). можно через смс. такой уже аппарат дешевле до 2500р. с сетевым оборудованием на расстоянии 50км справляюсь только этим способом.
внешне одинаковые с данным экземпляром.

забыл добавить эта штука если вырубали питание сообщает об этом смской чтобы вы включили там всё. выручает эта смска очень сильно!

… блин и не реклама, потомучто на маркете как-то грустно с предложениями… скорее всего новее что-то вышло
+
avatar
  • Sabj
  • 26 декабря 2017, 06:20
0
По обзору — ни в коем случае не коммутируйте нагрузку как написано на блоке — 2,2 кВт (китайская мощность)!
У самого подобным gsm сигнализация занимается. Коммутирует дозвоном нагрузку (можно СМС). Видео ( sova900.ru/gsm_rele.html ) на офф. сайте… своё видео позже сделаю. цена от 1800 руб. может даже баланс показывать.!
+
avatar
  • Nordix
  • 25 декабря 2017, 22:20
+30
Год назад поставил себе микротик, правда промудохался 3 дня настраивая его. Ну так вот, некоторые роутеры, оказывается, перезагружать не нужно)
+
avatar
  • kalobyte
  • 25 декабря 2017, 22:22
0
только хотел про микротик написать
сейчас обмазываюсь роликами про микротики, в новом году куплю набор для обучения и ubiquiti тоже
+
avatar
  • sir0ta
  • 25 декабря 2017, 22:30
0
Мало того, он сам интерфейсы может рестартить ) при чем некоторые можно перед этим даже отключить.
+
avatar
+1
зухели годами работают…
+
avatar
+3
atom 230 на d945gclf под бсдёй тоже ни разу не перезагружал из за зависания)
+
avatar
  • FloX
  • 26 декабря 2017, 08:52
+2
adsl ваш микротик умеет?
+
avatar
+3
Не аппологет микротика, но оный умеет pppoe. Берете свой ADSL модем, переводите в бридж и настраиваете pppoe на микротике. 95% висюков снимаются. Если же Ваш модем и в бридже вешается, то меняете оный и снова см п.1.
+
avatar
  • FloX
  • 27 декабря 2017, 07:56
+1
дак виснет то как раз адсл-модем
менять то на что? он провайдерский. и вместо него дадут такой же. уже меняли
линия дерьмовая. провода гнилые. техники провайдера приезжают раз в неделю.

и вы предлагаете вместо одного устройства два. причем второе явно дороже розетки которая умеет ребутить.
+
avatar
0
Виснет как? Так что и на его админку не зайти? Если да, то дальше комментарий не читайте, а меняйте модем.
Если при висяке на админку модема зайти возможно, то в Вашем случае, возможно, после отваливания ATM и реконнекта оного провайдерский модем не переустанавливает pppoe соединение.
Попробую объяснить еще раз. Переключите провайдерский модем в режим бриджа, а PPPOE соединение настройте на компьютере, с галочкой автореконнекта. Если после этого модем «виснуть» перестанет и не будет требовать передергивания, то мои слова, написанные выше, имеют смысл.
И не обязательно микротик. Можно любой роутер, умеющий делать корректно PPPoE.
+
avatar
0
дак виснет то как раз адсл-модем
У нас тоже вис длинк какойто.
Но после перевода в режим — тупо модем и подключению к Микротику уже три года ни одного зависания.
+
avatar
+1
а еще у них есть встроенный функционал, который автор сделал в розетке)
+
avatar
0
Тоже про микротик хотел написать, уже 6 лет без перезагрузок из-за пропавшего инета, только для обновлений.
+
avatar
  • Snakepit
  • 25 декабря 2017, 22:26
+4
У роутеров xiaomi есть функция перезагрузка по расписанию.
Но поражаюсь насколько у некоторых работает ум и имеются прямые руки)
Плюс заслуженный, обзор многим будет полезен.
+
avatar
  • sir0ta
  • 25 декабря 2017, 22:28
+1
У вас свет по расписанию выключают?
+
avatar
  • Snakepit
  • 25 декабря 2017, 22:34
0
Мосэнерго нет, но я сам по расписанию выключаю некоторый)
К чему вопрос то?
+
avatar
  • sir0ta
  • 25 декабря 2017, 22:37
0
Электричество.
+
avatar
  • Snakepit
  • 25 декабря 2017, 22:53
0
Я наверное туплю, не понимаю)
Роутер как-то по другому перезагружается софтово, нежели его физически через реле перезапускать.
+
avatar
  • dark256
  • 26 декабря 2017, 00:00
+3
У меян провайдер Пчелайн (СПб).
При потере соединения и звонке в техсуппорт слышу следующее:
— Меееедленно вытащите роутер из розееетки… Выыыыыыждите 60 секуууунд… И так же мееееедленно включите его обратно. Повторите.
— ^*&%&^%!!!
— Софт ребут?.. Не, не слышали.
+
avatar
+4
«Повторите» — в смысле repeat?

1 power off router
2 delay 60s
3 power on router
4 goto 1
?
+
avatar
  • dark256
  • 26 декабря 2017, 08:14
0
repeat {
1
2
3
} until ( internet )
:)
+
avatar
  • c2d
  • 26 декабря 2017, 00:49
+1
Просто в ТП обычно такие троглодиты звонят, что для них даже вышеописаные действия подвиг.
Поэтому и забивают микроскопом гвозди.
+
avatar
  • sir0ta
  • 26 декабря 2017, 06:37
+1
Как Одмин могу сказать так «7 бет, один ресет».
Часто и густо подобное помогает.
+
avatar
  • sir0ta
  • 26 декабря 2017, 07:59
+1
Просто в ТП обычно такие троглодиты звонят, что для них даже вышеописаные действия подвиг.
Как Одмин могу сказать так «7 бед, один ресет».
Тем более в таком зоопарке железок.
+
avatar
  • dark256
  • 26 декабря 2017, 08:18
+1
— Перезагрузите роутер.
— 3 раза. Не помогает.
— Как вы это делали?
— Софтово.
— Не. Не катит. Его надо выдернуть из розетки.

И где я тут не так позвонил? :)
И что, раз юзера — дебилы, в ТП надо брать точно таких же?
+
avatar
  • sir0ta
  • 26 декабря 2017, 07:58
+2
Еще раз. Проблема в том что после выключения электричества у человека не поднимается интернет. Надо скорее всего или передернуть кабель или перезагрузить роутер. Есть вероятсность авторизация как-то устроена так что изначально поднимается скажем тот же ip стек и надо получить ip адрес от провайдера. Но у прова тоже потух маршрутизатор и он загружается не 30 секунд как бытовые роутеры, а может и 2-3 минуты грузиться. Если вы знаете много бюджетных роутеров способных перезапускать из web интерфейса порты, то… но нет. К сожалению из коробки обыденные девайсы подобного не могут. У меня к примеру был какой-то асус. Меня всем устраивал. Он из коробки имел возможность переключать интерфейсы и поддерживал через костыль 4г модемы. И у прова проводного как раз авторизация была через пару логин/пароль. И пока wan не получит IP с основным шлюзом ни чего не выйдет. А GPRS нужен был как резерв. А покупать другой мопед умеющий все это + ресетить в нуджный момент интерфейс… ну как бы и этот роутер был дармовой и покупать то что во всем кроме этого меня устраивало… такое себе.
+
avatar
0
на компе в расписание добавил curl в соответствующее место веб-интерфейса sip-адаптера spa3000, по идее так что угодно можно перезагружать, было бы откуда только

ну и железке нужно не виснуть наглухо совсем)
+
avatar
  • tutuka
  • 26 декабря 2017, 05:48
+1
роутеры ксаоми при прошивке от падавана сами поднимают инет. уже больше года работает без глюков. самое простое решение для стабильного инета.
+
avatar
  • kalobyte
  • 25 декабря 2017, 22:26
+7
для перезагрузки роутера достаточно один вывод есп подключить к кнопке сброса и положить его на землю на полсекунды, не надо там никаких реле

зависания могут быть от старого бп или от кривого сетевого кабеля, который таджики скрутили из огрызков
еще могут влиять какие-то мощные потребители, которые генерируют электромагнитные выбросы

довелось видеть. как рядом стоящий сканер бумаг наводил такие помехи на монитор, что там процессор перезагружался
я думал это компутер или видеокарта так глючит от драйвера сканера, но никогда бы не подумал, что движок сканера может создавать такие сильные помехи
+
avatar
+1
90% глюков дешевых роутеров — от питания. Стоит только выбросить родной адаптер, и запитать от чего-то нормального — и «внезапно» все зависания исчезают.
+
avatar
  • kalobyte
  • 26 декабря 2017, 00:49
+3
ни разу не сталкивался с таким, недавно только перезагружалась тв приставка у родителей, так там конденсатор в первичке вспух через 3-4 года
за полчаса поменял и дальше работает

у нас в основном фрицбоксы юзают, работают годами, пока не устареют морально
один у меня молния спалила по дсл порту, сейчас купил кабельный фрицбокс и даже обзор написал на него
+
avatar
  • neko_nya
  • 26 декабря 2017, 11:54
+1
Даже легендарный Asus WL-500gP страдал плохим источником. Там регулярно надувалимь конденсаторы. Раза три их менял, пока им пользовался.
+
avatar
  • FloX
  • 26 декабря 2017, 08:54
+1
для этого надо еще и роутер разбирать. который может быть провайдерским и на гарантии например
+
avatar
  • userman
  • 26 декабря 2017, 10:54
0
«положить его на землю на полсекунды, не надо там никаких реле» Как это реализовывается?
+
avatar
  • kalobyte
  • 26 декабря 2017, 18:00
0
в коде или в схеме?
+
avatar
  • mir007
  • 25 декабря 2017, 22:28
0
Поддерживаю, на даче тоже поставил простой микротик, в настройках есть режим перезагрузки, полет нормальный
+
avatar
+2
роутеры изначально нормальные покупать надо с нормальным ПО.
+
avatar
  • Snakepit
  • 25 декабря 2017, 22:34
-1
Неистово плюсую.
+
avatar
  • dark256
  • 26 декабря 2017, 00:02
+5
Ага. Так же следует со всем тщанием подойти к вопросу выбора провайдера и страны проживания :)
+
avatar
+1
Это очень сомнительное утверждение!
+
avatar
  • dark256
  • 26 декабря 2017, 08:22
+1
Так же как и то, что своим крутым железом ты сможешь компенсировать
корявость прова.
+
avatar
  • sir0ta
  • 25 декабря 2017, 22:36
-1
С роутером вашим или надобыло поставить галку о реконнекте, либо у вас на интерфейсе изначально поднимался ip4 протокол с основным шлюзом и потом уже по верх pppoe или чего у вас там. И по дефолту все эти проверяльщики пингуют основной шлюз на интерфейсе, а там только что был шлюз локали прова. Я с таким уже сталкивался. В редком роутере из коробки можно настроить какой ip проверять на доступность (я сейчас про бытовые асусы и прочее).
А так годно. У меня есть подобное, но обратно. Некоторое железо в некоторые момерты надо выключать и долго не включать и что бы посторонние ни чего не поняли )))
+
avatar
  • iamjdoe
  • 26 декабря 2017, 08:36
-1
Для PPPoE не нужна предварительная настройка IP-адреса на интерфейсе.
+
avatar
  • sir0ta
  • 26 декабря 2017, 10:53
0
Вы читайте внимательно.
по дефолту все эти проверяльщики пингуют основной шлюз на интерфейсе, а там только что был шлюз локали прова
+
avatar
  • iamjdoe
  • 07 марта 2018, 08:35
-1
Перевожу: не бывает PPPoE поверх статики.
+
avatar
  • sir0ta
  • 07 марта 2018, 08:56
0
С чего же? К сожалению в текущем Pfsense при поднятом pppoe на интерфейсе он не показывает интерфейс родитель, после моей подачки исправили. Но у меня у прова именно так. В прошлых версиях до поднятия pppoe wan ом автоматом поднималась локалка прова, по которой к слову у меня тоже был доступ в инет, просто скорость порезана. Сделано это для 2-х вариантов развития событий — как авторизация pppoe и еще чего, так и жесткая работа через статику для определенных mac адресов.
+
avatar
  • iamjdoe
  • 07 марта 2018, 19:42
0
PPPoE это протокол второго (канального) уровня, а IP — третьего (сетевого), работающего поверх него. Ну это же азы, ёлки-палки!
+
avatar
  • sir0ta
  • 07 марта 2018, 20:32
0
Вы сути не поняли. Проблема не в уровнях.
Объясняю на пальцах. Поднимается ось (частный пример, pfsense). Первым дело поднимаются аппаратные сетевые интерфейсы. На будущем wan интерфейсе физическом поднимается ip4. Выдается ip клиента, бла и бла. После этого доходит очередь до поднятия pppoe. И вот именно когда он поднялся, он сообщил системе что основной шлюз такой-то. И все становится прекрасно. Но вот проверяльщик поднялся мальца раньше него и для него основной шлюз тот который был в локальной сети прова до pppoe. И такое у меня было в том числе и на бытовых роутерах.
+
avatar
  • iamjdoe
  • 08 марта 2018, 17:18
0
Я понял проблему с «проверяльщиком», но никак не возьму в толк как такое может быть: сначала на интерфейсе ip-адрес, а потом PPPoE?
+
avatar
  • sir0ta
  • 08 марта 2018, 20:13
0
Так сделал пров… Сам 3 месяца мучался точно.
+
avatar
  • icupit
  • 25 декабря 2017, 22:40
0
Присоединяюсь к вышеподписавшимся, 4-й год стоит хз где зуксель какойтокинетик, единожды настроенный, перезагружается 2 раза в год с андроид приложения в случае пропуска платежа провайдеру по забывчивости… что я делаю не так? может надо купить опять тплинк и ребутить его каждые два часа через пульт к розетке?
P.S. в сети два стационарных компа, СХД, три телека на последний порт по пауэрлинку, два ноута и четыре смарта по вифи. Бывает все работает одновременно.
+
avatar
0
а это интересная развлекуха на новый год! )))
+
avatar
  • ABATAPA
  • 26 декабря 2017, 00:22
+5
Что за вброс. Сравнивайте хотя бы одного класса устройства. Я знаю массу глючных Zyxel. Это даже с учётом того, что больше не пользуюсь их устройствами.
TP-Link Archer C7 разогнанный + LEDE + updxy + OpenVPN + DDNS + мониторинг — работает месяцами, перегружается только при пропадании питания.
+
avatar
  • c2d
  • 26 декабря 2017, 00:55
+5
Плюсую. Лично выбросил несколько зухелей. Имя само по себе ничего не значит. У всех брендов есть как топ, так и ширпотреб. Ждать качества, «патамучта Зуууухель» очень тупо, особенно покупая самую дешевую модель.
+
avatar
  • ABATAPA
  • 26 декабря 2017, 11:54
+4
А я перестал с ними дело иметь после того, как они на форуме грозились меня засудить за то, что я в GPL-компоненте на самом деле в стартовом скрипте) в их прошивке менял 1 символ, потому что народ устал просить их это исправить. И мне на полном серьёзе говорили про их «интеллектуальную собственность» и суд.
И этот человек ничего не знал про GPL, Open source… Конечно, я ему разжевал, какую чушь он несёт и чем им грозят такие заявления, но… Их подход (тогдашний, как минимум), заключавшийся в том, что они берут GPL-код (потом, правда, BSD), пилят прошивку и не выкладывают исходники (а в версии 2.0 в прошивке вообще только один бинарник, по сути, т. е. всё собрано в один код, чтобы народ не разбирал прошивки, не патчил, и т. д.), отталкивает от себя. Да ещё и «ловушки» ставят (или ставили, не слежу за ними больше), чтобы народ не лил их прошивки на другие устройства.
А вот ответ Asus на вопрос, могу ли я распространять (в узком кругу, на самом деле) патченную их прошивку вместе с их лого, графикой, интерфейсом, и т. д.:
Здравствуйте
Спасибо за обращение в службу технической поддержки ASUS.

Да, Вы можете изменить исходный код для каких либо своих целей.
Со стороны ASUS нет и не может быть каких либо запретов на это.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
С уважением,
ASUS, Служба технической поддержки
Вот так вот. «Нет и не может быть». Т. е. даже техподдержка знает это.

При этом есть исходники (но не всегда последней версии) и все необходимые для сборки компоненты.

Так что никаких Zyxel лично у меня больше не будет.
+
avatar
  • kvolk
  • 26 декабря 2017, 12:10
+2
Каждый выбирает себе по вкусу. Я столкнулся с тем, что ТПлинк категорически не хотел пропускать более 10 мультикаст потоков (10 тв каналов udp://@224.224.x.x:1234) одновременно, на остальных каналах просто чёрный экран — нет мультикаста, при этом канал загружен был не более чем на 40% (от 100 мегабит/с). Причём потоков было ровно десять, и после перезагрузки каналы подхватывали случайным образом. Примерно через неделю стало ясно что это ограничение жестко прописано в прошивке тплинка. Но кинетик гига певая модель, спокойно одновременно пробрасил 25 потоков одновременно, при загрузке канала около 9% (да да, 9% от гигабита ~ примерно 85-90 мегабит/с) и загрузкой ЦП около 6%. Асус вообще не понял что от него требуется, терял потоки как не в себе и сыпал картинку.

Так что всё индивидуально, всё зависит от поставленных задач.
+
avatar
  • sibmouse
  • 26 декабря 2017, 16:45
+2
удаленный доступ к камерам видеонаблюдения. роутер ZyXEL Keenetic 4G III + модем yota корпоративный безлимит.
роутер в шкафу 19" с вентиляцией. Модем на подобранном хорошем кабеле за стеной от шкафа в пластиковом коробке IP55 на наружней стене.
модем ребутится watchdog-ом роуетера от пары раз в день до десятка. Сам роутер зависал в случайном порядке — мог месяц работать без сбоев, а мог через день терять связь. поставил ежесуточной ребут на розетке-таймере на ранее утро (когда ни кому не нужен).
Так что зухель не панацея. Хорошо, когда его достаточно, но так бывает не всегда.
+
avatar
+1
Афигеть. Я не поверю, что в современных роутерах нет сторожевого таймера, как же так
+
avatar
  • kalobyte
  • 26 декабря 2017, 00:40
+1
таймер не реагирует на падение линка, он предназначен для перезагрузке по причине зависания процессора
для переинициализации линка или 3г модема надо питание усб дергать или выполнять команды, а такие плюшки есть только в профи роутерах типа микротика или же всякие опен врт
+
avatar
+2
Есть разные таймеры. NEXX WT3020 за $13, все зависит от прошивки.

+
avatar
  • leonid
  • 26 декабря 2017, 10:30
0
у самого NEXX WT3020 на padavane, но что он так умеет не знал) спасибо за наводку)
+
avatar
  • 2gusia
  • 25 декабря 2017, 22:59
+6
IMHO полезность обзора несколько вырастет, если указать марку используемого роутера. Читатели будут знать что не покупать даже в крайнем случае. А то, может повезёт, роутер окажется перешиваемым во что-то работоспособное — и аппаратный watch dog не понадобится…
+
avatar
  • k_r_a_b
  • 25 декабря 2017, 23:08
0
Данная проблема возникает очень редко, но как я и говорил, лень к роутеру лезть и соседу приходиться ждать моего возвращения домой. А главное когда руки чешутся что-то сделать, то главное найти повод ;)
+
avatar
+5
Вы слышали вопрос? Модель роутера дайте
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 09:38
+1
Asus rt-n10u, только уточню, что не он зависает, а пропадает подключение к интернет
+
avatar
  • 2gusia
  • 26 декабря 2017, 13:45
0
Нда, перешить теоретически и можно, но вряд ли стоит.
lede-project.org/toh/hwdata/asus/asus_rt-n10u
Тем более, что несколько аппаратных версий было.
+
avatar
0
Поставьте на него Томато и настройте скрипт на проверку соединения каждые 5 минут.
+
avatar
  • FloX
  • 26 декабря 2017, 09:06
0
ну вот например

+
avatar
  • Alesh
  • 25 декабря 2017, 23:29
0
Хотел бы осуществить такой сценарий использования Sonoff pow — по электропотреблению мониторит рабочее состояние настенного газового котла, и sonoff с датчиком температуры мониторит температуру в помещении… Все это можно б замутить на ардуино, но для меня сложновато)) и ещё чтоб смс отправлял при попадании напряжения, отключении котла и снижении температуры ниже заданных значений
+
avatar
  • DrBOBAH
  • 25 декабря 2017, 23:43
+1
Применение нашел тут
+
avatar
  • Booz
  • 26 декабря 2017, 00:45
+1
Есть пара бродлинковских розеток. Одну использую каждый год для елки, «голосовое включение гирлянды на елке» по заветным словам РАЗ ДВА ТРИ ЕЛОЧКА ГОРИ!
+
avatar
  • DrBOBAH
  • 26 декабря 2017, 01:08
0
у 1М Смарт тоже есть звуковое.
+
avatar
  • ambuddy
  • 26 декабря 2017, 01:26
+1
Ухты, прикольно. Не думал, что Sonoff можно прошивать, как обычную ESP8266. Спасибо. Из скетч отдельное спасибо :) А то тут некоторые самоделкины прячут программную часть под предлогом, что продают ее заказчикам(
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 07:26
+2
Пока не дорос до продажи прошивок, занимаюсь 3D печатью, моя группа vk.com/3dzhuk
+
avatar
0
Давно, еще в нулевые, когда баш.орг был еще жив, была там примерно такая фраза: "… сделал пинговалку-перезагружалку на сервере с CD-ROM, лоток которого выезжает и прерывает цепь питания при отсутствии пинга внутри локальной сети непрерывно в течении 30 секунд...."
+
avatar
+1
Сейчас есть скрипты, которые можно положить в сам роутер. Гуглится за 5 минут. Если роутер зависает наглухо, так что и скрипт не исполнится, то такое дело нужно лечить или менять, а не увеличивать энтропию розетками
+
avatar
  • neko_nya
  • 26 декабря 2017, 11:57
0
Там лоток привода нажимал на кнопку перезагрузки.
+
avatar
  • prom77
  • 26 декабря 2017, 08:23
+2
За творческий подход конечно +, но как по мне у большинства роутеров практически всех производителей есть планировщик можно поставить перезагрузку по расписанию. А если роутер часто зависает то тут уже лучше присмотреться на что его заменить, а не как перегрузить.
+
avatar
  • DyGygg
  • 26 декабря 2017, 08:36
0
Есть такая же розетка… Подскажите, а другие пины GPIO есть свободные и доступные на ней? куда припаяться?
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 11:08
0
Других пинов, кроме кнопки, реле, RX, TX и светодиода не выведено
+
avatar
  • DyGygg
  • 26 декабря 2017, 11:34
0
грусьпичаль… (( на диодом тока жертвовать тада если чо…
+
avatar
  • FloX
  • 26 декабря 2017, 11:43
0
возможно RX и TX это таки пины как у Sonoff PoW
wifi-iot.com/p/wiki/177/
+
avatar
0
аналогичную проблему решил за 300 рублей
раз в сутки роутер выкл на 1 минуту
+
avatar
  • kovalyuk
  • 26 декабря 2017, 09:02
+15
аналогичную проблему решил
Вы уверены что аналогичную и что действительно решили?
Если роутер зависнет через несколько минут после запланированной перезагрузки, то сутки вы без интернета?
+
avatar
  • Chaosito
  • 31 декабря 2017, 17:58
0
Если роутер зависнет через несколько минут после запланированной перезагрузки, то сутки вы без интернета?
Да.

Субъективно:
В целом я думаю 90% подобных зависаний он решил, т.к. зачастую роутеры/свистки/аналогичные_девайсы вешаются как раз после продолжительной перманентной работы, и ребут решает утечки памяти, частично перегрев и другие причины из-за которых устройства зависают, но в любом случае это не гарант того что роутер словит какой-нидь битый пакет, или еще что из-за чего повиснет и будет сутки висеть мертвым, но такие случаи довольно редки.
+
avatar
  • zamctb
  • 15 июля 2018, 04:35
0
замечательно, я таким макором раз в час перезагружал и возможность редкого случая офлайна до 1 часа меня очень раздражала, пока не применил способ этого топика
+
avatar
  • Zhenya88
  • 26 декабря 2017, 08:57
0
Спасибо на обзор. Что на заказ то печатаете?
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 09:49
0
Тут подробности — моя группа vk.com/3dzhuk
+
avatar
  • baksser
  • 26 декабря 2017, 15:11
0
очень интересно я тоже примерно печатал))) vk.com/club114914582 похоже все печатают примерно одно и тоже
+
avatar
0
Имею в эксплуатации маленькую распределенную сеть на оборудовании Mikrotik. В удалённых точках каналы как правило 3G, LTE, через USB-модем. Так вот скрипт на роутере для начала перезагружает модем по питанию, а если не помогает, то перезагружается сам. С тех пор как роутеры установил, к некоторым физически не подходил лет по 5. Пойск по ключевым словам mikrotik usb power reset, mikrotik netwatch.
+
avatar
  • ABATAPA
  • 26 декабря 2017, 12:16
+1
Только вот «USB detach» и power management — это не свойство Mikrotik, а свойство USB-контроллеров (все — логическое отключение USB suspend, отключение питания — только если контроллер поддерживает), и реализовано ещё с незапамятных времён:
Старые ядра:

echo «0» > "/sys/bus/usb/devices/usbX/power/autosuspend"
echo «suspend» > "/sys/bus/usb/devices/usbX/power/level"
echo «auto» > "/sys/bus/usb/devices/usbX/power/level"

or, for kernels around 2.6.38 and above:

echo «0» > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo «suspend» > "/sys/bus/usb/devices/usbX/power/control"
echo «auto» > "/sys/bus/usb/devices/usbX/power/control"
На новых ядрах:
1.To turn off power on all USB ports of a hub, you may unbind the hub from kernel using:

echo «1-4.4.4» > /sys/bus/usb/drivers/usb/unbind

to turn power back on — you may bind it back using

echo «1-4.4.4» > /sys/bus/usb/drivers/usb/bind

Есть утилиты для этого: uhubctl, hubpower

Так что это можно сделать и на других роутерах, был бы доступ к командной строке и скриптам.
+
avatar
  • clihlt
  • 31 декабря 2017, 09:08
0
Не со всеми свистками это помогает. Йотовский, например, можно ребутнуть ТОЛЬКО полным отрубанием от всех цепей. Так как перезагрузка по питанию методами обесточивания порта в микротике не помогает.

А если после этого еще попробовать ребутнуть сам микротик, то тупо пропадает usb интерфейс и помогает только физическое перетыкание свистка.
+
avatar
+2
Значит во первых на предмет криков о том, что бы во избежании проблем купили бы ротуер хорошей фирмы.
Например Билайн в Питере свои роутреы реализует.
Их качество — это их песня, но у билайна всегда стоит туннель. Причем в Москву ;)
настроить этот тоннель на чужом (не их фирменном) роутре — это дикая боль /для понимания задачи можете посетить форумы билайна где спецы «шьют» роутеры других фирм под этот их поганый «туннель»/
Поэтому часто выбора по модели роутера нету.
Во вторых задачу автора можно было решить дешевле и иначе.
Но конечно его решение точно лучше. Хотя и сложнее.
Есть такие розетки с пультами. Пультики включают и выключают розетки. По радиоканалу.
В пульте батрейка.
Я так включил роутер в такую розетку (она копеечная продается в Леруамерлене)
Если роутер виснет — беру со стола пульт и не поднимая задницы с кресла вкл/выкл эту розетку.
Второй пульт из комплекта можно было отдать соседу (по тех задаче автора)
+
avatar
  • FloX
  • 26 декабря 2017, 10:56
0
ну а если вы в сотне километров от пульта? а интернет нужен
+
avatar
-1
Позвонить уборщице или охране и попросить нажать кнопку?
+
avatar
  • FloX
  • 26 декабря 2017, 12:27
0
я на даче две недели не был. там снега по колено и соседей почти нет. кнопку нажать не получится. поэтому esp+реле+розетка
+
avatar
0
Но и вешать хобот тоже не стоит. Вскрыть роутер, направить на потрошки оного вентилятор, если вешаться перестал, то проблема термального характера. Взять и обнаружить путем пальпации все теплее 45 градусов и увешать радиаторами с али. У автора роутер на дешевом броадкоме, который склонен (сам чип) к перегреву и глюкам от оного.
Далее, как все рекомендуют — взять блок питания на то же напряжение, что и родной, но с максимальным током в два раза больше родного. 50% висяков от плохого штатного питания. Авторский роутер сделан экономистами, кто их знает чего они наэкономили в родном БП.
Далее. Проверить что в нем вешается? Отпадает вифи модуль? Падает сам NAT? Или отваливается соединение WAN с сетью? Видел роутеры, которые не умели корректно отработать закончившийся DHCP lease, пока единожды не была изменена одна настройка. Тем не менее, если замена невозможна, то конкретно авторская модель перешивается в dd-wrt, в котором, возможно, глюков больше не будет. Моя история со сменой штатной прошивки DIR-825b1 на dd-wrt этому подтверждение. Аптаймы=6..14мес без перезагрузки и вмешательств. Проблема оказалась не аппаратной.
Пчелайн со своим туннелем как-бы не проблема вообще, особенно для любой коробки с dd-wrt

Еще раз, автору респект и уважение за решение! Всем добра
+
avatar
0
Конкретная реализация, конечно, жуткий костыль, но за обзор все равно плюс. Знал, что Sonoff построен на esp8266. Знал, что esp8266 можно использовать в качестве Arduino. Но вот мысль, что розетку можно прошить под Arduino, как-то в голову не приходила.
+
avatar
0
А можно перепрошить розетку BroadLink?
Не поделитесь скетчем?
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 13:36
0
Если она на чипе esp8266 работает, то скетч подойдет и к ней, возможно, номера пинов только поправить.
+
avatar
0
В вашем скетче идет описание работы net ping, а основной функционал розетки сохраняется?
+
avatar
  • k_r_a_b
  • 26 декабря 2017, 15:19
0
нет, еще забыл написать, что при нажатии на кнопку происходит отключение питания на 5 сек. Для ручной перезагрузки роутера
+
avatar
  • FloX
  • 27 декабря 2017, 07:58
0
нет. там не есп
+
avatar
  • pet80
  • 26 декабря 2017, 12:41
0
Зашибись! +
Проблема бывает в основном только при первом в текущем дне включении компьютера. Иногда при выключении одного из компьютеров.
Короче заказал :). Не зря говориться: лень — двигатель прогресса.
+
avatar
  • peeoner
  • 27 декабря 2017, 09:58
0
Использую аналогичное устройство для таких же целей… пока через «костыль»-через вайфай свисток… пока жду uart. Почему вас не устроили уже существующие прошивки, с помощью которых можно на розетке сделать точку доступа, в обход роутера? и при зависании перезагружать с телефона…
+
avatar
  • k_r_a_b
  • 27 декабря 2017, 13:07
+1
Если я дома, то перезагрузить роутер можно и так, а если я не дома, то и связи с розеткой не будет. Да и с родной прошивкой у меня были проблемы при регистрации розетки в домашней сети. Ну и самое главное, это желание сделать свою прошивку, а то скучно!!! :)
+
avatar
  • VR4
  • 27 декабря 2017, 14:52
0
Автор, а не проще поставить в качестве роутера самый дешёвый MikroTiK, там есть встроенный wachdog, точнее их 2, один мониторит ядро самого роутера, второй софтовый пингует любой удалённый адрес, и в случае если ответа нет, то ребут, и может даже на почту прислать уведомление об этом. А ещё он в скрипты умеет и возможности там поистине безграничны, а цена при этом лучшше что есть на рынке, стабильно, недорого, функционально, для дома и малого бизнеса — самое то.
+
avatar
  • peeoner
  • 09 февраля 2018, 17:55
0
а на adsl он подходит? а аннет2 поддерживает? у меня такой роутерот провайдера, хотел уже купить новый, а оказалось не все так просто… поэтому смена роутера не всегда проще…
+
avatar
  • zamctb
  • 15 июля 2018, 01:47
0
да, микротик конечно рулит, но с usb стоит в 2 раза дороже чем… я взял next2030, он размером с коробок, прошил кенетиком, его настроит любой человек в отличии от микротика.
Инфы конечно много по настройке микротика, но не всегда она проверена перед публикацией
+
avatar
  • 3def
  • 01 января 2018, 04:28
0
Не знаю как — где, а в Архангельске (АТК) и по кабелю прекрасно интернет ловит, безо всяких роутеров и программируемых розеток… Я вообще-то не фанат интернета (54 года), бываю там только по делу (радиоэлектроника, параметры радиодеталей, переписка со знакомыми)…
+
avatar
0
Кабель один, а устройств — много. Да и в телефон/планшет кабель не воткнуть…
+
avatar
  • rolex
  • 02 января 2018, 23:10
0
Скажите, aliexpress.com/item/1pcs-USB-to-ESP8266-Serial-Wireless-Wifi-Module-Developent-Board-8266-Wifi-Module/32693314450.html — этим можно прошить адаптором, или подскажите нужный девайс. Сам страдаю, подвисаниями МТС модема+ роутер Zyxel Omni находящиегося в черти где. Подобное применение этой розетки это как раз то что доктор прописал :). Спасибо автору за труд. Сонофф по ссылке уже заказал.
+
avatar
  • k_r_a_b
  • 06 января 2018, 23:35
0
Да, подойдет. Готовлю новую пршивку с настройкой параметров через web интерфейс, надеюсь скоро сделаю…
+
avatar
  • Evgene
  • 07 января 2018, 01:42
0
Доброго времени суток!
Дополните обзор?
+
avatar
  • k_r_a_b
  • 07 января 2018, 20:44
+2
Нет, сделаю еще один обзор
+
avatar
  • Evgene
  • 08 января 2018, 00:50
0
Ок.
Спасибо!
+
avatar
  • fuckoff
  • 20 марта 2018, 23:08
0
можете скинуть новую прошивку для теста? а то с данной иногда бывает такой косяк что розетка не может подключиться к вай фай и постоянно ребутит роутер. хотя инет есть и вай фай работает. странный баг который вылазит 1 раз в 1 месяц примерно. даже не знаю в чем дело.
+
avatar
  • zamctb
  • 15 июля 2018, 01:27
0
надо то как, а вы пропали! нет такого в руснете, в недельной глубине нет (хотя есть, он тиам через интернет работает, через телеграмм и т.д., а в закрытой сети если, то именно ваш вариант нужен! Ждёмс… плюсанём…
+
avatar
  • zamctb
  • 15 июля 2018, 01:37
0
есть релюшки на esp01 за 2,5$,
я на нее прошил, пин реле gpio0. 4 штуки за цену соноффа
+
avatar
  • kiv69
  • 09 января 2018, 14:10
0
Лечение не пробемы, а последствий. Роутер нормальный купите.
Либо провайдера поменяйте, если проблема из-за него и он на неё забил.
Есть такие уроды — роутер только их, интернет работает с проблемами, но им и так хорошо.
+
avatar
  • peeoner
  • 09 февраля 2018, 17:58
0
в россии дороги то не везде есть… а выбирать провайдера, тем более не каждому повезло… поэтому и
Есть такие уроды — роутер только их, интернет работает с проблемами, но им и так хорошо.
+
avatar
0
Подскажите, а о каком адаптере идет речь в статье? Я имею ввиду тот, что между usb и платой розетки
+
avatar
  • zamctb
  • 15 июля 2018, 01:09
+1
Шикарно! искал такой ресет неделю, сам не силен в написании кода. Приимущества данного способа перед другими: 1 — можно контролировать устройство в локальной сети без выхода в интернет, 2 скетч прост и может быть добавлен в свой (актуально для новичков типа меня).

Подпилил под маленькую релюху на esp01 у которой 4 gpio выведено — (0,1,2,3), gpio 0 дергает реле… Использую для восстановления интернета на связке nexxt2030 (прошитый кенетиком+usb 4g huawey) раз в сутки /трое — тупо заканчивает интернет скотина, ещё на вайфай 4g модеме huawey, который на батарее, но при отсуствии розетки высаживает её, вырубается и больше не включается — висит эта зараза на столбе и раньше запускался пультом и реле на 433mh — теперь, когда всё потухло и затем появилось 220v — стартует esp с этим скетчем, ждет роутер, а его нет — зажимает питание на нем включая его, если инета нет то таким же макаром вырубает его, затем врубает! Короче всё супер, кроме неизвесной статистики… Автору респект, а меня не критикуйте, мне пофиг и я месяц как установил IDE.
PS конечно можно поговорить тут, почему бы и нет, но всё таки, нахрена столько учить автора этого топика не выложив своё решение и рекомендовать смену оборудования или провайдера… Всё верно, выход должен быть оптимальным… куча провайдеров — можно менять, куча бабла — ставь/ищи/пробуй/тестируй оборудование, или взял скетч этот на вооружение, положил его в аптечку и при проблеме — решил вопрос за 10 минут и 2$ — не думаю, что есть голос против. Ещё раз спасибо автору / как тут карму делать не знаю — ссорян.
+
avatar
  • zamctb
  • 15 июля 2018, 04:42
0
запихал этот скетч в пример из IDE «WEB UPDATE», теперь бин файл с подстройками закидываю через WEB… протестил сутки, раз 10 заливал через WEB — пока всё ок. Могу тут положить скетч, тока как его в спойлер тут — хз
+
avatar
  • zamctb
  • 17 июля 2018, 09:07
0
Дополнительная информация
/*
ping_reley-WebUpdate
источник mySKU.me/blog/china-stores/57097.html
между ////ot ping start//// и ////ot ping stop//// вставлены части скетча из источника в стандартный пример с IDE «WebUpdate»
для возможности заливки прошивки через WEB,
gpio заменены под плату esp01
To upload through terminal you can use: curl -F «[email protected]» esp8266-webupdate.local/update

*/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266Ping.h>

const char* host = «esp8266-webupdate-ping-ip»;
const char* ssid = "*****"; // подставить название своей сети WiFi
const char* password = "******"; //подставить пароль свой сети WiFi
const IPAddress remote_ip(192, 168, 88, 12); // адрес для пинга 87, 250, 250, 242 — (yandex) 192, 168, 88, 15 — (local)
unsigned long previousMillis = 0;
const long interval = 10; //интервал между пингами в сек 300 по умолчанию
const long T_ROUTER = 10; // время ожидания загрузки роутера в сек 60 по умолчанию
const long T_RELAY = 5; // задержка от выключения реле до включения в сек 5 по умолчанию

int PIN_RELAY = 0; //для esp01 — актуально/доступно — 0, 1, 2, 3,
int PIN_LED = 2; // не понял что это
int PIN_BUTTON = 3; // не повторяй от PIN_LED / PIN_RELAY
int COUNT_PING = 0; //количество попыток при отсутствия пинга (не задается)
int COUNT_PING_MAX = 2; //максимальное количество отсутствия пинга до перезагрузки роутера 2 по умолчанию
int COUNT_WIFI = 0; //счетчик попыток подключения к WiFi
int COUNT_WIFI_MAX = 60; //300; // Таймаут до перезагрузки роутера при отсутствии WiFi в сек

ESP8266WebServer server(80); //по умолчанию 80, а тут ли менять — хз
const char* serverIndex = "";

void setup(void){

///////////////ot ping start/////////////////////

pinMode(PIN_LED, OUTPUT);
pinMode(PIN_RELAY, OUTPUT);
pinMode(PIN_BUTTON, INPUT);
digitalWrite(PIN_RELAY, HIGH); //HIGH при загрузке — по умолчанию
digitalWrite(PIN_LED, LOW); //LOW при загрузке — по умолчанию
delay(10);

attachInterrupt(PIN_BUTTON, Click, FALLING);

///////////////ot ping stop//////////////////////////

Serial.begin(115200);
Serial.println();
Serial.println(«Booting Sketch...»);
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
if(WiFi.waitForConnectResult() == WL_CONNECTED){
MDNS.begin(host);
server.on("/", HTTP_GET, [](){
server.sendHeader(«Connection», «close»);
server.send(200, «text/html», serverIndex);
});
server.on("/update", HTTP_POST, [](){
server.sendHeader(«Connection», «close»);
server.send(200, «text/plain», (Update.hasError())?«FAIL»:«OK»);
ESP.restart();
},[](){
HTTPUpload& upload = server.upload();
if(upload.status == UPLOAD_FILE_START){
Serial.setDebugOutput(true);
WiFiUDP::stopAll();
Serial.printf(«Update: %s\n», upload.filename.c_str());
uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() — 0x1000) & 0xFFFFF000;
if(!Update.begin(maxSketchSpace)){//start with max available size
Update.printError(Serial);
}
} else if(upload.status == UPLOAD_FILE_WRITE){
if(Update.write(upload.buf, upload.currentSize) != upload.currentSize){
Update.printError(Serial);
}
} else if(upload.status == UPLOAD_FILE_END){
if(Update.end(true)){ //true to set the size to the current progress
Serial.printf(«Update Success: %u\nRebooting...\n», upload.totalSize);
} else {
Update.printError(Serial);
}
Serial.setDebugOutput(false);
}
yield();
});
server.begin();
MDNS.addService(«http», «tcp», 80);

Serial.printf(«Ready! Open %s.local in your browser\n», host);
} else {
Serial.println(«WiFi Failed»);
}
}

////////////ot ping start//////////////////////////////////
void ConnectWIFI()
{
Serial.println(«Подключаюсь к WiFi»);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
// WiFi.config(ip, gateway, subnet);
while (WiFi.status() != WL_CONNECTED)
{
if (COUNT_WIFI <= COUNT_WIFI_MAX)
{
COUNT_WIFI++;
}
else
{
Serial.println();
Relay(); //перезагружаемся так как нет подключения к WiFi
Serial.println(«Подключаюсь к WiFi»);
}
//Serial.println(WiFi.status());
digitalWrite(PIN_LED, !digitalRead(PIN_LED)); //моргаем зеленым светодиодом
delay(1000);
Serial.print(".");
}
COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi
Serial.println();
Serial.print(«WiFi подключен, ip: „);
Serial.println(WiFi.localIP());
//Serial.println(WiFi.status());
digitalWrite(PIN_LED, LOW); // зажигаем зеленый светодиод
COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов
}

void Relay()
{
if (digitalRead(PIN_RELAY) == HIGH)
{
digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке
Serial.println(“Реле ВЫключено»);
}
delay(T_RELAY*1000);
digitalWrite(PIN_RELAY, HIGH); //включаем питание на розетке
Serial.println(«Реле Включено, ждем загрузки роутера»);
delay(T_ROUTER*1000); // ждем загрузки роутера
COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов
COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi
previousMillis = 0;
}

void Click()
{
digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке
Serial.println(«Реле выключено кнопкой»);
}

/////////////////ot ping stop/////////////////////////////


void loop(void){

/////////////////ot ping start///////////////

if (WiFi.status() != WL_CONNECTED) // нет подключения к WiFi
{
ConnectWIFI(); //подключаемся к WiFi
}

unsigned long currentMillis = millis();
if (((currentMillis — previousMillis) >= interval*1000) && (digitalRead(PIN_RELAY) == HIGH) && (WiFi.status() == WL_CONNECTED))
{
previousMillis = currentMillis;
Serial.print(«Попытка пинга: „);
//Serial.println(remote_host);
Serial.println(remote_ip);
//if(Ping.ping(remote_host))
if (Ping.ping(remote_ip))
{ //пинг есть
Serial.println(“Пинг есть!!! internet работает»);
COUNT_PING = 0;// сбрасываем счетчик неуспешных пингов
} else
{ // пинга нет
Serial.print(«Пинг отсутствует :( internet выключен»);
COUNT_PING ++;
Serial.println(COUNT_PING);
}
}
if (COUNT_PING >= COUNT_PING_MAX) // если превышено количество попыток пинга перезагружаем роутер
{
Relay();
}


if (digitalRead(PIN_RELAY) == LOW) // нажата кнопка, перезагружаем роутер
{
Relay();
}

////////////////ot ping stop///////////////
server.handleClient();
delay(1);
}
+
avatar
  • Bangkok
  • 22 сентября 2018, 14:08
0
Добрый день.
Подскажите, Sonoff Basic, может включить/выключить роутер (перезагрузился что бы)?
А то так понимаю -без инета не работает, то есть выключить то выключится, но включить уже с телефона нельзя будет, тк инета то нет.
Или есть некий «сценарий» или команда, при которой все заработает?
+
avatar
0
Я думаю, можешь найти тут , все точно заработает)
+
avatar
  • pavlo059
  • 02 августа 2020, 11:42
0
У меня вот такое в терминале после прошивки розетки :)
— CUT HERE FOR EXCEPTION DECODER — ets Jan 8 2013,rst cause:1, boot mode:(3,6)

load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v5d3af165
~ld
ISR not in IRAM!

User exception (panic/abort/assert)
— CUT HERE FOR EXCEPTION DECODER — Abort called

>>>stack>>>

ctx: cont
sp: 3ffffef0 end: 3fffffc0 offset: 0000
3ffffef0: feefeffe feefeffe feefeffe 00000100
3fffff00: 000000fe 00000000 00000000 00000000
3fffff10: 00000000 00000000 00000000 00ff0000
3fffff20: 5ffffe00 5ffffe00 3ffef1b4 00000000
3fffff30: 00000002 00000000 3ffee450 40202d8a
3fffff40: 4010046a 9202c7c0 00003b00 40202d9c
3fffff50: 40105395 00003bae 3ffee450 402032a5
3fffff60: 00000000 3ffee594 0000000a 3ffee538
3fffff70: 3ffe84d8 3ffee594 0000000a 3ffee538
3fffff80: 3ffe84d8 3ffe84d4 3ffee450 40203354
3fffff90: 3ffe84d8 3ffe84d4 3ffee450 402011f6
3fffffa0: 3fffdad0 00000000 3ffee4f8 40202998
3fffffb0: feefeffe feefeffe 3ffe84fc 40100d65
<<<stack<<<
+
avatar
0
Аналогичная проблема, не нашли решение?
+
avatar
  • pavlo059
  • 16 сентября 2020, 09:32
0
Скачать arduino-1.8.5 и на нём всё завелось
+
avatar
  • Binar
  • 06 сентября 2021, 18:52
0
А какая версия пакета плат esp8266 нужна?
+
avatar
  • pavlo059
  • 07 сентября 2021, 09:22
0
у меня стоит Arduino/Genuino Uno
+
avatar
  • Binar
  • 07 сентября 2021, 09:43
0
Спасибо. Т.е. плату нужно выбирать не esp? Неожиданно…
+
avatar
  • ator
  • 24 января 2021, 16:17
0
const char* password = «password»; //подставить пароль свой сети WiFi
А если сеть без пароля?
+
avatar
  • Binar
  • 02 сентября 2021, 21:14
0
Всем здравия.
Пытаюсь прошить соноф бейсик.
прошивка компилируется прошивается, настройки платы как на картинке.
Но при подаче питания горит светодиод но плата не работает.
В порт сыпятся ошибки:
Дополнительная информация
rll--|-l-|
-
l-
b|----r-bl
b--nn-lnn---
bp
lblrlp-n-
-
l
--
b
n-|l-l-
b--nn-l--l`-nn
l`nr---n
-l`r--n
-l`-r
-p-
l-r-`-n-ISR not in IRAM!

User exception (panic/abort/assert)
                                   Abort called

                                               >>>stack>>>

                                                          ctx: cont
                                                                   sp: 3ffffef0 end: 3fffffc0 offset: 0000
                          3ffffef0:  feefeffe feefeffe feefeffe 00000100
                                                                          3fffff00:  000000fe 00000000 00000000 00000000
                                          3fffff10:  00000000 00000000 00000000 00ff0000
          3fffff20:  5ffffe00 5ffffe00 3ffef32c 00000000
                                                          3fffff30:  00000002 00000000 3ffee450 40202cde
                          3fffff40:  4010046a 005cf41b 00003c00 40202cf4
                                                                          3fffff50:  4010535d 00003c40 3ffee450 402031f9
                                          3fffff60:  00000000 3ffee594 0000000a 3ffee538
          3fffff70:  3ffe84d8 3ffee594 0000000a 3ffee538
                                                          3fffff80:  3ffe84d8 3ffe84d4 3ffee450 402032a8
                          3fffff90:  3ffe84d8 3ffe84d4 3ffee450 402011f6
                                                                          3fffffa0:  3fffdad0 00000000 3ffee4f8 40202934
                                          3fffffb0:  feefeffe feefeffe 3ffe8500 40100d75
          <<<stack<<<

 ets Jan  8 2013,rst cause:1, boot mode:(3,0)

load 0x4010f000, len 1392, room 16
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld
   ISR not in IRAM!

User exception (panic/abort/assert)
                                   Abort called

                                               >>>stack>>>

                                                          ctx: cont
                                                                   sp: 3ffffef0 end: 3fffffc0 offset: 0000
                          3ffffef0:  feefeffe feefeffe feefeffe 00000100

rll--|-l-|
-
l-
b|----r-bl
b--nn-lnn---
bp
lblrlp-n-
-
l
--
b
n-|l-l-
b--nn-l--l`-nn
l`nr---n
-l`r--n
-l`-r
-p-
l-r-`-n-ISR not in IRAM!

User exception (panic/abort/assert)
                                   Abort called

                                               >>>stack>>>

                                                          ctx: cont
                                                                   sp: 3ffffef0 end: 3fffffc0 offset: 0000
                          3ffffef0:  feefeffe feefeffe feefeffe 00000100
                                                                          3fffff00:  000000fe 00000000 00000000 00000000
                                          3fffff10:  00000000 00000000 00000000 00ff0000
          3fffff20:  5ffffe00 5ffffe00 3ffef32c 00000000
                                                          3fffff30:  00000002 00000000 3ffee450 40202cde
                          3fffff40:  4010046a 005cf41b 00003c00 40202cf4
                                                                          3fffff50:  4010535d 00003c40 3ffee450 402031f9
                                          3fffff60:  00000000 3ffee594 0000000a 3ffee538
          3fffff70:  3ffe84d8 3ffee594 0000000a 3ffee538
                                                          3fffff80:  3ffe84d8 3ffe84d4 3ffee450 402032a8
                          3fffff90:  3ffe84d8 3ffe84d4 3ffee450 402011f6
                                                                          3fffffa0:  3fffdad0 00000000 3ffee4f8 40202934
                                          3fffffb0:  feefeffe feefeffe 3ffe8500 40100d75
          <<<stack<<<

 ets Jan  8 2013,rst cause:1, boot mode:(3,0)

load 0x4010f000, len 1392, room 16
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld
   ISR not in IRAM!

User exception (panic/abort/assert)
                                   Abort called

                                               >>>stack>>>

                                                          ctx: cont
                                                                   sp: 3ffffef0 end: 3fffffc0 offset: 0000
                          3ffffef0:  feefeffe feefeffe feefeffe 00000100

При прошивке видно что плата определяется как ESP8285.
В настройках изменил плату, но ничего не изменилось.
Подскажите пожалуйста в чем ошибка?
+
avatar
  • Binar
  • 06 сентября 2021, 18:44
0
А какая версия пакета плат esp8266 нужна?