Skip to content

Commit

Permalink
Add more supported devices to their corresponding classes (#1237)
Browse files Browse the repository at this point in the history
* airhumidifier_miot: Fix typo in model name

* airpurifier{_miot}: add missing model information based on feedback & from homeassistant

* philips_bulb: add philips.light.candle{1,2}, adjust supported models

* roborock: add roborock.vacuum.m1s

* viomivacuum: add viomi.vacuum.v8 that should be compatible

* philips_bulb: as most known devices seem to support cct, let's default to it if no model is given
  • Loading branch information
rytilahti committed Dec 13, 2021
1 parent 4315253 commit d82121c
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 5 deletions.
2 changes: 1 addition & 1 deletion miio/airhumidifier_miot.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ def clean_mode(self) -> bool:
return self.data["clean_mode"]


SMARTMI_EVAPORATIVE_HUMIDIFIER_2 = "zhimi.humidfier.ca4"
SMARTMI_EVAPORATIVE_HUMIDIFIER_2 = "zhimi.humidifier.ca4"

SUPPORTED_MODELS = [SMARTMI_EVAPORATIVE_HUMIDIFIER_2]

Expand Down
9 changes: 9 additions & 0 deletions miio/airpurifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,20 @@


SUPPORTED_MODELS = [
"zhimi.airpurifier.v1",
"zhimi.airpurifier.v2",
"zhimi.airpurifier.v3",
"zhimi.airpurifier.v5",
"zhimi.airpurifier.v6",
"zhimi.airpurifier.v7",
"zhimi.airpurifier.m1",
"zhimi.airpurifier.m2",
"zhimi.airpurifier.ma1",
"zhimi.airpurifier.ma2",
"zhimi.airpurifier.sa1",
"zhimi.airpurifier.sa2",
"zhimi.airpurifier.mc1",
"zhimi.airpurifier.mc2",
]


Expand Down
8 changes: 8 additions & 0 deletions miio/airpurifier_miot.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
from .exceptions import DeviceException
from .miot_device import DeviceStatus, MiotDevice

SUPPORTED_MODELS = [
"zhimi.airpurifier.ma4", # airpurifier 3
"zhimi.airpurifier.mb3", # airpurifier 3h
"zhimi.airpurifier.va1", # airpurifier proh
]

_LOGGER = logging.getLogger(__name__)
_MAPPING = {
# Air Purifier (siid=2)
Expand Down Expand Up @@ -364,6 +370,7 @@ class AirPurifierMiot(BasicAirPurifierMiot):
"""Main class representing the air purifier which uses MIoT protocol."""

mapping = _MAPPING
_supported_models = SUPPORTED_MODELS

@command(
default_output=format_output(
Expand Down Expand Up @@ -460,6 +467,7 @@ class AirPurifierMB4(BasicAirPurifierMiot):
"""Main class representing the air purifier which uses MIoT protocol."""

mapping = _MODEL_AIRPURIFIER_MB4
_supported_models = ["zhimi.airpurifier.mb4"] # airpurifier 3c

@command(
default_output=format_output(
Expand Down
2 changes: 2 additions & 0 deletions miio/integrations/vacuum/roborock/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ class CarpetCleaningMode(enum.Enum):
ROCKROBO_S7 = "roborock.vacuum.a15"
ROCKROBO_S6_MAXV = "roborock.vacuum.a10"
ROCKROBO_E2 = "roborock.vacuum.e2"
ROCKROBO_1S = "roborock.vacuum.m1s"

SUPPORTED_MODELS = [
ROCKROBO_V1,
Expand All @@ -146,6 +147,7 @@ class CarpetCleaningMode(enum.Enum):
ROCKROBO_S7,
ROCKROBO_S6_MAXV,
ROCKROBO_E2,
ROCKROBO_1S,
]


Expand Down
2 changes: 1 addition & 1 deletion miio/integrations/vacuum/viomi/viomivacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@

_LOGGER = logging.getLogger(__name__)

SUPPORTED_MODELS = ["viomi.vacuum.v7"]
SUPPORTED_MODELS = ["viomi.vacuum.v7", "viomi.vacuum.v8"]

ERROR_CODES = {
0: "Sleeping and not charging",
Expand Down
11 changes: 8 additions & 3 deletions miio/philips_bulb.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
MODEL_PHILIPS_LIGHT_BULB = "philips.light.bulb"
MODEL_PHILIPS_LIGHT_HBULB = "philips.light.hbulb"
MODEL_PHILIPS_ZHIRUI_DOWNLIGHT = "philips.light.downlight"
MODEL_PHILIPS_CANDLE = "philips.light.candle"
MODEL_PHILIPS_CANDLE2 = "philips.light.candle2"

AVAILABLE_PROPERTIES_COMMON = ["power", "dv"]
AVAILABLE_PROPERTIES_COLORTEMP = AVAILABLE_PROPERTIES_COMMON + ["bright", "cct", "snm"]
Expand All @@ -21,6 +23,8 @@
MODEL_PHILIPS_LIGHT_HBULB: AVAILABLE_PROPERTIES_COMMON + ["bri"],
MODEL_PHILIPS_LIGHT_BULB: AVAILABLE_PROPERTIES_COLORTEMP,
MODEL_PHILIPS_ZHIRUI_DOWNLIGHT: AVAILABLE_PROPERTIES_COLORTEMP,
MODEL_PHILIPS_CANDLE: AVAILABLE_PROPERTIES_COLORTEMP,
MODEL_PHILIPS_CANDLE2: AVAILABLE_PROPERTIES_COLORTEMP,
}


Expand Down Expand Up @@ -71,7 +75,7 @@ def delay_off_countdown(self) -> int:
class PhilipsWhiteBulb(Device):
"""Main class representing Xiaomi Philips White LED Ball Lamp."""

_supported_models = list(AVAILABLE_PROPERTIES.keys())
_supported_models = [MODEL_PHILIPS_LIGHT_HBULB]

@command(
default_output=format_output(
Expand All @@ -87,7 +91,7 @@ def status(self) -> PhilipsBulbStatus:
"""Retrieve properties."""

properties = AVAILABLE_PROPERTIES.get(
self.model, AVAILABLE_PROPERTIES[MODEL_PHILIPS_LIGHT_HBULB]
self.model, AVAILABLE_PROPERTIES[MODEL_PHILIPS_LIGHT_BULB]
)
values = self.get_properties(properties)

Expand Down Expand Up @@ -130,8 +134,9 @@ def delay_off(self, seconds: int):


class PhilipsBulb(PhilipsWhiteBulb):
"""Support for philips bulbs that support color temperature and scenes."""

_supported_models = [MODEL_PHILIPS_ZHIRUI_DOWNLIGHT]
_supported_models = list(AVAILABLE_PROPERTIES.keys())

@command(
click.argument("level", type=int),
Expand Down

0 comments on commit d82121c

Please sign in to comment.