>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

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.

  1. Klimatyzacja i ogrzewanie. Smart konwektory, klimatyzatory i nawilżacze działają ze wszystkimi czujnikami i presetami.
  2. 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.
  3. 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.
  4. 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.

logo

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