Mam kilka kamer, część z nich to kamery YI, z zainstalowanym oprogramowanie YI-Hack, z których część jest podłączona do serwera Home Assistant. Część działa właściwie non stop, a część jest wyłączana, w ramach ochrony prywatności. Tam, gdzie to mniej krytyczne, wyłączenie odbywa się programowo, przez odpowiedni przełącznik z poziomu Home Assistant lub panelu YI-Hack. W przypadku lokalizacji „bardziej wrażliwych”, kontola działania kamery jest sprzętowa, przed dodatkowy układ włączający i wyłączający zasilanie. Czasem taka kamera (lub inne urządzenie) potrafi być wyłączona naprawdę długo, co powoduje, że Home Assistant wywala ją z integracji i po ponownym włączeniu trzeba wczytać konfigurację tego urządzenia w integracji ponownie. Nie jest to trudne, ale trzeba o tym pamiętać, co w kontekście automatyzacji, bywa irytujące. Na szczęście jest na to proste rozwiązanie – odpowiednia automatyzacja.
Usługa Home Assistant Core Integratios: Reload Config Entry
Problem oczywiście nie występuje w przypadku kamer włączonych cały czas, w tym również tych, które są wyłączane programowo. Dotyczy tylko tych, które są fizycznie wyłączona, przez odcięcie zasilania. Zresztą nie dotyczy to tylko kamer, a ogólnie różnych urządzeń, najczęściej dodawanych przez dodatkowe automatyzacje (nie występuje np. przy urządzeniach działających na ESPHome, nawet jak miesiącami są odłączone).
W takiej sytuacji, przy konkretnej integracji, w Home Assistant pojawia się coś w stylu:
Teoretycznie wielkiego problemu nie ma, bo wystarczy rozwinąć menu kontekstowe (3 pionowe kropki) i wybrać „wczytaj ponownie”. Ale wymaga to – przynajmniej w teorii – ręcznego działania. A gdy z takiego urządzenie jest uruchamiane np. przez jakąś automatyzację, to po jego uruchomieniu, nie wszystko będzie działać, aż do momentu ponownego wczytania konfiguracji. Trochę bez sensu…
Na szczęście z pomocą przychodzi tu wbudowana w Home Assistant usługa „Reload Config Entry”, którą można wywołać np. z automatyzacji, odpalanej na pojawienie się danego urządzenia w sieci (np. sensor PING):
Na powyższej grafice widać właśnie wywołanie usługi „Home Assistant Core Integratios: Reload Config Entry”, która pozwala wczytać konfigurację wybranego obiektu. W tym przypadku jest to urządzenie „YIHC01”, czyli jedna z kamer YI, działających z oprogramowaniem YI-Hack.
Za wywołanie samej automatyzacji w tym przypadku odpowiada sensor PING, który monitoruje, czy kamera o danym adresie IP jest widoczna w sieci (onnline), czy nie jest (offline). Gdy się pojawi (online), uruchamiana jest aktualizacja, co powoduje wywołanie usługi „Home Assistant Core Integratios: Reload Config Entry” dla urządzenia „YIHC01”, a więc ponowne wczytanie konfiguracji, dzięki czemu urządzenie, nawet gdy nieodstępne z powodu błędu konfiguracji (pierwsza grafika), staje się w pełni dostępne.
Przykładowy kod YAML, takiej przykładowej automatyzacji wygląda tak:
alias: "YIHC01: Reload Config Entry"
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.yihc01_ping
to: "on"
condition: []
action:
- service: homeassistant.reload_config_entry
data: {}
target:
device_id: 1b8c21d81a6bc0c1421a07476dd7023b
mode: restart
Oczywiście jest to tylko przykładowa automatyzacja, na potrzeby tego poradnika, bo automatyzacja, z której faktycznie korzystam do tego celu, monitoruje wiele różnych urządzeń (integracji) różnymi metodami, i korzystając z identyfikatorów wyzwalaczy, wczytuje ponownie konfiguracje odpowiednich urządzeń, w odpowiednim momencie. Tu, by nie komplikować, celowo pokazałem wariant uproszczony, do niezbędnego minimum.
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01