Integracja Sonoff (urzadzenia z oryginalnym firmwarem)

Nie wiem czy wszyscy o tym wiedza, ale jest mozliwosc integracji urzadzen firmy Sonoff z AIS bez potrzeby zmiany softu. Przydatne dla tych, ktorzy albo nie chca albo nie moga podmienic softu (bo np nie chca stracic dostepu do oryginalnej apki EweLink lub boja sie podpinac kabelkow tudziez rozbierac urzadzen).
Cala procedura polega na wykorzystaniu tzw custom_components i jest opisana na tej stronie: https://github.com/peterbuga/HASS-sonoff-ewelink. Jedyne co - domyslnie bramka AIS nie ma obslugi websocket w pythonie i trzeba je doinstalowac. U mnie pomogly komendy:
pip install websockets
pip install websocket-client
pip3 install -r requirements.txt
pip3 install websockets
pip3 install websocket-client

Wydaje mi sie czesc z tych komend byla zbedna ale zadna nie zaszkodzila. A robilem to jakies 2tyg temu, pozno w nocy wiec przepisalem po prostu polecenia z historii.

Nastepnie w configuration.yaml dopisujemy sekcje sonoff wg instrukcji i finito - mozna dodawac urzadzenia sonoff do AIS.

Teraz uwaga praktyczna - u mnie wiekszosc urzadzen sonoff sluzy do zapalania swiatel a AIS (podobnie jak HA) domyslnie traktuje je jako przelaczniki (czym w praktyce sa). Na szczescie HA/AIS daja mozliwosc zmiany typu urzadzenia. Aby to uczynic nalezy:

  • w pliku configuration.yaml dopisac sekcje light: !include light.yaml
  • stworzyc sobie plik ~/AIS/light.yaml w ktorym beda wpisy typu
  • platform: switch
    name: Twoja nazwa nr 1
    entity_id: switch.sonoff_xxxxxxx
  • platform: switch
    name: Twoja nazwa nr 2
    entity_id: switch.sonoff_xxxxxxx

Gdzie sonoff_xxxxxxx to id urzadzenia. Mozna je znalezc na liscie encji w AIS.\

Uwagi praktyczne:

  • przedefiniowanie przelacznikow jako swiatla pozwoli na latwe operowanie typu ÔÇťwylacz wszystkie swiatlaÔÇŁ. ponadto, latwiej uzywac identyfikatorow typu light.kuchnia niz switch.sonoff_10890890 :wink:
  • zamiast tworzenia light.yaml mozna te informacje wpisac bezposrednio w pliku configuration.yaml. Ja po prostu lubie miec porzadek
  • kazdy przelacznik Sonoff przedefiniowane w pliku light.yaml bedzie dostepne w AIS w obydwu postaciach - zarowno jako typ switch jak i light
  • Sonoff ma ograniczenia jesli chodzi o jednoczesne sesje logowania sie uzytkownika. To oznacza ze zalogowanie sie na konto Sonoff w AIS spowoduje automatyczne wylogowanie z aplikacji EweLink. Natomiast ciekawostka - nie spowoduje to wylogowania na koncie Amazon Alexa ani Google Home :slight_smile:

Aha - tradycyjnie na koniec nalezy sprawdzic poprawnosc pliku configuration.yaml (menu Configuration -> Server Controls -> Check Config) i zrestartowac bramke poprzez panel www/aplikacje

1lajk

Zgadza si─Ö dzia┼éa ale w logach ten custom component sonoff sypie b┼é─Ödami. U┼╝ywam jednego sonoff SV (do w┼é─ůczania pieca gazowego), kt├│ry nie da┼é si─Ö sflashowa─ç bo nie ma pin├│w do programowania ale za to ma fabrycznie pe┼éne wyj┼Ťcie beznapi─Öciowe przeka┼║nika NC/NO/COM bez ┼╝adnych przer├│bek.

Skoro nie dal sie sflaszowac to rozumiem ze masz oryginalny soft Sonoff. Wkleisz logi? U mnie tez sypalo logami wlasnie zwiazanymi z websockets. Ja co prawda nie integrowalem Sonoff SV ale parowalem kilka innych urzadzen (slampher, sonoff rf oraz sonoff s20/s26).

Moze byc tez temat roznic w platformie - z tego co zrozumialem watek odnosnie hard resetu, rozne urzadzenia moga miec rozne wersje softy platformy AIS, wiec Tobie moze brakowac czegos innego.

Podrzuc logi, zobaczymy co tam masz ciekawego.

[custom_components.sonoff] websocket error: [Errno 7] No address associated with hostname

Takiego bledy nie mialem, zwlaszcza ze ja nigdzie nie podaje adresu serwera sonoff :confused: Rozumiem ze DNS na AIS dziala Ci poprawnie? Warto na wszelki wypadek sprawdzic:

host eu-disp.coolkit.cc
host cn-disp.coolkit.cc
host us-disp.coolkit.cc

Ja integracje Sonoff-HA robilem w pazdzierniku. Teraz prostu przegralem folder sonoff z RPi na AIS. Ale sprawdzilem, od pazdziernika nie zmienil sie kod na githubie, wiec zmiane w sofcie mozna odrzucic. Na liscie wspieranych urzadzen nie ma Sonoff SV ale z tego co kojarze roznica pomiedzy Sonoff SV a Sonoff Basic to tylko kwestia napiec.

Mozesz przetestowac jedna rzecz - zaloz sobie zupelnie nowe konto ewelink, nie podpinaj do niego zadnych urzadzen ale sprobuj je zintegrowac z AIS.

Czyli b─Öd─ů dwie encje, light i switch ?
Czy switch zamieni si─Ö w light i tylko ta encja zostanie ?
Bo nie ma jak tego teraz sprawdzi─ç

Tak, beda dwie encje na kazde urzadzenie - jedna switch.sonoff_xxx a druga to light.TwojaPrzyjaznaNazwa

Ok, dzi─Öki. :+1:
A czy kto┼Ť zna spos├│b jak zmieni─ç istniej─ůce encje Switch na Light, tak ┼╝eby by┼éa tylko ta jedna light ?

Nigdy tego nie testowalem ale wg dokumentacji HA mozna zdefiniowac czy encja ma byc widoczna czy nie. Trzeba uzyc sekcji customize, opis jest tutaj

Ok, pobawi─Ö si─Ö ale bardziej szukam takiego rozwi─ůzania, ┼╝eby encje switch.kuchnia zamieni─ç na light.kuchnia bez tworzenia nowej encji :wink:

Edit:

tu chyba jest b┼é─ůd, winno by─ç:
light: !include light.yaml

Edit:

Nigdy tego nie testowalem ale wg dokumentacji HA mozna zdefiniowac czy encja ma byc widoczna czy nie. Trzeba uzyc sekcji customize , opis jest tutaj

Co┼Ť nie dzia┼éa te ukrywanie, zrobi┼éem zgodnie z opisem czyli w customize.yaml ma wpis:

 switch.incan_korytarz_gora:
   friendly_name: Korytarz G├│ra
   hidden: true

a i tak encja jest widoczna
SharedScreenshot
Kto┼Ť ma jaki┼Ť pomys┼é ?
Mam kilka w┼éasnych DIY w kt├│rych np. 2 prze┼é─ůcznik s─ů switch (gniazdko + pompa do basenu) a 2 to w┼é─ůczniki ┼Ťwiat┼éa a wszystkie w AIS pokazuj─ů si─Ö albo jako 4 switch albo 4 light (zale┼╝y jak wybior─Ö przy dodawaniu do bramki), musz─Ö je rozdzieli─çÔÇŽtylko jak ?

1lajk

Podbijam temat. Mam tem sam problem.

Tak, sorry - zbyt duzo rzeczy naraz. Chcialem poprawic wpis w oryginalnym poscie ale nie moge :confused:

Znamy spos├│b ale z oprogramowaniem Tasmota:

SetOption30

Enforce Home Assistant auto-discovery as ligh
0 = relays are announced as a switch and PWM as a light (default)
1 = both relays and PWM are announced as light

czyli jak co┼Ť takiego wpiszesz w konsoli urz─ůdzenia kt├│re jest prze┼é─ůcznikiem:

SetOption30 1

to w Asystencie domowym takie urz─ůdzenie przedstawi si─Ö jak ┼Ťwiat┼éo a nie prze┼é─ůcznik

2lajki

@jolka dzi─Ökuje pi─Öknie.
Oczywi┼Ťcie dzia┼éa z tym, ┼╝e mo┼╝na tylko zmieni─ç wszystkie na Light albo wszystkie na Switch, czyli jak mam na jednym DIY cztery przeka┼║niki to nie mo┼╝na cze┼Ť─ç zrobi─ç Light a cz─Ö┼Ť─ç Switch.

