1
0
mirror of https://github.com/no2chem/wideq.git synced 2025-05-28 04:50:23 -07:00

Added a data directory with known values for washers/dryers.

Also added temp_control and time_Dry properties to dryer status.
This commit is contained in:
Aaron Godfrey 2019-07-05 13:58:55 -07:00
parent 53f736b5c6
commit 48684c14fd
6 changed files with 9573 additions and 16 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,26 +2,27 @@ import json
import unittest
from wideq.client import Client, DeviceInfo
from wideq.dryer import DryerDevice, DryLevel, DryerState, DryerStatus
from wideq.dryer import (
DryerDevice, DryLevel, DryerState, DryerStatus, TempControl, TimeDry)
POLL_DATA = {
'Course': '5',
'Course': '2',
'CurrentDownloadCourse': '100',
'DryLevel': '0',
'DryLevel': '3',
'Error': '0',
'Initial_Time_H': '0',
'Initial_Time_M': '1',
'Initial_Time_M': '55',
'LoadItem': '0',
'MoreLessTime': '0',
'Option1': '64',
'Option1': '0',
'Option2': '168',
'PreState': '4',
'PreState': '1',
'Remain_Time_H': '0',
'Remain_Time_M': '1',
'Remain_Time_M': '54',
'SmartCourse': '0',
'State': '0',
'TempControl': '0',
'State': '50',
'TempControl': '4',
'TimeDry': '0',
}
@ -47,14 +48,16 @@ class DryerStatusTest(unittest.TestCase):
def test_properties(self):
status = DryerStatus(self.dryer, POLL_DATA)
self.assertEqual(DryerState.OFF, status.state)
self.assertEqual(DryerState.END, status.previous_state)
self.assertEqual(DryLevel.OFF, status.dry_level)
self.assertFalse(status.is_on)
self.assertEqual(DryerState.DRYING, status.state)
self.assertEqual(DryerState.INITIAL, status.previous_state)
self.assertEqual(DryLevel.NORMAL, status.dry_level)
self.assertTrue(status.is_on)
self.assertEqual('0', status.remain_time_hours)
self.assertEqual('1', status.remain_time_minutes)
self.assertEqual('54', status.remain_time_minutes)
self.assertEqual('0', status.initial_time_hours)
self.assertEqual('1', status.initial_time_minutes)
self.assertEqual('Delicates', status.course)
self.assertEqual('55', status.initial_time_minutes)
self.assertEqual('Towels', status.course)
self.assertEqual('Off', status.smart_course)
self.assertEqual('No Error', status.error)
self.assertEqual(TempControl.MID_HIGH, status.temperature_control)
self.assertEqual(TimeDry.OFF, status.time_dry)

View File

@ -54,6 +54,28 @@ class DryerError(enum.Enum):
ERROR_TE6 = '@WM_US_DRYER_ERROR_TE6_W'
class TempControl(enum.Enum):
"""Represents temperature control setting."""
OFF = '-'
ULTRA_LOW = '@WM_DRY27_TEMP_ULTRA_LOW_W'
LOW = '@WM_DRY27_TEMP_LOW_W'
MEDIUM = '@WM_DRY27_TEMP_MEDIUM_W'
MID_HIGH = '@WM_DRY27_TEMP_MID_HIGH_W'
HIGH = '@WM_DRY27_TEMP_HIGH_W'
class TimeDry(enum.Enum):
"""Represents a timed dry setting."""
OFF = '-'
TWENTY = '20'
THIRTY = '30'
FOURTY = '40'
FIFTY = '50'
SIXTY = '60'
class DryerDevice(Device):
"""A higher-level interface for a dryer."""
@ -114,6 +136,18 @@ class DryerStatus(object):
attr = 'DryLevel'
return DryLevel(self.dryer.model.enum_name(attr, self.data[attr]))
@property
def temperature_control(self) -> TempControl:
"""Get the temperature control setting."""
attr = 'TempControl'
return TempControl(self.dryer.model.enum_name(attr, self.data[attr]))
@property
def time_dry(self) -> TimeDry:
"""Get the time dry setting."""
attr = 'TimeDry'
return TimeDry(self.dryer.model.enum_name(attr, self.data[attr]))
@property
def is_on(self) -> bool:
"""Check if the dryer is on or not."""