Witaj,
Niestety właśnie spostrzegłem się w dniu forka, że zrobiłeś wersję 2.0, a ja swoje zmiany robiłem lokalnie na wersji 1.1.
Co do assumed state to zrobiłem to specjalnie tak, bo to wymusza pokazanie się dwóch przycisków (on/off) a nie toggle. Nie znam się za bardzo na HA, a to rozwiązanie zdawało mi się proste i szybkie do implementacji.
Tak, assumed state to dobre rozwiazanie. Chodziło mi tylko o logikę do jego wyznaczania (property assumed_state). Chcę to zrobić w opartiu o pole 'exta_free_device' i globalnie dla wszystkich typów encji czyli jako część klasy ExtaLifeChannel
Z tych urządzeń posiadam tylko ROP-02 i RWG-01, ale jak sniffowałem ruch z aplikacji Zamela to zrobiłem to od razu dla wszystkich tych urządzeń (w aplikacji można sobie dodawać ich ile się człowiekowi podoba)....
Faktycznie, zapomniałem kompletnie, że Exta Free nie wymaga parowania i można sobie dodawać co się chce! W takim razie tak to sobie przetestuję.
Z tego co widziałem to kod urządzenia exta-free jest wysyłany w innym polu niż device_id, więc jak co to jest szansa rozpoznawać po nim co to za konkretnie urządzenie jest i na tej podstawie przypisywać to light, switch lub cover.
Tak, type = 80 dla urządzeń Exta Free a do rozpoznawania jakie to dokładnie urządzenie jest ine pole: exta_free_type. Tutaj jest mała pułapka, bo ta wartość przesunięta jest o 300 i żeby wyszedł typ mapowany dla pola 'type' to trzeba dodać 300 czyli dla 26 type = exta_free_type + 300. W kodzie aplikacji też taką zależność znalazłem.
Generalnie to prawie to mam zrobione, tylko wstrzymała mnie ta kwestia cover, ale przechwycę sobie ruch i dodam i tam. Zrobię to w nowym branch'u i potem przez PR wciągnę do kodu dev, to zobaczysz o czym mówiłem.
Jakbyś potrzebował z czymś pomocy to pisz śmiało - będę się starał w wolnej chwili coś pomóc. Jestem trochę z innej parafii niż Python, ale coś tam zawsze mogę doimplementować
Na pewno chętnie skorzystam w przyszłości
Ja też jestem z zupełnie innej planety niż Python, a samego Pythona nauczyłem się na potrzeby właśnie tej integracji. W sumie język fajny, ale ten brak typowania mnie dobija. Testowanie tego to koszmar, bo dopiero w runtime błędy wychodzą, nawet drobnostki jak błędna nazwa zmiennej. Ale taki już jego urok.
Dzięki za odpowiedź i za wkład