Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unhide a Hidden Accessory #1331

Closed
1 task done
millhoo opened this issue Oct 15, 2023 · 3 comments
Closed
1 task done

Unhide a Hidden Accessory #1331

millhoo opened this issue Oct 15, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@millhoo
Copy link

millhoo commented Oct 15, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Describe The Bug

I have a Boiler Thermostat configured through Ring. I have hidden the Temperature Sensor (and four other accessories unrelated to the Boiler Thermostat), but for some reason the Thermostat Operating Status is also hidden even though I haven't hidden it in the HOOBS configuration settings.

I have uninstalled the plugin, removed the bridge from Home and reinstalled everything. Even with a fresh install and before I hide some of the other items like light groups and sirens and added the other accessories I wanted to hide, the only hidden accessory in the log was the Thermostat Operating Status. I'm pretty sure last winter when I was using the Boiler Thermostat the Thermostat Operating Status was not hidden because I have automations that use the Current Heating Cooling State, which no do not work now because the Boiler will be on heating (and showing that it is in heating mode in Ring app) but in Home+ the Current Healing Cooling State is "Off".

Is there some way to "unhide" the Thermostat Operating Status?

Thanks.

To Reproduce

No response

Expected behavior

I expected to be able to unhide the hidden accessory.

Relevant log output

10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory 069dbe3f-965c-4eff-9c50-e0fe0bbd0e35 hub.redsky Base Station
10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory 52327c1f-fe82-4df0-93dd-4f97dc0cd1f0 security-keypad Keypad
10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory 92519df1-c8d8-4665-b705-bfda4d775d5e listener.smoke-co Den
10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory 0bbd386f-dc85-4554-b637-a6babc54fa11 sensor.flood-freeze Laundry Closet
10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory 8c6d542e-1b1a-4318-aa63-f287c3c3ba70 sensor.temperature Temperature Sensor
10/15/2023, 6:22:44 PMRing BridgeRingHidden accessory fc59c17a-eceb-4482-87e2-0cbd2a746e18 thermostat-operating-status Thermostat Operating Status

Screenshots

No response

Homebridge Ring Config

{
    "platform": "Ring",
    "refreshToken": "REMOVED",
    "alarmOnEntryDelay": true,
    "hideLightGroups": true,
    "hideDoorbellSwitch": true,
    "hideCameraLight": true,
    "hideCameraSirenSwitch": true,
    "hideInHomeDoorbellSwitch": true,
    "hideAlarmSirenSwitch": true,
    "hideUnsupportedServices": false,
    "avoidSnapshotBatteryDrain": true,
    "hideDeviceIds": [
        "069dbe3f-965c-4eff-9c50-e0fe0bbd0e35",
        "52327c1f-fe82-4df0-93dd-4f97dc0cd1f0",
        "92519df1-c8d8-4665-b705-bfda4d775d5e",
        "0bbd386f-dc85-4554-b637-a6babc54fa11",
        "8c6d542e-1b1a-4318-aa63-f287c3c3ba70"
    ]

Additional context

No response

OS

macOS

Node.js Version

16.20.2

NPM Version

?

Homebridge/HOOBs Version

1.6.0/4.3.0

Homebridge Ring Plugin Version

12.0.1

Operating System

Rasbian?

@millhoo millhoo added the bug Something isn't working label Oct 15, 2023
@tsightler
Copy link
Collaborator

tsightler commented Oct 15, 2023

As far as I can see this is not a bug, but rather is by design as the current thermostat implementation does not use the thermostat-operating-status virtual device and thus it will always be hidden (it's hidden for my Honeywell thermostat as well).

Right now the way Current Heating Cooling State is updates is that it uses the current temperature, mode and set point to algorithmically "estimate" what the current operating state is likely to be. In other words, if the mode is "heat" and the current temperature is below the set point, then it assumes the state is "HEAT", if the mode was "cool" and the current temperature is above the set point, then it assumes the state is "COOL". The logic is a little more complex than this, but that's the jist of it, it doesn't use the actual reporting mode.

This is not a perfect implementation as it will not reflect the current operating state 100% of the time. For example, on my thermostat the Homebridge operating state will switch to "Off" as soon as the temperature rises to be the same as the set temperature, however, my thermostat will keep the unit running for quite a bit longer to get closer to the mid-point.

I'm not sure why it was implemented this way vs using the thermostat-operating-status. If I remember correctly it was contributed by another user many years ago (2020) and it doesn't appear to have had any significant changes in that time, so I assume it is mostly good enough for most users.

@tsightler
Copy link
Collaborator

Took another quick glance through the code and verified that the behavior above is correct/expected as the code is written today. The thermostat-operating-status will always show as a hidden accessory because it is not listed in ignoreHiddenDeviceTypes but it has no specific class handler so it will be logged as a hidden accessory, however, as it is not used in the thermostat device this has no impact.

What probably should happen:

  1. Add a device RingDeviceType to ring-client-api for thermostat-operating-status
  2. Add this type to ignoreHiddenDeviceTypes
  3. Modify thermostat class to actually use thermostat-operating-status instead of ignoring it (should be ease as device is available via onComponentDevices which is already used for the Temperature Sensor

I know this works because I already use this same basic logic in ring-mqtt. I'll try to do this for the next version, however, that probably won't be until sometime next month as I have limited time available at the moment.

For now however, I'm going to close this issue since, as currently written, it is expected that the thermostat operating status is a hidden accessory so the request about unhiding an the accessory is invalid.

@tsightler tsightler closed this as not planned Won't fix, can't repro, duplicate, stale Oct 16, 2023
@millhoo
Copy link
Author

millhoo commented Oct 26, 2023

Thanks, @tsightler for the looking into this and the explanation.

I had an IFTTT plugin and automation set up to log every time the thermostat changed current operating status to "heat" or "off". It was working in that it the current operating status would come on and the go off in 2 minutes even though the boiler was still heating. Based on your explanation, I now understand that to be by design or a function of the algorithm estimating the current operating status.

Thanks, again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants