Closed von-Chaps closed 2 years ago
Just some follow-up information.
I did think this could be a bug in the core (checking against a null value), but the documentation for input_number states that min and max are required values.
Clearly, the min value could be defaulted to 0. The documentation for my particular oven states that the maximum timer value is 23 hours 59 mins, but I obviously couldn't state if that is true for all ovens. Might not be a bad default for max though.
I fixed the exception by setting the minimum value to 0 and maximum to maximum int value, but this is a bug with the HC API, it should return the constraints.
There are very many null values in the response from HC (see below). Do you think this a feature of my appliance or do they all look like this?
For example, remaining program time has a null type so it is not rendered at all!
In other words, is everyone suffering from issues like this? If it's just me, I'll make my own template sensors to set the min/max appropriately. For example for the alarm timer, max should be (24 60 60 - 60), but obviously you can't code specific values for each device.
"appliances": {
"BOSCH-HBG5585S6B-68A40E681870-001": {
"name": "Oven",
"brand": "Bosch",
"vib": "HBG5585S6B",
"connected": true,
"type": "Oven",
"enumber": "HBG5585S6B/60",
"haId": "BOSCH-HBG5585S6B-68A40E681870-001",
"uri": "/api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001",
"available_programs": {
"Cooking.Oven.Program.HeatingMode.PreHeating": {
"key": "Cooking.Oven.Program.HeatingMode.PreHeating",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.BottomHeating": {
"key": "Cooking.Oven.Program.HeatingMode.BottomHeating",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.HotAir": {
"key": "Cooking.Oven.Program.HeatingMode.HotAir",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.PizzaSetting": {
"key": "Cooking.Oven.Program.HeatingMode.PizzaSetting",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.Defrost": {
"key": "Cooking.Oven.Program.HeatingMode.Defrost",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.SlowCook": {
"key": "Cooking.Oven.Program.HeatingMode.SlowCook",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.TopBottomHeating": {
"key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating",
"name": null,
"options": {
"Cooking.Oven.Option.SetpointTemperature": {
"key": "Cooking.Oven.Option.SetpointTemperature",
"value": null,
"type": "Double",
"name": null,
"unit": "\u00b0C",
"displayvalue": null,
"min": 30,
"max": 275,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.FastPreHeat": {
"key": "Cooking.Oven.Option.FastPreHeat",
"value": null,
"type": "Boolean",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.Duration": {
"key": "BSH.Common.Option.Duration",
"value": null,
"type": "Int",
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": 1,
"max": 86400,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
}
},
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.KeepWarm": {
"key": "Cooking.Oven.Program.HeatingMode.KeepWarm",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.HotAirGrilling": {
"key": "Cooking.Oven.Program.HeatingMode.HotAirGrilling",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
}
},
"active_program": {
"key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating",
"name": null,
"options": {
"Cooking.Oven.Option.SetpointTemperature": {
"key": "Cooking.Oven.Option.SetpointTemperature",
"value": 170,
"type": null,
"name": null,
"unit": "\u00b0C",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.HeatupProgress": {
"key": "Cooking.Oven.Option.HeatupProgress",
"value": 0,
"type": null,
"name": null,
"unit": "%",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.FastPreHeat": {
"key": "Cooking.Oven.Option.FastPreHeat",
"value": false,
"type": null,
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.Duration": {
"key": "BSH.Common.Option.Duration",
"value": 60,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.ProgramProgress": {
"key": "BSH.Common.Option.ProgramProgress",
"value": 35,
"type": null,
"name": null,
"unit": "%",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.ElapsedProgramTime": {
"key": "BSH.Common.Option.ElapsedProgramTime",
"value": 33,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.RemainingProgramTime": {
"key": "BSH.Common.Option.RemainingProgramTime",
"value": 60,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.CavitySelector": {
"key": "Cooking.Oven.Option.CavitySelector",
"value": "Cooking.Oven.EnumType.CavitySelector.Main",
"type": null,
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
}
},
"execution": null,
"active": false
},
"selected_program": {
"key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating",
"name": null,
"options": {
"Cooking.Oven.Option.SetpointTemperature": {
"key": "Cooking.Oven.Option.SetpointTemperature",
"value": 170,
"type": null,
"name": null,
"unit": "\u00b0C",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.HeatupProgress": {
"key": "Cooking.Oven.Option.HeatupProgress",
"value": 0,
"type": null,
"name": null,
"unit": "%",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.FastPreHeat": {
"key": "Cooking.Oven.Option.FastPreHeat",
"value": false,
"type": null,
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.StartInRelative": {
"key": "BSH.Common.Option.StartInRelative",
"value": 0,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.Duration": {
"key": "BSH.Common.Option.Duration",
"value": 60,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.ProgramProgress": {
"key": "BSH.Common.Option.ProgramProgress",
"value": 0,
"type": null,
"name": null,
"unit": "%",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.ElapsedProgramTime": {
"key": "BSH.Common.Option.ElapsedProgramTime",
"value": 0,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"BSH.Common.Option.RemainingProgramTime": {
"key": "BSH.Common.Option.RemainingProgramTime",
"value": 2165,
"type": null,
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
},
"Cooking.Oven.Option.CavitySelector": {
"key": "Cooking.Oven.Option.CavitySelector",
"value": "Cooking.Oven.EnumType.CavitySelector.Main",
"type": null,
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": null
}
},
"execution": null,
"active": false
},
"status": {
"BSH.Common.Status.OperationState": {
"key": "BSH.Common.Status.OperationState",
"value": "BSH.Common.EnumType.OperationState.Run",
"name": null,
"displayvalue": null
},
"BSH.Common.Status.LocalControlActive": {
"key": "BSH.Common.Status.LocalControlActive",
"value": false,
"name": null,
"displayvalue": null
},
"BSH.Common.Status.DoorState": {
"key": "BSH.Common.Status.DoorState",
"value": "BSH.Common.EnumType.DoorState.Closed",
"name": null,
"displayvalue": null
},
"BSH.Common.Status.RemoteControlStartAllowed": {
"key": "BSH.Common.Status.RemoteControlStartAllowed",
"value": true,
"name": null,
"displayvalue": null
},
"BSH.Common.Status.RemoteControlActive": {
"key": "BSH.Common.Status.RemoteControlActive",
"value": true,
"name": null,
"displayvalue": null
},
"Cooking.Oven.Status.CurrentCavityTemperature": {
"key": "Cooking.Oven.Status.CurrentCavityTemperature",
"value": 204,
"name": null,
"displayvalue": null
}
},
"settings": {
"BSH.Common.Setting.ChildLock": {
"key": "BSH.Common.Setting.ChildLock",
"value": false,
"type": "Boolean",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "read"
},
"BSH.Common.Setting.PowerState": {
"key": "BSH.Common.Setting.PowerState",
"value": "BSH.Common.EnumType.PowerState.On",
"type": "BSH.Common.EnumType.PowerState",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": [
"BSH.Common.EnumType.PowerState.On",
"BSH.Common.EnumType.PowerState.Standby"
],
"execution": null,
"liveupdate": null,
"access": "read"
},
"Cooking.Oven.Setting.SabbathMode": {
"key": "Cooking.Oven.Setting.SabbathMode",
"value": false,
"type": "Boolean",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "readWrite"
},
"BSH.Common.Setting.AlarmClock": {
"key": "BSH.Common.Setting.AlarmClock",
"value": 3000,
"type": "Int",
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "readWrite"
}
},
"commands": {},
"startonly_options": null,
"startonly_program": null
}
}
}
This is not the response from HC, it is the internal data structure that stores the data received from all the API calls and it is normal for it to have null values. That said, "type" should not be null and for numeric types the min/max/stepsize values should appear.
To be certain it is a problem with the data received from the API and not with the integration please add the following line to the home_connect_alt section of configuration.yaml:
log_mode: 7
Here's the log with debugging turned on and log_mode:7 set as you suggested. It appears that the AlarmTimer (amongst others) doesn't return min and max. Possibly as a side-effect of all this, I have no inputs for program duration or temperature to set. Perhaps because the data types as also null?
2022-06-26 19:54:03 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration sonoff which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-06-26 19:54:03 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration home_connect_alt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-06-26 19:54:03 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration hive which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-06-26 19:54:04 WARNING (MainThread) [homeassistant.components.http] The 'base_url' option near /config/configuration.yaml:11 is deprecated, please remove it from your configuration
2022-06-26 19:54:06 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances (try=1 count=1)
2022-06-26 19:54:07 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances (try=1 count=1) [200 OK] ====>
{
"data": {
"homeappliances": [{
"name": "Oven",
"brand": "Bosch",
"vib": "HBG5585S6B",
"connected": true,
"type": "Oven",
"enumber": "HBG5585S6B/60",
"haId": "BOSCH-HBG5585S6B-68A40E681870-001"
}]
}
}
2022-06-26 19:54:07 DEBUG (MainThread) [home_connect_async.appliance] Starting to load appliance data for Oven (BOSCH-HBG5585S6B-68A40E681870-001)
2022-06-26 19:54:07 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/selected (try=1 count=2)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/selected (try=1 count=2) [404 Not Found] ====>
{
"error": {
"key": "SDK.Error.NoProgramSelected",
"description": "There is no program selected"
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api] API call failed with code=404 error=SDK.Error.NoProgramSelected
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.appliance] Failed to load selected programs with error code=404 key=SDK.Error.NoProgramSelected
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/active (try=1 count=3)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/active (try=1 count=3) [404 Not Found] ====>
{
"error": {
"key": "SDK.Error.NoProgramActive",
"description": "There is no program active"
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api] API call failed with code=404 error=SDK.Error.NoProgramActive
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.appliance] Failed to load active programs with error code=404 key=SDK.Error.NoProgramActive
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings (try=1 count=4)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings (try=1 count=4) [200 OK] ====>
{
"data": {
"settings": [{
"key": "BSH.Common.Setting.ChildLock",
"value": false
}, {
"key": "BSH.Common.Setting.PowerState",
"value": "BSH.Common.EnumType.PowerState.Standby"
}, {
"key": "Cooking.Oven.Setting.SabbathMode",
"value": false
}, {
"key": "BSH.Common.Setting.AlarmClock",
"value": 0,
"unit": "seconds"
}]
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.ChildLock (try=1 count=5)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.ChildLock (try=1 count=5) [200 OK] ====>
{
"data": {
"key": "BSH.Common.Setting.ChildLock",
"value": false,
"type": "Boolean",
"constraints": {
"access": "read"
}
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.PowerState (try=1 count=6)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.PowerState (try=1 count=6) [200 OK] ====>
{
"data": {
"key": "BSH.Common.Setting.PowerState",
"value": "BSH.Common.EnumType.PowerState.Standby",
"type": "BSH.Common.EnumType.PowerState",
"constraints": {
"allowedvalues": ["BSH.Common.EnumType.PowerState.On", "BSH.Common.EnumType.PowerState.Standby"],
"default": "BSH.Common.EnumType.PowerState.On",
"access": "read"
}
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/Cooking.Oven.Setting.SabbathMode (try=1 count=7)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/Cooking.Oven.Setting.SabbathMode (try=1 count=7) [200 OK] ====>
{
"data": {
"key": "Cooking.Oven.Setting.SabbathMode",
"value": false,
"type": "Boolean",
"constraints": {
"access": "readWrite"
}
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.AlarmClock (try=1 count=8)
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/settings/BSH.Common.Setting.AlarmClock (try=1 count=8) [200 OK] ====>
{
"data": {
"key": "BSH.Common.Setting.AlarmClock",
"constraints": {
"access": "readWrite"
},
"unit": "seconds",
"type": "Int",
"value": 0
}
}
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.appliance] Loaded 4 Settings
2022-06-26 19:54:08 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/status (try=1 count=9)
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/status (try=1 count=9) [200 OK] ====>
{
"data": {
"status": [{
"key": "BSH.Common.Status.OperationState",
"value": "BSH.Common.EnumType.OperationState.Inactive"
}, {
"key": "BSH.Common.Status.LocalControlActive",
"value": false
}, {
"key": "BSH.Common.Status.DoorState",
"value": "BSH.Common.EnumType.DoorState.Closed"
}, {
"key": "BSH.Common.Status.RemoteControlStartAllowed",
"value": true
}, {
"key": "BSH.Common.Status.RemoteControlActive",
"value": true
}, {
"key": "Cooking.Oven.Status.CurrentCavityTemperature",
"value": 59,
"unit": "°C"
}]
}
}
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.appliance] Loaded 6 Statuses
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/commands (try=1 count=10)
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/commands (try=1 count=10) [200 OK] ====>
{
"data": {
"commands": []
}
}
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.appliance] Loaded 0 Commands
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/available (try=1 count=11)
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.api]
HTTP GET /api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001/programs/available (try=1 count=11) [200 OK] ====>
{
"data": {
"programs": [{
"key": "Cooking.Oven.Program.HeatingMode.PreHeating",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.BottomHeating",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.HotAir",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.PizzaSetting",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.Defrost",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.SlowCook",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.KeepWarm",
"constraints": {
"execution": "selectandstart"
}
}, {
"key": "Cooking.Oven.Program.HeatingMode.HotAirGrilling",
"constraints": {
"execution": "selectandstart"
}
}]
}
}
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.appliance] Loaded 9 available Programs
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.appliance] Finished loading appliance data for Oven (BOSCH-HBG5585S6B-68A40E681870-001)
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.callback_registery] Broadcasting event: Events.PAIRED = None
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.callback_registery] Broadcasting event: Events.DATA_CHANGED = None
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.homeconnect] Loadded appliance: Oven
2022-06-26 19:54:09 DEBUG (MainThread) [home_connect_async.homeconnect] Connecting to SSE stream
2022-06-26 19:54:09 DEBUG (MainThread) [custom_components.home_connect_alt.select] Current program is None
2022-06-26 19:55:04 DEBUG (MainThread) [home_connect_async.homeconnect] Received event from SSE stream: MessageEvent(type='KEEP-ALIVE', message='KEEP-ALIVE', data='', origin='https://api.home-connect.com', last_event_id='')
Here's the internal structure again as it's changed from the one I posted earlier. This one corresponds to the above debug log.
2022-06-26 19:59:15 ERROR (MainThread) [custom_components.home_connect_alt.button] {
"appliances": {
"BOSCH-HBG5585S6B-68A40E681870-001": {
"name": "Oven",
"brand": "Bosch",
"vib": "HBG5585S6B",
"connected": true,
"type": "Oven",
"enumber": "HBG5585S6B/60",
"haId": "BOSCH-HBG5585S6B-68A40E681870-001",
"uri": "/api/homeappliances/BOSCH-HBG5585S6B-68A40E681870-001",
"available_programs": {
"Cooking.Oven.Program.HeatingMode.PreHeating": {
"key": "Cooking.Oven.Program.HeatingMode.PreHeating",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.BottomHeating": {
"key": "Cooking.Oven.Program.HeatingMode.BottomHeating",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.HotAir": {
"key": "Cooking.Oven.Program.HeatingMode.HotAir",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.PizzaSetting": {
"key": "Cooking.Oven.Program.HeatingMode.PizzaSetting",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.Defrost": {
"key": "Cooking.Oven.Program.HeatingMode.Defrost",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.SlowCook": {
"key": "Cooking.Oven.Program.HeatingMode.SlowCook",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.TopBottomHeating": {
"key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.KeepWarm": {
"key": "Cooking.Oven.Program.HeatingMode.KeepWarm",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
},
"Cooking.Oven.Program.HeatingMode.HotAirGrilling": {
"key": "Cooking.Oven.Program.HeatingMode.HotAirGrilling",
"name": null,
"options": null,
"execution": "selectandstart",
"active": false
}
},
"active_program": null,
"selected_program": null,
"status": {
"BSH.Common.Status.OperationState": {
"key": "BSH.Common.Status.OperationState",
"value": "BSH.Common.EnumType.OperationState.Inactive",
"name": null,
"displayvalue": null
},
"BSH.Common.Status.LocalControlActive": {
"key": "BSH.Common.Status.LocalControlActive",
"value": false,
"name": null,
"displayvalue": null
},
"BSH.Common.Status.DoorState": {
"key": "BSH.Common.Status.DoorState",
"value": "BSH.Common.EnumType.DoorState.Closed",
"name": null,
"displayvalue": null
},
"BSH.Common.Status.RemoteControlStartAllowed": {
"key": "BSH.Common.Status.RemoteControlStartAllowed",
"value": true,
"name": null,
"displayvalue": null
},
"BSH.Common.Status.RemoteControlActive": {
"key": "BSH.Common.Status.RemoteControlActive",
"value": true,
"name": null,
"displayvalue": null
},
"Cooking.Oven.Status.CurrentCavityTemperature": {
"key": "Cooking.Oven.Status.CurrentCavityTemperature",
"value": 59,
"name": null,
"displayvalue": null
}
},
"settings": {
"BSH.Common.Setting.ChildLock": {
"key": "BSH.Common.Setting.ChildLock",
"value": false,
"type": "Boolean",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "read"
},
"BSH.Common.Setting.PowerState": {
"key": "BSH.Common.Setting.PowerState",
"value": "BSH.Common.EnumType.PowerState.Standby",
"type": "BSH.Common.EnumType.PowerState",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": [
"BSH.Common.EnumType.PowerState.On",
"BSH.Common.EnumType.PowerState.Standby"
],
"execution": null,
"liveupdate": null,
"access": "read"
},
"Cooking.Oven.Setting.SabbathMode": {
"key": "Cooking.Oven.Setting.SabbathMode",
"value": false,
"type": "Boolean",
"name": null,
"unit": null,
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "readWrite"
},
"BSH.Common.Setting.AlarmClock": {
"key": "BSH.Common.Setting.AlarmClock",
"value": 0,
"type": "Int",
"name": null,
"unit": "seconds",
"displayvalue": null,
"min": null,
"max": null,
"stepsize": null,
"allowedvalues": null,
"execution": null,
"liveupdate": null,
"access": "readWrite"
}
},
"commands": {},
"startonly_options": null,
"startonly_program": null
}
}
}
These are all separate issues. You don't have a temperature control because there is no selected program and in order to save on API calls the integration doesn't fetch the available options until a program is selected. Once you select a program the integration should fetch the options for the selected program and the controls should become enabled.
OK, that makes sense. Thanks for the explanation. When I selected a program, the newly created entities ended up on the "unused entities" screen so I didn't see them. Now I know they exist, I can move them in the UI.
Regardless, it looks like the min/max values are coming back as null from HC. I guess that's out of your control. Your fix sounds like a good on.
FYI, my bodge was along these lines;
return self._conf['opt'].min or 0
Many thanks again for a well engineered integration. Much appreciated.
First off, many thanks for a great component. Much improvement over the stock version.
I am not able to set an alarm timer on my Bosch oven. When trying to do so, I get an error thus;
I think you can see where this is going...
Version of the custom_component
Latest master as of last night.
Describe the bug
This is because the AlarmClock information returned from the Home Connect contains null values for the min and max allowable values. As a result, the number component is created with null min/max values. Thus when attempting to check that the entered value for the alarm is in range, the check fails with this error.
The result of this failure is that the alarm is not set.
Debug log
Here's full details of the error occuring
Here's the start of the log showing the my oven device if that's important/useful
Here's an extract from the debug log showing the relevant entry for the AlarmClock