ekutner / home-connect-hass

Alternative (and improved) Home Connect integration for Home Assistant
MIT License
494 stars 53 forks source link

Device not recognized as "not available" after turning off #290

Closed airman84 closed 7 months ago

airman84 commented 7 months ago

Hello,

I am having issues with my dryer Siemens WT47XE40. This device has no standby mode, so once it gets turned off, it should be "not available". But even after turning it off, all entities remain in the same status as it was before. When pressing "Home Connect Refresh", the entities are updated as expected.

I am using latest version 0.7.0 and I am pretty sure, that this was no issue in earlier versions, or maybe I just missed it. I read through the FAQ on how to create a log, but to me it seems the log does not contain the required information?

Thanks for your work Oliver

Configuration

home_connect_alt: client_id: xxx client_secret: xxx

logger: default: warn logs: home_connect_async: debug home_connect_alt: debug custom_components.home_connect_alt: debug

Debug log

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.home_connect_alt.button Source: custom_components/home_connect_alt/button.py:264 Integration: Home Connect Alt (documentation, issues) First occurred: 15:03:26 (2 occurrences) Last logged: 15:04:03

{ "appliances": { "SIEMENS-SX758X46TE-68A40E40CBBE": { "name": "Geschirrsp\u00fcler", "brand": "Siemens", "vib": "SX758X46TE", "connected": true, "type": "Dishwasher", "enumber": "SX758X46TE/74", "haId": "SIEMENS-SX758X46TE-68A40E40CBBE", "uri": "/api/homeappliances/SIEMENS-SX758X46TE-68A40E40CBBE", "available_programs": { "Dishcare.Dishwasher.Program.Intensiv70": { "key": "Dishcare.Dishwasher.Program.Intensiv70", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.Auto2": { "key": "Dishcare.Dishwasher.Program.Auto2", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.Eco50": { "key": "Dishcare.Dishwasher.Program.Eco50", "name": null, "options": {}, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.NightWash": { "key": "Dishcare.Dishwasher.Program.NightWash", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.Kurz60": { "key": "Dishcare.Dishwasher.Program.Kurz60", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.Glas40": { "key": "Dishcare.Dishwasher.Program.Glas40", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.Quick45": { "key": "Dishcare.Dishwasher.Program.Quick45", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.PreRinse": { "key": "Dishcare.Dishwasher.Program.PreRinse", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Dishcare.Dishwasher.Program.MachineCare": { "key": "Dishcare.Dishwasher.Program.MachineCare", "name": null, "options": null, "execution": "selectandstart", "active": false } }, "active_program": null, "selected_program": { "key": "Dishcare.Dishwasher.Program.Eco50", "name": null, "options": { "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, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "Dishcare.Dishwasher.Option.IntensivZone": { "key": "Dishcare.Dishwasher.Option.IntensivZone", "value": false, "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "Dishcare.Dishwasher.Option.VarioSpeedPlus": { "key": "Dishcare.Dishwasher.Option.VarioSpeedPlus", "value": false, "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "Dishcare.Dishwasher.Option.BrillianceDry": { "key": "Dishcare.Dishwasher.Option.BrillianceDry", "value": true, "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null } }, "execution": null, "active": false }, "status": { "BSH.Common.Status.DoorState": { "key": "BSH.Common.Status.DoorState", "value": "BSH.Common.EnumType.DoorState.Open", "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.OperationState": { "key": "BSH.Common.Status.OperationState", "value": "BSH.Common.EnumType.OperationState.Inactive", "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlActive": { "key": "BSH.Common.Status.RemoteControlActive", "value": true, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlStartAllowed": { "key": "BSH.Common.Status.RemoteControlStartAllowed", "value": false, "name": null, "displayvalue": null, "unit": null } }, "settings": { "BSH.Common.Setting.PowerState": { "key": "BSH.Common.Setting.PowerState", "value": "BSH.Common.EnumType.PowerState.Off", "type": "BSH.Common.EnumType.PowerState", "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": [ "BSH.Common.EnumType.PowerState.Off", "BSH.Common.EnumType.PowerState.On" ], "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": "readWrite" } }, "commands": { "BSH.Common.Command.AcknowledgeEvent": { "key": "BSH.Common.Command.AcknowledgeEvent", "name": null } }, "startonly_options": null, "startonly_program": null, "_active_program_fail_count": 0 }, "SIEMENS-CS658GRS7-68A40E4A0128": { "name": "Backofen", "brand": "Siemens", "vib": "CS658GRS7", "connected": true, "type": "Oven", "enumber": "CS658GRS7/81", "haId": "SIEMENS-CS658GRS7-68A40E4A0128", "uri": "/api/homeappliances/SIEMENS-CS658GRS7-68A40E4A0128", "available_programs": { "Cooking.Oven.Program.HeatingMode.SlowCook": { "key": "Cooking.Oven.Program.HeatingMode.SlowCook", "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.TopBottomHeating": { "key": "Cooking.Oven.Program.HeatingMode.TopBottomHeating", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Cooking.Oven.Program.HeatingMode.HotAirEco": { "key": "Cooking.Oven.Program.HeatingMode.HotAirEco", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Cooking.Oven.Program.HeatingMode.TopBottomHeatingEco": { "key": "Cooking.Oven.Program.HeatingMode.TopBottomHeatingEco", "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 }, "Cooking.Oven.Program.HeatingMode.PizzaSetting": { "key": "Cooking.Oven.Program.HeatingMode.PizzaSetting", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Cooking.Oven.Program.HeatingMode.IntensiveHeat": { "key": "Cooking.Oven.Program.HeatingMode.IntensiveHeat", "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.Desiccation": { "key": "Cooking.Oven.Program.HeatingMode.Desiccation", "name": null, "options": null, "execution": "selectandstart", "active": false }, "Cooking.Oven.Program.HeatingMode.PreheatOvenware": { "key": "Cooking.Oven.Program.HeatingMode.PreheatOvenware", "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.FrozenHeatupSpecial": { "key": "Cooking.Oven.Program.HeatingMode.FrozenHeatupSpecial", "name": null, "options": null, "execution": "selectandstart", "active": false } }, "active_program": null, "selected_program": null, "status": { "BSH.Common.Status.DoorState": { "key": "BSH.Common.Status.DoorState", "value": "BSH.Common.EnumType.DoorState.Closed", "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.LocalControlActive": { "key": "BSH.Common.Status.LocalControlActive", "value": false, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlStartAllowed": { "key": "BSH.Common.Status.RemoteControlStartAllowed", "value": false, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlActive": { "key": "BSH.Common.Status.RemoteControlActive", "value": true, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.OperationState": { "key": "BSH.Common.Status.OperationState", "value": "BSH.Common.EnumType.OperationState.Inactive", "name": null, "displayvalue": null, "unit": null }, "Cooking.Oven.Status.CurrentCavityTemperature": { "key": "Cooking.Oven.Status.CurrentCavityTemperature", "value": 21.0, "name": null, "displayvalue": null, "unit": "\u00b0C" } }, "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, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": "readWrite" }, "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" ], "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": "BSH.Common.EnumType.PowerState.On", "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, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": "readWrite" }, "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, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": "readWrite" } }, "commands": { "BSH.Common.Command.AcknowledgeEvent": { "key": "BSH.Common.Command.AcknowledgeEvent", "name": null } }, "startonly_options": null, "startonly_program": null, "_active_program_fail_count": 0 }, "SIEMENS-WM14VG41-68A40E508D00": { "name": "Waschmaschine", "brand": "Siemens", "vib": "WM14VG41", "connected": false, "type": "Washer", "enumber": "WM14VG41/01", "haId": "SIEMENS-WM14VG41-68A40E508D00", "uri": "/api/homeappliances/SIEMENS-WM14VG41-68A40E508D00", "available_programs": null, "active_program": null, "selected_program": null, "status": {}, "settings": {}, "commands": {}, "startonly_options": null, "startonly_program": null, "_active_program_fail_count": 0 }, "SIEMENS-WT47XE40-68A40E4B187B": { "name": "Trockner", "brand": "Siemens", "vib": "WT47XE40", "connected": true, "type": "Dryer", "enumber": "WT47XE40/01", "haId": "SIEMENS-WT47XE40-68A40E4B187B", "uri": "/api/homeappliances/SIEMENS-WT47XE40-68A40E4B187B", "available_programs": null, "active_program": null, "selected_program": { "key": "LaundryCare.Dryer.Program.Cotton", "name": null, "options": { "LaundryCare.Common.Option.ReferToProgram": { "key": "LaundryCare.Common.Option.ReferToProgram", "value": 0, "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "LaundryCare.Dryer.Option.DryingTarget": { "key": "LaundryCare.Dryer.Option.DryingTarget", "value": "LaundryCare.Dryer.EnumType.DryingTarget.CupboardDry", "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "LaundryCare.Dryer.Option.DryingTargetAdjustment": { "key": "LaundryCare.Dryer.Option.DryingTargetAdjustment", "value": "LaundryCare.Dryer.EnumType.DryingTargetAdjustment.Off", "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "LaundryCare.Dryer.Option.Gentle": { "key": "LaundryCare.Dryer.Option.Gentle", "value": false, "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null }, "LaundryCare.Dryer.Option.WrinkleGuard": { "key": "LaundryCare.Dryer.Option.WrinkleGuard", "value": "LaundryCare.Dryer.EnumType.WrinkleGuard.Off", "type": null, "name": null, "unit": null, "displayvalue": null, "min": null, "max": null, "stepsize": null, "allowedvalues": null, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": null, "access": null } }, "execution": null, "active": false }, "status": { "BSH.Common.Status.DoorState": { "key": "BSH.Common.Status.DoorState", "value": "BSH.Common.EnumType.DoorState.Closed", "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.LocalControlActive": { "key": "BSH.Common.Status.LocalControlActive", "value": false, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.OperationState": { "key": "BSH.Common.Status.OperationState", "value": "BSH.Common.EnumType.OperationState.Finished", "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlActive": { "key": "BSH.Common.Status.RemoteControlActive", "value": true, "name": null, "displayvalue": null, "unit": null }, "BSH.Common.Status.RemoteControlStartAllowed": { "key": "BSH.Common.Status.RemoteControlStartAllowed", "value": false, "name": null, "displayvalue": null, "unit": 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, "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": false, "access": "readWrite" }, "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.MainsOff", "BSH.Common.EnumType.PowerState.On" ], "allowedvaluesdisplay": null, "execution": null, "liveupdate": null, "default": "BSH.Common.EnumType.PowerState.On", "access": "readWrite" } }, "commands": { "BSH.Common.Command.AcknowledgeEvent": { "key": "BSH.Common.Command.AcknowledgeEvent", "name": null } }, "startonly_options": null, "startonly_program": null, "_active_program_fail_count": 0 } }, "_disabled_appliances": [] }

ekutner commented 7 months ago

The integration gets all its information from the HC API. If the appliance still shows up when turned off then it means the API is still providing its status, there is nothing that can be done about it. To be honest, I'm not sure why is that even an issue. That said, are you sure it is not in standby mode? I see that there is a PowerState setting that allows changes by the user, which means you should see a UI control that allows you to turn it on or off from HA.

airman84 commented 7 months ago

But the status seems to be correct in the API as it's not updating in Home Connect Alt, but instantly corrected to the right value when hitting "Home Connect Refresh". It's an issue for me, as the appliance still shows it's turned on, while it's actually off. The device can only be turned off via Home Connect App and HA, but not turned on as it's "completely" off.

ekutner commented 7 months ago

Again, the integration is getting its information from the API. The API is expected to send an event indicating that the device was turned off, if that doesn't happen then the integration has no way to know it's off until you press the refresh button which explicitly causes it to get the latest state. The debug log will show the events received from the API.

airman84 commented 7 months ago

ok, thats understood, thank you! do you maybe have any idea, what's my mistake when generating the debug log? I added logger and logs as instructed in Reporting issues / bugs to my configuration.yaml and hit "Home Connect Debug Info". There were already restarts inbetween. I checked Settings/System/Protocols but there is not more info than already provided, so info about events received from the API.

ekutner commented 7 months ago

you need to get the actual log file from the server file system. It's under the /config directory.

airman84 commented 7 months ago

I resolved it with a workaround, by automatically turning the device off via a service-call, once the program is finished. When doing it like this, the device is considered off, while it was not considered off, when turning it off physically.