
Il template Yeelight Color estende il template solo dimmer Yeelight con il controllo colore HSB completo e il bianco regolabile (temperatura colore). Si rivolge alla stessa famiglia di LED smart Wi-Fi — lampadine a colori, strisce e plafoniere — utilizzando l’identico Yeelight Inter-Operation Protocol sulla porta TCP 55443. La differenza principale è il modello dispositivo: anziché un semplice dimmer, il template espone un PacketParserHSBLight, che fornisce a TapHome proprietà native di tonalità, saturazione, luminosità e temperatura colore in un unico dispositivo.
TapHome comunica con la lampadina direttamente sulla rete locale tramite JSON-RPC — non è necessaria alcuna connessione cloud una volta abilitato il LAN Control sulla lampadina. Il template interroga tutte e sei le proprietà colore contemporaneamente e reagisce alle notifiche props inviate dalla lampadina, quindi le modifiche effettuate dall’app Yeelight o da un altro controller appaiono in TapHome quasi istantaneamente.
Collegamento hardware
Le lampadine Yeelight sono alimentate dalla rete standard (tipicamente E27, E14, GU10 o alimentatore 24 V per strisce LED a seconda del prodotto). Non è necessario alcun cablaggio tra TapHome e la lampadina — tutta la comunicazione avviene tramite Wi-Fi. La lampadina deve essere nella stessa LAN / VLAN del TapHome CCU, poiché il protocollo JSON-RPC non ha autenticazione né crittografia e il traffico non passa mai attraverso il cloud Yeelight.
Il protocollo LAN Yeelight non è crittografato. Non esporre la porta TCP 55443 su internet pubblico e posizionare le lampadine in un segmento di rete affidabile — chiunque abbia accesso alla LAN può inviare comandi alla lampadina.
Configurazione
Abilitazione LAN Control
Il LAN Control (in alcune regioni chiamato Developer Mode) �� disabilitato di default sulla lampadina. Senza di esso, le connessioni TCP sulla porta 55443 vengono rifiutate.
- Aprire l’app mobile Yeelight e associare la lampadina alla rete Wi-Fi locale con la procedura SmartConfig / QuickConnect se non è ancora stata associata.
- Selezionare la lampadina di destinazione nell’app.
- Toccare l’icona impostazioni (in alto a destra) e aprire LAN Control (in alcune versioni firmware etichettato come Developer Mode).
- Attivare LAN Control su ON.
- Annotare l’indirizzo IP della lampadina — è mostrato nelle informazioni dispositivo dell’app Yeelight o può essere letto dalla tabella DHCP lease del router.
Una volta abilitato il LAN Control, la lampadina ascolta sulla porta TCP 55443 e si annuncia periodicamente tramite UDP multicast 239.255.255.250:1982.
Configurazione di rete
- Indirizzo IP — il template TapHome non rileva automaticamente le lampadine. Assegnare un IP statico o una prenotazione DHCP nel router affinché l’indirizzo della lampadina non cambi dopo il rinnovo del lease.
- Stesso segmento LAN — il TapHome CCU e la lampadina devono essere nello stesso dominio broadcast. Se i client Wi-Fi e cablati sono in VLAN separate, aggiungere una regola firewall che consenta TCP 55443 tra di essi.
Parametri di importazione
Durante l’importazione del template in TapHome l’utente inserisce tre valori:
| Parametro | Descrizione | Predefinito |
|---|---|---|
ipAddress | Indirizzo IP della lampadina Yeelight nella LAN | 192.168.0.1 (segnaposto — sostituire con IP reale) |
Port | Porta TCP di controllo sulla lampadina | 55443 |
Internal poll interval | Frequenza di invio get_prop (in millisecondi) | 10000 (10 s) |
La porta predefinita 55443 è la porta standard Yeelight LAN Control e non dovrebbe essere modificata a meno che la lampadina non sia configurata su una porta non standard.
Tra un polling e l’altro, il template reagisce anche alle notifiche
propsche la lampadina invia quando cambia stato. In pratica questo significa che le modifiche di colore, luminosità e on/off effettuate dall’app Yeelight, da un adattatore interruttore a muro o da un altro controller appaiono in TapHome quasi istantaneamente, senza attendere il prossimo poll.
Capacità del dispositivo
Luce HSB a colori (tonalità, saturazione, luminosità e on/off)
Il template espone un singolo dispositivo luce HSB. Ad ogni ciclo di polling invia una richiesta get_prop per tutte e sei le proprietà contemporaneamente:
| |
Lo script listener analizza la risposta e la mappa sulle proprietà native TapHome:
- Hue (
Hd) —result[0], intero 0–359 gradi - Saturation (
Sa) —result[1], percentuale 0–100, divisa per 100 nell’intervallo TapHome 0,0–1,0 - Brightness (
Hb) —result[2], percentuale 1–100, divisa per 100 nell’intervallo TapHome 0,0–1,0 - Power (
St) —result[3],"on"mappato a 1,"off"mappato a 0 (la luminosità è impostata a 0 anche quando spento) - Color temperature (
Ct) —result[4], valore in Kelvin impostato solo quandocolor_mode = 2(modalità bianca); impostato aNaNaltrimenti - Color mode —
result[5], determina seCtviene scritto (1= RGB,2= Temperature,3= HSV)
Commutazione modalità colore
Il template usa la proprietà Ct per determinare la modalità colore attiva:
Ct = NaN— la lampadina è in modalità colore HSV. Le scritture usanoset_hsvper tonalità e saturazione.Ct = numero— la lampadina è in modalità bianca (temperatura colore). Le scritture usanoset_ct_abx.
TapHome non invia un comando esplicito di cambio modalità. Invece, l’utente imposta la temperatura colore su un valore numerico per entrare in modalità bianca, o la imposta su NaN (scegliendo un colore nel selettore HSB) per entrare in modalità HSV. Gli script di scrittura controllano Ct prima dell’invio e saltano il comando irrilevante — writesaturation ritorna immediatamente se Ct non è NaN, e writecct ritorna immediatamente se Ct è NaN.
Comandi di scrittura
Tre script di scrittura gestiscono diversi aspetti della luce:
- Luminosità / alimentazione (
writebrightness) — se luminosità > 0, inviaset_power ["on","smooth",300]seguito daset_bright [livello,"smooth",300]. Se luminosità = 0, inviaset_power ["off","smooth",300]. - Tonalità e saturazione (
writesaturation) — inviaset_power ["on","smooth",300]seguito daset_hsv [tonalità, saturazione,"smooth",300]. Si esegue solo quandoCt = NaN(modalità HSV). - Temperatura colore (
writecct) — inviaset_power ["on","smooth",300]seguito daset_ct_abx [ct,"smooth",300]. Si esegue solo quandoCtè un numero (modalità bianca). Intervallo valido: 1700–6500 K (limiti esatti dipendono dal modello della lampadina).
Tutte le scritture usano una transizione smooth di 300 ms per una dissolvenza morbida anziché un salto netto. Dopo ogni scrittura, la variabile debounce è impostata a 1, causando il salto del ciclo di polling successivo — questo evita la lettura di stati obsoleti durante la transizione della lampadina.
Diagnostica dei servizi
Due attributi di servizio a livello modulo vengono letti tramite una richiesta get_prop separata (id=981):
- Modalità colore —
RGB,TemperatureoHSV, decodificata dalla proprietà numericacolor_mode(1 / 2 / 3) usando un’espressioneSWITCHnello script listener del modulo. - Temperatura colore — valore in Kelvin riportato come
"{ct}K"(ad esempio"4000K"). Significativo solo quando la lampadina è in modalità Temperature.
Questi attributi sono diagnostica di sola lettura — il controllo effettivo della temperatura colore avviene tramite la proprietà Ct a livello dispositivo e lo script writecct descritto sopra.
Risoluzione dei problemi
La lampadina non risponde ai comandi
Verificare che il LAN Control sia abilitato sulla lampadina (app Yeelight → impostazioni lampadina → LAN Control). Senza di esso, la lampadina rifiuta tutte le connessioni TCP sulla porta 55443.
Confermare l’IP della lampadina nell’app Yeelight o nella tabella DHCP lease del router, e assicurarsi che corrisponda al parametro di importazione
ipAddress. Le lampadine Yeelight non mantengono un IP fisso di default — il lease potrebbe essere scaduto e l’IP cambiato.Assegnare alla lampadina un IP statico o una prenotazione DHCP per evitare il cambio di indirizzo.
Verificare che TapHome CCU e la lampadina siano nella stessa LAN / VLAN e che TCP
55443non sia bloccato da un firewall tra di essi.Testare la connettività manualmente:
telnet {bulb-ip} 55443e inviare una richiesta raw seguita da\r\n:1{"id":1,"method":"get_prop","params":["hue","sat","bright","power","ct","color_mode"]}Una lampadina funzionante risponde con
{"id":1,"result":["<hue>","<sat>","<bright>","<power>","<ct>","<color_mode>"]}.
I comandi colore vengono ignorati (tonalità/saturazione non cambiano)
Lo script writesaturation controlla Ct prima di inviare set_hsv. Se Ct è impostato su un valore numerico (modalità bianca), lo script ritorna senza inviare alcun comando. Per controllare il colore HSV, impostare prima la temperatura colore su NaN selezionando un colore nel selettore HSB di TapHome.
Analogamente, writecct ritorna senza inviare se Ct = NaN (modalità HSV). Per scrivere una temperatura colore, la lampadina deve già essere in modalità bianca.
Errore di lettura: client quota exceeded
Ogni connessione TCP a una lampadina Yeelight è limitata a 60 comandi al minuto, e la lampadina accetta al massimo 4 connessioni simultanee in totale. Se un altro sistema interroga la lampadina contemporaneamente — Home Assistant, una sessione cloud Yeelight, uno script personalizzato — il traffico combinato può attivare errori di rate limit.
- Disattivare o rallentare le altre integrazioni che condividono la lampadina.
- Mantenere l’intervallo di polling TapHome ai
10000ms predefiniti o superiori. Il template colore invia unget_propper poll più fino a tre scrittureset_*per modifica, restando ben sotto la quota di 60 cmd/min. - Chiudere le sessioni debug
telnetinutilizzate — contano nel limite di 4 connessioni.
Errore di scrittura HueSat o temperatura colore
Lo script listener traccia gli errori di scrittura separatamente per ogni tipo di comando — writeErrorBrightness per le scritture di alimentazione/luminosità, writeErrorHueSat per le scritture set_hsv e writeErrorCt per le scritture set_ct_abx. Se appare un errore:
- Confermare che la lampadina è accesa — tutti i comandi
set_*tranneset_powersono accettati solo quando la lampadina è nello statoon. - Verificare che il valore della temperatura colore sia nell’intervallo specifico del modello (tipicamente 1700–6500 K per lampadine a colori, 2700–6500 K per plafoniere, 2700–6000 K per ceiling3).
- Controllare il messaggio di errore raw nella diagnostica servizi TapHome per il codice di errore specifico restituito dalla lampadina.
Le modifiche nell’app Yeelight non si riflettono
Il template reagisce alle notifiche props inviate dalla lampadina, quindi le modifiche esterne normalmente appaiono entro un secondo. Se non appaiono:
- La notifica potrebbe essere arrivata durante il ristabilimento del socket TCP — il prossimo poll (predefinito 10 s) risincronizzerà lo stato.
- Alcune versioni firmware meno recenti inviano notifiche solo quando un comando viene attivamente inviato. Aggiornare il firmware della lampadina dall’app Yeelight.
- La lampadina potrebbe aver raggiunto il limite di 4 connessioni — ridurre il numero di client simultanei nella LAN.
I dispositivi Yeelight supportano solo 4 connessioni TCP simultanee e 60 comandi al minuto per connessione. Se TapHome e un altro sistema (es. Home Assistant) interrogano la stessa lampadina contemporaneamente, la comunicazione potrebbe diventare inaffidabile. Utilizzare un intervallo di polling di 10 secondi o superiore.
