Перегружать устройство буду умной розеткой: https://shp.pub/773x2j?erid=2SDnjer6Au3
Появилась у меня проблема. Периодически зависало устройство, работающее на андроиде.
Точнее оно отключалось от wifi сети и начинало сильно тормозить. Проблема решалась только обесточиванием устройства. Даже перезагрузка софтовая не помогала.
И вот я решил завести питание устройства через умную розетку https://shp.pub/773x2j?erid=2SDnjer6Au3 и этой умной розеткой перезагружать устройство путём её обесточивания.
В качестве триггера решил использовать команду ping. Home Assistant поддерживает эту команду и я как бывший системный администратор обратил на эту возможность сразу свой взор – тогда как только начал с Home Assistant знакомиться.
Даже вот описывал этот процесс в этой статье:
Но она уже устарела.
Создание сенсора Ping:
Раньше Ping это был бинарный сенсор и его надо было в Configuration yaml создавать как бинарный сенсор. Но потом все изменилось. и теперь, чтоб пинговать устройство – нужно зайти в Настройки -> интеграции, там найти интеграцию Ping и добавить новое устройство вбив его ip адрес:
После добавления появляется бинарный сенсор, который показывает доступность устройства:
Так-же можно некоторые параметры настроить этого сенсора. А именно количество пингов и время которое будет считаться – что устройство не доступно.
Вообще такой сенсор еще удобно использовать например при отслеживании телефона, чтоб всегда понимать человек дома или нет. Тем более в настройках как раз есть время в секундах по истечении которого считать что устройство дома или нет.
Автоматизация перезагрузки:
После того как создали бинарный сенсор пинга, теперь создадим автоматизацию при которой после того как устройство пинговаться перестаёт – перезагрузить розетку. А именно выключить её на определённое время и включить обратно.
Бинарный сенсор Ping имеет 2 состояния On и Off. Зная это можно сделать вот такую автоматизацию:
automation:
- alias: "Перезагрузка Видеопанели"
trigger:
platform: state
entity_id: binary_sensor.videopanel
to: "off"
for:
minutes: 10 # Ждать 10 минут
action:
- service: switch.turn_off
target:
entity_id: switch.your_socket_entity # Замените на ID вашей розетки
- delay:
minutes: 2 # Ожидание 2 минуты
- service: switch.turn_on
target:
entity_id: switch.your_socket_entity # Тот же ID розетки
mode: single # Режим: запускать только одну копию автоматизации
Данная автоматизация в случае когда Pingоваться устройство перестаёт, ждёт 10 минут (если устройство не заработало), то выключает розетку на 2 минуты, а потом снова её включает.
Так-же эту автоматизацию можно вполне сделать в графическом редакторе Home Assistant и выглядит она вот так:
Вывод:
Довольно часто попадаются устройства, которые теряют сеть и для её восстановления нужно это устройство перегрузить. Понятно, что это устройство уже скорее числится как вышедшее из строя и его нужно менять, но как временный вариант – люди всегда ходят и грузят.
И вот чтоб этого не делать, можно вполне обойтись автоматизацией пинг, которая за Вас это будет делать с помощью умной розетки. И такое временное решение вполне останется постоянным 😉 Ведь костыли – это наше все.