
Witajcie moi drodzy.
Przedstawię tutaj wnętrze jednej z najbardziej problematycznych smart/wifi ledówek które otwierałem, dodatkowo z dość nietypowym modułem WiFi w środku. Będzie to Yeelight YLDP02YL ze stajni Xiaomi (Mi Home) oferująca pracę w trybie RGBW, czyli kolory czerwony, zielony, niebieski oraz ciepły biały ("red, green, blue, warm white"). Jakie napotkamy problemy przy dobieraniu się do środka i cóż to za moduł tam znajdziemy? Czy uda się sparować z Home Assistant? Przekonajmy się.
Jeśli interesuje Cię tylko integracja z Home Assistant, to przewiń niżej, gdyż tutaj najpierw przedstawiam wnętrze, a potem paruję z Asystentem. Tak dla odmiany.
Zakup YLDP02YL
Produkt znalazłem pod hasłem "Yeelight YLDP02YL E27 9W RGBW WiFi Smart LED Bulb Work With Google Assistant AC220V( Ecosystem Product)" u jednego ze sprzedawców oferujących (na czas mojego zakupu) wysyłkę z Czech. Teraz cena wzrosła do przerażającej kwoty prawie 200 zł:

Sam kupiłem ją z kolei za jakieś 75zł:

Kilka grafik promocyjnych:


Specyfikacja:

Po kilku dniach otrzymałem takie pudełeczko:


Początkowo wszelkie testy oryginalnej aplikacji producenta z tą ledówką pomijam. Było tego już dość dużo na forum a mnie interesuje potencjał zmiany firmware na mikrokontrolerze ze środka.
Teardown YLDP02YL
Kopułkę udało mi się zdjąć siłowo. Wtedy jeszcze nie wiedziałem, czego się spodziewać:


W oczy rzuca się podział na osobne diody dla każdego koloru. Są oddzielnie oznaczone, R (Red), G (Green), B (Blue), no i W.


Następnie zdjąłem gwint, da się go podważyć. Niestety wtedy zobaczyłem, że całość jest wypełniona jakimś gumowym tworzywem.


To nie był jedyny problem. Okazało się, że płytka z diodami LED jest przylutowana do bazy. Nigdy czegoś takiego jeszcze nie spotkałem, ale mimo to ją zdemontowałem:

Przynajmniej ten wielki radiator zasługuje na pochwałę.




Moduł WiFi ze środka wygląda dość tajemniczo, to chyba nie ESP.
Niestety wszystko jest zalane tą gumą. Trzeba się bawić w archeologa.



Stopniowo udawało się odsłaniać komponenty. Tak wygląda jeden większy kawałek gumy, z odbitym kształtem elementów SMD:

Prawie gotowe:


Moduł ze środka. Pozytywne zaskoczenie, jest nawet warystor, ochrona przeciwko przepięciom (7M471K, na PCB oznaczenie MOV1 jak metal-oxide varistor). Nie widuję go w ledówkach smart. Jakiś rezystor bezpiecznikowy też jest, ale po kondensatorze przeciwzakłóceniowym jest tylko puste miejsce.




Podrasowane zdjęcie by można było odczytać oznaczenia elementów:

Spód:





Zasilanie zapewnia układ HT7A6322. Znów produkcji Holtek.

Może on pracować w różnych konfiguracjach. Wcześniej czegoś takiego nie spotkałem. Jednocześnie flyback, buck i boost?


Wyprowadzenia i diagram blokowy (oczywiście tranzystor kluczujący jest zintegrowany z kontrolerem przetwornicy):

Dwa układy które wyglądają na sterowniki LED to 6867 9AJ2G. Nie mam ich noty katalogowej, ale widać, że każdy z nich steruje dwoma kanałami. Czyli mamy R, G na jednym a na drugim B oraz W. Przypominam, tu jest jeden kanał bieli, nie ma osobno white i cold.
9336647 GH16D to po prostu regulator 3.3V LDO AZ1117CH:

Na płytce też jest jakaś drobnica, tranzystory w SOT-23, ale tego już nawet nie analizuję.
No i moduł WiFi:


Element o ośmiu wyprowadzeniach to kość pamięci 25Q16BVSIG Flash, 16M-bit czyli 2MB. Podobnie jak w ESP8266, pamięć to zewnętrzny układ. Sam mikrokontroler komunikuje się z nią poprzez SPI. A z kolei mikrokontroler to 88MW300-NAP2 (z rezonatorem kwarcowym 38.4MHz).
To mikrokontroler WLAN, SoC (System on Chip) oferujący nawet wsparcie USB:

Diagram blokowy:

Rdzeń ARM Cortex-M4F, 128 KB ROM i 512 KB RAM. Zegar 200MHz.
Pinout:

Ale to mi nie starczyło. Postanowiłem wylutować moduł i zrobić mu zdjęcie od spodu. Użyłem do tego topnika, trochę nowego spoiwa ołowiowego i plecionki.




Moduł oznaczony jest M10D11 SL. Ma na spodzie dodatkowe pola lutownicze, niestety nie sa one podpisane.
Po zabawie przylutowałem moduł WiFi na miejsce, natomiast płytkę z LEDami zamocowałem na przewodach gdyż inaczej by mi blokowała ewentualny wylut modułu WiFi w przyszłości, a chcę podjąć próbę jego programowania

Integracja z Home Assistant
Home Assistant oferuje integrację Yeelight, ale nie odcina ona tych lampek całkiem od chmury:
https://www.home-assistant.io/integrations/yeelight/
Wspiera on również automatyczne odkrywanie urządzeń (autodiscovery).
Pełna lista urządzeń wspieranych przez tę integrację:
ID modelu | Model produktu | Nazwa produktu |
mono | YLTD03YL | Yeelight Serene Eye-Friendly Desk Lamp |
mono1 | YLDP01YL | LED Bulb (White) |
? | YLDP05YL | LED Bulb (White) - 2nd generation |
color1 | YLDP02YL | LED Bulb (Color) |
color1 | YLDP03YL | LED Bulb (Color) - E26 |
color2 | YLDP06YL | LED Bulb (Color) - 2nd generation |
color4 | YLDP13YL | LED Bulb 1S (Color) |
color4 | YLDP04YL | LED Bulb 1S (Color) |
color6 | YLDP13AYL | LED Bulb 1S (Color) |
colorb | YLDP005 | LED Bulb (Color) |
colorc | YLDP004-A | GU10 W1 (Color) |
strip1 | YLDD01YL | Lightstrip (Color) |
strip1 | YLDD02YL | Lightstrip (Color) |
? | YLDD04YL | Lightstrip (Color) |
strip6 | YLDD05YL | Lightstrip (Color) |
bslamp1 | MJCTD01YL | Xiaomi Mijia Bedside Lamp - Wi-Fi Version! |
bslamp1 | MJCTD02YL | Xiaomi Mijia Bedside Lamp II |
RGBW | MJDP02YL | Mi LED smart Lamp - white and color Wi-Fi Version |
lamp | MJTD02YL | Xiaomi Mijia Desk Lamp Pro |
lamp1 | MJTD01YL | Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn’t possible because the device doesn’t support mDNS due to the small amount of RAM) |
lamp15 | YLTD003 | Yeelight LED Screen Light Bar Pro |
ceiling1 | YLXD01YL | Yeelight Ceiling Light |
ceiling2 | YLXD03YL | Yeelight Ceiling Light - Youth Version |
? | YLXD62YI | Yeelight Ceiling Light (Jiaoyue 260) |
?, may be ceiling3 | YLXD04YL | Yeelight Ceiling Light (Jiaoyue 450) |
ceiling3 | YLXD05YL | Yeelight Ceiling Light (Jiaoyue 480) |
ceiling4 | YLXD02YL | Yeelight Ceiling Light (Jiaoyue 650) |
ceiling10 | YLDL01YL | Yeelight Meteorite Pendant Light |
ceiling13 | YLXD01YL | Yeelight LED Ceiling Light |
ceil26 | YLXD76YL | Yeelight Ceiling Light - Updated HomeKit 23w |
? | YLXD013-B | Yeelight Arwen Ceiling Light 450C |
? | YLXD013-C | Yeelight Arwen Ceiling Light 550C |
Więcej o HA tutaj:
Tutorial Home Assistant - konfiguracja, WiFi, MQTT, Zigbee, Tasmota
Niestety nowsze urządzenia Yeelight mają podobno zablokowaną kontrolę przez LAN, której Home Assistant używa:

