Adding a HomeKit native Doorbell to Homeassistant

I have a Robin Pro Line Doorbell that works natively with HomeKit. Unfortunately it does not offer alternatives such as an API, or media Streams.

My only option to add it to Home Assistant appears to be going though HomeKit Controller, but as far as I can tell the HomeKit controller integration does not support door bells.

What are my options? Did I miss any info on adding door bells? I can program a bit, could I extend the HomeKit controller integration to also cover cameras?

i added the doorbell via the HomeKit device integration but only got 5 entities:

im missing the audio (to hear visitors, and a “media player” to play audio via the doorbell speaker) to “wire through” to HomeKit and use the intercom.

the diagnostics show some relevant services/characteristics:

          {
            "type": "BE4764C8-ECA8-4B8E-98A8-B1079E4ED413",
            "iid": 116,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "uint8",
            "value": 98,
            "description": "Button debounce setting",
            "minValue": 0,
            "maxValue": 100,
            "minStep": 1
          },

or

          {
            "type": "DF0A3A29-49CF-447E-B380-3BC2466C2004",
            "iid": 119,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "uint8",
            "value": 82,
            "description": "Button sensitivity setting",
            "minValue": 0,
            "maxValue": 100,
            "minStep": 1
          },

there’s video information:

      {
        "iid": 64,
        "type": "00000110-0000-1000-8000-0026BB765291",
        "characteristics": [
          {
            "type": "00000120-0000-1000-8000-0026BB765291",
            "iid": 67,
            "perms": [
              "pr",
              "ev",
              "hd"
            ],
            "format": "tlv8",
            "value": "AQEA",
            "description": "streaming-status"
          },
          {
            "type": "00000114-0000-1000-8000-0026BB765291",
            "iid": 68,
            "perms": [
              "pr",
              "hd"
            ],
            "format": "tlv8",
            "value": "AYcBAQACDAEBAQIBAgMBAAQBAAMLAQIABQIC0AIDAR4AAAMLAQKAAgICaAEDAR4AAAMLAQLgAQICDgEDAR4AAAMLAQJAAQICtAADAR4AAAMLAQIABAICAAMDAR4AAAMLAQKAAgIC4AEDAR4AAAMLAQLgAQICaAEDAR4AAAMLAQJAAQIC8AADAR4=",
            "description": "supported-video-stream-configuration"
          },
          {
            "type": "00000115-0000-1000-8000-0026BB765291",
            "iid": 69,
            "perms": [
              "pr",
              "hd"
            ],
            "format": "tlv8",
            "value": "AQ4BAQMCCQEBAQIBAAMBAQIBAA==",
            "description": "supported-audio-configuration"
          },
          {
            "type": "00000116-0000-1000-8000-0026BB765291",
            "iid": 70,
            "perms": [
              "pr",
              "hd"
            ],
            "format": "tlv8",
            "value": "AgEAAAACAQI=",
            "description": "supported-rtp-configuration"
          },
          {
            "type": "00000118-0000-1000-8000-0026BB765291",
            "iid": 71,
            "perms": [
              "pr",
              "pw",
              "hd"
            ],
            "format": "tlv8",
            "value": "",
            "description": "setup-endpoints"
          },
          {
            "type": "00000117-0000-1000-8000-0026BB765291",
            "iid": 72,
            "perms": [
              "pr",
              "pw",
              "hd"
            ],
            "format": "tlv8",
            "value": "",
            "description": "selected-rtp-stream-configuration"
          },

and audio info:

      {
        "iid": 80,
        "type": "00000112-0000-1000-8000-0026BB765291",
        "characteristics": [
          {
            "type": "00000023-0000-1000-8000-0026BB765291",
            "iid": 82,
            "perms": [
              "pr",
              "hd"
            ],
            "format": "string",
            "value": "Microphone",
            "description": "name",
            "maxLen": 64
          },
          {
            "type": "0000011A-0000-1000-8000-0026BB765291",
            "iid": 83,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "bool",
            "value": false,
            "description": "mute"
          },
          {
            "type": "00000119-0000-1000-8000-0026BB765291",
            "iid": 84,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "uint8",
            "value": 71,
            "description": "volume",
            "unit": "percentage",
            "minValue": 0,
            "maxValue": 100,
            "minStep": 1
          }
        ]
      },
      {
        "iid": 96,
        "type": "00000113-0000-1000-8000-0026BB765291",
        "characteristics": [
          {
            "type": "00000023-0000-1000-8000-0026BB765291",
            "iid": 98,
            "perms": [
              "pr",
              "hd"
            ],
            "format": "string",
            "value": "Speaker",
            "description": "name",
            "maxLen": 64
          },
          {
            "type": "0000011A-0000-1000-8000-0026BB765291",
            "iid": 99,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "bool",
            "value": false,
            "description": "mute"
          },
          {
            "type": "00000119-0000-1000-8000-0026BB765291",
            "iid": 100,
            "perms": [
              "pr",
              "pw",
              "ev",
              "hd"
            ],
            "format": "uint8",
            "value": 91,
            "description": "volume",
            "unit": "percentage",
            "minValue": 0,
            "maxValue": 100,
            "minStep": 1
          }
        ]
      },

there’s more such as firmware version, available update, trigger update, ip address, camera brightness, snapshot count, trigger snapshot, get snapshot, delete snapshot, motion sensitivity…

what would need to happen to get some of these into the integration/identified and available as entities?

You could open a feature request.