1lajk

Poprawione i teraz jest OK

Po wczorajszej aktualizacji bramki cos mi sie popsulo i mam dokladnie ten sam problem. ÔÇťNo address associated with hostnameÔÇŁ pojawia sie kilkukrotnie. Wyglada na jakas regresje.
Zalaze osobny watek bo problemy sa nie tylko z modulem sonoff.

To nie jest wspierane, trzeba zrozumie─ç czy s─ů custom componetns i dlaczego nie s─ů dodane oficjalnie do Home Assistant.

Nikt nie zagwarantuje dzia┼éania czego┼Ť takiego bo to nie jest legalne - producent (Sonoff czy Tuya) nie wie o tym, ┼╝e kto┼Ť tego w ten spos├│b u┼╝ywa (podszywaj─ůc si─Ö pod ich aplikacje), to w ka┼╝dej chwili mo┼╝e przesta─ç dzia┼éa─ç. Nie mamy ┼╝adnej umowy z Tuya czy Sonoff (nie informuj─ů nikogo o zmianach w interfejsie). Jedyny spos├│b na stabilnie dzia┼éaj─ůce urz─ůdzenia tych firm to lokalne MQTT kt├│re dostarczamy na bramce i wspieramy. Bo do tego mamy kody i na dzia┼éanie tego mamy wp┼éyw.

Stosowanie custom components mo┼╝e powodowa─ç, ┼╝e b─Ödziesz mia┼é problemy ze stabilno┼Ťci─ů ca┼éego systemu na bramce, tym bardziej, ┼╝e jak sam przyznajesz nie doko┼äca rozumiesz co robisz:

U mnie pomogly komendy:
pip install websockets
pip install websocket-client
pip3 install -r requirements.txt
pip3 install websockets
pip3 install websocket-client
Wydaje mi sie czesc z tych komend byla zbedna ale zadna nie zaszkodzila.

To co instalujesz na bramce ma wp┼éyw na inne komponenty. I mo┼╝e prowadzi─ç do tego, ┼╝e przestanie Ci co┼Ť dzia┼éa─ç lub si─Ö instalowa─ç - z powodu zale┼╝no┼Ťci pomi─Ödzy pakietami.

PS
Żeby była sprawa jasna nie zabraniamy nikomu eksperymentować, ale nie zgłaszaj wyniku swoich eksperymentów jako problemów/regresji na bramce, bo to nie prawda.

Wprowadzimy kategorie: Komponenty niestandardowe / Custom components i b─Ödziemy tam przenosili te tematy ┼╝eby by┼éa jasno┼Ť─ç, ┼╝e to nie jest wspierane.

Po czesci sie zgadzam. Na pewno dobrym pomyslem jest stworzenie osobnej kategorii dla custom components:slight_smile:
W konkretnym przypadku z instalacja websockets - moje watpliwosci byly glownie czy powinienem uzyc pip czy pip3 bo nie wiem czy sonoff wymagal pythona 2.x czy tez 3.x.

do reszty odniose sie w innym watku

1lajk

wuja┼Ťni─Ö, ┼╝e ka┼╝dy pakiet pythona kt├│ry mamy na bramce jest w ┼Ťci┼Ťle okre┼Ťlonej wersji, to ten numerek po znaku ==

PyJWT==1.7.1
PyNaCl==1.3.0
aiohttp==3.6.1
aiohttp_cors==0.7.0
astral==1.10.1
async_timeout==3.0.1
attrs==19.3.0
bcrypt==3.1.7
certifi>=2019.11.28
cryptography==2.8
defusedxml==0.6.0
distro==1.4.0

+ dziesi─ůtki innych pakiet├│w

robi─ůc co┼Ť takiego:

pip install websockets

instalujesz websockets w najnowszej wersji dost─Öpnej w repo z kt├│rego to zostanie zainstalowane
w sumie to nie wiadomo w jakiej

Je┼╝eli jaki┼Ť wbudowany komponent w Home Assistant b─Ödzie wymaga┼é websockets we innej wersji ni┼╝ ta kt├│r─ů r─Öcznie zainstalowa┼ée┼Ť, to nie uda si─Ö jego instalacja - nie b─Öd─ů spe┼énione zale┼╝no┼Ťci.

Je┼╝eli ten komponent dojdzie w aktualizacji to nie uda si─Ö aktualizacja Twojego systemu.