Sterowanie Taśmą LED RGBW poprzez moduł H801 (AI-Speaker - Home Assistant)

Hardware:

Na STRONA URZĄDZENIA wybieramy KONFIGURACJA i w PARAMETRY MODUŁU wybieramy H801 i zapisujemy, tak ma być:
SharedScreenshot

Następnie w configuration.yaml dodajemy wpis:

light:
  -  platform: mqtt
     name: "Salon LED"
     availability_topic: "H801/tele/LWT"
     command_topic: "H801/cmnd/POWER1"
     state_topic: "H801/stat/RESULT"
     state_value_template: "{{value_json.POWER}}"
     brightness_command_topic: "H801/cmnd/Dimmer"
     brightness_state_topic: "H801/stat/RESULT"
     brightness_value_template: "{{value_json.Dimmer}}"
     brightness_scale: 100
     rgb_command_topic: "H801/cmnd/Color2"
     rgb_state_topic: "H801/stat/RESULT"
     # RGB<->RGBW conversion
     rgb_value_template: "{% set red = (value_json.Color.split(',')[0] | round(0)) %}{% set green = (value_json.Color.split(',')[1] | round(0)) %}{% set blue = (value_json.Color.split(',')[2] | round(0)) %}{% set white = (value_json.Color.split(',')[3] | round(0)) %}{{ red + white }},{{ green + white }},{{ blue + white }}"
     rgb_command_template: "{% set white = ([red,green,blue]|min) %}{{ red - white }},{{ green - white }},{{ blue - white }},{{ white }}"
     payload_on: "ON"
     payload_off: "OFF"
     payload_available: "Online"
     payload_not_available: "Offline"
     qos: 1
     effect_command_topic: "H801/cmnd/Scheme"
     effect_state_topic: "H801/stat/RESULT"
     effect_value_template: "{{value_json.Scheme}}"
     effect_list:
     - 0
     - 1
     - 2
     - 3
     - 4

Gdzie H801 to nazwa modułu pod adresem IP, sprawdź jaka jest u Ciebie i podmień.
To wszystko, efekt końcowy w asystencie powinien być taki:

2 polubienia

@Tomasz
Cześć, zakupiłem taki moduł. Zaprogramowałem go według Twojego opisu. Ale powiedz mi jakie mam zrobić ustawienia modułu ?

I jeszcze mam problem bo mi wywala błędy. Co to znaczy dokładnie, …Gdzie H801 to nazwa modułu pod adresem IP, sprawdź jaka jest u Ciebie i podmień. Co mam podmienić bo to jest dla mnie nie jasne…

Jak sprawdzam poprawność to mam takie błędy:

Invalid config for [cover.mqtt]: [light] is an invalid option for [cover.mqtt]. Check: cover.mqtt->light. (See ?, line ?).
Invalid config for [cover.mqtt]: [state_value_template] is an invalid option for [cover.mqtt]. Check: cover.mqtt->state_value_template. (See ?, line ?).

I powiedz mi jaką encje mam wybrać ?

@kindziol

Musisz zrozumieć jak działa konfiguracja HA:
cover - to encje które odpowiedzialne są za otwieranie, zamykanie czyli w pliku cover.yaml umieszczamy konfiguracje do modułów które odpowiedzialne są za sterowanie bramami,roletami,zaworami itp.
light - te przeznaczone są do sterowania oświetleniem czyli w pliku light.yaml umieszczamy konfiguracje do modułów którymi sterujemy
żarówkami,ledami,itp.
switch - to gniazda 230v,itp.

A teraz zobacz co mówi twój wygenerowany błąd:

Invalid config for [cover.mqtt]: [light]

Czyli umieściłeś podaną przez @Tomasz prawidłową konfigurację w cover.yaml zamiast w configuration.yaml
A czemu w configuration.yaml a nie w light.yaml ponieważ w/w konfiguracja zaczyna się od parametru “light:”

light:
  -  platform: mqtt
     name: "Salon LED"
     availability_topic: "H801/tele/LWT"
     command_topic: "H801/cmnd/POWER1"
	 ........itd.

