miio.integrations.yeelight.light.yeelight module
- class miio.integrations.yeelight.light.yeelight.Yeelight(ip: str | None = None, token: str | None = None, start_id: int = 0, debug: int = 0, lazy_discover: bool = True, timeout: int | None = None, model: str | None = None)[source]
Bases:
Device
A rudimentary support for Yeelight bulbs.
The API is the same as defined in https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf and only partially implmented here.
For a more complete implementation please refer to python-yeelight package (https://yeelight.readthedocs.io/en/latest/), which however requires enabling the developer mode on the bulbs.
- actions() DescriptorCollection[ActionDescriptor]
Return device actions.
- configure_wifi(ssid, password, uid=0, extra_params=None)
Configure the wifi settings.
- descriptors() DescriptorCollection[Descriptor]
Return a collection containing all descriptors for the device.
- dump_ble_debug(table)[source]
Dump the BLE debug table, defaults to evtRuleTbl.
Some Yeelight devices offer support for BLE remotes. This command allows dumping the information about paired remotes, that can be used to decrypt the beacon payloads from these devices.
Example:
- [{‘mac’: ‘xxx’, ‘evtid’: 4097, ‘pid’: 950, ‘beaconkey’: ‘xxx’},
{‘mac’: ‘xxx’, ‘evtid’: 4097, ‘pid’: 339, ‘beaconkey’: ‘xxx’}]
- classmethod get_device_group()
- get_properties(properties, *, property_getter='get_prop', max_properties=None)
Request properties in slices based on given max_properties.
This is necessary as some devices have limitation on how many properties can be queried at once.
If max_properties is None, all properties are requested at once.
- info(*, skip_cache=False) DeviceInfo
Get (and cache) miIO protocol information from the device.
This includes information about connected wlan network, and hardware and software versions.
- Parameters:
bool (skip_cache) – Skip the cache
- on(transition=0, mode=0)[source]
Power on.
set_power [“on|off”, “sudden|smooth”, time_in_ms, mode] where mode: 0: last mode 1: normal mode 2: rgb mode 3: hsv mode 4: color flow 5: moonlight
- raw_command(command, parameters)
Send a raw command to the device. This is mostly useful when trying out commands which are not implemented by a given device instance.
- send(command: str, parameters: Any | None = None, retry_count: int | None = None, *, extra_parameters=None) Any
Send a command to the device.
Basic format of the request: {“id”: 1234, “method”: command, “parameters”: parameters}
extra_parameters allows passing elements to the top-level of the request. This is necessary for some devices, such as gateway devices, which expect the sub-device identifier to be on the top-level.
- send_handshake()
Send initial handshake to the device.
- sensors() DescriptorCollection[PropertyDescriptor]
Return read-only properties.
- set_save_state_on_change(enable: bool) bool [source]
Enable or disable saving the state on changes.
- settings() DescriptorCollection[PropertyDescriptor]
Return settable properties.
- status() YeelightStatus [source]
Retrieve properties.
- supports_miot() bool
Return True if the device supports miot commands.
This requests a single property (siid=1, piid=1) and returns True on success.
- update_state()
Return current update state.
- property color_temperature_range: ValidSettingRange
Return supported color temperature range.
- retry_count = 3
- supported_models = dict_keys(['yeelink.light.bslamp1', 'yeelink.light.bslamp2', 'yeelink.light.bslamp3', 'yeelink.light.ceil26', 'yeelink.light.ceila', 'yeelink.light.ceiling1', 'yeelink.light.ceiling2', 'yeelink.light.ceiling3', 'yeelink.light.ceiling4', 'yeelink.light.ceiling5', 'yeelink.light.ceiling6', 'yeelink.light.ceiling10', 'yeelink.light.ceiling13', 'yeelink.light.ceiling15', 'yeelink.light.ceiling18', 'yeelink.light.ceiling19', 'yeelink.light.ceiling20', 'yeelink.light.ceiling22', 'yeelink.light.ceiling24', 'yeelink.light.color1', 'yeelink.light.color2', 'yeelink.light.color3', 'yeelink.light.color4', 'yeelink.light.color5', 'yeelink.light.color7', 'yeelink.light.colora', 'yeelink.light.colorb', 'yeelink.light.colorc', 'yeelink.light.color', 'yeelink.light.ct_bulb', 'yeelink.light.ct2', 'yeelink.light.lamp1', 'yeelink.light.lamp2', 'yeelink.light.lamp4', 'yeelink.light.lamp15', 'yeelink.light.mono1', 'yeelink.light.mono5', 'yeelink.light.mono6', 'yeelink.light.mono', 'yeelink.light.monob', 'yeelink.light.strip1', 'yeelink.light.strip2', 'yeelink.light.strip4', 'yeelink.light.strip6', 'yeelink.bhf_light.v2', 'yeelink.light.lamp22', 'yeelink.light.*'])
- timeout = 5
- class miio.integrations.yeelight.light.yeelight.YeelightMode(value)[source]
Bases:
IntEnum
An enumeration.
- ColorTemperature = 2
- HSV = 3
- RGB = 1
- class miio.integrations.yeelight.light.yeelight.YeelightStatus(data)[source]
Bases:
DeviceStatus
- descriptors() DescriptorCollection[PropertyDescriptor]
Return the dict of sensors exposed by the status container.
Use @sensor and @setting decorators to define properties.
- embed(name: str, other: DeviceStatus)
Embed another status container to current one.
This makes it easy to provide a single status response for cases where responses from multiple I/O calls is wanted to provide a simple interface for downstreams.
Internally, this will prepend the name of the other class to the attribute names, and override the __getattribute__ to lookup attributes in the embedded containers.
- property color_mode: YeelightMode | None
Return current color mode.
- property lights: List[YeelightSubLight]
Return list of sub lights.
- class miio.integrations.yeelight.light.yeelight.YeelightSubLight(data, type)[source]
Bases:
DeviceStatus
- descriptors() DescriptorCollection[PropertyDescriptor]
Return the dict of sensors exposed by the status container.
Use @sensor and @setting decorators to define properties.
- embed(name: str, other: DeviceStatus)
Embed another status container to current one.
This makes it easy to provide a single status response for cases where responses from multiple I/O calls is wanted to provide a simple interface for downstreams.
Internally, this will prepend the name of the other class to the attribute names, and override the __getattribute__ to lookup attributes in the embedded containers.
- property color_mode: YeelightMode | None
Return current color mode.