Skip to content

Commit

Permalink
curtain support
Browse files Browse the repository at this point in the history
  • Loading branch information
zsy056 committed Jun 13, 2023
1 parent 45ed954 commit 801ccb8
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "dueros_smarthome"
version = "0.0.13"
version = "0.0.14"
authors = [
{ name="Shaoyu Zhang", email="zsy056@gmail.com" },
]
Expand Down
1 change: 1 addition & 0 deletions src/dueros_smarthome/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
VALUE_KELVIN_RANGE_MAP = "valueKelvinRangeMap"
MIN = "min"
MAX = "max"
DEGREE = "degree"

STATUS_OK = 0
STATUS_NOT_LOGIN = 2
Expand Down
43 changes: 39 additions & 4 deletions src/dueros_smarthome/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ def __init__(self, value: int, scale: str, min: int, max: int):
if value > max:
raise ValueError(f'value {value} is larger than max {max}')

self._value = value
self._value = int(value)
self._scale = scale
self._min = min
self._max = max
Expand All @@ -269,7 +269,7 @@ def __init__(self, value: int):

@property
def percentage(self) -> int:
return self._value
return int(self._value)

class BrightnessSetting:
def __init__(self, brightness_setting: dict):
Expand All @@ -288,10 +288,10 @@ def time(self):
return self._time

class ColorTemperatureInKelvin(Num):
def __init__(self, value: int, kelvin_min: int = '2700', kelvin_max: int = '6500'):
def __init__(self, percentage: int, kelvin_min: int = '2700', kelvin_max: int = '6500'):
if kelvin_min > kelvin_max:
raise ValueError(f'kelvin_min {kelvin_min} is larger than kelvin_max {kelvin_max}')
super().__init__(value, scale = '%', min = 1, max = 100)
super().__init__(percentage, scale = '%', min = 1, max = 100)
self._kelvin_min = kelvin_min
self._kelvin_max = kelvin_max

Expand All @@ -311,6 +311,32 @@ def kelvin_min(self):
def kelvin_max(self):
return self._kelvin_max

class Degree(Num):
def __init__(self, value: int):
super().__init__(value, scale = "%", min = 0, max = 100)

class DegreeSetting:
def __init__(self, setting: dict):
if setting[const.VALUE]:
self._value = Degree(setting[const.VALUE])
else:
self._value = None
self._name = setting[const.NAME]
self._time = setting[const.TIME]

@property
def value(self):
return self._value

@property
def name(self):
return self._name

@property
def time(self):
return self._time


class ColorTemperatureInKelvinSetting:
def __init__(self, setting: dict):
self._value = ColorTemperatureInKelvin(setting[const.VALUE] if setting[const.VALUE] else 1,
Expand Down Expand Up @@ -443,6 +469,15 @@ def __init__(self, state_settings: dict):
self._modes = ApplianceModes(state_settings[const.MODE])
else:
self._modes = None

if const.DEGREE in state_settings:
self._degree = DegreeSetting(state_settings[const.DEGREE])
else:
self._degree = None

@property
def degree(self):
return self._degree

@property
def connectivity(self):
Expand Down

0 comments on commit 801ccb8

Please sign in to comment.