Skip to content

[miio] Add official support for Yeelink Ceiling Light (yeelink.light.ceilb) #19537

@jenicek001

Description

@jenicek001

[miio] Add official support for Yeelink Ceiling Light (yeelink.light.ceilb)

Environment

  • OpenHAB Version: 5.0.1 (Build)
  • MIIO Binding Version: 5.0.1
  • Operating System: Raspberry Pi OS Linux (Raspberry Pi 5)

Device Information

Model ID: yeelink.light.ceilb
Brand: Yeelink/Yeelight (Xiaomi ecosystem)
Device Type: Ceiling Light with tunable white + RGB ambient light
Device IDs tested: 28BB8341, 2683157F, 24F3BB90, 24F3C3F1, 267F5119, 26831589, 2A40A434 (7 devices total)

MIOT Spec: https://home.miot-spec.com/s/yeelink.light.ceilb

Current Status

MIOT auto-generation completed successfully
All properties tested and working
Database file generated and validated

The device currently auto-discovers as miio:generic with only basic network and action channels. After MIOT auto-generation, the device has been fully tested and all 11 properties are working correctly.

Request

Please add the generated database file to the official MIIO binding so that yeelink.light.ceilb devices are automatically supported as miio:basic instead of requiring manual database file installation.

Testing Results

MIOT Protocol Auto-Generation

Successfully generated using the experimental MIOT channel. Results:

Test Report: /var/lib/openhab/miio/test-yeelink.light.ceilb-20251024-114407.txt
Database File: /etc/openhab/misc/miio/yeelink.light.ceilb-miot-experimental.json

Discovered Properties (11 total)

All properties tested and confirmed working:

Main Light (Service ID 2)

  1. on (siid:2, piid:1) - Switch Status - Switch - ON/OFF control and state
  2. mode (siid:2, piid:2) - Mode - Number - Day (0) / Night (1)
  3. brightness (siid:2, piid:3) - Brightness - Number:Dimensionless - 1-100%
  4. color-temperature (siid:2, piid:5) - Color Temperature - Number:Temperature - 2700-6500K

Ambient Light (Service ID 3)

  1. on1 (siid:3, piid:1) - Ambient Switch Status - Switch - ON/OFF
  2. mode1 (siid:3, piid:2) - Ambient Mode - Number - RGB (1) / HSV (3)
  3. brightness1 (siid:3, piid:3) - Ambient Brightness - Number:Dimensionless - 1-100%
  4. color-temperature1 (siid:3, piid:4) - Ambient Color Temp - Number:Temperature - 1700-6500K
  5. color (siid:3, piid:5) - Ambient Color - Number - RGB value 1-16777215
  6. saturability (siid:3, piid:6) - Ambient Saturability - Number:Dimensionless - 0-100%
  7. flow (siid:3, piid:7) - Ambient Flow - Number - NOFLOW (0) / FLOWING (1)

Actions (Service ID 2)

  • light-toggle (siid:2, aiid:1) - Toggle light on/off
  • light-brightness-up (siid:2, aiid:2) - Increase brightness
  • light-brightness-down (siid:2, aiid:3) - Decrease brightness

Sample Test Results

Device responded correctly to all property queries:

{"id":7,"method":"get_properties","params":[{"did":"on","siid":2,"piid":1}]}
→ {"id":7,"result":[{"did":"on","siid":2,"piid":1,"code":0,"value":false}],"exe_time":0}

{"id":9,"method":"get_properties","params":[{"did":"brightness","siid":2,"piid":3}]}
→ {"id":9,"result":[{"did":"brightness","siid":2,"piid":3,"code":0,"value":35}],"exe_time":0}

{"id":10,"method":"get_properties","params":[{"did":"color-temperature","siid":2,"piid":5}]}
→ {"id":10,"result":[{"did":"color-temperature","siid":2,"piid":5,"code":0,"value":5949}],"exe_time":0}

Device Information

{
  "life": 260776,
  "uid": 1555947613,
  "model": "yeelink.light.ceilb",
  "ipflag": 1,
  "fw_ver": "2.1.7_0011",
  "miio_ver": "0.0.9",
  "hw_ver": "esp32",
  "mmfree": 21344,
  "wifi_fw_ver": "1988904"
}

Working Commands (Legacy Protocol)

For reference, these legacy commands also work successfully via actions#commands:

  • set_power ["on","smooth",2000,1] - turns light on
  • set_power ["off","smooth",2500] - turns light off
  • set_bright [66,"smooth",2000] - sets brightness (1-100)
  • set_ct_abx [6137,"smooth",2000] - sets color temperature (Kelvin)

Device responses with: {"id":2342,"result":["ok"],"exe_time":20}

Comparison with Similar Device

The model yeelink.light.ceiling10 is already supported and has similar capabilities. The yeelink.light.ceilb appears to be a variant with added RGB ambient lighting.

Expected Behavior After Official Support

Once added to the official binding, yeelink.light.ceilb devices should:

  1. Auto-discover as miio:basic (not miio:generic)
  2. Automatically have all 11 property channels + 3 action channels
  3. Show proper ON/OFF state via the on channel (not just command acknowledgments)
  4. Allow full control of main light and ambient RGB lighting

Files to Include

I can provide the following files generated by MIOT auto-discovery:

  1. Test Report: Complete property testing log with all request/response pairs
  2. Database JSON: Generated database definition file (6.6 KB)

The database file is named yeelink.light.ceilb-miot-experimental.json and can be renamed to yeelink.light.ceilb.json for official inclusion.

Additional Information

  • Devices tested: 7 units across multiple locations, all identical behavior
  • Firmware: 2.1.7_0011 (latest as of test date)
  • Hardware: ESP32-based controller
  • Purchase location: Various (2023-2024)
  • Market availability: Currently available product in Xiaomi/Yeelight lineup

Issue Severity

Medium - Device is functional via workarounds (manual database file or command channels), but lacks proper state monitoring and requires manual configuration. Official support would provide automatic discovery and full integration for this common ceiling light model.


Maintainer Notes:

The MIOT auto-generation produced a clean, working database file with all properties validated. All that's needed is to include the generated JSON file in the binding's database resources. No code changes required - this is purely a database addition.

I'm happy to provide the test report and database JSON files, or make any adjustments to the database definition if needed.

test-yeelink.light.ceilb-20251024-114407.txt
yeelink.light.ceilb-miot-experimental.json

Metadata

Metadata

Assignees

Labels

enhancementAn enhancement or new feature for an existing add-on

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions