diff --git a/homeassistant/components/home_connect/api.py b/homeassistant/components/home_connect/api.py index f50ab711550981..fb15b661cdf96d 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": @@ -434,6 +436,77 @@ def get_entity_info(self): } +class WasherDryer( + DeviceWithDoor, + DeviceWithOpState, + DeviceWithPrograms, + DeviceWithRemoteControl, + DeviceWithRemoteStart, +): + """Washer class.""" + + PROGRAMS = [ + {"name": "LaundryCare.Washer.Program.Cotton"}, + {"name": "LaundryCare.Washer.Program.Cotton.CottonEco"}, + {"name": "LaundryCare.Washer.Program.EasyCare"}, + {"name": "LaundryCare.Washer.Program.Mix"}, + {"name": "LaundryCare.Washer.Program.DelicatesSilk"}, + {"name": "LaundryCare.Washer.Program.Wool"}, + {"name": "LaundryCare.Washer.Program.Sensitive"}, + {"name": "LaundryCare.Washer.Program.Auto30"}, + {"name": "LaundryCare.Washer.Program.Auto40"}, + {"name": "LaundryCare.Washer.Program.Auto60"}, + {"name": "LaundryCare.Washer.Program.Chiffon"}, + {"name": "LaundryCare.Washer.Program.Curtains"}, + {"name": "LaundryCare.Washer.Program.DarkWash"}, + {"name": "LaundryCare.Washer.Program.Dessous"}, + {"name": "LaundryCare.Washer.Program.Monsoon"}, + {"name": "LaundryCare.Washer.Program.Outdoor"}, + {"name": "LaundryCare.Washer.Program.PlushToy"}, + {"name": "LaundryCare.Washer.Program.ShirtsBlouses"}, + {"name": "LaundryCare.Washer.Program.SportFitness"}, + {"name": "LaundryCare.Washer.Program.Towels"}, + {"name": "LaundryCare.Washer.Program.WaterProof"}, + # {"name": "LaundryCare.Dryer.Program.Cotton"}, + {"name": "LaundryCare.Dryer.Program.Synthetic"}, + # {"name": "LaundryCare.Dryer.Program.Mix"}, + {"name": "LaundryCare.Dryer.Program.Blankets"}, + {"name": "LaundryCare.Dryer.Program.BusinessShirts"}, + {"name": "LaundryCare.Dryer.Program.DownFeathers"}, + {"name": "LaundryCare.Dryer.Program.Hygiene"}, + {"name": "LaundryCare.Dryer.Program.Jeans"}, + # {"name": "LaundryCare.Dryer.Program.Outdoor"}, + {"name": "LaundryCare.Dryer.Program.SyntheticRefresh"}, + # {"name": "LaundryCare.Dryer.Program.Towels"}, + {"name": "LaundryCare.Dryer.Program.Delicates"}, + {"name": "LaundryCare.Dryer.Program.Super40"}, + {"name": "LaundryCare.Dryer.Program.Shirts15"}, + {"name": "LaundryCare.Dryer.Program.Pillow"}, + {"name": "LaundryCare.Dryer.Program.AntiShrink"}, + {"name": "LaundryCare.Dryer.Program.TimeCold"}, + {"name": "LaundryCare.Dryer.Program.TimeWarm"}, + # {"name": "LaundryCare.WasherDryer.Program.Cotton.Cotton"}, + # {"name": "LaundryCare.WasherDryer.Program.Mix.Mix"}, + # {"name": "LaundryCare.WasherDryer.Program.EasyCare.EasyCare"}, + {"name": "LaundryCare.WasherDryer.Program.Cotton.Eco4060"}, + {"name": "LaundryCare.WasherDryer.Program.WashAndDry.60"}, + ] + + 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."""