1
0
mirror of https://github.com/no2chem/wideq.git synced 2025-05-18 08:10:17 -07:00

Add some methods (set_temp_refrigerator_c, set_temp_freezer_c)

Rename some properties
Refactoring
This commit is contained in:
Andrey Klimov 2019-12-27 13:10:44 +03:00
parent 5b1535c41c
commit a54bcb04ff

View File

@ -1,7 +1,7 @@
import enum import enum
from typing import Optional from typing import Optional
from .client import Device from .client import Device, _UNKNOWN
from .util import lookup_enum, lookup_reference from .util import lookup_enum, lookup_reference
@ -23,6 +23,7 @@ class FreshAirFilter(enum.Enum):
SMARTCARE_ON = "@RE_STATE_SMART_SMART_CARE_ON" SMARTCARE_ON = "@RE_STATE_SMART_SMART_CARE_ON"
SMARTCARE_OFF = "@RE_STATE_SMART_SMART_CARE_OFF" SMARTCARE_OFF = "@RE_STATE_SMART_SMART_CARE_OFF"
SMARTCARE_WAIT = "@RE_STATE_SMART_SMART_CARE_WAIT" SMARTCARE_WAIT = "@RE_STATE_SMART_SMART_CARE_WAIT"
EMPTY = ""
class SmartSavingMode(enum.Enum): class SmartSavingMode(enum.Enum):
@ -30,12 +31,14 @@ class SmartSavingMode(enum.Enum):
OFF = "@CP_TERM_USE_NOT_W" OFF = "@CP_TERM_USE_NOT_W"
NIGHT = "@RE_SMARTSAVING_MODE_NIGHT_W" NIGHT = "@RE_SMARTSAVING_MODE_NIGHT_W"
CUSTOM = "@RE_SMARTSAVING_MODE_CUSTOM_W" CUSTOM = "@RE_SMARTSAVING_MODE_CUSTOM_W"
EMPTY = ""
class SmartSavingModeStatus(enum.Enum): class SmartSavingModeStatus(enum.Enum):
OFF = "OFF" OFF = "OFF"
ON = "ON" ON = "ON"
EMPTY = ""
class EcoFriendly(enum.Enum): class EcoFriendly(enum.Enum):
@ -54,11 +57,24 @@ class DoorOpenState(enum.Enum):
OPEN = "OPEN" OPEN = "OPEN"
CLOSE = "CLOSE" CLOSE = "CLOSE"
EMPTY = ""
UNKNOWN = _UNKNOWN
class RefrigeratorDevice(Device): class RefrigeratorDevice(Device):
"""A higher-level interface for a refrigerator.""" """A higher-level interface for a refrigerator."""
def set_temp_refrigerator_c(self, temp_refrigerator):
temp_refrigerator_value = self.model.enum_value('TempRefrigerator', str(temp_refrigerator))
# '{"RETM":"{{TempRefrigerator}}", "REFT":"{{TempFreezer}}", "REIP":"{{IcePlus}}", "REEF":"{{EcoFriendly}}" }'
self._set_control('RETM', temp_refrigerator_value)
def set_temp_freezer_c(self, temp_freezer):
temp_freezer_value = self.model.enum_value('TempFreezer', str(temp_freezer))
self._set_control('REFT', temp_freezer_value)
def poll(self) -> Optional['RefrigeratorStatus']: def poll(self) -> Optional['RefrigeratorStatus']:
"""Poll the device's current state. """Poll the device's current state.
@ -90,49 +106,54 @@ class RefrigeratorStatus(object):
self.refrigerator = refrigerator self.refrigerator = refrigerator
self.data = data self.data = data
def lookup_enum(self, key): @property
return self.refrigerator.model.enum_name(key, self.data[key]) def temp_refrigerator_c(self):
return int(lookup_enum('TempRefrigerator', self.data, self.refrigerator))
@property @property
def temprefrigerator_c(self): def temp_freezer_c(self):
return self.lookup_enum('TempRefrigerator') return int(lookup_enum('TempFreezer', self.data, self.refrigerator))
@property @property
def tempfreezer_c(self): def ice_plus_status(self):
return self.lookup_enum('TempFreezer') return IcePlus(lookup_enum('IcePlus', self.data, self.refrigerator))
@property @property
def iceplus(self): def fresh_air_filter_status(self):
return IcePlus(self.lookup_enum('IcePlus')) return FreshAirFilter(lookup_enum('FreshAirFilter', self.data, self.refrigerator))
@property @property
def freshairfilter(self): def energy_saving_mode(self):
return FreshAirFilter(self.lookup_enum('FreshAirFilter')) return SmartSavingMode(lookup_enum('SmartSavingMode', self.data, self.refrigerator))
@property @property
def smartsavingmode(self): def door_opened(self):
return SmartSavingMode(self.lookup_enum('SmartSavingMode')) door = DoorOpenState(lookup_enum('DoorOpenState', self.data, self.refrigerator))
return door == DoorOpenState.OPEN
@property @property
def dooropenstate(self): def temp_unit(self):
return DoorOpenState(self.lookup_enum('DoorOpenState')) return lookup_enum('TempUnit', self.data, self.refrigerator)
@property @property
def tempunit(self): def energy_saving_enabled(self):
return self.lookup_enum('TempUnit') status = SmartSavingModeStatus(lookup_enum('SmartSavingModeStatus', self.data, self.refrigerator))
return status == SmartSavingModeStatus.ON
@property @property
def smartsavingmodestatus(self): def locked(self):
return SmartSavingModeStatus(self.lookup_enum('SmartSavingModeStatus')) status = LockingStatus(lookup_enum('LockingStatus', self.data, self.refrigerator))
return status == LockingStatus.LOCK
@property @property
def lockingstatus(self): def active_saving_status(self):
return LockingStatus(self.lookup_enum('LockingStatus'))
@property
def activesavingstatus(self):
return self.data['ActiveSavingStatus'] return self.data['ActiveSavingStatus']
@property @property
def ecofriendly(self): def eco_enabled(self):
return EcoFriendly(self.lookup_enum('EcoFriendly')) eco = EcoFriendly(lookup_enum('EcoFriendly', self.data, self.refrigerator))
return eco == EcoFriendly.ON
@property
def water_filter_used_month(self):
return self.data['WaterFilterUsedMonth']