miio.device module
- class miio.device.Device(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:
objectBase class for all device implementations.
This is the main class providing the basic protocol handling for devices using the
miIOprotocol. This class should not be initialized directly but a device- specific class inheriting it should be used instead of it.- actions() DescriptorCollection[ActionDescriptor][source]
Return device actions.
- descriptors() DescriptorCollection[Descriptor][source]
Return a collection containing all descriptors for the device.
- classmethod get_device_group()
- get_properties(properties, *, property_getter='get_prop', max_properties=None)[source]
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[source]
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
- raw_command(command, parameters)[source]
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[source]
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.
- final sensors() DescriptorCollection[PropertyDescriptor][source]
Return read-only properties.
- final settings() DescriptorCollection[PropertyDescriptor][source]
Return settable properties.
- status() DeviceStatus[source]
Return device status.
- supports_miot() bool[source]
Return True if the device supports miot commands.
This requests a single property (siid=1, piid=1) and returns True on success.
- retry_count = 3
- supported_models = []
- timeout = 5