Oswajanie Zoo Tuya i zapomnienie o chińskich chmurach
Załóżmy, że kupiliście smart grzejnik, żarówkę lub czujnik wycieku wody. Na pudełku dumnie widnieje logo Tuya lub SmartLife. Podłączenie urządzenia, instalacja aplikacji — wszystko działa. Ale wystarczy, że internet zadrży lub serwery w Chinach zaczną szwankować, a wasz "inteligentny" dom zamienia się w dynię. Znana historia?
Wielu z nas przychodzi do Home Assistant właśnie po to, by wyrwać kontrolę nad domem z objęć usług chmurowych. Ale Tuya zawsze miała haczyk: oficjalna integracja działa przez ich API, które jest albo płatne, albo ma ograniczony okres próbny, albo po prostu działa wolno. Projekt tuya-local rozwiązuje ten problem radykalnie — sprawia, że urządzenia komunikują się z waszym serwerem bezpośrednio przez sieć lokalną.
Jaki jest cel tego projektu
Mówiąc krótko: to niestandardowy komponent dla Home Assistant, który pozwala sterować urządzeniami Tuya przez Wi-Fi bez pośredników.
Główna zaleta nie tkwi tylko w szybkości (choć odpowiedź faktycznie staje się niemal natychmiastowa). Kluczowa wartość polega na tym, że integracja potrafi "wyciągnąć" funkcje, których oficjalna chmura w ogóle nie pokazuje. Na przykład konkretne tryby pracy urządzeń klimatyzacyjnych czy szczegółowe statystyki zużycia energii, które Chińczycy postanowili ukryć w aplikacji, ale nie udostępnili przez API.
Przy okazji, projekt obsługuje więcej niż tylko urządzenia Wi-Fi. Jeśli macie bramkę Tuya, możecie podłączyć do niej peryferia Zigbee, choć autor uczciwie ostrzega: możliwości huba dla jednoczesnych połączeń lokalnych są poważnie ograniczone.
Co potrafi tuya-local
W repozytorium deklarowane jest wsparcie dla ponad tysiąca urządzeń. To nie tylko "włącz/wyłącz" — to pełnoprawna obsługa złożonych encji.
- Klimatyzacja i ogrzewanie. Smart konwektory, klimatyzatory i nawilżacze działają ze wszystkimi czujnikami i presetami.
- Oświetlenie. Wsparcie dla różnych protokołów (od 3.1 do 3.5) pozwala uruchomić lokalnie nawet kapryśne lampy, które wcześniej odmawiały współpracy.
- Bezpieczeństwo. Jest wsparcie dla niektórych modeli zamków. Implementuje sprytny schemat przechwytywania kluczy odblokowujących, co jest ogólnie rzadkością w otwartych integracjach.
- AGD. Od karmników dla zwierząt (z obsługą harmonogramu karmienia) po nadajniki IR, które mogą uczyć się komend prosto z interfejsu Home Assistant.
Jak to uruchomić bez bólu w krzyżu
Wcześniej konfiguracja lokalnej Tuya przypominała rytuał przywoływania demona: trzeba było założyć konto dewelopera, wyciągnąć local_key przez konsolę i się męczyć. W tuya-local proces został znacząco uproszczony.
Integracja ma dwie ścieżki konfiguracji. Pierwsza to "asystent chmury". Logujecie się raz kontem SmartLife, integracja automatycznie pobiera listę urządzeń i ich klucze tajne, a potem pracuje z nimi tylko lokalnie. To oszczędza odnawiania próbnego okresu co pół roku w portalu Tuya IoT.
Druga ścieżka to tryb ręczny. Jeśli jesteś hardcore paranoidikiem, który już samodzielnie pozyskał wszystkie ID i klucze, po prostu wpisujesz je w karcie urządzenia.
Niuanse i grabie w trawie
Nuansów oczywiście nie brakuje. Tuya to nie jeden standard — to raczej patchwork różnych wersji firmware'u.
Po pierwsze, wiele urządzeń utrzymuje tylko jedno aktywne połączenie lokalne. Jeśli macie otwartą aplikację w telefonie lub działa inna integracja (na przykład stara localtuya), nowa po prostu nie będzie mogła połączyć się z hardwarem.
Po drugie, urządzenia zasilane bateryjnie (czujniki otwarcia drzwi czy dymu) nie będą działać lokalnie bez huba. Przechodzą w stan uśpienia, żeby oszczędzać energię, i budzą się tylko po to, by wysłać dane "ping" do chmury. Nie oszukasz fizyki — dla nich lepiej używać wersji Zigbee z odpowiednim kluczem.
Po trzecie, niektóry hardware zaczyna się dziwnie zachowywać, gdy całkowicie zablokujecie mu dostęp do internetu na routerze. Mogą wpaść w nieskończoną pętlę rebootów. Autor zaleca blokowanie nie tylko TCP, ale też zapytań DNS z urządzenia w takich przypadkach.
Dlaczego to bije alternatywy
Istnieje popularna alternatywa — localtuya. Przetestowałem obie. localtuya jest bardziej elastyczny jeśli chodzi o ręczną konfigurację każdego konkretnego punktu danych (DP), ale to też jego słabość: konfiguracja jednego złożonego termostatu zamienia się w godzinę grzebania w tabelkach.
tuya-local idzie drogą gotowych konfiguracji. Jeśli wasze urządzenie jest na liście wspieranych, po prostu wybieracie jego typ, a wszystkie czujniki/przyciski pojawiają się automatycznie. To oszczędza masę czasu. Jeśli wasze urządzenie nie jest wspierane, możecie pomóc projektowi wysyłając logi z zrzutem danych — społeczność tam jest bardzo aktywna.
Jeśli wasz dom powoli zalewają urządzenia Tuya, instalacja tej integracji to must-have. Gdyby nie nic innego, to choćby dlatego, że światło zapala się natychmiast, a nie sekundę po tym, jak sygnał poleci do Frankfurtu lub Szanghaju i z powrotem.
Projekt jest dojrzały, z solidną bazą urządzeń i rozsądną logiką konfiguracji. Tak, Tuya to nadal "zoo", ale z tym narzędziem w ręku przynajmniej dostajecie porządny bat i worek przysmaków.
Warto spróbować, jeśli:
- Dokuczają wam opóźnienia chmurowego API.
- Macie konkretne urządzenie Tuya, które nie chce się ładnie przenieść do HA standardowymi metodami.
- Chcecie, żeby automatyzacje działały nawet gdy wasz ISP padnie.
Projekt znajdziecie w HACS po nazwie lub bezpośrednio na GitHubie: make-all/tuya-local.
Powiązane projekty