Summary
The Smartlicht RGBCW is a Yeelight-sub-brand commercial WiFi smart LED supporting RGB color, color-temperature, and brightness control. The device is discovered via SSDP-over-UDP multicast on 239.255.255.250:1982 and controlled over a persistent TCP connection on port 55443 using newline-terminated JSON command messages.
Transport
protocols:
- tcp
- udp
addressing:
port: 55443
discovery:
protocol: udp
multicast_address: 239.255.255.250
multicast_port: 1982
search_method_line: 'M-SEARCH * HTTP/1.1' # verbatim start line from source 3.1
man_header: 'ssdp:discover' # required; double-quotes included per source
search_target: wifi_bulb # required ST header value
response_location_format: 'yeelight://<ip>:55443'
response_headers: [Cache-Control, Date, Ext, Location, Server, id, model, fw_ver, support, power, bright, color_mode, ct, rgb, hue, sat, name]
advertisement: 'NOTIFY * HTTP/1.1, NTS: ssdp:alive - multicast on join + refreshed at CACHE-CONTROL max-age interval (source 3.2)'
notes: >-
TCP listen port 55443 is advertised in the SSDP LOCATION header (e.g.
`yeelight://<ip>:55443`). UDP/1982 is used only for SSDP discovery.
Each M-SEARCH / NOTIFY / response line is terminated by "\r\n". Source
confirms 4 simultaneous TCP connections max; 60 commands/min per
connection; 144 commands/min total per device. Telnet on port 55443 is
supported for debugging.
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred: set_power / toggle
- queryable # inferred: get_prop / cron_get
- levelable # inferred: set_bright / adjust_bright / set_ct_abx / set_rgb / set_hsv
Actions
- id: get_prop
label: Get Property
kind: query
command: '{"id":1,"method":"get_prop","params":["power", "bright"]}'
params:
- name: properties
type: array:string
description: List of property names to query (see Feedbacks section).
- id: set_ct_abx
label: Set Color Temperature
kind: action
command: '{"id":1,"method":"set_ct_abx","params":[3500, "smooth", 500]}'
params:
- name: ct_value
type: integer
description: Target color temperature, 1700-6500 K.
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
description: Transition time in ms (min 30); ignored when effect=sudden.
- id: set_rgb
label: Set RGB Color
kind: action
command: '{"id":1,"method":"set_rgb","params":[255, "smooth", 500]}'
params:
- name: rgb_value
type: integer
description: Decimal RGB value, 0-16777215.
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
description: Transition time in ms.
- id: set_hsv
label: Set HSV Color
kind: action
command: '{"id":1,"method":"set_hsv","params":[255, 45, "smooth", 500]}'
params:
- name: hue
type: integer
description: Hue, 0-359.
- name: sat
type: integer
description: Saturation, 0-100.
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
description: Transition time in ms.
- id: set_bright
label: Set Brightness
kind: action
command: '{"id":1,"method":"set_bright","params":[50, "smooth", 500]}'
params:
- name: brightness
type: integer
description: Brightness percentage, 1-100.
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
description: Transition time in ms.
- id: set_power
label: Set Power
kind: action
command: '{"id":1,"method":"set_power","params":["on", "smooth", 500]}'
params:
- name: power
type: enum
values: [on, off]
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
description: Transition time in ms.
- name: mode
type: integer
description: 'Optional. 0=normal (default), 1=CT, 2=RGB, 3=HSV, 4=color flow, 5=night light (ceiling only).'
- id: toggle
label: Toggle Power
kind: action
command: '{"id":1,"method":"toggle","params":[]}'
params: []
- id: set_default
label: Save Current State As Default
kind: action
command: '{"id":1,"method":"set_default","params":[]}'
params: []
- id: start_cf
label: Start Color Flow
kind: action
command: '{"id":1,"method":"start_cf","params":[4, 2, "1000, 2, 2700, 100, 500, 1, 255, 10, 5000, 7, 0,0, 500, 2, 5000, 1"]}'
params:
- name: count
type: integer
description: Number of state changes; 0 = infinite loop.
- name: action
type: integer
description: Action taken when flow stops (0=recover to pre-flow state).
- name: flow_expression
type: string
description: 'Comma-separated flow tuples: duration,mode,value,brightness. Mode 1=color, 2=CT, 7=sleep.'
- id: stop_cf
label: Stop Color Flow
kind: action
command: '{"id":1,"method":"stop_cf","params":[]}'
params: []
- id: set_scene
label: Set Scene
kind: action
command: '{"id":1,"method":"set_scene","params":["color", 65280, 70]}'
params:
- name: class
type: enum
values: [color, hsv, ct, cf, auto_delay_off]
- name: val1
type: integer
- name: val2
type: integer
- name: val3
type: integer
description: Optional; only used by class `cf`.
- id: cron_add
label: Add Cron Job (Sleep Timer)
kind: action
command: '{"id":1,"method":"cron_add","params":[0, 15]}'
params:
- name: type
type: integer
description: 'Currently must be 0 (power off).'
- name: value
type: integer
description: Timer length in minutes.
- id: cron_get
label: Get Cron Job
kind: query
command: '{"id":1,"method":"cron_get","params":[0]}'
params:
- name: type
type: integer
description: 'Currently must be 0.'
- id: cron_del
label: Delete Cron Job
kind: action
command: '{"id":1,"method":"cron_del","params":[0]}'
params:
- name: type
type: integer
description: 'Currently must be 0.'
- id: set_adjust
label: Adjust Property
kind: action
command: '{"id":1,"method":"set_adjust","params":["increase", "ct"]}'
params:
- name: action
type: enum
values: [increase, decrease, circle]
- name: prop
type: enum
values: [bright, ct, color]
description: When prop=color, action must be `circle`.
- id: set_music
label: Set Music Mode
kind: action
command: '{"id":1,"method":"set_music","params":[1, "192.168.0.2", 54321]}'
params:
- name: action
type: integer
description: '0=off, 1=on.'
- name: host
type: string
description: IP of controller TCP server (required when action=1).
- name: port
type: integer
description: TCP port of controller (required when action=1).
- id: set_name
label: Set Device Name
kind: action
command: '{"id":1,"method":"set_name","params":["my_bulb"]}'
params:
- name: name
type: string
description: Up to 64 bytes; BASE64-encoding recommended for non-ASCII.
- id: bg_set_rgb
label: Background Light Set RGB
kind: action
command: '{"id":1,"method":"bg_set_rgb","params":[255, "smooth", 500]}'
params:
- name: rgb_value
type: integer
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
- id: bg_set_hsv
label: Background Light Set HSV
kind: action
command: '{"id":1,"method":"bg_set_hsv","params":[255, 45, "smooth", 500]}'
params:
- name: hue
type: integer
- name: sat
type: integer
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
- id: bg_set_ct_abx
label: Background Light Set CT
kind: action
command: '{"id":1,"method":"bg_set_ct_abx","params":[3500, "smooth", 500]}'
params:
- name: ct_value
type: integer
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
- id: bg_start_cf
label: Background Light Start Color Flow
kind: action
command: '{"id":1,"method":"bg_start_cf","params":[4, 2, "1000, 2, 2700, 100, 500, 1, 255, 10, 5000, 7, 0,0, 500, 2, 5000, 1"]}'
params:
- name: count
type: integer
- name: action
type: integer
- name: flow_expression
type: string
- id: bg_stop_cf
label: Background Light Stop Color Flow
kind: action
command: '{"id":1,"method":"bg_stop_cf","params":[]}'
params: []
- id: bg_set_scene
label: Background Light Set Scene
kind: action
command: '{"id":1,"method":"bg_set_scene","params":["color", 65280, 70]}'
params:
- name: class
type: enum
values: [color, hsv, ct, cf, auto_delay_off]
- name: val1
type: integer
- name: val2
type: integer
- name: val3
type: integer
- id: bg_set_default
label: Background Light Save Default
kind: action
command: '{"id":1,"method":"bg_set_default","params":[]}'
params: []
- id: bg_set_power
label: Background Light Set Power
kind: action
command: '{"id":1,"method":"bg_set_power","params":["on", "smooth", 500]}'
params:
- name: power
type: enum
values: [on, off]
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
- name: mode
type: integer
- id: bg_set_bright
label: Background Light Set Brightness
kind: action
command: '{"id":1,"method":"bg_set_bright","params":[50, "smooth", 500]}'
params:
- name: brightness
type: integer
- name: effect
type: enum
values: [sudden, smooth]
- name: duration
type: integer
- id: bg_set_adjust
label: Background Light Adjust
kind: action
command: '{"id":1,"method":"bg_set_adjust","params":["increase", "ct"]}'
params:
- name: action
type: enum
values: [increase, decrease, circle]
- name: prop
type: enum
values: [bright, ct, color]
- id: bg_toggle
label: Background Light Toggle
kind: action
command: '{"id":1,"method":"bg_toggle","params":[]}'
params: []
- id: dev_toggle
label: Toggle Main + Background
kind: action
command: '{"id":1,"method":"dev_toggle","params":[]}'
params: []
- id: adjust_bright
label: Adjust Brightness By Percentage
kind: action
command: '{"id":1,"method":"adjust_bright","params":[-20, 500]}'
params:
- name: percentage
type: integer
description: -100..100.
- name: duration
type: integer
description: Transition time in ms.
- id: adjust_ct
label: Adjust CT By Percentage
kind: action
command: '{"id":1,"method":"adjust_ct","params":[20, 500]}'
params:
- name: percentage
type: integer
description: -100..100.
- name: duration
type: integer
- id: adjust_color
label: Adjust Color By Percentage
kind: action
command: '{"id":1,"method":"adjust_color","params":[20, 500]}'
params:
- name: percentage
type: integer
description: -100..100; internally defined color, source says caller cannot specify.
- name: duration
type: integer
- id: bg_adjust_bright
label: Background Light Adjust Brightness
kind: action
command: '{"id":1,"method":"bg_adjust_bright","params":[-20, 500]}'
params:
- name: percentage
type: integer
description: -100..100.
- name: duration
type: integer
- id: bg_adjust_ct
label: Background Light Adjust CT
kind: action
command: '{"id":1,"method":"bg_adjust_ct","params":[20, 500]}'
params:
- name: percentage
type: integer
description: -100..100.
- name: duration
type: integer
- id: bg_adjust_color
label: Background Light Adjust Color
kind: action
command: '{"id":1,"method":"bg_adjust_color","params":[20, 500]}'
params:
- name: percentage
type: integer
description: -100..100.
- name: duration
type: integer
Feedbacks
- id: power
type: enum
values: [on, off]
description: Current power state (software-managed, not hard power).
- id: bright
type: integer
range: [1, 100]
description: Brightness percentage.
- id: color_mode
type: enum
values: ["1", "2", "3"]
description: '1=rgb, 2=color temperature, 3=hsv. Mutually exclusive.'
- id: ct
type: integer
range: [1700, 6500]
description: Color temperature in K. Valid when color_mode=2.
- id: rgb
type: integer
range: [0, 16777215]
description: RGB value. Valid when color_mode=1.
- id: hue
type: integer
range: [0, 359]
description: Hue. Valid when color_mode=3.
- id: sat
type: integer
range: [0, 100]
description: Saturation. Valid when color_mode=3.
- id: flowing
type: enum
values: ["0", "1"]
description: '0=no flow, 1=color flow running.'
- id: delayoff
type: integer
range: [1, 60]
description: Remaining sleep-timer minutes.
- id: flow_params
type: string
description: Current flow parameters; meaningful only when flowing=1.
- id: music_on
type: enum
values: ["0", "1"]
- id: name
type: string
description: Up to 64 bytes.
- id: bg_power
type: enum
values: [on, off]
description: Background light power.
- id: bg_flowing
type: enum
values: ["0", "1"]
- id: bg_flow_params
type: string
- id: bg_ct
type: integer
range: [1700, 6500]
- id: bg_lmode
type: enum
values: ["1", "2", "3"]
- id: bg_bright
type: integer
range: [1, 100]
- id: bg_rgb
type: integer
range: [0, 16777215]
- id: bg_hue
type: integer
range: [0, 359]
- id: bg_sat
type: integer
range: [0, 100]
- id: nl_br
type: integer
description: Night-mode brightness (ceiling only).
- id: active_mode
type: enum
values: ["0", "1"]
description: '0=daylight, 1=moonlight (ceiling only).'
- id: error_result
type: object
description: 'Error RESULT message (source 4.2). Object {code: int, message: string}. Example: {"code":-1,"message":"unsupported method"}.'
notes: 'Returned instead of "result" array when a command fails (e.g. unsupported method).'
Variables
- id: cron
description: Current cron-job setting; returned by cron_get as {type, delay, mix}.
type: object
Events
- id: props
description: Unsolicited state-change notification broadcast to all TCP peers.
payload: '{"method":"props","params":{"power":"on", "bright":"10"}}'
notes: 'Sent whenever a property changes. `params` is an object; all values are strings.'
- id: ssdp_advertisement
description: Unsolicited UDP multicast presence advertisement (SSDP NOTIFY ssdp:alive) sent on network join and refreshed at the CACHE-CONTROL max-age interval.
transport: udp_multicast
multicast: '239.255.255.250:1982'
payload: 'NOTIFY * HTTP/1.1\r\nHOST: 239.255.255.250:1982\r\nCACHE-CONTROL: max-age=3600\r\nLOCATION: yeelight://<ip>:55443\r\nNTS: ssdp:alive\r\nServer: POSIX, UPnP/1.0 YGLC/1\r\nid: <hex>\r\nmodel: <model>\r\nfw_ver: <int>\r\nsupport: <methods>\r\npower: <on|off>\r\nbright: <1-100>\r\ncolor_mode: <1|2|3>\r\nct: <1700-6500>\r\nrgb: <0-16777215>\r\nhue: <0-359>\r\nsat: <0-100>\r\nname: <string>'
notes: 'All Yeelight-specific fields are identical to the M-SEARCH response (source 3.2). Same property set as Feedbacks above.'
Macros
# UNRESOLVED: source describes sunrise/sunset effects implemented via start_cf, but does not prescribe a fixed multi-step sequence; left for integrator.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlocks, or power-on sequencing requirements appear in the source.
Notes
- Connection quotas: 4 simultaneous TCP connections max; 60 commands/min per connection; 144 commands/min total per device.
- JSON messages must be terminated by
\r\n. - UDP discovery uses SSDP-style
M-SEARCH * HTTP/1.1on multicast239.255.255.250:1982withST: wifi_bulb; devices respond withLocation: yeelight://<ip>:55443. set_powermode 5 (night light) is documented for ceiling lights only — applicability to the RGBCW commercial model is not confirmed in the source.- Background-light methods (
bg_*) are only effective on devices equipped with a secondary light; the RGBCW's background-light capability is not explicitly confirmed in the source.
Provenance
source_domains:
- yeelight.com
- open-console.yeelight.com
source_urls:
- https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf
- https://open-console.yeelight.com/commerical-lighting-open-platform-docs-en.html
retrieved_at: 2026-06-07T21:11:17.529Z
last_checked_at: 2026-08-05T08:43:17.258Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:43:17.258Z
matched_actions: 35
action_count: 35
confidence: medium
summary: "All 35 spec actions map to source's complete method table; transport values (55443, 239.255.255.250:1982, SSDP headers) verified verbatim. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version range, exact model string, vendor confirmation that RGBCW is a `color` model variant"
- "source describes sunrise/sunset effects implemented via start_cf, but does not prescribe a fixed multi-step sequence; left for integrator."
- "no safety warnings, interlocks, or power-on sequencing requirements appear in the source."
- "vendor confirmation that Smartlicht RGBCW is a `color` model class; whether the device exposes a physical background light; firmware version compatibility range."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0