Mimo wszystko zdecydowałem się podjąć próby użycia Yeelight z Home Assistant.
Wymaga to zasadniczo dwóch kroków.
1. najpierw parujemy Yeelight z aplikacją producenta
2. potem z Home Assistant, właśnie dzięki tej kontroli LAN
Wsad zostaje oryginalny, Home Assistant po prostu udaje nasz telefon.
Krok 1: aplikacja Yeelight i parowanie
Aplikacja Yeelight jest dostępna dla systemów Android i iOS. Przetestowałem ją na iOS.
Pobrać ją można z AppStore. Trzeba dać jej odpowiednie uprawnienia:





Rejestracja wymaga emaila bądź numeru telefonu:







Parowania dokonuje się poprzez pięć cyklów power on/power off. Następnie trzeba ręcznie w ustawieniach iPhone połączyć się z siecią WiFi którą utworzyła Yeelight, czyli tzw. AP-mode














Gotowe - z apki można już sterować:




Krok 2: Home Assistant i Light Control
Integrację Yeelight można dodać ręcznie lub poprzez przycisk na stronie z dokumentacją:

https://www.home-assistant.io/integrations/yeelight/
Tak wygląda działanie przycisku/przekierowania (po poprawieniu adresu IP naszego HA):

Strona otwiera się w naszym Home Assistant panel:

Wykrywa od razu urządzenia Yeelight na naszej sieci LAN:

Pozwala nam je skonfigurować:


A potem już można nimi normalnie sterować przez Asystenta:


Potencjalne alternatywne firmware
O dziwo w internecie można znaleźć jakiś zalążek oprogramowania/narzędzia przeznaczonego do wyłamania tego typu lampek z chmury producenta.
Takie coś pozwoliłoby posterować nawet nowszymi Yeelight, tymi które mają zablokowane sterowanie przez LAN.
Jest to projekt OpenMiHome z 2017 roku, dostępny na licencji GPL, tutaj:
https://github.com/OpenMiHome
https://github.com/OpenMiHome/mihome-binary-protocol
https://github.com/OpenMiHome/mrvl-88mw30x-firmware-tools
Niestety wygląda on na bardzo początkową fazę a może nawet tylko i "proof of concept". Przynajmniej jakieś SDK jest. Zajmę się tym, jeśli spotkam więcej produktów z 88MW300-NAP2.
Podsumowanie
Yeelight jest wspierane przez Home Assistant. Można je łatwo sparować z HA, ale to nie odcina ich od chmury, po prostu korzysta z protokołu LAN, który co gorsza w nowszych wersjach Yeelight podobno jest zablokowany bądź zabezpieczony.
Źle to wróży przyszłości tych LEDówek w domach użytkowników HA.
Zmiana firmware natomiast wydaje się być dość trudna i chyba nie ma nawet na co zmienić...
W środku nie ma ESP, nie ma Beken, ani nawet BL602. Moduł ze środka z 88MW300-NAP2 jest mi całkiem obcy i nie wiem na ile uda się go odciąć od chmury. Spróbuję się tego podjąć wkrótce, jedyne szansa na powodzenie daje projekt OpenMiHome, ale wygląda na to, że to jest samo SDK, a w historii rewizji kodu też nic nie ma.
Dodatkowo muszę przyznać, że to rzeczywiście była niezwykle trudna w dostaniu się do środka lampka.
Normalnie płytka z LEDami nie jest lutowana do bazy, a tu była.
Normalnie środek światełek smart nie jest wypełniany po brzegi gumopodobną substancją, a tu był....
A ostatecznie i sam wysiłek też się niezbyt opłacił...
Mimo wszystko należy pochwalić producenta za nieco solidniejszą budowę niż w przypadku Tuya. Warystor w lampce LED? Tego dawno nie widziałem.
Jeśli ktoś ma coś więcej do dodania (nie zidentyfikowałem tych dwóch układów od kontroli LED) bądź zna więcej produktów opartych na kości 88MW300-NAP2, bądź po prostu ma doświadczenia z oświetleniem Yeelight to zapraszam do dyskusji. Ja na ten moment więcej tej lampki nie ruszałem, nie wiem jeszcze co z nią zrobię. Ciężko ją będzie odciąć od chmury.
PS: Przynajmniej inna Yeelight, YLDP004-A, bazuje na zwykłym ESP8285. Więc wiadomo co kupować, jak chcemy zmienić wsad. Oczywiście o ile nic się w najbliższej przyszłości nie zmieni.
Cool? Ranking DIY