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.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk