TL; DR
家の周りに恒久的に配置されているIoTデバイスからのWi-Fi信号のレベルの変化を監視することで、アパートに完全にソフトウェア(専用のハードウェアがない)ボリュームモーションセンサーを作成できます。これにより、活発に動いている(実際には眠っていない)人々の存在を非常に正確に示します。
バックグラウンド
ホームアシスタントに基づく「スマートホーム」システムを備えた通常の「ITスペシャリストのアパート」があります。
ESP8266 + MSP430に基づく自家製ライトスイッチ
温度/湿度、CO2および空気品質のためのいくつかのセンサー。
バスルーム/トイレファンコントローラー
残りのためのソノフミニのペア。
デバイス間の通信-Wi-Fi + MQTTを介して。「動作中の」Wi-Fiネットワークに対する低速ESPの影響を最小限に抑えるために、標準のhostapdに基づいて、IoT用の個別のWi-Fiネットワークが個別のRaspberry Pi3で起動されます。IoTWi-Fiネットワークには合計12台のデバイスがあります。
MQTTブローカーはRPiで起動され、HomeAssistantは「ホームサーバー」で起動されました。
考え
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") . - .
経験的に、IW信号距離> 1(緑の水平)は、部屋にいる人々の活動に対応すると想定できます。ただし、この境界は、他の部屋の構成やデバイス数によって異なる可能性があります。
結果
このシステムは2年以上この形で運用されており、隣人からの影響を最小限に抑えながら、アパート内での活動を非常に確実に示しています。
私のアルゴリズムの実装はgithub(https://github.com/k-korn/misc-scripts/tree/main/iwmon)で入手できますが、非常に具体的です(Perl + Zabbix + Grafanaでの視覚化)-したがって、既製のソリューション「プラグ」そして、「まだ役立たない」と遊ぶ。