Module wideq.refrigerator
Expand source code
import enum
from typing import Optional
from .client import Device
from .util import lookup_enum
class IcePlus(enum.Enum):
OFF = "@CP_OFF_EN_W"
ON = "@CP_ON_EN_W"
ICE_PLUS = "@RE_TERM_ICE_PLUS_W"
ICE_PLUS_FREEZE = "@RE_MAIN_SPEED_FREEZE_TERM_W"
ICE_PLUS_OFF = "@CP_TERM_OFF_KO_W"
class FreshAirFilter(enum.Enum):
OFF = "@CP_TERM_OFF_KO_W"
AUTO = "@RE_STATE_FRESH_AIR_FILTER_MODE_AUTO_W"
POWER = "@RE_STATE_FRESH_AIR_FILTER_MODE_POWER_W"
REPLACE_FILTER = "@RE_STATE_REPLACE_FILTER_W"
SMARTCARE_ON = "@RE_STATE_SMART_SMART_CARE_ON"
SMARTCARE_OFF = "@RE_STATE_SMART_SMART_CARE_OFF"
SMARTCARE_WAIT = "@RE_STATE_SMART_SMART_CARE_WAIT"
EMPTY = ""
class SmartSavingMode(enum.Enum):
OFF = "@CP_TERM_USE_NOT_W"
NIGHT = "@RE_SMARTSAVING_MODE_NIGHT_W"
CUSTOM = "@RE_SMARTSAVING_MODE_CUSTOM_W"
SMART_GRID_OFF = "@CP_OFF_EN_W"
SMART_GRID_DEMAND_RESPONSE = "@RE_TERM_DEMAND_RESPONSE_FUNCTIONALITY_W"
SMART_GRID_CUSTOM = "@RE_TERM_DELAY_DEFROST_CAPABILITY_W"
EMPTY = ""
class RefrigeratorDevice(Device):
"""A higher-level interface for a refrigerator."""
def set_temp_refrigerator_c(self, temp):
"""Set the refrigerator temperature in Celsius.
"""
value = self.model.enum_value('TempRefrigerator', str(temp))
self._set_control('RETM', value)
def set_temp_freezer_c(self, temp):
"""Set the freezer temperature in Celsius.
"""
value = self.model.enum_value('TempFreezer', str(temp))
self._set_control('REFT', value)
def poll(self) -> Optional['RefrigeratorStatus']:
"""Poll the device's current state.
Monitoring must be started first with `monitor_start`.
:returns: Either a `RefrigeratorStatus` instance or `None` if the
status is not yet available.
"""
# Abort if monitoring has not started yet.
if not hasattr(self, 'mon'):
return None
data = self.mon.poll()
if data:
res = self.model.decode_monitor(data)
return RefrigeratorStatus(self, res)
else:
return None
class RefrigeratorStatus(object):
"""Higher-level information about a refrigerator's current status.
:param refrigerator: The RefrigeratorDevice instance.
:param data: JSON data from the API.
"""
def __init__(self, refrigerator: RefrigeratorDevice, data: dict):
self.refrigerator = refrigerator
self.data = data
@property
def temp_refrigerator_c(self):
temp = lookup_enum('TempRefrigerator', self.data, self.refrigerator)
return int(temp)
@property
def temp_freezer_c(self):
temp = lookup_enum('TempFreezer', self.data, self.refrigerator)
return int(temp)
@property
def ice_plus_status(self):
status = lookup_enum('IcePlus', self.data, self.refrigerator)
return IcePlus(status)
@property
def fresh_air_filter_status(self):
status = lookup_enum('FreshAirFilter', self.data, self.refrigerator)
return FreshAirFilter(status)
@property
def energy_saving_mode(self):
mode = lookup_enum('SmartSavingMode', self.data, self.refrigerator)
return SmartSavingMode(mode)
@property
def door_opened(self):
state = lookup_enum('DoorOpenState', self.data, self.refrigerator)
return state == "OPEN"
@property
def temp_unit(self):
return lookup_enum('TempUnit', self.data, self.refrigerator)
@property
def energy_saving_enabled(self):
mode = lookup_enum(
'SmartSavingModeStatus', self.data, self.refrigerator
)
return mode == 'ON'
@property
def locked(self):
status = lookup_enum('LockingStatus', self.data, self.refrigerator)
return status == "LOCK"
@property
def active_saving_status(self):
return self.data['ActiveSavingStatus']
@property
def eco_enabled(self):
eco = lookup_enum('EcoFriendly', self.data, self.refrigerator)
return eco == "@CP_ON_EN_W"
@property
def water_filter_used_month(self):
return self.data['WaterFilterUsedMonth']
Classes
class FreshAirFilter (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class FreshAirFilter(enum.Enum): OFF = "@CP_TERM_OFF_KO_W" AUTO = "@RE_STATE_FRESH_AIR_FILTER_MODE_AUTO_W" POWER = "@RE_STATE_FRESH_AIR_FILTER_MODE_POWER_W" REPLACE_FILTER = "@RE_STATE_REPLACE_FILTER_W" SMARTCARE_ON = "@RE_STATE_SMART_SMART_CARE_ON" SMARTCARE_OFF = "@RE_STATE_SMART_SMART_CARE_OFF" SMARTCARE_WAIT = "@RE_STATE_SMART_SMART_CARE_WAIT" EMPTY = ""
Ancestors
- enum.Enum
Class variables
var AUTO
var EMPTY
var OFF
var POWER
var REPLACE_FILTER
var SMARTCARE_OFF
var SMARTCARE_ON
var SMARTCARE_WAIT
class IcePlus (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class IcePlus(enum.Enum): OFF = "@CP_OFF_EN_W" ON = "@CP_ON_EN_W" ICE_PLUS = "@RE_TERM_ICE_PLUS_W" ICE_PLUS_FREEZE = "@RE_MAIN_SPEED_FREEZE_TERM_W" ICE_PLUS_OFF = "@CP_TERM_OFF_KO_W"
Ancestors
- enum.Enum
Class variables
var ICE_PLUS
var ICE_PLUS_FREEZE
var ICE_PLUS_OFF
var OFF
var ON
class RefrigeratorDevice (client: Client, device: DeviceInfo)
-
A higher-level interface for a refrigerator.
Create a wrapper for a
DeviceInfo
object associated with aClient
.Expand source code
class RefrigeratorDevice(Device): """A higher-level interface for a refrigerator.""" def set_temp_refrigerator_c(self, temp): """Set the refrigerator temperature in Celsius. """ value = self.model.enum_value('TempRefrigerator', str(temp)) self._set_control('RETM', value) def set_temp_freezer_c(self, temp): """Set the freezer temperature in Celsius. """ value = self.model.enum_value('TempFreezer', str(temp)) self._set_control('REFT', value) def poll(self) -> Optional['RefrigeratorStatus']: """Poll the device's current state. Monitoring must be started first with `monitor_start`. :returns: Either a `RefrigeratorStatus` instance or `None` if the status is not yet available. """ # Abort if monitoring has not started yet. if not hasattr(self, 'mon'): return None data = self.mon.poll() if data: res = self.model.decode_monitor(data) return RefrigeratorStatus(self, res) else: return None
Ancestors
Methods
def poll(self) ‑> Union[RefrigeratorStatus, NoneType]
-
Poll the device's current state.
Monitoring must be started first with
monitor_start
.:returns: Either a
RefrigeratorStatus
instance orNone
if the status is not yet available.Expand source code
def poll(self) -> Optional['RefrigeratorStatus']: """Poll the device's current state. Monitoring must be started first with `monitor_start`. :returns: Either a `RefrigeratorStatus` instance or `None` if the status is not yet available. """ # Abort if monitoring has not started yet. if not hasattr(self, 'mon'): return None data = self.mon.poll() if data: res = self.model.decode_monitor(data) return RefrigeratorStatus(self, res) else: return None
def set_temp_freezer_c(self, temp)
-
Set the freezer temperature in Celsius.
Expand source code
def set_temp_freezer_c(self, temp): """Set the freezer temperature in Celsius. """ value = self.model.enum_value('TempFreezer', str(temp)) self._set_control('REFT', value)
def set_temp_refrigerator_c(self, temp)
-
Set the refrigerator temperature in Celsius.
Expand source code
def set_temp_refrigerator_c(self, temp): """Set the refrigerator temperature in Celsius. """ value = self.model.enum_value('TempRefrigerator', str(temp)) self._set_control('RETM', value)
Inherited members
class RefrigeratorStatus (refrigerator: RefrigeratorDevice, data: dict)
-
Higher-level information about a refrigerator's current status.
:param refrigerator: The RefrigeratorDevice instance. :param data: JSON data from the API.
Expand source code
class RefrigeratorStatus(object): """Higher-level information about a refrigerator's current status. :param refrigerator: The RefrigeratorDevice instance. :param data: JSON data from the API. """ def __init__(self, refrigerator: RefrigeratorDevice, data: dict): self.refrigerator = refrigerator self.data = data @property def temp_refrigerator_c(self): temp = lookup_enum('TempRefrigerator', self.data, self.refrigerator) return int(temp) @property def temp_freezer_c(self): temp = lookup_enum('TempFreezer', self.data, self.refrigerator) return int(temp) @property def ice_plus_status(self): status = lookup_enum('IcePlus', self.data, self.refrigerator) return IcePlus(status) @property def fresh_air_filter_status(self): status = lookup_enum('FreshAirFilter', self.data, self.refrigerator) return FreshAirFilter(status) @property def energy_saving_mode(self): mode = lookup_enum('SmartSavingMode', self.data, self.refrigerator) return SmartSavingMode(mode) @property def door_opened(self): state = lookup_enum('DoorOpenState', self.data, self.refrigerator) return state == "OPEN" @property def temp_unit(self): return lookup_enum('TempUnit', self.data, self.refrigerator) @property def energy_saving_enabled(self): mode = lookup_enum( 'SmartSavingModeStatus', self.data, self.refrigerator ) return mode == 'ON' @property def locked(self): status = lookup_enum('LockingStatus', self.data, self.refrigerator) return status == "LOCK" @property def active_saving_status(self): return self.data['ActiveSavingStatus'] @property def eco_enabled(self): eco = lookup_enum('EcoFriendly', self.data, self.refrigerator) return eco == "@CP_ON_EN_W" @property def water_filter_used_month(self): return self.data['WaterFilterUsedMonth']
Instance variables
var active_saving_status
-
Expand source code
@property def active_saving_status(self): return self.data['ActiveSavingStatus']
var door_opened
-
Expand source code
@property def door_opened(self): state = lookup_enum('DoorOpenState', self.data, self.refrigerator) return state == "OPEN"
var eco_enabled
-
Expand source code
@property def eco_enabled(self): eco = lookup_enum('EcoFriendly', self.data, self.refrigerator) return eco == "@CP_ON_EN_W"
var energy_saving_enabled
-
Expand source code
@property def energy_saving_enabled(self): mode = lookup_enum( 'SmartSavingModeStatus', self.data, self.refrigerator ) return mode == 'ON'
var energy_saving_mode
-
Expand source code
@property def energy_saving_mode(self): mode = lookup_enum('SmartSavingMode', self.data, self.refrigerator) return SmartSavingMode(mode)
var fresh_air_filter_status
-
Expand source code
@property def fresh_air_filter_status(self): status = lookup_enum('FreshAirFilter', self.data, self.refrigerator) return FreshAirFilter(status)
var ice_plus_status
-
Expand source code
@property def ice_plus_status(self): status = lookup_enum('IcePlus', self.data, self.refrigerator) return IcePlus(status)
var locked
-
Expand source code
@property def locked(self): status = lookup_enum('LockingStatus', self.data, self.refrigerator) return status == "LOCK"
var temp_freezer_c
-
Expand source code
@property def temp_freezer_c(self): temp = lookup_enum('TempFreezer', self.data, self.refrigerator) return int(temp)
var temp_refrigerator_c
-
Expand source code
@property def temp_refrigerator_c(self): temp = lookup_enum('TempRefrigerator', self.data, self.refrigerator) return int(temp)
var temp_unit
-
Expand source code
@property def temp_unit(self): return lookup_enum('TempUnit', self.data, self.refrigerator)
var water_filter_used_month
-
Expand source code
@property def water_filter_used_month(self): return self.data['WaterFilterUsedMonth']
class SmartSavingMode (value, names=None, *, module=None, qualname=None, type=None, start=1)
-
An enumeration.
Expand source code
class SmartSavingMode(enum.Enum): OFF = "@CP_TERM_USE_NOT_W" NIGHT = "@RE_SMARTSAVING_MODE_NIGHT_W" CUSTOM = "@RE_SMARTSAVING_MODE_CUSTOM_W" SMART_GRID_OFF = "@CP_OFF_EN_W" SMART_GRID_DEMAND_RESPONSE = "@RE_TERM_DEMAND_RESPONSE_FUNCTIONALITY_W" SMART_GRID_CUSTOM = "@RE_TERM_DELAY_DEFROST_CAPABILITY_W" EMPTY = ""
Ancestors
- enum.Enum
Class variables
var CUSTOM
var EMPTY
var NIGHT
var OFF
var SMART_GRID_CUSTOM
var SMART_GRID_DEMAND_RESPONSE
var SMART_GRID_OFF