I've tried the solution (different firmware and patch the brcmfmac driver) and the good news is that the HeaterMeter no longer gives the errors on disconnect. It reconnects to wifi, gets a new IP, and can connect out and updates heatermeter.com/devices. The bad news is that I can't connect to it.
I can see when I try to connect (by IP), arp resolution fails. If I try to ping it from my router, which has the HeaterMeter MAC cached already from doing DHCP, the ping works. On my windows machine, I can add a static arp cache entry with
Code:
netsh interface ip add neighbors "Ethernet 3" "192.168.2.44" "b8-27-eb-cf-f2-fd"
And I can then ping the HeaterMeter and also connect to the webui and everything is fine. If I delete the static ARP entry, it stops working. I tried a `/etc/init.d/network reload` on the HeaterMeter itself and it does nothing (as none of the network config has changed). Completely stopping the network and restarting it appears to fix whatever's in a weird state on the Pi but that's not very helpful. Rebooting also fixes the issue.
I'm not sure what to do next to fix this. I will not add a service that watches the wifi IP and if it changes, restarts all the networking, that's an awful hack. Linux devices change IPs all the time and continue to work so there's something unique here that needs to be fixed but I'm not sure where to even look.