'hidden' attribute doesn't seem to work for AlarmControlPanel entity?

I’m trying to hide unconfigured alarm panel areas (the actual real panel can have 8 areas/partitions each with it’s own zones and keypads acting as virtual separate alarms panels) by setting the hidden state to True. This worked for unconfigured alarm zones, but not the actual panels.

This works:

class ElkSensorDevice(Entity):
    def device_state_attributes(self):
        """Return the state attributes of the sensor."""
        return {
            'Status' : self._zone.status(),
            'State' : self._zone.state(),
            'Alarm' : self._zone.alarm(),
            'Definition' : self._zone.definition(),
            'friendly_name' : self._zone.description(),
            'hidden' : self._hidden

This doesn’t

class ElkAreaDevice(alarm.AlarmControlPanel):
    def device_state_attributes(self):
        """Return the state attributes of the sensor."""
        return {
            'hidden' : self._hidden,
            'Readiness' : self._area.arm_up(),
            'Status' : self._area.status(),
            'State' : self._state,
            'Alarm' : self._area.alarm(),
            'friendly_name' : self._area.description(),

Specifically, all those other attributes show up in the States screen, but hidden doesn’t show for the alarm panels and thus the areas that aren’t configured which I am setting hidden to True for are still showing up on the default view.

I even tried using this:

    def hidden(self) -> bool:
        return self._hidden

And still hidden doesn’t appear as an attribute for the alarm panel.

I don’t see any obvious point in the code where this would get removed from the attribute set for alarm panels (looking at homeassistant.components.alarm_control_panel and homeassistant.helpers.entity).

Here’s the JSON as it appears in the States page in HASS:


  "Status": "Normal",
  "State": "Unconfigured",
  "icon": "mdi:",
  "Alarm": "Disabled",
  "Definition": "Disabled",
  "friendly_name": "Zone 144",
  "hidden": true

Alarm panel:

  "Status": "Disarmed",
  "code_format": "[0-9]{4}([0-9]{2})?",
  "State": "disarmed",
  "Readiness": "Ready To Arm",
  "Alarm": "No Alarm Active",
  "friendly_name": "Area 3",
  "changed_by": null

Nevermind, found my problem, sort of. Don’t know why false wasn’t showing in the states JSON, but due to a bug, they were all being set to hidden false … when some should have been true. Fixing that bug fixed the problem with hidden.