You can do this, you just need to use static IP address (or addresses reserved in DHCP) for your ESP devices and to enable ping instead of mdns online detection. Then when you want to add a new device manually select the integration in Configuration / Devices / Add Integration and specify the IP address of the device.
I have the device adopted in ESPHome (just sows offline) and can update it wirelessly just fine.
I have the device and it’s entities also added in. This all works fine - the statuses coming and the outputs get there without any issues. If it wasn’t for ESPHome just showing this is disconnected, I’d quite happy with the integration.
Side Note:
Not sure why this is not done more, I personally feel people are crazy to allow IoT devices on the main network. I have all mine on a subnet that is setup so only certain devices can get to the web, none of them can get to the main network (allowing only connections to HA) and none of the IoT devices can reach each other.
This worked great for the connection and recognition of the device sitting on a different subnet, but now when I configure a new device (adding it to the same network subnet as HA is on for initial config), it never appears in ESPHome to adopt.
I can get this going by turning off the “Use ping for status” while adding a new ESP32, then turning it back on after I get the static IP setup.
This just the the way it is then? Just a ‘one or the other’ type of situation?
I’m happy either way as this is a minor inconvenience, just curious if I’m missing something here
You can, just not with a default “home” router.
For instance, pfSense / OPNSense have the “avahi” plug-in, which forward the mDNS packets across subnets.
Works flawlessly!
+1 for Avahi on pfsense. I keep all my esp devices on a subnet with just about no access to anything else, and then repeat the mdns packets to my LAN so HA can pick it up.
Apologies for resurrecting an old thread. Details have changed just a little.
I found the ‘Use ping for status’ option helpful for an ESP on a remote site running its own WireGuard tunnel. Works nicely but the option is now hidden.
You now fing it hidden slightly deeper in Settings> Add-ons > ESPHome > Configuration > Show unused optional configuration options. Then turn on ‘use ping for status’ and then scroll down for the save button you now (probably) can’t see.