TL; DR
Durch die Überwachung der Änderung des Pegels des Wi-Fi-Signals von IoT-Geräten, die sich permanent im Haus befinden, können Sie einen volumetrischen Bewegungssensor mit vollständiger Software (dedizierte Hardware fehlt) in der Wohnung erstellen, der die Anwesenheit von sich aktiv bewegenden (tatsächlich nicht schlafenden) Personen ziemlich genau anzeigt.
Hintergrund
Es gibt eine gewöhnliche "Wohnung eines IT-Spezialisten" mit einem "Smart Home" -System, das auf Home Assistant basiert:
Selbstgemachte Lichtschalter basierend auf ESP8266 + MSP430
Mehrere Sensoren für Temperatur / Luftfeuchtigkeit, CO2 und Luftqualität.
Steuerung des Bad- / Toilettenventilators
ein Paar Sonoff Mini für den Rest.
Kommunikation zwischen Geräten - über Wi-Fi + MQTT. Um die Auswirkungen von ESPs mit niedriger Geschwindigkeit auf ein "funktionierendes" Wi-Fi-Netzwerk zu minimieren, wird ein separates Wi-Fi-Netzwerk für IoT auf einem separaten Raspberry Pi 3 gestartet, das auf dem Standard- Hostapd basiert . Insgesamt befinden sich 12 Geräte im IoT-Wi-Fi-Netzwerk .
Ein MQTT-Broker wurde auf RPi und Home Assistant auf dem "Home Server" gestartet.
Idee
Wi-Fi . / RSSI, . , wi-fi - .
- , , " " - .
iw dev wlan0 station dump, :
Station 60:01:94:21:f8:4c (on wlan0) inactive time: 8000 ms rx bytes: 11269629 rx packets: 91423 tx bytes: 6159821 tx packets: 70707 tx failed: 0 signal: -53 [-53] dBm tx bitrate: 1.0 MBit/s rx bitrate: 54.0 MBit/s ... connected time: 763375 seconds Station 18:fe:34:98:dc:81 (on wlan0) inactive time: 4000 ms rx bytes: 11388688 rx packets: 92101 tx bytes: 6143200 tx packets: 70205 tx failed: 39 signal: -40 [-40] dBm tx bitrate: 1.0 MBit/s rx bitrate: 18.0 MBit/s ... connected time: 763378 seconds
RSSI ("signal: -40 [-40] dBm") , iw - .
iw RSSI - :
, "" +/- 10 dBm. , "" .
:
(" ")
, " "
, . - , .
4 :
~4:30. , - . , - , " " .
" " - .
500 RSSI iw dev wlan0 station dump.
, Raspberry Pi .
1024 " ":
$RSSI = -65; # iw dev dump
$baseline = ($RSSI + 1023 * $baseline) / 1024;
256 " ".
" " "" "" wi-fi .
:
("IW Signal Distance") . - .
Empirisch können wir annehmen, dass IW-Signalabstand> 1 (grüne Horizontale) der Aktivität von Personen im Raum entspricht. Diese Grenze ist jedoch wahrscheinlich für andere Raumkonfigurationen und Gerätezahlen unterschiedlich.
Ergebnisse
Das System ist seit über zwei Jahren in dieser Form in Betrieb und zeigt zuverlässig Aktivitäten innerhalb der Wohnung mit minimalem Einfluss der Nachbarn.
Meine Implementierung des Algorithmus ist auf github (https://github.com/k-korn/misc-scripts/tree/main/iwmon) verfügbar, aber ziemlich spezifisch (Perl + Zabbix + Visualisierung in Grafana) - und daher ein Plug-in für eine vorgefertigte Lösung und spielen "kann immer noch nicht dienen.