Crazy SNR from Google products

What are Google home and chromecast doing to my wifi? I have 2 access points in my house that run Lede and I run a script that checks the SNR of connected devices and kicks the connections of low SNR devices. This works as intended but Google devices seem to have wildly fluctuating SNR. If I use "iwinfo wlan0 assoclist" to find the SNR most devices it's stable but Google stuff can be anything between 0 and 200 from one second to the next. Although the SNR is all over the place their TX and RX rates are stable and it doesn't seem to disconnect or be problematic. When I run the script to disconnect low SNR they are constantly being disconnected and reconnecting. This is with a Unifi AP running LEDE Reboot 17.01.4 r3560-79f57e422d
-95 dBm / -95 dBm (SNR 0) 10 ms ago
-84 dBm / -95 dBm (SNR 11) 0 ms ago
54 dBm / -95 dBm (SNR 149) 0 ms ago
77 dBm / -95 dBm (SNR 172) 0 ms ago

Perhaps they are using power-saving approaches?

I think the SNR is just computed from the dBm reading for presentation to the human reader, by iw or iwinfo. The driver itself seems to only return dBm signal readings, and the "noise" is always the same.

There will be some false low signal readings. Don't kick off a device based on a single low reading.

As @jeff said, mobile phones and tablets may completely shut down their WiFi transmitters for a long time (up to a minute), and of course no updated signal reading can be obtained during that time. The last reading will be repeated.

and may as well plug my patch to hostapd to kick off weak stations.

I've got 2 Android phones and an iphone connected to the same AP and they are stable it's just the Google gear doing this so not looking like powersaving. With powersaving I can see the last update was many milliseconds ago on the phones but the SNR is fine. How are the google devices getting a positive signal reading instead of a normal negative one. Look at the bottom 2 entries here and these are from the same device seconds apart.
-95 dBm / -95 dBm (SNR 0) 10 ms ago
-84 dBm / -95 dBm (SNR 11) 0 ms ago
54 dBm / -95 dBm (SNR 149) 0 ms ago
77 dBm / -95 dBm (SNR 172) 0 ms ago

Doesn't your patch use the same driver to determine signal level? If so have you tested your patch with google devices?

Only Android phones.

Once a STA is completely associated and authorized, the kernel driver starts passing its data packets directly through kernel links to the networking bridge. Someone in userspace (hostapd, iw, iwinfo etc.) can query the ath9k etc. driver in the kernel for the status structure it maintains on each connected station. If I remember, this data structure only has three signed 8-bit numbers related to the RF signal reception of the station: most recent signal, average signal, and noise. All those are in dBm.

Yes I'm getting the same results using iw and iwinfo so that makes sense.
I've just noticed I'm also getting this in the logs related to the chromecast and home device. Not sure if it was there before I changed to this build or not.
Fri Mar 16 01:03:09 2018 daemon.notice hostapd: WPA: Invalid EAPOL-Key frame - key_data overflow (58370 > 0)
Fri Mar 16 01:03:10 2018 daemon.notice hostapd: WPA: Invalid EAPOL-Key frame - key_data overflow (58370 > 0)
Fri Mar 16 01:03:11 2018 daemon.notice hostapd: wlan0-1: AP-STA-DISCONNECTED "chromecast mac"
Fri Mar 16 01:03:11 2018 daemon.notice hostapd: wlan0-1: AP-STA-DISCONNECTED "google home mac"

If you haven't already, set encryption to WPA2-PSK and AES.

Doesn't this encryption setting make it aes?
option encryption 'psk2'

Iwinfo shows
Encryption: WPA2 PSK (CCMP)

option encryption 'psk2+ccmp'

I could be wrong but the way I read it in the openwrt wiki psk2, psk2+aes and psk2+ccmp do the same thing. I've tried all 3 and the iwinfo command shows the same and it doesn't make any difference to google devices SNR rapidly fluctuating. I'm pretty much out of ideas on how to get any more info on this. "iw dev wlan0 station dump -v" gives me a lot more info but everything except the SNR is normal.

Since 17.01.1 I have used psk2+ccmp.

Are you running everything on 2.4 Ghz?

Do you have the ability to run the Google stuff on 5 Ghz? Or switch some devices to 5, and run the Google stuff on 2.4?

On my network, I run a DIRECTV set-top-box and a Kindle Fire on 5 Ghz, and everything else on 2.4 Ghz...different SSID's. No issues.

I could run more stuff off the 5Ghz coming from the garage but I'm trying to work out why it is doing this random snr thing. It doesn't affect the wifi while it's on 2.4 but means I have to somehow ignore my OCD.

It would be a good test to isolate the Google devices, and see if you get the same results.

If you are running Android Oreo, there are known wifi issues...

http://bit.ly/2GwYFeP

Have you tried evaluating the SNR behavior while the devices are active (i.e. in casting mode) vs idle? My guess is that you will get normal values when the device is actively using the network.

Unfortunately it makes no difference if it's active or not. Those readings I posted before are while the Google Home is streaming the radio.