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
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.Code:netsh interface ip add neighbors "Ethernet 3" "192.168.2.44" "b8-27-eb-cf-f2-fd"
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.
It is just consumer hardware. Having to work on wifi connectivity isn't something I ever do so it hasn't been an issue needing a second AP around, also all my important devices are hard wired. My neighborhood is pretty saturated on 2.4GHz too so I didn't want to make it worse by adding another network.
I’ve lost track, is this the same issue as this one?
https://tvwbb.com/showthread.php?73461-Any-idea-What-this-means
$ sudo tcpdump -n host 192.168.1.89
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
10:06:05.577224 ARP, Request who-has 192.168.1.89 tell 192.168.1.85, length 28
10:06:05.579641 ARP, Reply 192.168.1.89 is-at b8:27:eb:0b:0a:96, length 46
10:06:05.580005 IP 192.168.1.85.35928 > 192.168.1.89.80: Flags [S], seq 3685867767, win 29200, options [mss 1460,sackOK,TS val 1363125897 ecr 0,nop,wscale 7], length 0