Skip to content

Commit

Permalink
Add support for dmaker.fan.p9 and dmaker.fan.p10 (rytilahti#819)
Browse files Browse the repository at this point in the history
* Add support for dmaker.fan.p9 and dmaker.fan.p10

* fix format issue

* add new supported fan to README

* move fan miot implementation to fan_miot.py

* move FanP9 and FanP10 to fan_miot.py

* add FanMiot to discovery.py
  • Loading branch information
swim2sun authored and xvlady committed May 9, 2021
1 parent 6011a91 commit 9ecdcc3
Show file tree
Hide file tree
Showing 11 changed files with 554 additions and 23 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Supported devices
- Xiaomi Philips Zhirui Smart LED Bulb E14 Candle Lamp
- Xiaomi Philips Zhirui Bedroom Smart Lamp
- Xiaomi Universal IR Remote Controller (Chuangmi IR)
- Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, P5
- Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, P5, P9, P10
- Xiaomi Mi Air Humidifier V1, CA1, CA4, CB1, MJJSQ, JSQ001
- Xiaomi Mi Water Purifier (Basic support: Turn on & off)
- Xiaomi PM2.5 Air Quality Monitor V1, B1, S1
Expand Down
7 changes: 7 additions & 0 deletions docs/api/miio.airconditioningcompanionMCN.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
miio.airconditioningcompanionMCN module
=======================================

.. automodule:: miio.airconditioningcompanionMCN
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/api/miio.fan_common.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
miio.fan\_common module
=======================

.. automodule:: miio.fan_common
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/api/miio.fan_miot.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
miio.fan\_miot module
=====================

.. automodule:: miio.fan_miot
:members:
:undoc-members:
:show-inheritance:
2 changes: 2 additions & 0 deletions docs/api/miio.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Submodules
miio.exceptions
miio.extract_tokens
miio.fan
miio.fan_common
miio.fan_miot
miio.gateway
miio.heater
miio.miioprotocol
Expand Down
1 change: 1 addition & 0 deletions miio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
from miio.device import Device
from miio.exceptions import DeviceError, DeviceException
from miio.fan import Fan, FanP5, FanSA1, FanV2, FanZA1, FanZA4
from miio.fan_miot import FanMiot, FanP9, FanP10
from miio.gateway import Gateway
from miio.gosund_plug import GosundPlug
from miio.heater import Heater
Expand Down
4 changes: 4 additions & 0 deletions miio/discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
Cooker,
Device,
Fan,
FanMiot,
Heater,
PhilipsBulb,
PhilipsEyecare,
Expand Down Expand Up @@ -78,6 +79,7 @@
MODEL_FAN_ZA3,
MODEL_FAN_ZA4,
)
from .fan_miot import MODEL_FAN_P9, MODEL_FAN_P10
from .heater import MODEL_HEATER_MA1, MODEL_HEATER_ZA1
from .powerstrip import MODEL_POWER_STRIP_V1, MODEL_POWER_STRIP_V2
from .toiletlid import MODEL_TOILETLID_V1
Expand Down Expand Up @@ -161,6 +163,8 @@
"zhimi-fan-za3": partial(Fan, model=MODEL_FAN_ZA3),
"zhimi-fan-za4": partial(Fan, model=MODEL_FAN_ZA4),
"dmaker-fan-p5": partial(Fan, model=MODEL_FAN_P5),
"dmaker-fan-p9": partial(FanMiot, model=MODEL_FAN_P9),
"dmaker-fan-p10": partial(FanMiot, model=MODEL_FAN_P10),
"tinymu-toiletlid-v1": partial(Toiletlid, model=MODEL_TOILETLID_V1),
"zhimi-airfresh-va2": partial(AirFresh, model=MODEL_AIRFRESH_VA2),
"zhimi-airfresh-va4": partial(AirFresh, model=MODEL_AIRFRESH_VA4),
Expand Down
23 changes: 1 addition & 22 deletions miio/fan.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import enum
import logging
from typing import Any, Dict, Optional

import click

from .click_common import EnumType, command, format_output
from .device import Device
from .exceptions import DeviceException
from .fan_common import FanException, LedBrightness, MoveDirection, OperationMode

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -64,26 +63,6 @@
}


class FanException(DeviceException):
pass


class OperationMode(enum.Enum):
Normal = "normal"
Nature = "nature"


class LedBrightness(enum.Enum):
Bright = 0
Dim = 1
Off = 2


class MoveDirection(enum.Enum):
Left = "left"
Right = "right"


class FanStatus:
"""Container for status reports from the Xiaomi Mi Smart Pedestal Fan."""

Expand Down
23 changes: 23 additions & 0 deletions miio/fan_common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import enum

from .exceptions import DeviceException


class FanException(DeviceException):
pass


class OperationMode(enum.Enum):
Normal = "normal"
Nature = "nature"


class LedBrightness(enum.Enum):
Bright = 0
Dim = 1
Off = 2


class MoveDirection(enum.Enum):
Left = "left"
Right = "right"
Loading

0 comments on commit 9ecdcc3

Please sign in to comment.