thoukydides / homebridge-homeconnect

Home Connect home appliances plugin for Homebridge
https://www.thouky.co.uk
ISC License
142 stars 15 forks source link

Ability to Disable Door Notifications for Fridge Freezer Devices #132

Closed mattcostell closed 1 year ago

mattcostell commented 1 year ago

Description of Enhancement

Hi there - using the plugin for a Bosch Fridge Freezer - unfortunately I had to disable it as every time anyone opens or closes a door on the fridge or freezer everyone gets a notification in the home app. Would be great if it just notified on the Door Open alarms rather than every time the door was opened or closed. Otherwise like the functionality and ability to control settings...

Thanks!

Home Connect Mapping

In place of using the Door State event it would be more helpful to surface the Door Alarm Freezer Event and Door Alarm Refrigerator Event as those only fire when the door is left open for a period of time. The Temperature Alarm Freezer event would be helpful in this scenario as well.

HomeKit Mapping

No response

Home Connect Appliance(s)

Bosch Refrigerator B36CL80SNS/07

thoukydides commented 1 year ago

You can disable the door notifications for specific appliances within the Home app. Go to the Home Settings (from the ... icon at the top of the screen), and then under Doors you will see a list of accessories, and can then toggle the Activity Notifications option. This is configured separately on each iPhone/iPad.

Home Connect Events are essentially stateless. There is no API for checking whether an event is active when Homebridge starts, or following any Home Connect errors or loss of connectivity. Even when the event stream is active, the reporting of events is inconsistent, especially whether any event is reported when the condition clears. Hence, they are not suitable for mapping to stateful HomeKit services such as the Door.

All Home Connect events are already supported by this plugin, but they are mapped to Stateless Programmable Switch services, which can be used to trigger automations. For a FridgeFreezer appliance the following events are supported:

Finally, I do not have access to a Home Connect Fridge, Freezer, or FridgeFreezer... so am unable to test functionality like this. The simulated appliances on the Home Connect Developer portal do not accurately model this sort of behaviour, so are not a suitable substitute. Hence, I want to keep the Door functionality common with appliances that I do own (Oven and Dishwasher), for which the current implementation is the most appropriate.

thoukydides commented 1 year ago

Quickly trying this with the FridgeFreezer simulator, the event stream looks like this...

Fridge and Freezer doors opened:

