
Witajcie moi drodzy.
Przedstawię tutaj jak na mojej platformie OpenBeken można uruchomić ściemniacz oparty o TuyaMCU i połączyć go z Home Assistant. OpenBeken to alternatywne, otwarte oprogramowanie przeznaczone dla urządzeń IoT, oferujące m.in. niezależność od chmury producenta, kompatybilność z wieloma ekosystemami, konfigurowalność oraz wsparcie różnych platform, m. in. BK7231T, BK7231N, XR809 i BL602.
Główny zbiorczy temat o moim firmware: [BK7231T] Mój serwer HTTP, konfigurator, wsparcie MQTT z Home Assistant
Temat o BL602: Zamiennik Tasmoty dla BL602, programowanie, parowanie z Home Assistant.
Czym jest TuyaMCU? TuyaMCU to protokół komunikacji mikrokontrolera z modułem WiFi stosowany w produktach Tuya:


Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
Zakup ściemniacza
Produkt kupowałem już jakiś czas temu. Znalazłem go pod hasłem MoesHouse DIY Smart WiFi Light LED Dimmer Switch Smart Life/Tuya APP Remote Control 1 Way Switch Works With Alexa Google Home - 1pcs. Teraz chyba mu trochę cena podrosła, ale można go też znaleźć taniej na różnych portalach:

Maksymalna moc oświetlenia dla tego ściemniacza to 150W. Standard WiFi to 2.4GHz 802.11 b/g/n. Współpracuje on z aplikacjami Tuya Smart/Smart Life. Jego rozmiar to 51x46x22mm.

W zestawie dostajemy też instrukcje:






Wnętrze ściemniacza
Teraz pora zajrzeć do środka.
Obudowę zdjąć jest naprawdę bardzo łatwo.
Tutaj galeria zdjęć będzie nieco inna, bo mam też taki sam ściemniacz uszkodzony, dostałem go od jednego z naszych użytkowników, więc w kadrze umieszczę oba




Dwa ściemniacze obok siebie, sprawny i uszkodzony:


Co ściemniacz ma w środku? Przede wszystkim moduł WiFi WB2S + mikrokontroler Holtek HT66F3195. To one komunikują się przez UART.

Zasila je BP2525 (zasilacz beztransformatorowy), a obok mamy cały układ powiązany ze ściemniaczem (diody prostownicze S3M), transoptor do wykrywania cyklu sinusoidy, nieoznaczony układ kontrolera i... SIF12N65F. Początkowo oczekiwałem tu triaka, ale to jest tranzystor MOSFET z kanałem typu N (Vds=650V, RdsOn = 0.6Ohm, Id =12A). To wyjaśnia te cztery diody prostownicze. Ten ściemniacz najwyraźniej prostuje napięcie sieciowe a potem je kluczuje tranzystorem.
Programowanie WB2S
Programowania dokonałem zgodnie z poprzednimi tematami z serii, poprzez bkWriter 1.60.
WB2S wylutowałem z płytki za pomocą topnika i plecionki. Tak wygodniej i jest pewność, że nic na linii RX/TX nie zakłóci wgrywania wsadu.





Potem można uruchomić OBK zgodnie z tymi tematami:
Qiachip Smart Switch - BK7231N/CB2S - wnętrze, programowanie
Włącznik światła z USA - Gosund Smart Switch SW5-A-V2.1 - BK7231T
Ogrodowy podwójny przekaźnik Tuya CCWFIO232PK - BK7231T - programowanie
Konfiguracja OpenBeken
Po podstawowej konfiguracji, którą omawiałem w poprzednich tematach z serii należy przygotować skrypt startowy (plik o nazwie autorun.bat o zawartości jak poniżej):
Code: text
I w panelu App przeciągnąć go na system plików OBK:

Ten skrypt wykona się po starcie urządzenia. Po samym przeciągnięciu się nie wykona, trzeba wykonać ręcznie Restart (np. przyciskiem z panelu WWW).
Po wgraniu:

Znaczenie poszczególnych komend:
- startDriver TuyaMCU - uruchamia sterownik TuyaMCU
- setChannelType 1 toggle - ustawiaw typ kanału numer 1 na On/Off
- setChannelType 2 dimmer - ustawia typ kanału numer 2 na ściemniacz
- tuyaMcu_setDimmerRange 0 1000 - ustawia zakres wartości ściemniacza TuyaMCU (dla GUI jest od 0 do 100 zawsze, na 0 do 1000 jest to konwertowane tylko dla MCU)
- linkTuyaMCUOutputToChannel 1 bool 1 - łączy dpID numer 1 TuyaMCU z kanałem numer 1 o typie bool
- linkTuyaMCUOutputToChannel 2 val 2 - łączy dpID numer 2 TuyaMCU z kanałem numer 2 o typie value
Wartości dpID mogą być różne w różnych rodzajach urządzeń. Jeśli chcemy dodać wsparcie czegoś nowego, to musimy je poznać, np. nasłuchując pakiety. Wartości dpID można też brać z opisów urządzeń przeznaczonych dla Tasmoty, bo Tuya często zmienia tylko moduł WiFi a reszta zostaje taka sama.
Po restarcie w panelu OpenBK mamy osobno włącznik i ściemniacz:

Tak wyglądają różne poziomy jasności:




A jak działa przycisk?
Z pozoru można by pomyśleć, że przycisk nie jest wspierany przez OpenBeken. Ale nic bardziej mylnego!
W tym produkcie przycisk podłączamy do TuyaMCU, a nie do modułu z WiFi. To TuyaMCU obsługuje przycisk. Wszystko mamy gotowe. Podłączamy przycisk do odpowiedniego pinu (S jak switch):

Można używać zarówno bistabilny jak i monostabilny. Przycisk działa tak, że po włączeniu jasność stopniowo narasta a my możemy wybrać sobie jaki poziom chcemy po prostu go ponownie przełączając. Jeśli z kolei już lampka jest włączona, to szybkie włączenie i wyłączenie przycisku ją całkiem zgasi. Wszystko to robi HT66F3195.
Wsparcie Home Assistant
Parowanie z Home Assistant jest bardzo proste, a wszystko to dzięki automatycznemu mapowaniu kanałów OpenBeken na zmienne TuyaMCU. Ściemniacz TuyaMCU obsługiwany jest z poziomu HA tak samo jak zwykły ściemniacz oparty o PWM. Oto przykładowy kod Yaml:
Code: yaml
Mamy tu dwa osobne kanały - jeden określa stan urządzenia (on/off), drugi poziom jasności.
Finalny test aplikacji:
Finalny test przycisku:
Co na filmach rzuca się w oczy? Przede wszystkim animacja przesuwania się stopnia jasności, krok po kroku, która pochodzi od układu Holteka i nie da się jej zmienić. Z tego powodu tak "klatkuje" suwak w Home Assistant.
Oprócz tego jest małe opóźnienie raportowania stanu, ale to normalne.
Wsparcie skryptów i komend po HTTP
OpenBeken wspiera wysyłanie komend w stylu Tasmoty, przez tzw. "Tasmota HTTP". Wysłać je można nawet przez zwykłą przeglądarkę.
Ta komenda włączy lampkę na pełną jasność:
http://192.168.0.115/cm?cmnd=backlog%20setChannel%201%201;%20setChannel%202%20100
Ta na 50% jasności:
http://192.168.0.115/cm?cmnd=backlog%20setChannel%201%201;%20setChannel%202%2050
Ta wyłączy ją po 5 sekundach:
http://192.168.0.115/cm?cmnd=addRepeatingEvent%205%201%20setChannel%201%200
(składnia addRepeatingEvent: okres powtórzeń, ilość powtórzeń, komenda)
Są też komendy np. dodające wartość do bieżącej wartości jasności, ale o tym innym razem.
Powiązany temat
TuyaMCU jest w wielu urządzeniach, również można je znaleźć w kontrolerze wentylatora WiFi/RF433MHz. Polecam przeczytać temat:
QIACHIP Universal WIFI Ceiling Fan Light Remote Control Kit - BK7231N - CB2S
Podsumowanie
Wygląda na to, że TuyaMCU jest już w dużym stopniu wspierane. Wszystko współdziała sensownie z MQTT i Home Assistant (wraz z komunikacją w obie strony i aktualizacją stanów), a nawet tez pozwala na skryptowanie prostych automatyzacji w obrębie samego OpenBeken.
Wkrótce potestuję więcej urządzeń z TuyaMCU i również dodam więcej możliwości dla interpretera komend (możliwość wykonywania prostych skryptów).
PS: A jeśli interesuje was nieco inny ściemniacz z innym protokołem UART (już nie TuyaMCU, lecz inny protokół tekstowy) to zapoznajcię z tym tematem.
Cool? Ranking DIY