
Șablonul Yeelight Color extinde șablonul Yeelight, care oferă doar dimmer, cu control complet al culorilor HSB și al temperaturii de culoare (alb reglabil). Se adresează aceleiași familii de LED-uri inteligente Wi-Fi — becuri color, benzi și plafoniere — și folosește același protocol Yeelight Inter-Operation Protocol pe portul TCP 55443. Diferența principală este modelul de dispozitiv: în locul unui simplu dimmer, șablonul oferă un PacketParserHSBLight, care pune la dispoziția TapHome proprietățile native de nuanță, saturație, luminozitate și temperatură de culoare într-un singur dispozitiv.
TapHome comunică cu becul direct în rețeaua locală prin JSON-RPC — după activarea LAN Control pe bec nu este necesară conexiunea la cloud. Șablonul interoghează toate cele șase proprietăți de culoare deodată și reacționează la notificările props trimise de bec, astfel încât schimbările făcute din aplicația Yeelight sau dintr-un alt controler apar în TapHome aproape imediat.
Conectarea hardware
Becurile Yeelight se alimentează de la rețeaua electrică standard (de obicei E27, E14, GU10 sau sursa de alimentare de 24 V a benzii, în funcție de produs). Între TapHome și bec nu este necesar niciun cablu — întreaga comunicație se face prin Wi-Fi. Becul trebuie să fie în aceeași rețea LAN / VLAN ca TapHome CCU, deoarece protocolul JSON-RPC nu are autentificare și nici criptare, iar traficul nu trece niciodată prin cloudul Yeelight.
Protocolul LAN Yeelight nu este criptat. Nu expuneți portul TCP 55443 pe internetul public și plasați becurile într-un segment de rețea de încredere — oricine are acces la rețeaua LAN poate trimite comenzi becului.
Configurare
Activarea LAN Control
LAN Control (în unele regiuni numit și Developer Mode) este dezactivat implicit pe bec. Fără el, conexiunile TCP pe portul 55443 sunt refuzate.
- Deschideți aplicația mobilă Yeelight și asociați becul cu rețeaua Wi-Fi locală prin procedura SmartConfig / QuickConnect, dacă nu a fost asociat încă.
- Selectați becul în aplicație.
- Atingeți pictograma de setări (dreapta sus) și deschideți LAN Control (în unele versiuni de firmware se numește Developer Mode).
- Comutați LAN Control pe ON.
- Notați adresa IP a becului — este afișată în informațiile despre dispozitiv din aplicația Yeelight sau se poate citi din tabelul de alocări DHCP al routerului.
După activarea LAN Control, becul ascultă pe portul TCP 55443 și se anunță periodic prin multicast UDP 239.255.255.250:1982.
Configurarea rețelei
- Adresă IP — șablonul TapHome nu descoperă becurile automat. Atribuiți în router o adresă IP statică sau o rezervare DHCP, ca adresa becului să nu se schimbe după reînnoirea alocării.
- Același segment LAN — TapHome CCU și becul trebuie să fie în același domeniu de broadcast. Dacă clienții Wi-Fi și cei pe cablu sunt în VLAN-uri separate, adăugați o regulă de firewall care permite TCP 55443 între ele.
Parametri de import
La importul șablonului în TapHome, utilizatorul introduce trei valori:
| Parametru | Descriere | Valoare implicită |
|---|---|---|
ipAddress | Adresa IP a becului Yeelight în rețeaua LAN | 192.168.0.1 (valoare provizorie — înlocuiți-o cu adresa IP reală) |
Port | Portul TCP de control al becului | 55443 |
Internal poll interval | Cât de des trimite șablonul get_prop (în milisecunde) | 10000 (10 s) |
Portul implicit 55443 este portul standard Yeelight LAN Control și nu trebuie schimbat decât dacă becul a fost configurat pentru un port nestandard.
Între interogări, șablonul reacționează și la notificările
propspe care becul le trimite la fiecare schimbare de stare. În practică, schimbările de culoare, luminozitate și pornire/oprire făcute din aplicația Yeelight, dintr-un adaptor de întrerupător de perete sau dintr-un alt controler apar în TapHome aproape imediat, fără a aștepta următoarea interogare.
Funcțiile dispozitivului
Lumină color HSB (nuanță, saturație, luminozitate și pornire/oprire)
Șablonul oferă un singur dispozitiv de lumină HSB. La fiecare ciclu de interogare trimite o cerere get_prop pentru toate cele șase proprietăți deodată:
| |
Scriptul listener analizează răspunsul și atribuie valorile proprietăților native TapHome:
- Nuanță (
Hd) —result[0], număr întreg 0–359 grade - Saturație (
Sa) —result[1], procent 0–100, împărțit la 100 pentru intervalul TapHome 0,0–1,0 - Luminozitate (
Hb) —result[2], procent 1–100, împărțit la 100 pentru intervalul TapHome 0,0–1,0 - Pornire/oprire (
St) —result[3],"on"se convertește în 1,"off"în 0 (la oprire, luminozitatea se setează și ea la 0) - Temperatură de culoare (
Ct) —result[4], valoare în kelvini setată doar cândcolor_mode = 2(modul alb); altfel se setează laNaN - Mod de culoare —
result[5], stabilește dacă se scrieCt(1= RGB,2= Temperature,3= HSV)
Comutarea modului de culoare
Șablonul folosește proprietatea Ct pentru a stabili modul de culoare activ:
Ct = NaN— becul este în modul de culoare HSV. Scrierile folosescset_hsvpentru nuanță și saturație.Ct= număr — becul este în modul alb (temperatură de culoare). Scrierile folosescset_ct_abx.
TapHome nu trimite o comandă explicită de comutare a modului. În schimb, utilizatorul setează temperatura de culoare la o valoare numerică pentru a trece în modul alb sau o setează la NaN (alegând o culoare în selectorul HSB) pentru a trece în modul HSV. Scripturile de scriere verifică Ct înainte de trimitere și omit comanda irelevantă — writesaturation se încheie imediat dacă Ct nu este NaN, iar writecct se încheie imediat dacă Ct este NaN.
Comenzi de scriere
Trei scripturi de scriere gestionează diferite aspecte ale luminii:
- Luminozitate și pornire/oprire (
writebrightness) — dacă luminozitatea > 0, trimiteset_power ["on","smooth",300], urmat deset_bright [level,"smooth",300]. Dacă luminozitatea = 0, trimiteset_power ["off","smooth",300]. - Nuanță și saturație (
writesaturation) — trimiteset_power ["on","smooth",300], urmat deset_hsv [hue, saturation,"smooth",300]. Rulează doar cândCt = NaN(modul HSV). - Temperatură de culoare (
writecct) — trimiteset_power ["on","smooth",300], urmat deset_ct_abx [ct,"smooth",300]. Rulează doar cândCteste un număr (modul alb). Interval valid: 1700–6500 K (limitele exacte depind de modelul becului).
Toate scrierile folosesc o tranziție graduală de 300 ms pentru o estompare lină în locul unui salt brusc. După fiecare scriere, o variabilă de debounce se setează la 1, iar următorul ciclu de interogare este omis — astfel nu se citește o stare învechită cât timp becul este în tranziție.
Diagnoză de service
Două atribute de service la nivel de modul se citesc printr-o cerere get_prop separată (id=981):
- Mod de culoare —
RGB,TemperaturesauHSV, decodat din proprietatea numericăcolor_mode(1 / 2 / 3) cu o expresieSWITCHîn scriptul listener al modulului. - Temperatură de culoare — valoare în kelvini raportată ca
"{ct}K"(de exemplu"4000K"). Are sens doar când becul este în modul Temperature.
Aceste atribute sunt doar pentru citire și servesc la diagnoză — controlul propriu-zis al temperaturii de culoare se face prin proprietatea Ct la nivel de dispozitiv și prin scriptul writecct descris mai sus.
Rezolvarea problemelor
Becul nu răspunde la comenzi
Verificați dacă LAN Control este activat pe bec (aplicația Yeelight → setările becului → LAN Control). Fără el, becul refuză toate conexiunile TCP pe portul 55443.
Confirmați adresa IP a becului în aplicația Yeelight sau în tabelul de alocări DHCP al routerului și asigurați-vă că se potrivește cu parametrul de import
ipAddress. Implicit, becurile Yeelight nu păstrează o adresă IP fixă — este posibil ca alocarea DHCP să fi expirat și adresa IP să se fi schimbat.Atribuiți becului o adresă IP statică sau o rezervare DHCP, ca adresa să nu se schimbe.
Verificați dacă TapHome CCU și becul sunt în aceeași rețea LAN / VLAN și dacă TCP
55443nu este blocat de un firewall între ele.Testați manual conexiunea:
telnet {bulb-ip} 55443și trimiteți o cerere brută urmată de\r\n:1{"id":1,"method":"get_prop","params":["hue","sat","bright","power","ct","color_mode"]}Un bec funcțional răspunde cu
{"id":1,"result":["<hue>","<sat>","<bright>","<power>","<ct>","<color_mode>"]}.
Comenzile de culoare sunt ignorate (nuanța/saturația nu se schimbă)
Scriptul writesaturation verifică Ct înainte de a trimite set_hsv. Dacă Ct are o valoare numerică (modul alb), scriptul se încheie fără să trimită vreo comandă. Pentru a controla culoarea HSV, setați mai întâi temperatura de culoare la NaN, alegând o culoare în selectorul HSB din TapHome.
Similar, writecct se încheie fără să trimită vreo comandă dacă Ct = NaN (modul HSV). Pentru a scrie o temperatură de culoare, becul trebuie să fie deja în modul alb.
Read error: client quota exceeded
Fiecare conexiune TCP la un bec Yeelight este limitată la 60 de comenzi pe minut, iar becul acceptă în total cel mult 4 conexiuni simultane. Dacă un alt sistem interoghează becul în același timp — Home Assistant, o sesiune din cloudul Yeelight, un script propriu — traficul combinat poate declanșa erori de depășire a limitei de comenzi.
- Dezactivați celelalte integrări care folosesc același bec sau reduceți frecvența interogărilor acestora.
- Păstrați intervalul de interogare TapHome la valoarea implicită de
10000ms sau mai mare. Șablonul color trimite unget_propla fiecare interogare plus cel mult trei scrieriset_*pentru fiecare schimbare, ceea ce rămâne mult sub limita de 60 de comenzi/min. - Închideți sesiunile de depanare
telnetnefolosite — și ele intră în limita de 4 conexiuni.
Eroare de scriere HueSat sau Temperatură de culoare
Scriptul listener urmărește erorile de scriere separat pentru fiecare tip de comandă — writeErrorBrightness pentru scrierile de pornire/luminozitate, writeErrorHueSat pentru scrierile set_hsv și writeErrorCt pentru scrierile set_ct_abx. Dacă apare o eroare:
- Asigurați-vă că becul este pornit — toate comenzile
set_*, cu excepțiaset_power, sunt acceptate doar când becul este în stareaon. - Verificați dacă valoarea temperaturii de culoare este în intervalul specific modelului (de obicei 1700–6500 K pentru becuri color, 2700–6500 K pentru plafoniere, 2700–6000 K pentru ceiling3).
- Verificați mesajul de eroare brut din diagnoza de service TapHome pentru codul de eroare specific returnat de bec.
Schimbările făcute în aplicația Yeelight nu apar
Șablonul reacționează la notificările props trimise de bec, așa că schimbările externe apar de obicei în mai puțin de o secundă. Dacă nu apar:
- Notificarea poate să fi sosit în timp ce conexiunea TCP se restabilea — următoarea interogare (implicit 10 s) va resincroniza starea.
- Unele versiuni mai vechi de firmware trimit notificări doar când se trimite activ o comandă. Actualizați firmware-ul becului din aplicația Yeelight.
- Becul poate să fi atins limita de 4 conexiuni — reduceți numărul de clienți simultani din rețeaua LAN.
Dispozitivele Yeelight acceptă doar 4 conexiuni TCP simultane și 60 de comenzi pe minut pentru fiecare conexiune. Dacă TapHome și un alt sistem (de ex. Home Assistant) interoghează același bec simultan, comunicarea poate deveni instabilă. Folosiți un interval de interogare de 10 secunde sau mai mare.