event: STATUS
data: {"items":[{"level":"hint","handling":"none","key":"BSH.Common.Status.DoorState","value":"BSH.Common.EnumType.DoorState.Open","uri":"/api/homeappliances/SIEMENS-HCS05FRF1-5B4AFB1A4255/status/BSH.Common.Status.DoorState","timestamp":1678348235}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: STATUS
data: {"items":[{"level":"hint","handling":"none","key":"BSH.Common.Status.DoorState","value":"BSH.Common.EnumType.DoorState.Open","uri":"/api/homeappliances/SIEMENS-HCS05FRF1-5B4AFB1A4255/status/BSH.Common.Status.DoorState","timestamp":1678348251}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

30 seconds later:

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348266}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348267}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348268}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348269}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348270}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348271}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348272}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348273}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: KEEP-ALIVE
data: ""

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348274}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: EVENT
data: {"items":[{"level":"hint","handling":"none","key":"Refrigeration.FridgeFreezer.Event.DoorAlarmRefrigerator","value":"BSH.Common.EnumType.EventPresentState.Present","timestamp":1678348275}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

Fridge and Freezer doors closed:

event: STATUS
data: {"items":[{"level":"hint","handling":"none","key":"BSH.Common.Status.DoorState","value":"BSH.Common.EnumType.DoorState.Closed","uri":"/api/homeappliances/SIEMENS-HCS05FRF1-5B4AFB1A4255/status/BSH.Common.Status.DoorState","timestamp":1678348275}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

event: STATUS
data: {"items":[{"level":"hint","handling":"none","key":"BSH.Common.Status.DoorState","value":"BSH.Common.EnumType.DoorState.Closed","uri":"/api/homeappliances/SIEMENS-HCS05FRF1-5B4AFB1A4255/status/BSH.Common.Status.DoorState","timestamp":1678348276}]}
id: SIEMENS-HCS05FRF1-5B4AFB1A4255

No event is provided indicating that the DoorAlarm is no longer active. That can only be implied by the event no longer being reported periodically... but that is not really a viable technique. Other events are not repeated periodically (and even this one wasn't when I previously investigated it). The API documentation does not describe this repeating behaviour, so there is no particular timeout period that will definitely be reliable, and not subject to change.

I assume that TemperatureAlarm will operate similarly, but it is not supported by the appliance simulators.

These events are not suited to controlling stateful HomeKit services.

mattcostell commented 1 year ago

Thanks for the info - appreciate your response.

ravny commented 1 year ago

Hi, so this events abot opened / closed doors can not be desabled, because push notifications are really annoying.

Tnx

thoukydides commented 1 year ago

@ravny please see my first reply to this issue:

You can disable the door notifications for specific appliances within the Home app. Go to the Home Settings (from the ... icon at the top of the screen), and then under Doors you will see a list of accessories, and can then toggle the Activity Notifications option. This is configured separately on each iPhone/iPad.

ravny commented 1 year ago

Hi @thoukydides yes I disable push notifications https://ibb.co/qDjH0kW but I still get notifications when fridge door are opened.

thoukydides commented 1 year ago

That doesn't look like the Apple Home app, which explains why the Home app is still generating notifications...

image

ravny commented 1 year ago

Yes this is on my phone https://ibb.co/MP1Kpvs

On Sat, May 6, 2023 at 7:25 PM Alexander Thoukydides < @.***> wrote:

That doesn't look like the Apple Home app, which explains why the Home app is still generating notifications...

[image: image] https://user-images.githubusercontent.com/4775242/236638413-91af9c3c-92c2-4280-bc0e-0d7826e49b18.jpeg

— Reply to this email directly, view it on GitHub https://github.com/thoukydides/homebridge-homeconnect/issues/132#issuecomment-1537186603, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIQ35UL5PPKMUSZVMBIPKH3XE2CQJANCNFSM6AAAAAAVULTAUM . You are receiving this because you were mentioned.Message ID: @.***>

--

I don’t suffer insanity. I enjoy every minute of it.

thoukydides commented 1 year ago

That screenshot is from the Home Connect app, not the Apple Home app.

The Apple Home app is completely different, and has its own separate configuration to disable its notifications.

mattcostell commented 1 year ago

I had the same problem with the doors on a Bosch refrigerator. To fix them, you go into the Apple home app, hit the three dots on the top right, choose home settings, and then doors.Here’s a screenshot from my set up (note that the screenshot is from the Apple home app, not the Bosch Homeconnect app)…Hope this helps.On May 6, 2023, at 2:30 PM, Alexander Thoukydides @.***> wrote: That screenshot is from the Home Connect app, not the Apple Home app. The Apple Home app is completely different, and has its own separate configuration to disable its notifications.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ravny commented 1 year ago

It was realy hiiden in App Home app now Im not getting push notifications for opened and closed doors.

Tnx for help

jensmoes commented 1 year ago

No event is provided indicating that the DoorAlarm is no longer active. That can only be implied by the event no longer being reported periodically... but that is not really a viable technique. Other events are not repeated periodically (and even this one wasn't when I previously investigated it). The API documentation does not describe this repeating behaviour, so there is no particular timeout period that will definitely be reliable, and not subject to change.

This is what I am seeing in the homebridge log suggesting there could be an alarm off event :

[10/11/2023, 11:37:20 AM] [HomeConnect] [Fridge] Door open
[10/11/2023, 11:38:20 AM] [HomeConnect] [Fridge] Event Freezer Door Alarm
[10/11/2023, 11:38:35 AM] [HomeConnect] [Fridge] Door closed
[10/11/2023, 11:38:35 AM] [HomeConnect] [Fridge] Event Freezer Door Alarm off (ignored)

unless it deduced from the door closed event 🤔

thoukydides commented 1 year ago

As I wrote previously, the handling of the end of events is inconsistent - both between event types, and between the same event type from different appliances.

I do not have a Home Connect fridge/freezer, but trying the appliance simulators again shows that the behaviour is unchanged:

Just because you happen to have an appliance that does report the Off status for that event doesn't mean it works for all fridge/freezer appliances. Even if it did, that still leaves my other objections, such as there being no API to read the current alarm status (e.g. on start-up on following interruption of the event stream).

I will not be changing this behaviour of the plugin. The only door-related change that I might make at some point is to treat each door independently (this information was added to the the Home Connect API on 22nd August 2023).

thoukydides commented 10 months ago

v0.32.0 provides per-appliance configuration options to remove the Door services (as well as selectively enabling the Switch services for appliance mode settings and the Stateless Programmable Switch services for appliance events).