背景
こんにちは、今日は YKK APの電気錠をスマートロックに変換する方法を説明します。結果から言うと、iPhone家庭アプリで電気錠の施錠と解錠をコントロールできるようにします。手段としては Home Assistantを経由でHomeKitに導入します。
こちらは去年に新築の戸建を入居しました。建売住宅なので、すでにでYKK APの電気錠が付けらている状態です。型番はEC-Y7
ですので、スマートキー機能が YKK AP社のスマートコントロールキー
というスマホアプリで対応します。
スマホでロックをコントロールするのはありがたいですが、毎回操作する時:スマホアンロック → アプリ起動 → 電気錠との接続待ち → 施錠・解錠
の操作フローが長いのでちょっとめんどくさいかと思っていました。
いざアプリでコントロールできるので、プログラムでアプリを制御して Home Assistantに導入できるではないかという考えが浮かんでいました。Home Assistantへの導入ができれば、どこでも利用できるようになるでしょう。
その前に
YKK AP社は、IoT製品 Mimottoというものがあります、電気錠の操作はリモートでもできますが、Echonet Liteの対応はできるらしいです。
商品:ミモット
導入ガイド:導入ガイド
他の記事を参照したところかなり値段が高いかと思いました。
Mimotto用インターフェースユニットの定価は52800円。サブスクは500円/月です。
窓のクレセントセンサーでさえ24,200円もします。
更に玄関ドアの操作盤付ユニットがMimotto対応のYS-KAG B7でなくてはいけません。標準の操作盤付ユニットYS-KAG B3(HAコネクタ、増設操作盤コネクタ)の定価が15,000円であるのに対しMimotto対応のYS-KAG B7は定価が42,000円で差額27,000円です。
半額で見積もっても”Mimotto”を導入するにはイニシャルで40,000円上乗せ、更に500円/月のサブスク、そして同社のドアと窓にのみ対応というなかなかコスパの低いシステムとなっています。
前提と必要なもの
- スマートコントロールキーアプリが対応する電気錠(対応商品参照)
- Androidスマホ一台(コントロール専用、他用不可。古いものOK、画面割れOK)
- Docker実行環境
実現の発想
実現方法を調べた時、この記事の記載者はハードウェアで YKK APの電気錠をコントロールできることがみました、でも筆者はハードウェアのプログラミング知識はあんまりないので、全部ソフトウェアプログラミング範囲内で実現したいかと思っていました。
そのため、下記の流れでできるかなと考えました。
- スマホで
スマートコントロールキー
アプリを常時に開き、実際の電気錠の操作を行います - プログラミングで MQTT サーバからのメッセージの受信に応じて反応し、
adb
コマンドでスマホアプリをコントロールします - Home Assistant は頭とブリッジそして全体的の流れのコントロールとiPhoneへの導入をします
図形化したら下記となります。
※ 上図はドア/窓センサーを電気錠につけましたが、オプションなので、もしなければプログラムの繰り返す状態検査ロジックを短めに設定すれば全然仕事できます
リソース
実現の考えがあったら実際の実現は逆に簡単です。必要なソースコードと設定ファイルなどはGitHubにアップロードしたので、ご参照ください。
GitHub: ykkap-lock-bridge
-
configuration.yaml
コードスニペットをHome Assistant の設定ファイルに追加 -
automations.yaml
コードスニペットをHome Assistant の設定ファイルに追加 -
docker-compose.yml
Dockerコンテナを作成するファイル -
app_control.py
電気錠を実際にコントロールするプログラムロジック
参考した文書
Home Assistantで設定したロックをHomeKitでロックと認識させる方法:Gate lock and homekit
設定したロックは HomeKit に出ない場合の解決方法:Homekit integration missing ZWave locks?
Android端末のスクリーンをOFFにしてもスリープさせない方法:GitHub: HunterXProgrammer/DisplayToggle、adb+DisplayToggle.dex实现手机屏幕关闭但不休眠