I’ve had a esphome sensor set up in home assistant for quite some time. I recently decided to strengthen my network security. I separated my iot devices into their own network and blocked access to the internet using some firewall rules. Currently, I’m allowing the IOT network to only talk with HA’s IP, over 5 or 6 ports for MQTT & ESPHome. I can’t remember the ports, I’ll have to list them later. I also have the auto discovery setting enabled.
The problem that I’m having is that it doesn’t appear as if the device is connecting to my network. I’ll see it connect for about 2 minutes then drop. Any attempt to access the device when connected ends in failed connection errors (when viewing logs in ESPHome add-on).
The network appears to be unable to attach an IP address to it.
Does anyone have firewall settings setup on a IOT network? Do esphome devices require internet connection?
Also, and I am not overly familiar with vlans, but I know esphome makes use of mDNS which is a multicast protocol. Are those multicast packets able to cross from your iot vlan?
I believe I set that up properly already. Although that could be the culprit. Unfortunately, I can’t test any of this because I fried the device in question when flashing it (sleepy incorrect wiring). I have to wait until the new part comes in to revisit this.
Did you ever get any luck with this? My devices get IPs, work fine, etc. But in the ESPHome page they all show as unavailable. When you tail a log, it connects, then the same as you after a couple of minutes goes to unavailable. This means if you try anything like an OTA update, it gets part way through then bugs out and says it’s not available. But it still works fine.
Yes I did. Basically my local domain was not named ‘local’. This is because the default on my gateway was named ‘localdomain’. By default, the esphome configuration I was flashing had the domain as ‘.local’. Pretty much should have paid more attention to my network settings.
Also, it was a bit of human error. My networking knowledge is limited. When calling out a device it was unclear to me that you needed to include the domain name with the hostname; hostname.domain. So all around, PICNIC error.