♾ Własna integracja - 6. Wymagania / zależności

Wymagania / zależności

Ważnym elementem każdej integracji są jej wymagania, czyli to co potrzebuje integracja do poprawnego uruchomienia i działania. Są to biblioteki lub moduły Pythona, które zwykle każdy programista instaluje za pomocą pip.

Podczas uruchomienia systemu, Asystent domowy będzie próbował zainstalować zdefiniowane w integracjach wymagania. Ten mechanizm ma za zadanie zapewnić to, że wszystkie wymagania są obecne podczas uruchamiania. Jeśli instalacja wymagań nie powiedzie się, bo:

  • na przykład brakuje pakietów do kompilacji modułu
  • lub został ręcznie (przez nieautoryzowany dodatek) zainstalowany nie kompatybilny moduł który blokuje instalację
  • lub wystąpią inne błędy instalacji (brak połączenia z repozytorium pip, brak miejsca na dysku), itd…

to składnik nie zostanie załadowany.

Wymagania to tablica wpisów pakietów z repozytorium pip. Na przykład platforma odtwarzacza multimediów Cast w obecnej wersji zależy od pakietu Pythona PyChromecast v7.5.1: [“pychromecast==7.5.1”].

Zasady dotyczące wymagań integracji

Ważne jest to, że Asystent domowy:

  1. Integracja nigdy nie powinna łączyć się bezpośrednio z urządzeniami. Zamiast tego powinna współdziałać z biblioteką Python 3 innej firmy.
  2. Nie są przyjmowane (już) kody które nie zostały oficjalnie publikowane w repozytorium pip.

Chodzi o to żeby współdziałać z bibliotekami innych firmy (z ich API) co pozwala na ponowne zastosowanie kodu już stworzonego, oraz na utrzymymanie w stabilności systemu.

Wyjątkiem nadal są HACS i inne nieautoryzowane przez firmy lub wykonane a następnie porzucone integrację (jak Tuya). Ale tu następuję też powolne i konsekwentne pozbywanie się tych rzeczy, na rzecz stabilności i lokalnego działania.

Dodajmy wymaganie do naszej integracji

Załóżmy że nasza integracja komunikuje się z licznikiem firmy Shelly sprawdziliśmy w repozytorium pip i pakiet ShellyPy doskonale robi za nas całą komunikację z tym urządzeniem (oczywiście to tylko przykład - nie wiem czy to dobry pakiet).

Dodajemy do naszego manifestu stosowne wymaganie:

oczywiście dodajemy kody do GIT-a, pobieramy na bramkę i restartujemy usługę ais

Podczas dodawania integracji powjawi się nowa rzecz - instalowanie zależności:

Na podłączonym głośniku usłyszymy znany już komunikat "Instaluje zależności pakietu xxxx, poczekaj.