Jeśli w configuration.yaml masz utworzony symlink czyli taki wpis:

light: !include light.yaml

w/w konfiguracji usuwasz parametr “light:” i plik light.yaml uzupełniasz tak:

-  platform: mqtt
   name: "Salon LED"
   availability_topic: "H801/tele/LWT"
   command_topic: "H801/cmnd/POWER1"
   ........itd.	

Co to jest symlink:

Przeczytaj jeszcze raz wszystko powoli i ze zrozumieniem to co napisałem ja i @Tomasz,
uzupełnij właściwie konfigurację bramki i będzie śmigało.

Jak zrozumiesz jak to działa to na pewno poradzisz sobie i z tym problemem zawartym w tym wątku:

tylko zastosuj się do wytycznych jakie podaje @Cino111.

Sam ostatnio pomagałem znajomemu przenieść się z innego systemu na AIS i korzystałem z udostępnionych tu konfiguracji w/w user-ów i wszystko działa wzorcowo.

Powodzenia.

4 polubienia

@mariusz70

Witam.
Jeśli chodzi o sterowanie rgb to już wszystko śmiga i nie ma błędów. Ale chciałbym wrócić do nieszczęsnych rolet. Z opisu, który napisałeś to mój sterownik powinien być switch.yaml, a configuracji powinien być taki wpis switch: !include switch.yaml . Mój sterownik w bramce dodał się jako switch. Tak zrobiłem ale niestety pokazuje mi się taki błąd:

   Invalid config for [switch.mqtt]: [position_topic] is an invalid option for [switch.mqtt]. Check: switch.mqtt->position_topic. (See ?, line ?). 

a mój wpis switch.yaml jest taki:

  • platform: mqtt
    name: “Roleta jadalnia”
    availability_topic : “roleta_2D618A/tele/LWT”
    payload_available : “Aktywny”
    payload_not_available : “Nieaktywny”
    position_topic: roleta_2D618A/stat/SHUTTER1
    position_open: 100
    position_closed: 0
    set_position_topic: “roleta_2D618A/cmnd/ShutterPosition1”
    command_topic: “roleta_2D618A/cmnd/Backlog”
    payload_open: “ShutterOpen1”
    payload_close: “ShutterClose1”
    payload_stop: “ShutterStop”
    retain: false
    optimistic: false
    qos: 1

A jeżeli go dodam cover.yaml to mam taki błąb:

Error loading /data/data/pl.sviete.dom/files/home/AIS/configuration.yaml: expected ‘’, but found ‘’
in “/data/data/pl.sviete.dom/files/home/AIS/cover.yaml”, line 12, column 2

Co powoduje, żeby w encjach sterownik dopisał się jako cover a nie switch ?

Usunąłem sterownik od rolet z bramki. Dodałem go od nowa. Zapisał się jako switch. Rolety z pozycji encji działają. Żadnych plików nie dopisywałem. To co teraz mam zrobić aby działało sterowanie głosowe ?

@Tomasz
Może Ty mi pomożesz :hot_face:
Chciałbym wrócić to tematu RGB. Namieszałem w swojej bramce ponieważ zmieniałem router z AP. Ustawiłem taki sam sid tylko zmieniły się adresy ip. Wszystko wróciło do normy po za wymienionym sterownikiem rgb. Zaprogramowałem go od nowa i próbuję dodać do bramki ale mam taki komunikat Invalid flow specified. Niestety już nie wiem co mam zrobić…

Wejdź na moduł po IP i pokaz co pokazuje w konsoli

Cześć.
A le nie znam adresu ip.

a AIS widzi ten moduł?
jeżeli tak to wejdź na bramkę AIS po adresie IP i wejdź w konfiguracje potem Urządzenia AIS dom i znajdź ten moduł i na dole będziesz miał coś takiego:

@Tomasz

Tomaszu gdyby mój ais widział sterownik to bym wiedział o adresie ale niestety mój ais nie widzi tego sterownika, nie chcę go dodać i tu jest problem. Sterownik się programuje softem, później go chcę dodać i du…

Zalecam poszukać adresu IP w sieci… https://moxa.elmark.com.pl/2017/11/17/jak-znalezc-urzadzenia-w-naszej-sieci-lokalnej/

Nie do końca rozumiem w który miejscu stanąłeś :slight_smile:
Zwierałeś GPIO0 do masy na 5 sekund żeby wejść w tryb konfiguracji ?

@Tomasz
Wgrałem do sterownika soft AIS gniazdko. Robię zwarcie i dodaję w bramce, wyszukuję mi inteligentne urządzenie. Chcę je do dać i tu pojawia się błąd: Invalid flow specified. Chyba padł ten sterownik bo nie widzę go u siebie w sieci.

A spróbuj inaczej, jak wprowadzisz moduł w tryb parowania, to na telefonie wejdź w ustawienia WIFI i zobaczysz tam nową sieć WIFI o nazwie dom…
Połącz się z nią a następnie wejdź na przeglądarkę (na telefonie oczywiście :wink: ) i wpisz 192.168.4.1, pojawi ci się okno w którym wpisz SSID swojej sieci WIFI i kasło i kliknij OK. Odłącz moduł na chwilę od zasilania i podłącz ponownie. Po tym zabiegu moduł podepnie się do twojej sieci WIFI a żeby podpiąć go do bramki musisz wejść na moduł po IP i uzupełnić dane w MQTT. Żeby wejść na moduł po musisz znaleźć jego IP, możesz zrobić to po przez wejście na router (i tam w ustawieniach zaleście jego IP) lub np programem Advanced IP Scanner. Jest jeszcze jedna metoda, możesz próbować sprawdzać każdy adres IP po kolei i np jak masz adres sieci 192.168.0.1 to jedziesz po kolei:
192.168.0.1
192.168.0.2
192.168.0.3
itd…
zakładam że więcej niż 20 urządzeń w sieci WIFI nie masz :slight_smile:
Jak wejdziesz na moduł po IP to daj znać.

@Tomasz

Do tego momentu jest ok. Ale niestety nie mam go w swojej sieci. To tak jakby nie zapisywał danych mojej sieci.

Rozumiem, że inne moduły są w sieci i bez problemu możesz wejść na nie po IP oraz są widoczne na bramce? Może wpisujesz nie ten SSID sieci WIFI lub hasło?

@Tomasz
Tak, inne sterowniki są w sieci i widzi je bramka. W grałem od nowa soft Tasmota w wersji najnowszej. Robię restart i w telefonie widzi mój sterownik. Dopisuję SID i hasło i robię zapisz. I niestety w moim router nie widać sterownika. Robię próbę dodania do bramki, zostaje wykryty ale niestety nie zapisuje go. Robię znowu reset i w telefonie mam go od nowa. Muszę dopisać SID i hasło i znowu zapisz, i tak bez końca. To tak wygląda jakby sterownik nie zapisywał moich ustawień sieci. A może jakieś inne oprogramowanie, albo niższą wersję Tasmota ? ( tylko ja nie posiadam)

Ja zaczął bym od wgrania pliku blank do modułu.

@Cezary.K

podeślesz mi.

Nie, nie podeślę a odeślę do pierwszego, aczkolwiek niezłego linku (masz tu dużo o fleszowaniu, lekcje domowe trzeba odrobiać): https://forum.supla.org/viewtopic.php?t=189
Musisz znać wielkość pamięci flash w module, który chcesz wyczyścić. Nie miałem do czynienia z modułem H801. Tasmota jest o tyle fajna, że nie wymaga adresacji binarek przed wgraniem.

Jest jeszcze fajne narzędzie pomocne przy konfiguracji/sprawdzaniu “ESP8266 Config”, z którego korzystałem przy zabawie komendami AT na surowych modułach. Podłącz się do modułu po UART i otwórz jakikolwiek monitor portu szeregowego. Będziesz miał podgląd na to co dzieje się z Towim sterownikiem RGBW.
W wyżej wymienionej aplikacji na WIN jest również monitor.
Podaję link do kolejnej lektury (jest tam również spakowany ESP8266 Config):
https://www.sunduino.pl/esp8266-czesc-2-komendy-at/
Tak to wygląda na module NodeMCU z AIS Tasmota: