Unable to Adopt ESPHome Alarm Panel in Home Assistant

I got my Alarm panel in early 2023 and installed one of the early builds of ESPHome (directly from Konnected) when I set it up inititially. I haven’t changed much of anything since then.

  • It’s configured to use Ethernet (PoE).
  • Home Assistant reports the device firmware as 2022.12.4 (Jan22 2023, 17:44.27), which I believe is the ESPHome version.
  • The Konnected iOS app reports the “Konnected project version” as 0.1.0.

The device appears as expected as an ESPHome device in the ESPHome integration:
image

I also see the device in the ESPHome dashboard:
image

When I try to adopt the device, I get an error message of Failed to import device:
image

Current Status:

  • I have other ESPHome devices adopted with Home Assistant and I can configure/update them via the ESPHome dashboard, so I don’t think there’s anything fundamentally wrong with my ESPHome setup.
  • The sensors for the device are present in Home Assistant have worked as expected for the last year.
  • The local web page (http://ip_address) seems to work ok.
  • With the latest version of the Konnected iOS app, I can see the device listed by its IP address, but the info in the Settings page is incorrect:
    • The network configuration shows WiFi
    • All zones/outputs are listed as disabled

I’d like to be able to adopt the device into Home Assistant’s ESPHome dashboard so I can update ESPHome and get Konnected updates as well.

What’s my best path forward here?

I don’t think you are experiencing the same issue I did since you say you can adopt other ESPHome devices. If you are comfortable modifying ESPHome YAML, the easiest path is compile your own images from the Konnected source and install them on the Alarm Panel Pro.

When I was unable to import Konnected images, the solution for me was to remove the ESPHOME_DASHBOARD_USE_PING=true environmental parameter for ESPHome running on Docker. Then ESPHome was able to detect the ESPHome instance and ADOPT the device.

The misinformation about ESPHOME_DASHBOARD_USE_PING and mDNS are throughout the FAQ Frequently Asked Questions — ESPHome ESPHOME_DASHBOARD_USE_PING disables mDNS which is not documented. ESPHome requires mDNS to show online/offline state.

Full thread: Requirements to adopt device into ESPHome dashboard - ESPHome - Home Assistant Community

Thanks for the suggestion!

I’m currently using the official ESPHome Add-on, so I don’t have my own Docker instance. In the Add-on, there is a configuration toggle that looks like the ESPHOME_DASHBOARD_USE_PING feature you mentioned:

Option: status_use_ping

By default the dashboard uses mDNS to check if nodes are online. This does not work across subnets unless your router supports mDNS forwarding or avahi.

Setting this to true will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they’re connected.

That option is off/disabled in my ESPHome instance. That should mean that mDNS is enabled and I shouldn’t be subject to the same issue you had.

I agree. With the status_use_ping option off, you are using mDNS. So lack of mDNS is not the reason for problems with adopting.

This firmware is probably too old to adopt now. Not exactly sure, but that seems likely because lots has changed in the past year or so.

If you have physical access to the device, the simplest way to fix is probably to re-flash it at install.konnected.io and then try adopting again with the newer firmware base.

Thanks for the details, @nate.

The device is connected via PoE and physical access via USB would be … challenging. I’d really like not to have to disconnect all the sensor wiring from the board, so I think I’ll try using a USB-over-Cat5 extender to connect my PC to the Konnected board. Everything is currently functional, so I don’t have to be in a hurry. Will update once I get a chance to experiment.

I don’t think this is a good idea. I have no idea if that would even work. Sounds unlikely.

You don’t have to disconnect any sensor wiring. You can flash the device in-place with the wiring still connected. I’ve done this a bunch of times. Just bring a laptop into the closet where the board is and hook it up and flash it. This only takes a couple of minutes.

The other relatively simple solution is to just add the device manually to ESPHome dashboard and then update it over-the-air. To do this:

  1. click + New Device in ESPHome dashboard
  2. click Continue then when prompted for the name, enter the name exactly as it shows up in the Discovered tab: i.e. alarm-panel-pro-xxxxxx
  3. select ESP32
  4. this will create a blank alarm-panel-pro-xxxxx.yaml file to house your config. Click SKIP when it asks you to install. We don’t want to install just yet.
  5. Find the new config file created in the dashboard and click Edit
  6. Highlight everything and replace it with the following (you can keep the API encryption key and WiFi creds if desired):

If you have a v1.6 or v1.7 version Alarm Panel Pro:

substitutions:
  name: alarm-panel-pro-xxxxxx   # REPLACE THIS with the name of your device
  friendly_name: Whatever you want
packages:
  konnected.alarm-panel-pro-esp32-ethernet: github://konnected-io/konnected-esphome/alarm-panel-pro-esp32-ethernet.yaml@master
esphome:
  name: ${name}
  name_add_mac_suffix: false

If you have a v1.8 version Alarm Panel Pro

substitutions:
  name: alarm-panel-pro-xxxxxx   # REPLACE THIS with the name of your device
  friendly_name: Whatever you want
packages:
  konnected.alarm-panel-pro-esp32-ethernet: github://konnected-io/konnected-esphome/alarm-panel-pro-v1.8-ethernet.yaml@master
esphome:
  name: ${name}
  name_add_mac_suffix: false

Finally, Save and Install and it should be able to update over-the-air.

1 Like

Thanks for your help, @nate!

That assumes you have a laptop handy :wink: My household has PCs and tablets…

Your above instructions for manually adding the device to ESPHome and then doing an OTA (OT-wire?) update worked perfectly. I left the device connected to Ethernet and was able to update the device without a touching it physically.

I now have 4 more Home Assistant entities associated with the Konnected board and it reports the firmware version correctly. Further, I was able to add the zone name and device class customizations to the YAML file and Home Assistant picked them up immediately.

Thanks!

Perfect! thanks for the follow-up.