Alarm_control_panel not in expose list

I’m using the envisalink integration. I have three alarm_control_panel entities that I can see and control on dashboards, but they don’t show up in the “expose” list. Other entities do show up (front door, interior motion, etc). Just not the control panels.

I can see in the code that code_arm_required attribute needs to have a value of false. Mine all are set to true.

So, how do I set them to false? They’re created programmatically by the integration from configuration.yaml

# Alarm Interface
envisalink:
  host: envisalink.lan
  panel_type: HONEYWELL
  user_name: xxxx
  password: xxxx
  code: "xxxx"
  port: 4025
  evl_version: 4
  keepalive_interval: 60
  zonedump_interval: 30
  timeout: 10
  panic_type: Police
  zones:
    41:
      name: "Man Door"
      type: "door"
  partitions:
    1:
      name: "Main"
    2:
      name: "Shop"
    3:
      name: "Guest"

This will create three alarm_control_panel entities (one for each partition), but they all will have the wrong value for code_arm_required.

OK. I managed to get code_arm_required set to false by creating a template that wrappers the auto generated alarm_control_panel, but I still don’t see this in entities. Any suggestions?

Here’s my template (so far)

alarm_control_panel:
  - platform: template
    panels:
      guest_alarm_panel:
        value_template: "{{ states('alarm_control_panel.guest') }}"
        name: Guest Alarm
        code_arm_required: false
        arm_away:
          action: alarm_control_panel.alarm_arm_away
          target:
            entity_id: alarm_control_panel.guest
        disarm:
          action: alarm_control_panel.alarm_disarm
          target:
            entity_id: alarm_control_panel.guest

So here’s some more information. If I expose them explicitly by putting in a cloud: section in my yaml file, they get exposed. For instance:

cloud:
  alexa:
    filter:
      include_domains:
        - alarm_control_panel

But of course this sucks because I don’t want to manage these things through a yaml file when there’s a wonderful GUI screen that does it.

Why doesn’t whatever enumerates the entities to populate the Expose list pickup the alarm_control_panel entities?