I'm having a weird DNS issue on my C-8 Pro (22.214.171.124) that I've been using for a bit less than 24 hours.
Early this morning, and again this afternoon, I had errors in the logs showing that apps were unable to connect to devices on my LAN. I also had automations fail where the rule contained a http request to a local URL.
I use DNS names for all my local devices, as it makes things much easier if/when I move services between different machines. My router's DHCP server provides two LAN IPs as the DNS servers. Each of those IPs is a Pi4 running PiHole DNS. My home network uses the "home.lan" domain, so the local DNS entries are for whatever.home.lan. While I do run subnets for other things, the hub and DNS servers are all on the main LAN subnet.
The first time this happened today, my Powerwall Manager app was unable to connect to the Powerwall gatway at powerwall.home.lan. I used the hub's Network Test tool to try to ping the gateway and it failed with "ping: bad address 'powerwall.home.lan'". I could ping anything on the LAN by IP, but not by xxxx.home.lan DNS name.
I entered the two DNS server IPs in the DNS override on the hub in 'Settings -> Network Setup -> , Override DNS settings' and then rebooted the hub. Things worked normally for a couple of hours before the hub again couldn't connect to local devices by DNS name.
The Network Test tool again showed that I could ping devices by IP but not by DNS name. I had no issues pinging those devices by name from other devices on my LAN.
Just to be sure nothing weird was going on with my router, I rebooted the router first but that didn't resolve the issue. I then rebooted the hub and things started working again.
The hub is using DHCP for IP address assignment, and given that it initially worked with no DNS override setting, it seems it is getting the correct DNS servers when it initially boots but somehow can't use those later whether the servers were provided by the DHCP server or override.
For the time being I'm going to create a rule that pings a LAN device by name every minute and either notifies me or just reboots the hub (in case it happens overnight) when the ping fails, but that's an ugly, disruptive workaround. Edit: it looks like the ping command in Rule Machine can only ping by IP, not name, so I'll have to find a way to trigger a notification based on the errors being logged.