Tuyaのミリ波センサーZY-M100を使ってみました。Aqara FP1の半額以下で買いやすいです。コスパが良くて十分に使えますが性能としてはFP1の方が良いです。
ZY-M100
TuyaのZY-M100は、AliExpressで3000円くらいで売られている人検出センサーです。こちらの商品です。
こんな感じのそこそこ綺麗な箱で届きました。
ZY-M100系列呼吸存在器と書いてあります。理解できてしまうのが漢字のすごいところです。人が呼吸する程度の動きをミリ波で検知して、人の存在を検出するセンサーです。1500円くらいで入手できる遠赤外線を使ったモーションセンサと違い、人が静止していても安定して検出します。
ミリ波人感センサとしては、以前にAqara FP1を紹介しました。
ZY-M100の方が半額以上安価ですので、いろいろな場面に気軽に使えるかと思います。
ZY-M100のバリエーションには、天井取り付け版(吸頂版)と壁取り付け版(側貼版)があります。天井取り付け版は、天井板に丸穴を開けて嵌め込むタイプです。すっきりと仕上がり、効率的に検知できるので理想的ですが、工事が大変そうです。壁取り付け版は、FP1と同じように壁に面ファスナーや両面テープで取り付けます。今回はお手軽な壁取り付けタイプを選びました。
通信方式としては、WiFiとZigbeeが選べます。(箱の表示にはBLEのチェックボックスもあるので、そのうちに提供されるのかもしれません)Tuyaのアプリから使い、AmazonやGoogleのスピーカと連携するならWiFiでも良いと思います。Zigbeeのハブも不要です。
ただ、Homebridge (HB) やHome Assistant (HA) から使うならばWiFiではなく、Zigbeeを選ぶべきです。HBやHAからWiFiモデルを使用する場合、Tuyaの開発クラウドを利用するのが一般的でした。でも開発クラウドは、1ヶ月ほどで有料になってしまうようになってしまいました。開発クラウドを使用しないでローカルに使うプラグインもあるようですが、設定が面倒です。一方、ZigbeeならばZigbee2MQTTで使用可能です。なので今回もZigbeeモデルを選びました。
箱を開けると、こんな感じで収まってます。サイズは58x58x11mmです。11mmの厚さは、想定した以上に薄い印象です。
箱の中には、充電用のUSBケーブルと、固定用の両面テープ、面ファスナーが入ってました。
本体の裏側はこんな感じです。
ネジの一つが固く蓋されていたので、今回はこれ以上開けませんでした。
Zigbee2MQTTで使う
これをTuyaのハブやクラウドを使用せずに、いつものようにZigbee2MQTTで直接接続して使用します。Zigbee2MQTTサーバ、MQTTブローカー (Mosquitto) 、Homebridgeが動作していて、さらにHomebridgeにZigbee2MQTTを使用するプラグインが入っている必要があります。手元の環境では、これらをRaspbetty Piで動かしてます。
設定の詳細に関しては、以下をご覧ください。
ペアリングする
USB電源アダプタを別途用意して、付属のケーブルで接続して、電源供給します。本体のリセットボタンを5秒程度長押しすると、Zigbeeのペアリングか始まります。Zigbee2MQTTのwebインタフェースでペアリングを有効にすれば、
10秒くらいでペアリングが完了します。下は、ペアリング後にfriendly nameをZY-M100に変更した様子です。人感センサとして機能してます。webインタフェースに用意された写真は天井埋め込みタイプのもののようです。
動作を確認する
mosquitto_subコマンドでZigbee2MQTTのメッセージを確認すると、毎秒1回くらいの割合で、人の存在、距離などのメッセージが流れています。
% mosquitto_sub -h 192.168.xxx.xxx -t zigbee2mqtt/ZY-M100/# -v zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":98,"maximum_range":4,"minimum_range":0,"presence":false,"radar_sensitivity":5,"self_test":"check_success","target_distance":0} zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":58,"maximum_range":4,"minimum_range":0,"presence":true,"radar_sensitivity":5,"self_test":"check_success","target_distance":0} zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":76,"maximum_range":4,"minimum_range":0,"presence":true,"radar_sensitivity":5,"self_test":"check_success","target_distance":0.42} zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":80,"maximum_range":4,"minimum_range":0,"presence":true,"radar_sensitivity":5,"self_test":"check_success","target_distance":0.43} zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":80,"maximum_range":4,"minimum_range":0,"presence":true,"radar_sensitivity":5,"self_test":"check_success","target_distance":0.46} zigbee2mqtt/ZY-M100 {"cli":" ","detection_delay":8.5,"fading_time":589,"illuminance_lux":20,"linkquality":61,"maximum_range":4,"minimum_range":0,"presence":true,"radar_sensitivity":5,"self_test":"check_success","target_distance":0.4}
毎秒更新するほどの時間解像度は無いセンサですので、ちょっと頻繁すぎると感じました。大したことはないかもしれませんが、ZigbeeとMQTTに不要な負荷をかけている気がします。
Homebridgeを経由して、HomeKitに反映されるのは、このメッセージのうち、人の検知 (presence) と照明 (illuminance_lux) です。ペアリングするとiPhoneとMacのホーム.appに、人感センサと照度のセンサが追加されます。
Aqara FP1には温度センサが内蔵されていましたが、こちらのセンサには照度センサが内蔵されています。
感度などを調整する
MQTTメッセージ経由で感度や応答時間を調整できます。
調整できるのは、感度、検知範囲、検出時間、消失時間です。どれもデフォルトで問題ありませんでしたが、いろいろ変更して様子を見ることにしました。
今までは、Aqara FP1をパソコン机の上方1.5mくらいの壁に設置して、人が居れば照明などをonにする設定にしてあります。部屋に入ると10秒くらいでonになり、退出してもやはり10秒くらいでoffになります。部屋で息を潜めて静止していても、offになることはありません。赤外線方式のセンサに比べると非常に優れてます。
これに対して、コスト半額程度のZY-M100は、以下のような状況でした。まず、検出時間と消失時間は、短く設定しても30秒ほどかかります。また、消失時間を10秒くらいに設定すると、息を止めて静かにした時に検出されなくなります。ただ、消失時間を60秒くらいに設定すると、かなり頑張っても非検出にはなりません。
また設定を変更すると、2-3分くらい非検出状態になり無反応になります。大きく動作しているとそのうちに復帰します。これに気づかないうちは、あまりに長時間無反応なので、電源再投入やリセットを試みてしまいました。
実際に使用する
現在使用しているAqara FP1と同じく、パソコン机の上方1.5mくらいの壁に設置して、人が居れば照明をonにする設定で数日テストしました。
感度調整中は、前述のように不安定な状態もありますが、一旦調整してしまえば、無反応になる問題も無く、ほぼ正確に人の存在を検出してくれます。ただ、入室・退室の検出には30秒くらいかかるので、照明onは壁スイッチで手動で行う必要がありました。それ以外は、ほぼFP1と同じく、安定して使用できました。
ただ、数日で2回ほど、静かにしていると照明が消えてしまうことがありました。FP1では経験したことが無い現象です。これは感度をデフォルトより上げれば改善されるかもしれません。
人の検出に失敗する原因は、感度だけでなく、指向性も関係しているかもしれません。マニュアルには指向性に関して以下のような図がありました。3m先で、人の存在を検出できる範囲が1~3m、「微少な動き(micro motion)」を検出できる範囲が5~7mとのことです。微少というのは誇張した表現で、実際には、人の呼吸が取得できるのが1~3mという意味だと思います。図の縦横比は1:1では無いので、検出範囲が広い印象がありますが、この数値から角度を計算すると、人の呼吸を検出できる範囲 (3m先の1~3m) は角度にして37度から53度になります。
一方でFP1は検出できる範囲がもっと広い印象があります。また、FP1には角度が調整できる機構があることも、安定した検出に寄与していると思います。
まとめ
TuyaのZY-M100は、Aqara FP1の半額のミリ波センサーです。性能と安定性では、やはりFP1の方が良いです。とはいえ十分実用的に使用できると思いますので、コスパを活かしていろいろな場面に使えると思います。
コメント