esphome 펌웨어로 플래싱 된 스마트 플러그에 HA OS가 설치된 라즈베리 파이4 연결해 두고 10분간격으로 파이서버 ping 테스트 후 패킷로스 100%뜨면 스마트 플러그 재시작하는 esphome 자체 자동화.
외부 라이브러리와 사용자 컴포넌트 필요하고 ping테스트는 5분 간격, 자동화는 10분 간격으로 체크되는 비동기 자동화.
**restart 스위치를 이용해도 되지만 예외적인 상황을 줄일려면 off, on하는 것이 좋음.
name: neo20-outlet
area: Livingroom
libraries:
- ESP8266WiFi
- https://github.com/akaJes/AsyncPing#95ac7e4
esp8266:
board: esp01_1m
external_components:
- source:
type: git
url: https://github.com/trombik/esphome-component-ping
ref: main
switch:
- platform: gpio
name: "neo20 Relay"
id: switch1
pin:
number: 12
allow_other_uses: true
restore_mode: ALWAYS_ON
sensor:
- platform: ping
ip_address: 192.168.1.5
num_attempts: 5
update_interval: 300s
timeout: 10s
loss:
name: "Packet Loss"
id: packet_loss
latency:
name: "Latency"
accuracy_decimals: 0
interval:- interval: 600s
then:
- if:
condition:
- lambda: 'return id(packet_loss).state == 100.0;'
then:
- logger.log: "Ping failed, restarting device"
- switch.turn_off: switch1
- delay: 1s
- switch.turn_on: switch1
else: - logger.log: "Ping successful, no action needed"