Sympapaのスマートホーム日記

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

Qrio Lock(2): ドア開閉センサーを追加してロック状態を取得する

こんにちは。Sympapaです。

今回はQrio Lockシリーズ第2弾です。
私のQrio Lockへの熱い思いもちょっとした不満点も第1弾で書きました。
第2弾以降は不満点を自力でなんとかしようって内容をメインに書いていきます。
ちょっとした不満点のひとつにAPIが公開されておらずHome Assistantからロック状態を取得できない点があるのですが、私はドア開閉センサーを追加しそれを使ってQrio Lockのロック状態をリアルタイムにHome Assistantから取得できるようにしているので今回はその内容を書こうと思います。
実は以前の記事でこの方法について書いたのですが問題があって改良したので、あらためてQrio Lockシリーズとして記事を書き直したいと思います。

■とりあえずQrio Lockシリーズ記事まとめ

Qrio Lockシリーズ記事まとめ
Qrio Lock(1): 1.5年間使用レビュー(今更)
Qrio Lock(2): ドア開閉センサーを追加してロック状態を取得する←今回

Qrio Lock(3): ハンズフリー解錠されている時にお知らせしてくれるようにする
Qrio Lock(4): Home AssistantからQrio Lockを施錠する
Qrio Lock(5): 家の前を通過しただけなのにハンズフリー解錠された時に再施錠してくれるようにする
Qrio Lock(6): オートロックを一時無効化した後自動的に再有効化してくれるようにする(記事焼き直し)
Qrio Lock(7): Qrio Key Sレビュー

Qrio Lockのロック状態を取得するには

Qrio LockにはQrio HUBというインターネットに繋いでリモート操作するオプションがありますが、APIが公開されていないのでロック状態を直接取得することが出来ません。ただロック状態をAlexaの定型アクションのトリガーとして使えるので、Alexa経由を経由すればHome Assistantにロック状態を伝達することは可能です。
しかし、Alexaがロック状態を取得するまでに結構なタイムラグ(数十秒~1分)があり、たまにロック状態を取得できていないことも...。
このタイムラグはQrio LockとHome Assistantとの連携で何かをしようとすると結構致命的で、リアルタイムにロック状態を取得する必要がありました。
そこで思いついたのがロック状態をドア開閉センサーを使って取得しようというものです。
今回もドア開閉センサーは安心のAqora Door Window Sensorを使いました。

■だがしかし磁場の問題が

一般的なドア開閉センサーは磁力でONになるリードスイッチが使われています。なのでセンサーと組み合わせるお相手は強力な磁石です。
一方、Qrio Lock自身にもドア開閉センサーが内臓されています。スマートロックの多くにはオートロック機能が付いてますが、大半は「解錠してから〇分後に施錠する」というものでドアが閉まるとすぐに施錠してくれるわけではありません。しかしQrio Lockはドア開閉センサーを内臓することで、ドアが閉まるとすぐにオートロックすることを実現しています。
Qrio Lockに内臓されたドア開閉センサーのお相手も磁石なのですが、センサーがQrio Lockに内臓されている関係上お相手の磁石からの距離は離れています。そのためQrio Lock内臓のドア開閉センサーは微妙な磁場の変化を読み取ってドアの開閉を検出しているそうです。
そんなワケで追加するドア開閉センサーとそのお相手のマグネットを取り付ける位置は、Qrio Lock内臓のドア開閉センサーに干渉しないようにする必要があり試行錯誤しました。

■取り付け位置を試行錯誤する

1.デッドボルトが入るストライクの中にドア開閉センサーを内蔵する作戦

見た目も考えるとデッドボルトが入るストライクの中にセンサーを仕込んでしまうのが良さそうです。
デッドボルト先端に薄いネオジム磁石を付けてドア開閉センサーをストライクの穴の中に。。。と思いましたが穴の中を広げる改造をしないと無理そうです。それとマグネットがQrio Lockに近く位置も変化するのでQrio Lock内臓のドア開閉センサーに干渉しそうな気がして断念しました。
マグネットを使わずにストライクの中にタクトスイッチを仕込む手もありそうですが電波を飛ばすモジュールは必要になるので別の場所を考えることに。

2.マグネットをロックのノブ部分のアタッチメントに付ける作戦

セリアで買った薄いネオジム磁石をロックのノブとQrio Lockを繋ぐアタッチメントの部分に貼り付けてみることにしました。ロックが「施錠」の時はセリアの磁石はロックのノブの下に位置し、「解錠」するとアタッチメントが回転してマグネットはロックのノブの左側へ移動するといった具合です。
この方法もマグネットの位置がQrio Lockに近く変化もするのでQrio Lock内臓のドア開閉センサーに干渉する懸念がありました。
ただ、Qrio Lock内臓のドア開閉センサーが働くのはドア開閉時でその時には必ず「解錠」されているので、「解錠」の状態でQrio Lock内臓のドア開閉センサーをキャリブレーションしてやればイケるんじゃないかと思いました。
最初の内はQrio Lock内臓のドア開閉センサーへの干渉が無く成功か!?と思ったのですが1日くらい経つとQrio Lock内臓のドア開閉センサーがドアの開閉をうまく検出しなくなってしまいました。
以前に書いた記事はこの方法で「成功した!」と思って書いたものになります(笑)

3. Qrio Lock内臓ドア開閉センサーのお相手のマグネットを活用する作戦

磁場の問題が結構厳しそうなので、次に考えたのはマグネットを追加せずに済む方法は無いかでした。追加するドア開閉センサー本体の方をロックのノブとQrio Lockを繋ぐアタッチメントの部分に貼り付け、Qrio Lock内臓ドア開閉センサーのお相手のマグネットの磁力でなんとかならんかと考えました。
しかし遠すぎてダメでした。ってかこれでイケるんならQrio Lockの内臓ドア開閉センサーも微妙な磁場の変化を読み取る仕組みを苦労して開発せずにリードスイッチで済ませるよね(^^;

4. 最終形はドア開閉センサーをロックのノブ部分のアタッチメントに付ける作戦

結局マグネットの追加は必須です。ならばマグネットをなるべくQrio Lockから離れた場所に取り付け、マグネットは移動させずに固定する必要があると考えました。
マグネットの位置を固定するとなると追加するドア開閉センサー本体の方を動かさなくてはいけません。先ほどと同様に追加するドア開閉センサーをロックのノブとQrio Lockを繋ぐアタッチメントの部分に貼り付け、ロックが「施錠」の時はドア開閉センサーがロックのノブの下に位置し、「解錠」するとアタッチメントが回転してドア開閉センサーがロックのノブの左側へ移動するようにしました。
この作戦でも最初は、Qrio Lock内臓のドア開閉センサーをキャリブレーションしてから1日くらい経つとQrio Lock内臓のドア開閉センサーがドアの開閉をうまく検出しなくなってしまいましたが、試行錯誤してマグネットを貼り付ける位置をギリギリまで遠ざけることで干渉しなくなりました。

施錠時
解錠時

■まとめ

これで正真正銘、リアルタイムにQrio Lockのロック状態をHome Assistantで取得できるようになりました。
既に3ヶ月が経過しましたが安定稼働しています。
次回のQrio Lockシリーズでは、ハンズフリー解錠の不満点をHome Assistantを使ってちょっとだけ解消している話を書きたいと思います。

それでは。