diff --git a/miio/fan.py b/miio/fan.py index be8720a1d..76163b01d 100644 --- a/miio/fan.py +++ b/miio/fan.py @@ -260,10 +260,14 @@ def __init__(self, ip: str = None, token: str = None, start_id: int = 0, def status(self) -> FanStatus: """Retrieve properties.""" properties = AVAILABLE_PROPERTIES[self.model] - values = self.send( - "get_prop", - properties - ) + + # A single request is limited to 16 properties. Therefore the + # properties are divided into multiple requests + _props = properties.copy() + values = [] + while _props: + values.extend(self.send("get_prop", _props[:15])) + _props[:] = _props[15:] properties_count = len(properties) values_count = len(values)