Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Tuyaのミリ波人感センサー ZY-M100を試す

Sympapaです。

一般的に照明の自動化などで人感を検出するのには赤外線人感センサーが使用されています。
私もHome Assistantで人感をトリガーとした自動化をする時にはZigbee接続の赤外線人感センサーを使用しています。
赤外線人感センサーは安価で多くのメーカーがHome assistantで使いやすいZigbee接続のものも販売しており、その多くはZHAやZigbee2MQTTなどのインテグレーションやアドオンを介してHome assistantと接続できます。
消費電力が少ないためZigbee接続の人感センサーの多くはボタン電池か単4型電池で駆動するので、ケーブル不要で設置の自由度が高いのも利点でしょう。
しかし、赤外線人感センサーには人がじっとしていると検出されないという欠点があります。


この「じっとしていると検出されない」という弱点を克服した人感センサーとして、ミリ波を使用した"Aqara FP1 Presence Sensor"が(たぶん)2022年に登場して以来、ミリ波を使用した人感センサーがスマートホーム界隈で注目されており私も興味しんしんでした。しかし下記の点から赤外線人感センサーの置き換えとしては向かないのではないかと思い導入を躊躇していました。
・赤外線人感センサーと比べて高価(特にAqara FP1)
・ケーブルで電源を供給しなくてはいけない
・壁の向こう側の人感も検出する(場合によっては利点になるが部屋内に検出対象を限定するのが難しそう)
・人感あり及び人感なしへ切り替わるまでに数秒~数十秒かかると言われており即応性が厳しそう


ですがこのところ、私の住むド田舎地方が全国での最高気温を頻繁に記録するという異常気象の影響か、赤外線人感センサーの反応が鈍いのを体感するケースが増えました。赤外線の人感センサーは温度の動きで人を捉えるため、体温に近い室温になると反応が鈍くなります。
特に我が家では、複雑なロジックでウンチ君の最中に照明が消えないようにしているトイレの照明自動化が、クソ暑い日には想定どおり動かないケースが時々発生しており、今回、ミリ波を使った人感センサーをトイレの照明自動化に組み込むことを検討してみることにしました。
ただ、その界隈(?)で鉄板と言われている”Aqara FP1 Presence Sensor"は現在Aliexpressで7,500円くらいします。
そこで2,500円くらいで買えるTuyaの"ZY-M100"を購入して試してみたというのが今回のお話です。


レビュー記事として、こちらこちらを参考にさせていただき購入しました。
diysmarthome.hatenablog.com
smarthomescene.com


尚、”ZY-M100-S”には亜種?派生モデルが存在するようです。
今回試すのは、Loginovoというブランドで販売され、Zigbee2MQTTで"ZY-M100-S_1"として認識されるものになります。

■Tuya"ZY-M100-S"を試す

"ZY-M100"にはダウンライトのように天井に埋め込む「天井取付タイプ」のZY-M100-Lと薄くて6cm角くらいの「壁取付タイプ」のZY-M100-Sがありますが、今回購入したのは取り扱いがお手軽な後者の「壁取付タイプ」です。
接続方式はZigbee版とWi-Fi版が選べるようですが、私はできるだけローカルで処理したいのでZigbee版を購入しました。ってかHome Assistantで使う場合は選択できるのであればZigbeeを選ばない理由はありません。
届いたモノは電源の端子がUSB Type-Cでした。よく見かけるのはMicro USB-B端子だったんですが。。。背面のデザインなども良く見かけるものとは異なってました。


というか箱のデザインがLoginovoというブランドのオリジナルで、良く見かけるZY-M100-Sとは異なるようです。
購入したAliexpressのお店以外ではLoginovoブランドのZY-M100-Sと思われるものを販売しているセラーは見つけられませんでした。
Tuyaのデバイスは似て非なるようでやっぱり同じだったり違ったりするのでややこしや。。。


ちなみにそのお店ではこんなスタンドをセットにしたラインナップがあったのでそちらを購入してみました。

記事を書いている時点で本体のみの価格が2531円、本体+スタンドの価格が2726円となっています。
https://ja.aliexpress.com/item/1005005249827156.htmlja.aliexpress.com


"ZY-M100"はZigbee2MQTTでサポートされているはずです。
Zigbee2MQTTに接続してみたところ"ZY-M100-S_1"として認識されました。
人感検出に関わる部分は2つのセンサーと5つの設定パラメータで構成されていました。

[センサー]
・presence:「人感あり/なし」のステータスでTrue/falseに切り替わります。
・target_distance: 「距離」です。
[設定パラメータ]
・radar_sensitivity: レーダー感度:0-9
・minimum_range: 最小検出距離:0-9.5m
・maximum_range: 最大範囲(距離):0-9.5m
・detection_delay: 検出ありにするまでの時間:0-10sec
・fading_time: 検出無しにするまでの時間:0-1500sec


最小範囲と最大範囲は実際に検出する範囲ではなくて、presence:を”True"とする範囲じゃないかと思うのですが定かではありません。
ちなみに、presence:が"false"になるとtarget_distance:は"0m"になる仕様です。
あとは、購入前にみたレビューにも書かれていたとおり、約1秒毎にMQTTにレポートが流れています。ZigbeeネットワークやMQTTやログ周りへの負荷がちょっと気になります。何台も"ZY-M100"を使うのは止めた方が良いかもしれません。


さて、細かいことよりも先に、気になっていた壁の向こう側も検出するのかをチェックしてみました。
結果、壁が無いのと同じくらい盛大に検出されます(笑)
そしてもうひとつ大事な点のチェック。”ZY-M100-S"の背面側の人感を検出するのかという点ですが、こちらも裏表の区別は無いのかってくらい盛大に検出されます(汗)
こいつは少々困りました。例えば1階の天井に下向きに取り付けたとして、1階の床までの2.5mくらいを検出できるように設定すると、きっと2階に居る人の存在も検出してしまうでしょう。壁に取り付けた場合も、隣の部屋などを意識して設置場所や設定を考えなくてはいけないはずです。


背面側に関してはアルミフォイルで背面を覆ってやれば検出されなくなることを確認できました。下の写真の状態で机の下に手を入れても検出されません。


しかし壁の向こう側も検出する点については設置場所を工夫しないとパラメータ設定の自由度を奪われそうです。
基本的には背面を金属で覆った上で、天井に取り付けるか、下図のように壁の向こうに人がいない家の外周の壁に向かって取り付けるのが良いかなと思います。いや外壁の外側にも人がーーとかは言わないでください(笑)


さて、仕様上の検出範囲は下図のようになっていて高さ3mの天井に取り付けた場合、じっとしていても検出できる範囲は1-3m、ちょっと動けば検出できる範囲は5-7mとなっています。


仕様をみても、じっとしていても検出できる範囲だけを有効と捉えると4.5畳の部屋の天井ど真ん中に取り付けてギリギリという感じになるので、イメージしていたより検出範囲は狭いですね。
実際に設置して試した感じでは、眠っている時に誤ってpresence:が"false"(未検出)にならないようにするには、ベッドの正面で約1.5m以下の距離に設置することが必要だと思いました。この設置位置であれば、radar_sensitivity: 9, minimum_range: 0.3 m, maximum_range: 2.4m, detection_delay:0.8sec fading_time: 15sec に設定した場合、眠っている時もpresence:は"true"(検出)をキープできてました。この設定では部屋に入るとpresence:は数秒かからずに"true"(検出)となり、部屋から出るとだいたい20秒後にはpresence:が"false"(未検出)となるので、即応性という意味でも及第点かなと思います。
でも、ベッドから2.5m以上も離れた場所に設置すると、fading_time:は60sec以上に設定しないと、眠っている時は時々presence:が"false"(未検出)になってしまいます。


あと気になった点として、detection_delayを8秒とか10秒とかに設定しても、せいぜい5~6秒でpresence:が"true"(検出)となる点です。
別のお店で購入したMicro USB-B端子のZY-M100(何故かZigbee2MQTTでは天井取付モデルZY-M100-Lとして検出)も届きましたが、そちらはそちらでdetection_delayを7秒以上に設定するとどう頑張ってもpresence:が"true"(検出)にならなくなるので、detection_delay周りにはバグがありそうです。
まぁ長く設定したいというニーズはほとんど無いと思うので問題ないのかもしれませんが、いずれのモデルの場合も5秒以下に設定するのが無難だと思いました。


ざっくりですが試した感想としては、赤外線センサーと比べると「じっとしていても遥かに未検出になりにくい」のは間違いなく、検出時に限っては即応性も申し分ありませんでした。しかし、壁を通過して検出する点、裏側も検出する点、じっとしている時の検出精度を十分確保できる距離はだいたい1.5m以内である点を考えると、癖をしっかり掴んだ上で目的に応じて設置や設定の工夫が必要となる・・・言い換えると面倒くさいデバイスだなと感じました(笑)
まぁ面倒くさいとか言いましたけど、Home Assistantやらをお使いの方にとってはもはやそれは楽しみかもしれません(汗)
しかし、このあたりがAqara FP1やFP2だともっと優れているのかな。

■実際にトイレに設置する

そもそも今回"ZY-M100"を購入した目的はトイレの人感検出なのでトイレに設置してみました。
が、トイレという1畳くらいの狭い空間に検出範囲を限定しつつ、じっとしていても安定的に人感を検出させるには、設置場所とパラメータ設定の試行錯誤の繰り返しが必要そうです。


そしてちょっと謎なのが、センサーから離れてpresence:が"false"(未検出)に切り替わる直前まで、なぜか maximum_range以内のtarget_distanceを示しているんですよね。(しかも更新されている)
target_distanceがmaximum_rangeから外れた状態でfading_timeに達するとpresence:が"false"(未検出)に切り替わるわけではないの?
ここらへんも挙動が判りにくく、試行錯誤に時間がかかりそうです。


もっと楽勝だと思っていたので一気に書こうと思っていたのですが、次回に回します(笑)


それでは。