1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00

Add air conditioner and microwave features to Home Connect (#151184)

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
This commit is contained in:
J. Diego Rodríguez Royo
2025-11-23 17:20:24 +01:00
committed by GitHub
parent 5b6a4b0fea
commit 704d4c896d
6 changed files with 215 additions and 0 deletions

View File

@@ -13,11 +13,13 @@ DOMAIN = "home_connect"
API_DEFAULT_RETRY_AFTER = 60
APPLIANCES_WITH_PROGRAMS = (
"AirConditioner",
"CleaningRobot",
"CoffeeMaker",
"Dishwasher",
"Dryer",
"Hood",
"Microwave",
"Oven",
"WarmingDrawer",
"Washer",
@@ -83,6 +85,14 @@ PROGRAMS_TRANSLATION_KEYS_MAP = {
value: key for key, value in TRANSLATION_KEYS_PROGRAMS_MAP.items()
}
FAN_SPEED_MODE_OPTIONS = {
bsh_key_to_translation_key(option): option
for option in (
"HeatingVentilationAirConditioning.AirConditioner.EnumType.FanSpeedMode.Automatic",
"HeatingVentilationAirConditioning.AirConditioner.EnumType.FanSpeedMode.Manual",
)
}
AVAILABLE_MAPS_ENUM = {
bsh_key_to_translation_key(option): option
for option in (
@@ -315,6 +325,10 @@ PROGRAM_ENUM_OPTIONS = {
options,
)
for option_key, options in (
(
OptionKey.HEATING_VENTILATION_AIR_CONDITIONING_AIR_CONDITIONER_FAN_SPEED_MODE,
FAN_SPEED_MODE_OPTIONS,
),
(
OptionKey.CONSUMER_PRODUCTS_CLEANING_ROBOT_REFERENCE_MAP_ID,
AVAILABLE_MAPS_ENUM,

View File

@@ -82,6 +82,12 @@ set_program_and_options:
- dishcare_dishwasher_program_maximum_cleaning
- dishcare_dishwasher_program_mixed_load
- dishcare_dishwasher_program_learning_dishwasher
- heating_ventilation_air_conditioning_air_conditioner_program_active_clean
- heating_ventilation_air_conditioning_air_conditioner_program_auto
- heating_ventilation_air_conditioning_air_conditioner_program_cool
- heating_ventilation_air_conditioning_air_conditioner_program_dry
- heating_ventilation_air_conditioning_air_conditioner_program_fan
- heating_ventilation_air_conditioning_air_conditioner_program_heat
- laundry_care_dryer_program_cotton
- laundry_care_dryer_program_synthetic
- laundry_care_dryer_program_mix
@@ -136,6 +142,7 @@ set_program_and_options:
- cooking_oven_program_microwave_90_watt
- cooking_oven_program_microwave_180_watt
- cooking_oven_program_microwave_360_watt
- cooking_oven_program_microwave_450_watt
- cooking_oven_program_microwave_600_watt
- cooking_oven_program_microwave_900_watt
- cooking_oven_program_microwave_1000_watt
@@ -177,6 +184,28 @@ set_program_and_options:
- laundry_care_washer_dryer_program_easy_care
- laundry_care_washer_dryer_program_wash_and_dry_60
- laundry_care_washer_dryer_program_wash_and_dry_90
air_conditioner_options:
collapsed: true
fields:
heating_ventilation_air_conditioning_air_conditioner_option_fan_speed_percentage:
example: 50
required: false
selector:
number:
min: 1
max: 100
step: 1
mode: box
unit_of_measurement: "%"
heating_ventilation_air_conditioning_air_conditioner_option_fan_speed_mode:
required: false
selector:
select:
mode: dropdown
translation_key: fan_speed_mode
options:
- heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_automatic
- heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_manual
cleaning_robot_options:
collapsed: true
fields:

View File

@@ -252,6 +252,7 @@
"cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]",
"cooking_oven_program_microwave_180_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_180_watt%]",
"cooking_oven_program_microwave_360_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_360_watt%]",
"cooking_oven_program_microwave_450_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_450_watt%]",
"cooking_oven_program_microwave_600_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_600_watt%]",
"cooking_oven_program_microwave_900_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_900_watt%]",
"cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]",
@@ -281,6 +282,12 @@
"dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]",
"dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]",
"dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]",
"heating_ventilation_air_conditioning_air_conditioner_program_active_clean": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_active_clean%]",
"heating_ventilation_air_conditioning_air_conditioner_program_auto": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_auto%]",
"heating_ventilation_air_conditioning_air_conditioner_program_cool": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_cool%]",
"heating_ventilation_air_conditioning_air_conditioner_program_dry": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_dry%]",
"heating_ventilation_air_conditioning_air_conditioner_program_fan": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_fan%]",
"heating_ventilation_air_conditioning_air_conditioner_program_heat": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_heat%]",
"laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]",
"laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]",
"laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]",
@@ -443,6 +450,13 @@
"laundry_care_dryer_enum_type_drying_target_iron_dry": "[%key:component::home_connect::selector::drying_target::options::laundry_care_dryer_enum_type_drying_target_iron_dry%]"
}
},
"fan_speed_mode": {
"name": "[%key:component::home_connect::services::set_program_and_options::fields::heating_ventilation_air_conditioning_air_conditioner_option_fan_speed_mode::name%]",
"state": {
"heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_automatic": "[%key:component::home_connect::selector::fan_speed_mode::options::heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_automatic%]",
"heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_manual": "[%key:component::home_connect::selector::fan_speed_mode::options::heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_manual%]"
}
},
"flow_rate": {
"name": "[%key:component::home_connect::services::set_program_and_options::fields::consumer_products_coffee_maker_option_flow_rate::name%]",
"state": {
@@ -575,6 +589,7 @@
"cooking_oven_program_microwave_1000_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_1000_watt%]",
"cooking_oven_program_microwave_180_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_180_watt%]",
"cooking_oven_program_microwave_360_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_360_watt%]",
"cooking_oven_program_microwave_450_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_450_watt%]",
"cooking_oven_program_microwave_600_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_600_watt%]",
"cooking_oven_program_microwave_900_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_900_watt%]",
"cooking_oven_program_microwave_90_watt": "[%key:component::home_connect::selector::programs::options::cooking_oven_program_microwave_90_watt%]",
@@ -604,6 +619,12 @@
"dishcare_dishwasher_program_quick_65": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_quick_65%]",
"dishcare_dishwasher_program_steam_fresh": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_steam_fresh%]",
"dishcare_dishwasher_program_super_60": "[%key:component::home_connect::selector::programs::options::dishcare_dishwasher_program_super_60%]",
"heating_ventilation_air_conditioning_air_conditioner_program_active_clean": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_active_clean%]",
"heating_ventilation_air_conditioning_air_conditioner_program_auto": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_auto%]",
"heating_ventilation_air_conditioning_air_conditioner_program_cool": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_cool%]",
"heating_ventilation_air_conditioning_air_conditioner_program_dry": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_dry%]",
"heating_ventilation_air_conditioning_air_conditioner_program_fan": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_fan%]",
"heating_ventilation_air_conditioning_air_conditioner_program_heat": "[%key:component::home_connect::selector::programs::options::heating_ventilation_air_conditioning_air_conditioner_program_heat%]",
"laundry_care_dryer_program_anti_shrink": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_anti_shrink%]",
"laundry_care_dryer_program_blankets": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_blankets%]",
"laundry_care_dryer_program_business_shirts": "[%key:component::home_connect::selector::programs::options::laundry_care_dryer_program_business_shirts%]",
@@ -1418,6 +1439,12 @@
"laundry_care_dryer_enum_type_drying_target_iron_dry": "Iron dry"
}
},
"fan_speed_mode": {
"options": {
"heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_automatic": "Auto",
"heating_ventilation_air_conditioning_air_conditioner_enum_type_fan_speed_mode_manual": "Manual"
}
},
"flow_rate": {
"options": {
"consumer_products_coffee_maker_enum_type_flow_rate_intense": "Intense",
@@ -1526,6 +1553,7 @@
"cooking_oven_program_microwave_1000_watt": "1000 Watt",
"cooking_oven_program_microwave_180_watt": "180 Watt",
"cooking_oven_program_microwave_360_watt": "360 Watt",
"cooking_oven_program_microwave_450_watt": "450 Watt",
"cooking_oven_program_microwave_600_watt": "600 Watt",
"cooking_oven_program_microwave_900_watt": "900 Watt",
"cooking_oven_program_microwave_90_watt": "90 Watt",
@@ -1555,6 +1583,12 @@
"dishcare_dishwasher_program_quick_65": "Quick 65ºC",
"dishcare_dishwasher_program_steam_fresh": "Steam fresh",
"dishcare_dishwasher_program_super_60": "Super 60ºC",
"heating_ventilation_air_conditioning_air_conditioner_program_active_clean": "Active clean",
"heating_ventilation_air_conditioning_air_conditioner_program_auto": "Auto",
"heating_ventilation_air_conditioning_air_conditioner_program_cool": "Cool",
"heating_ventilation_air_conditioning_air_conditioner_program_dry": "Dry",
"heating_ventilation_air_conditioning_air_conditioner_program_fan": "Fan",
"heating_ventilation_air_conditioning_air_conditioner_program_heat": "Heat",
"laundry_care_dryer_program_anti_shrink": "Anti shrink",
"laundry_care_dryer_program_blankets": "Blankets",
"laundry_care_dryer_program_business_shirts": "Business shirts",
@@ -1823,6 +1857,14 @@
"description": "Defines if the program sequence is optimized with special drying cycle ensures improved drying for glasses, plates and plasticware.",
"name": "Zeolite dry"
},
"heating_ventilation_air_conditioning_air_conditioner_option_fan_speed_mode": {
"description": "Setting to adjust the fan speed mode to Manual or Auto.",
"name": "Fan speed mode"
},
"heating_ventilation_air_conditioning_air_conditioner_option_fan_speed_percentage": {
"description": "Setting to adjust the venting level of the air conditioner as a percentage.",
"name": "Fan speed percentage"
},
"laundry_care_dryer_option_drying_target": {
"description": "Describes the drying target for a dryer program.",
"name": "Drying target"
@@ -1854,6 +1896,10 @@
},
"name": "Set program and options",
"sections": {
"air_conditioner_options": {
"description": "Specific settings for air conditioners.",
"name": "Air conditioner options"
},
"cleaning_robot_options": {
"description": "Options for cleaning robots.",
"name": "Cleaning robot options"

View File

@@ -108,6 +108,24 @@
"enumber": "HCS000000/06",
"haId": "123456789012345678"
},
{
"name": "AirConditioner",
"brand": "BOSCH",
"vib": "HCS000006",
"connected": true,
"type": "AirConditioner",
"enumber": "HCS000000/07",
"haId": "8765432109876543210"
},
{
"name": "Microwave",
"brand": "BOSCH",
"vib": "HCS000006",
"connected": true,
"type": "Microwave",
"enumber": "HCS000000/08",
"haId": "541513213246313789"
},
{
"name": "DNE",
"brand": "BOSCH",

View File

@@ -205,5 +205,47 @@
}
]
}
},
"AirConditioner": {
"data": {
"programs": [
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.ActiveClean",
"constraints": {
"execution": "startonly"
}
},
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.Auto",
"constraints": {
"execution": "startonly"
}
},
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.Cool",
"constraints": {
"execution": "startonly"
}
},
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.Dry",
"constraints": {
"execution": "startonly"
}
},
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.Fan",
"constraints": {
"execution": "startonly"
}
},
{
"key": "HeatingVentilationAirConditioning.AirConditioner.Program.Heat",
"constraints": {
"execution": "startonly"
}
}
]
}
}
}

View File

@@ -31,6 +31,72 @@
'type': 'CookProcessor',
'vib': 'HCS000006',
}),
'541513213246313789': dict({
'brand': 'BOSCH',
'connected': True,
'e_number': 'HCS000000/08',
'ha_id': '541513213246313789',
'name': 'Microwave',
'programs': list([
]),
'settings': dict({
}),
'status': dict({
'BSH.Common.Status.DoorState': dict({
'value': 'BSH.Common.EnumType.DoorState.Closed',
}),
'BSH.Common.Status.OperationState': dict({
'value': 'BSH.Common.EnumType.OperationState.Ready',
}),
'BSH.Common.Status.RemoteControlActive': dict({
'value': True,
}),
'BSH.Common.Status.RemoteControlStartAllowed': dict({
'value': True,
}),
'Refrigeration.Common.Status.Door.Refrigerator': dict({
'value': 'BSH.Common.EnumType.DoorState.Open',
}),
}),
'type': 'Microwave',
'vib': 'HCS000006',
}),
'8765432109876543210': dict({
'brand': 'BOSCH',
'connected': True,
'e_number': 'HCS000000/07',
'ha_id': '8765432109876543210',
'name': 'AirConditioner',
'programs': list([
'HeatingVentilationAirConditioning.AirConditioner.Program.ActiveClean',
'HeatingVentilationAirConditioning.AirConditioner.Program.Auto',
'HeatingVentilationAirConditioning.AirConditioner.Program.Cool',
'HeatingVentilationAirConditioning.AirConditioner.Program.Dry',
'HeatingVentilationAirConditioning.AirConditioner.Program.Fan',
'HeatingVentilationAirConditioning.AirConditioner.Program.Heat',
]),
'settings': dict({
}),
'status': dict({
'BSH.Common.Status.DoorState': dict({
'value': 'BSH.Common.EnumType.DoorState.Closed',
}),
'BSH.Common.Status.OperationState': dict({
'value': 'BSH.Common.EnumType.OperationState.Ready',
}),
'BSH.Common.Status.RemoteControlActive': dict({
'value': True,
}),
'BSH.Common.Status.RemoteControlStartAllowed': dict({
'value': True,
}),
'Refrigeration.Common.Status.Door.Refrigerator': dict({
'value': 'BSH.Common.EnumType.DoorState.Open',
}),
}),
'type': 'AirConditioner',
'vib': 'HCS000006',
}),
'BOSCH-000000000-000000000000': dict({
'brand': 'BOSCH',
'connected': True,