From 696a43f3961e186bfe8e99c0a494861e5d5606f6 Mon Sep 17 00:00:00 2001 From: stickpin <630000+stickpin@users.noreply.github.com> Date: Sun, 2 Apr 2023 18:04:33 +0200 Subject: [PATCH 1/5] Add WasherDryer support --- homeassistant/components/home_connect/api.py | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/homeassistant/components/home_connect/api.py b/homeassistant/components/home_connect/api.py index 85d8abd1cba284..68df99c2d6c82e 100644 --- a/homeassistant/components/home_connect/api.py +++ b/homeassistant/components/home_connect/api.py @@ -74,6 +74,8 @@ def get_devices(self): device = Dryer(self.hass, app) elif app.type == "Washer": device = Washer(self.hass, app) + elif app.type == "WasherDryer": + device = WasherDryer(self.hass, app) elif app.type == "Dishwasher": device = Dishwasher(self.hass, app) elif app.type == "FridgeFreezer": @@ -358,6 +360,30 @@ def get_entity_info(self): } +class WasherDryer( + DeviceWithDoor, + DeviceWithOpState, + DeviceWithPrograms, + DeviceWithRemoteControl, + DeviceWithRemoteStart, +): + """WasherDryer class.""" + + def get_entity_info(self): + """Get a dictionary with infos about the associated entities.""" + door_entity = self.get_door_entity() + remote_control = self.get_remote_control() + remote_start = self.get_remote_start() + op_state_sensor = self.get_opstate_sensor() + program_sensors = self.get_program_sensors() + program_switches = self.get_program_switches() + return { + "binary_sensor": [door_entity, remote_control, remote_start], + "switch": program_switches, + "sensor": program_sensors + op_state_sensor, + } + + class CoffeeMaker(DeviceWithOpState, DeviceWithPrograms, DeviceWithRemoteStart): """Coffee maker class.""" From 29b1eaa8e76c19b7c7b3e2f327d08453bb835d59 Mon Sep 17 00:00:00 2001 From: stickpin <630000+stickpin@users.noreply.github.com> Date: Sun, 2 Apr 2023 18:17:24 +0200 Subject: [PATCH 2/5] Update api.py --- homeassistant/components/home_connect/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/home_connect/api.py b/homeassistant/components/home_connect/api.py index 68df99c2d6c82e..4cd9c889c352e7 100644 --- a/homeassistant/components/home_connect/api.py +++ b/homeassistant/components/home_connect/api.py @@ -381,7 +381,7 @@ def get_entity_info(self): "binary_sensor": [door_entity, remote_control, remote_start], "switch": program_switches, "sensor": program_sensors + op_state_sensor, - } + } class CoffeeMaker(DeviceWithOpState, DeviceWithPrograms, DeviceWithRemoteStart): From 635b0a4aef39e0ec64de8374e7d522a06deaee2d Mon Sep 17 00:00:00 2001 From: stickpin <630000+stickpin@users.noreply.github.com> Date: Mon, 10 Apr 2023 19:13:26 +0200 Subject: [PATCH 3/5] Fix programs list for WasherDryer --- homeassistant/components/home_connect/switch.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/homeassistant/components/home_connect/switch.py b/homeassistant/components/home_connect/switch.py index 89b1f23589fdca..4c15e11e285449 100644 --- a/homeassistant/components/home_connect/switch.py +++ b/homeassistant/components/home_connect/switch.py @@ -50,6 +50,8 @@ class HomeConnectProgramSwitch(HomeConnectEntity, SwitchEntity): def __init__(self, device, program_name): """Initialize the entity.""" desc = " ".join(["Program", program_name.split(".")[-1]]) + if(device.appliance.type == "WasherDryer"): + desc = " ".join(["Program", program_name.split(".")[-3], program_name.split(".")[-1]]) super().__init__(device, desc) self.program_name = program_name self._state = None From b69b694c3810712f2b7c0e4a47c87883a0535212 Mon Sep 17 00:00:00 2001 From: stickpin <630000+stickpin@users.noreply.github.com> Date: Mon, 10 Apr 2023 19:22:26 +0200 Subject: [PATCH 4/5] fix black error --- homeassistant/components/home_connect/switch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/home_connect/switch.py b/homeassistant/components/home_connect/switch.py index 4c15e11e285449..0e2c991e61c231 100644 --- a/homeassistant/components/home_connect/switch.py +++ b/homeassistant/components/home_connect/switch.py @@ -50,7 +50,7 @@ class HomeConnectProgramSwitch(HomeConnectEntity, SwitchEntity): def __init__(self, device, program_name): """Initialize the entity.""" desc = " ".join(["Program", program_name.split(".")[-1]]) - if(device.appliance.type == "WasherDryer"): + if device.appliance.type == "WasherDryer": desc = " ".join(["Program", program_name.split(".")[-3], program_name.split(".")[-1]]) super().__init__(device, desc) self.program_name = program_name From df9c356fc340bbbfa6175838a03271abba8d1179 Mon Sep 17 00:00:00 2001 From: stickpin <630000+stickpin@users.noreply.github.com> Date: Mon, 10 Apr 2023 19:24:51 +0200 Subject: [PATCH 5/5] fix black error --- homeassistant/components/home_connect/switch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/home_connect/switch.py b/homeassistant/components/home_connect/switch.py index 0e2c991e61c231..61dd11dbc6f248 100644 --- a/homeassistant/components/home_connect/switch.py +++ b/homeassistant/components/home_connect/switch.py @@ -51,7 +51,9 @@ def __init__(self, device, program_name): """Initialize the entity.""" desc = " ".join(["Program", program_name.split(".")[-1]]) if device.appliance.type == "WasherDryer": - desc = " ".join(["Program", program_name.split(".")[-3], program_name.split(".")[-1]]) + desc = " ".join( + ["Program", program_name.split(".")[-3], program_name.split(".")[-1]] + ) super().__init__(device, desc) self.program_name = program_name self._state = None