Что такое Watchdog и его применение при потере связи на Raspberry Pi

19 марта 2019, 21:45

Предостережение

Перед тем как выполнять действия, описание в этой статье, пожалуйста прочтите мнение редакции в конце.

Watchdog расшифровывается как сторожевой таймер. Основная его функция - перезапуск системы в определённых случаях, таких как: зависание системы, повышенная температура, пропадание связи и т.д. Бывает аппаратный, программный и программно-аппаратный.

Меня заинтересовала прежде всего такая функция, как перезапускать систему при отсутствии связи с роутером. Почему прежде всего именно эта функция?

У меня часто отключают свет в квартире, а при подаче питания вновь часто отваливается HomeBridge на  микроконтроллере Raspberry Pi 3 (далее малинка). Лечится это перезагрузкой самой малинки. Причина до конца не выяснена, но думаю мой роутер запускается позже чем сама малинка. Проведя эксперимент с выключением роутера во время работы малинки, я убедился что HomeBridge перестает функционировать. Вы можете проверить сами и написать в комментариях как решили данную проблему. Может быть проблема могла решиться заданием статического IP на самой малинке, но я это не проверял.

На малинке установлен образ с Node 10 по статье нашего коллеги. Малинка подключена к роутеру с помощью кабеля и её IP зарезервирован как статический адрес на роутере. 

Так вот для решения проблем с пропаданием питания, благодаря советам нашего сообщества, я решил установить Watchdog. Как готовое решение  я взял статью,  которая полностью соответствовала моим запросам.

Заходим на малинку по SSH и устанавливаем демон Watchdog  командой:

sudo apt-get install watchdog

Далее делаем бэкап конфигурационного файла, если что-то пойдет не так и для отказа от работы Watchdog, если нет больше необходимости.

sudo cp /etc/watchdog.conf /etc/watchdog.conf.backup

Далееи редактируем файл конфигурации /etc/watchdog.conf

sudo nano /etc/watchdog.conf

В файле конфигурации необходимо раскомментировать ниже приведенные строки и задать Ваши параметры

# Watchdog ping: если не отвечает, то перезагрузка:

ping= 192.168.0.1 # IP моего роутера

interface= eth0     # используем wlan0 для Wi-Fi

ping-count = 5       # ping 5 раз

# Смена интервала по умолчанию с 1 секунды на 20:

interval = 20          # проверка watchdog каждые 20 секунд

Далее перегружаемся

sudo reboot

Теперь при отсутствии пинга 5 раз каждые 20 секунд (через 100. секунд) малинка будет перегружаться. Конечно интервал и количество пингов можно изменить в зависимости от задач, а так же при необходимо сменить IP на внешний (8.8.8.8 для примера) для проверки работоспособности интернета (хотя зачем это в моем случае).

Ложка дёгтя

Надо помнить, что при потере связи с указанным IP адресом малинка будет постоянно перегружаться и если Вы этого не хотите, то надо вернуть старый файл конфигурации (мы его специально сохраняли). Делается это командой

sudo cp /etc/watchdog.conf.backup /etc/watchdog.conf

Далее перегружаемся

sudo reboot

Я тестировал работу Watchdog , описанную в статье, отключая роутер на интервал более заданного и малинка перегружалась. При отключении роутера на меньшее время HomeBridge всё равно не запускался, так что Watchdog оказался бесполезен для решения конкретно моей задачи. Возможно что Watchdog контроля связи будет особенно полезен для тех кто использует Wi-Fi подключение. Как это повлияет на работоспособность малинки при длительном отсутствии связи (умер роутер) я не знаю. Рекомендую иметь рабочий бэкап прежде чем что либо устанавливать.

Как я уже писал выше Watchdog может перегружать малинку и по другим событиям, но это уже другая, не мене интересная тема., которую я продолжу изучать. Для желающих разобраться ниже ссылки на инструкции по Watchdog.

Ссылки на статьи по Watchdog: инструкция по Watchdog, файл конфигурации watchdog.conf

Прикольная картинка взята здесь

Мнение редакции

Мы считаем действия, описанные в статье слишком кардинальными, и избыточными. Необходимо более детально разбираться в корне проблемы а не перезагружать всю систему при каждом чихе. В данной проблеме вполне возможно помог бы рестарт сервиса бриджа или переподключение сетевого интерфейса.


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Александр Жабунин (OXOTH1K)

    Надеюсь автор найдет истиную причину и устранит ее менее кардинальным способом, но все равно спасибо за статью!

    • Евгений Лузин (EvLuz)

      Гитхаб для бриджа содержит болле 1000 сообщений, попробую выудить всю полезную информацию, но похоже моя проблема уже сдвинулась, если уже не решилась и конечно без перезагрузки малинки.

  2. (anton.n.kiselev)
    (anton.n.kiselev) отредактировано год назад

    Установил бридж как сервис, при зависании сам перезапускает. А вообще, может тогда подумать о бесперебойнике раз такие жесткие проблемы с электричеством? Или как вариант управляемая розетка с внешнего сервера (евелинк или сяоми например). Но статья интересная 👍

  3. Евгений Лузин (EvLuz)

    Чаще всего бридж не виснет, причем через web ui можно управлять, отваливается та часть, которая отвечает за связь с программой Дом. Я уже накопил часть информации и думаю выложу в блог. На Гитхабе по бриджу более 1000 запросов, хочу найти всё по моей теме и предложить действия.

К списку статей

Устройства в материале

Raspberry Pi 4

Производитель: Raspberry Pi

Raspberry Pi 3 Model B+

Производитель: Raspberry Pi

Тематические чаты

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
18 февраля 2020, 17:06
В данной статье описывается сборка слаботочного эл. щита на базе Wiren Board 6, а так же силового щита для небольшой квартиры.
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
24 августа 2018, 09:49
Как удаленно управлять Mac через Siri.
29 сентября 2018, 09:05
Мы рассмотрим как из камеры и кнопки (Mi/Aqara) сделать домофон для HomeKit