
Yeelight este o marcă de iluminat LED inteligent Wi-Fi — becuri monocrome, becuri cu alb reglabil și color, benzi LED și plafoniere — a companiei Qingdao Yeelink (parte a ecosistemului Xiaomi). Toate produsele Yeelight cu acces LAN folosesc același protocol JSON-RPC Inter-Operation Protocol pe portul TCP 55443, așa că un singur șablon TapHome acoperă întreaga familie.
Șablonul oferă un dispozitiv dimmer: luminozitate (0–100 %) și pornire/oprire cu tranziții graduale. Modul de culoare curent și temperatura de culoare sunt raportate ca atribute de service doar pentru citire. TapHome comunică cu becul direct în rețeaua locală — după activarea LAN Control pe bec nu este necesar un cont în cloudul Yeelight.
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 luminozitate / pornire-oprire făcute din aplicația Yeelight, dintr-un adaptor de întrerupător de perete sau dintr-o altă instanță Home Assistant apar în TapHome aproape imediat, fără a aștepta următoarea interogare.
Funcțiile dispozitivului
Dimmer (luminozitate și pornire/oprire)
Șablonul oferă un singur dispozitiv dimmer. La fiecare interogare trimite:
| |
și analizează răspunsul result[0] (luminozitate 1–100, împărțită la 100 pentru intervalul TapHome 0,0–1,0) și result[1] ("on" / "off").
Scrierile se traduc în două comenzi JSON-RPC:
- Dacă nivelul țintă este mai mare decât zero, șablonul trimite
set_power ["on","smooth",300], urmat deset_bright [round(level*100),"smooth",500]. Tranziția de pornire de 300 ms și tranziția de luminozitate de 500 ms dau o estompare lină în locul unui salt brusc. - Dacă nivelul țintă este zero, șablonul trimite
set_power ["off","smooth",300].
Dimmerul preia și notificările props trimise de bec (pornire/oprire și luminozitate), astfel încât schimbările de stare externe apar în TapHome fără a aștepta următorul ciclu de interogare.
Mod de culoare și temperatură de culoare (doar pentru citire)
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. - Temperatură de culoare — valoare în kelvini raportată ca
"{ct}K"(de exemplu"4000K"). Are sens doar când becul este în modul Temperature. Interval tipic, în funcție de model: 1700–6500 K pentru becuri color și benzi, 2700–6500 K pentru plafoniere (ceiling3 are maximum 6000 K).
Ambele atribute sunt doar pentru diagnoză — șablonul nu schimbă modul de culoare și nu scrie o nouă temperatură de culoare.
Funcții suplimentare
Protocolul LAN Yeelight oferă și controlul culorilor RGB și HSV (set_rgb, set_hsv), controlul temperaturii de culoare (set_ct_abx), programe color-flow (start_cf / stop_cf), scene predefinite (set_scene), temporizatoare de oprire în dispozitiv (cron_add), controlul luminii de fundal la corpurile de iluminat cu două surse de lumină (metodele bg_*) și modul muzică (set_music, un canal TCP invers care ocolește limita de comenzi). Niciuna dintre acestea nu este implementată în actualul șablon dimmer TapHome — utilizatorii care au nevoie de control complet al culorilor sau de efecte trebuie să extindă șablonul sau să folosească în paralel aplicația Yeelight.
Culoarea, temperatura de culoare și scenele pot fi adăugate într-o actualizare viitoare a șablonului, pe același canal TCP. Scripturile PacketParser de citire / scriere pot fi extinse pentru a trimite
set_ct_abx,set_rgbsauset_scenefără a schimba parametrii de import.
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":["bright","power"]}Un bec funcțional răspunde cu
{"id":1,"result":["<bright>","<power>"]}.
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 (144 de comenzi/minut în întreaga rețea LAN). 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, pe care TapHome le raportează ca Read error: client quota exceeded.
- 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. Unget_propplus două scrieriset_*pentru fiecare schimbare rămân mult sub limita de 60 de comenzi/min. - Închideți sesiunile de depanare
telnetnefolosite — și ele intră în limita de 4 conexiuni.
Atributul de service Temperatură de culoare afișează „error”
Atributele de service Mod de culoare și Temperatură de culoare citesc color_mode și ct de la bec. Dacă becul este un model monocrom (doar alb) care nu acceptă alb reglabil sau dacă este în prezent în modul RGB sau HSV, valoarea ct nu are sens, iar scriptul listener raportează "error" pentru Temperatură de culoare. Acesta este un comportament normal și nu indică o defecțiune.
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.
