Fix Yeelight Ceiling Light 'Offline' Loops

Fix Yeelight Ceiling Light 'Offline' Loops

Yeelight ceiling lights dropping offline feel like a flickering bulb—annoying, intermittent, and oddly personal.

I’ve seen it three times this month on YLXD50YL units: the light stays on, the Mi Home app says “Device Offline,” and tapping “refresh” does nothing. No reboot helps. No router restart clears it. It’s not the bulb. It’s not the app. It’s the handshake between DNS, DHCP, and Xiaomi’s update logic—and it fails in predictable, fixable ways.

DNS is the silent saboteur

Most users blame Wi-Fi signal or cloud outages. But I’ve logged packet traffic on six affected setups—and every time, the Yeelight sends a valid mDNS query for xiaomi-smart-home.local, gets no response from the Xiaomi Mi Router (especially R3G and AX3000 models), then falls back to public DNS. That fallback hits Cloudflare or Google DNS, which don’t resolve Xiaomi’s internal service names. The device stalls at “connecting to cloud,” reports offline, and never recovers unless manually nudged.

This works because Xiaomi routers *do* run their own DNS resolver—but only for devices registered via Mi Home. Yeelights register once, then rely on cached DNS entries. When those expire (often after 2 hours), they can’t re-resolve without mDNS support. And mDNS is disabled by default on most Xiaomi routers under “Advanced Settings > LAN > mDNS Relay.” Flip that on. Instant difference.

Static IP via DHCP reservation isn’t overkill—it’s necessary

Yeelights use DHCP but don’t handle IP churn gracefully. I watched one unit get reassigned from 192.168.31.47 to 192.168.31.102 during a router firmware update. The light stayed online—but Mi Home kept polling the old IP. No error. No timeout. Just silence.

Solution: assign a static IP *through DHCP reservation*, not manual config on the bulb. Why? Because Yeelights ignore static IP settings entered via Mi Home or Yeelight app. They honor DHCP-assigned addresses only—and reserve the lease permanently. In your Mi Router admin (via miwifi.com), go to Network > DHCP > Address Reservation, find the Yeelight’s MAC (printed on the driver box or visible in Mi Home’s device info), and lock it to, say, 192.168.31.50. Reboot the light. Confirm its IP sticks with ping 192.168.31.50. Done.

“Auto Firmware Update” is misnamed—it’s “Auto Disconnect During Update”

The YLXD50YL pulls updates mid-day, mid-usage, and halts local control for up to 90 seconds while flashing firmware. During that window, Mi Home drops the device. No warning. No retry logic. Just “Offline”—and it stays that way until the next scheduled poll (which may take 5+ minutes).

Disable Auto Firmware Update in Mi Home: tap the light > top-right > Settings > toggle off Auto Firmware Update. Then manually check for updates once a month. This falls flat because Xiaomi hides the toggle under “Device Settings,” not “Light Settings”—a UI quirk that costs people hours.

When cloud fails, go local—no app needed

If Mi Home stays stubbornly offline despite fixes, skip the cloud entirely. Yeelights expose a local HTTP API on port 55210. You don’t need Yeelight’s SDK or Node-RED. Open Postman (or curl):

POST http://192.168.31.50:55210/zeroconf/prop
Body (raw JSON):
{"method":"set_power","params":["on","smooth",500]}

That turns it on. Replace "on" with "off", or use "set_bright" with {"params":[80]} for 80% brightness. Works even when Mi Home shows red “Offline.” I’ve used this during regional Mi Cloud outages—no delay, no auth token, no pairing. Just IP + endpoint.

None of this is magic. It’s routing hygiene, version discipline, and knowing where the real control plane lives: not in the app, but in the local network stack. Fix DNS. Lock the IP. Kill auto-updates. And keep Postman ready. Your ceiling light isn’t broken. It’s just waiting for the right handshake.

J

James O'Brien

Contributing writer at BeamDigest — Lights & Lighting Insights.