コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home AssistantでDIY Smart Home】zigbeeデバイスを活用せよ:縦すべり出し窓編(Door&Windowセンサー改造)

【Home Assistant(Hass.io)】
Xiaomi Door&Windowセンサーで縦すべり出し窓を攻略する

「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。

 zigbee2mqttをセットアップしてHome AssistantでZigbeeバイスを使えるようにし、Xiaomi Door&Windowセンサーを改造したりしてドアおよび普通の窓の開閉の確認、カギ閉めの確認もできるようになりました。次は縦すべり出し窓を何とかしたい!です。

 うちの家は工場で壁パネルを組み立てて来るタイプの家でして、窓を取れるスペースに制約があります。で、下記のようなスライド式の窓には不向きな狭い所にも向いた、外に開くタイプの窓が沢山あります。
f:id:maky_Ba:20211027224145j:plain:w250
(これはトイレの窓です。写真では手前にあるはずの網戸は外しています)

 こういう縦に回転軸があって、少しズレながら開く窓を「縦すべり出し窓」と呼ぶらしいです*1。 こいつは、扉が縦に回転してガバっと開くわ、開閉は枠の下についているハンドルをぐるぐる回すわ(すべり出し窓もタイプによっては窓に開閉レバーが付いているのもあるそうです)で、開閉センサーをつけようと思っても、なかなか一筋縄ではいかないのです。
 そこをなんとか頑張ってみました。

 なお、センサーのzigbee2mqttへの登録やHome Assistantでの設定などの基本的なところは下記の記事と同じです。
maky-ba.hatenablog.com

この記事の前提条件
Home Assistant 2021.10.6
HassOS 6.5
Server Raspberry Pi 4(2GB)

1. 準備

f:id:maky_Ba:20201228224745j:plain:w200:left Xiaomi Aqara Door & Window Sensor (MCCGQ11LM)
これしか使わないのか、というおなじみのXiaomiのzigbeeセンサー。なにやら新機種(zigbee3.0版)が出ているようですが、間違えずに買いましょう。
価格:AliExpressで4個とかまとめて買うと1個1,000円ぐらいかな。
f:id:maky_Ba:20210301230330j:plain:w160:left リードスイッチSP3-1A16-3A
小さなリードスイッチ5本セットです。リードスイッチの弱点である壊れやすいガラス管の周りをプラスチックで覆っているので取り扱い性に優れています。壊れにくくて良いです。
価格:秋月電子通商で5本300円でした。
f:id:maky_Ba:20211027002521j:plain:w160:left 超強力マグネット 6mm
いつものダイソーの一番小さい磁石が知らないうちにリニューアル。以前は8個入りだったのに気が付いたら9個入に!(写真は1個使って代わりに部品が載ってますが…)
他のサイズも1個ずつ増量。そう考えると一番小さいコレは損しているのかな…
価格:ダイソーで110円でした。

f:id:maky_Ba:20211031193601j:plain:w160:left 超強力両面テープ(黒、屋内・屋外用)
これはキャンドゥのモノですが、ダイソーにもセリアにも同じ様な物あります。ベースがアクリルフォームで耐久性があって一応屋外でも使えるとの触れ込み。
幅15mm、厚さ約0.9mm
価格:キャンドゥで110円でした。

f:id:maky_Ba:20211031193734j:plain:w160:left 強力両面テープ(白、屋内用)
これもキャンドゥのモノですが、ダイソーにもセリアにも同じ様な物あると思います。ベースが不織布ですがそれなりに耐久力があります。主に屋内用ですが。
幅10mm、厚さ約0.14mm
価格:キャンドゥで110円でした。

2. 窓センサー①:施錠を確認する

 まあ施錠と言っても本来的には横にある小さなレバー状のものがロック機構なのです。上の方にもう一つあって別々に動くのです。コスト的にも2つもセンサーをつけるわけにはいきません、無理無理。
f:id:maky_Ba:20211027224736j:plain:w250

 次善の策として、下の開閉ハンドルの開閉角度切り替えレバーに着目します。このレバーは「半開」と「全開」を切り替えるレバーで、「半開」ですと人は当然入れません。またこのレバーを操作するには一度窓を閉める必要があります。つまり、半開になっていれば外から入ることも、レバーを操作して全開にすることもできないので、一応セキュリティが守られることになります。いわば「ロック」と言ってもいいでしょう(いいすぎ?)。
 ということで、開度切替レバーの位置を検出して、施錠を確認することとします。

2.1. 開度切替レバー位置検出用マグネットホルダの製作

 3Dプリンタでレバーの裏側に貼り付けて、位置を指し示すマグネットのホルダを設計します。そのまま印刷しても役に立たないかもしれませんが、3Dでモデルを見られるようにThingiverseに登録してみました。
www.thingiverse.com

 3Dプリンタでささっと印刷して、穴に6mmのネオジム磁石をぐりぐり差し込んでおきます。平らな裏側(ここが上になります)に両面テープを貼って準備完了。
f:id:maky_Ba:20211027005555j:plain:w200 f:id:maky_Ba:20211031185709j:plain:w200

2.2. マグネットホルダの貼り付け

 マグネットホルダの両面テープの保護紙を少しはがして、開度切替レバーの裏に仮貼り付けします。「半開」で平らな面が正面となり、「全開」にレバーを動かしても奥の出っ張りに当たらないように位置を微調整します。
f:id:maky_Ba:20211027010642j:plain:w240 f:id:maky_Ba:20211027010701j:plain:w240

 Door&Windowセンサを前に置いて接触しないように位置前後させて貼り付け位置を確定します。

2.3. Xiaomi Door&Windowセンサの取り付け

 磁石が垂直に近づく場合のリードスイッチの感じるところは2か所、ガラス管の両端の金属線に磁石が近づいたときです。その時、ギャップを持たせていたガラス管の中の2つの金属片が磁力でくっつくのです。ということで、Xiaomi Door&Windowセンサーの配置は下記の2か所です。
f:id:maky_Ba:20211027013904j:plain:w240 f:id:maky_Ba:20211027013926j:plain:w240

お好みに応じて。これで施錠確認のセンサー設置は完了です。

3. 窓センサー②:開閉を確認する

 次は窓の開閉を確認したいと思います。スライド窓と違って網戸が邪魔で窓ガラスに直接磁石をつけるわけにもいきません。クレセント錠の時と同じに様に、Xiaomi Door&Windowセンサから線を引き出して外にリードスイッチを作り、リードセンサーユニットのワイヤーハーネス的なものを作ります。
f:id:maky_Ba:20211031140222j:plain:w250

3.1. 部品表

 部品表は以下の通りです。

部品名 個数 備考
3Dプリント部品 リードスイッチホルダ 1 秋月のリードスイッチ用
マグネットホルダ 1 ダイソーの6mm超強力磁石用
ケーブルカバー 1
ワイヤ(電線) 22.5cm 1 黒いワイヤー
19.5cm 1 黒いワイヤー
3.5cm 2 白いワイヤー
コネクタ XHオスコネクタ 1
オス端子 2
XHメスコネクタ 1
メス端子 2
センサー Xiaomi
Door&Windowセンサ
1
その他 6mm超強力磁石 3 ダイソー8個入
黒両面テープ
15mm x 35mm
2 超強力両面テープ
黒両面テープ
15mm x 30mm
1 超強力両面テープ
白両面テープ
15mm x 30mm
1 強力両面テープ
白両面テープ
7.5mm x 35mm
1 強力両面テープを縦に半分

f:id:maky_Ba:20211031185823j:plain:w300

3.2. Door&Windowセンサーの改造

 基本的には下記記事に従って、センサーを分解して、DI GNDと書いてある空きランドに線をはんだ付けして引き出します。
maky-ba.hatenablog.com

 3.5cmの白いワイヤーの両端をワイヤストリッパで2~3mm剥きます。片側を半田でメッキをする下処理をしてから基盤に半田付けします。反対側はXHコネクタ(オス)の端子を圧着してコネクタ(オス)に差し込みます。

f:id:maky_Ba:20211031182753j:plain:w200

 白い上蓋の一部に切り欠きを作って線を外に出せるようにします。こうすることでペアリング用のボタンはそのまま使えるようなります。電池交換時に分解もできますし。
 上蓋は柔らかくカッターで加工可能なので、指を切らないよう気をつけながら切り欠き加工してくださいね。
f:id:maky_Ba:20211031133627j:plain:w200 f:id:maky_Ba:20211031133934j:plain:w200

3.3. 3Dプリント部品の製作

 ケーブルの覆いや、リードスイッチやマグネット用の部品を3Dプリンタ用に設計します。これも先ほどのThingiverseに部品格納しておきました。
www.thingiverse.com

 部品は左から、リードスイッチホルダ、ケーブルカバー、マグネットホルダとなります。どれも小さいので、ウチの小さくて老化が進んでいる3Dプリンタでもそれぞれ1時間ぐらいで印刷できます。
f:id:maky_Ba:20211031145738j:plain:w150 f:id:maky_Ba:20211028021453j:plain:w150 f:id:maky_Ba:20211028021359j:plain:w150

3.4. ワイヤーハーネス(的なもの)の作製

 まずリードスイッチ部分から作りましょうか。長さを測って切断した黒ワイヤーの端をワイヤストリッパで剥いて半田でメッキをする下処理をしてからリードスイッチの両端に半田付けします。
 半田付け出来たらリードスイッチをリードスイッチホルダにハメ込みます。長い方のワイヤーがワイヤー引出し口から遠い方になるようにハメてくださいね。ワイヤーを溝に沿わせたら半田付けした両端などを中心に隙間にホットボンドを流し込み固定と防水(錆防止)を狙います。ホットボンドが固まらないうちに上から両面テープ(黒)を被せます。
f:id:maky_Ba:20211031183153j:plain:w200 f:id:maky_Ba:20211031183213j:plain:w200
ホットボンド汚いですね*2。)

 次にワイヤーを揃えて伸ばし長さを合わせて余りを切ります。端をワイヤストリッパで2~3mm剥いてコネクタ(メス)の端子を圧着してコネクタ(メス)に差し込んでおきます。

 ケーブルカバーの溝にワイヤーを這わせます。下記写真に記載がある長さで少し折り曲げ癖をつけておくと良いかと。両面テープ(写真では白)をワイヤーの上から被せてワイヤーを固定します。広い面の下の方には少し厚めの両面テープ(写真では黒)を貼り全面が両面テープとなるようにします。
f:id:maky_Ba:20211031184532j:plain:w200 f:id:maky_Ba:20211031184604j:plain:w200

 最後にマグネットホルダです。これは6mmのネオジム磁石を穴に差し込み(少し浅かったかも)上から固定用の両面テープ(黒)を被せます。
f:id:maky_Ba:20211031184906j:plain:w200 f:id:maky_Ba:20211031184925j:plain:w200

3.5. 取付

 まずケーブルカバーを両面テープで写真の様に窓枠に貼ります。次にぶら下がっていたリードスイッチホルダを枠の裏側にまわして両面テープで貼り付けます。ケーブルには少し余裕があるので、開閉に巻き込まれないようダクトテープ等で貼り付けておきます。
f:id:maky_Ba:20211027225601j:plain:w250 f:id:maky_Ba:20211027225857j:plain:w250

 リードスイッチパートのコネクタとXiaomiセンサーのコネクタを接続して、センサーの裏側の両面テープで貼り付け固定する。次にマグネットホルダですが、裏の両面テープの保護テープの一部を剥がして窓枠に仮止めして、開閉にセンサーが反応する場所を確認してから、しっかりと貼り付けます。
f:id:maky_Ba:20211027230706j:plain:w250 f:id:maky_Ba:20211027230428j:plain:w250

 網戸を入れて、はい、出来上がり!
f:id:maky_Ba:20211027231117j:plain:w300

4. おうちダッシュボード追記

 窓センサー①:施錠確認と窓センサー②:開閉確認の情報が取れるようになったら、下記の記事に従っておうちダッシュボードに縦すべり出し窓の窓開閉と窓ロックを追加します。
maky-ba.hatenablog.com

 使う窓部品は、下記。
f:id:maky_Ba:20211027234302p:plain f:id:maky_Ba:20211027234317p:plain

(前略)
elements:
(中略)
  - type: image
    title: ■■■「1Fトイレ」設定ココから■■■
  - type: image
    title: 窓(トイレ)
    entity: binary_sensor.0x00158d000xxxxxxa_contact
    tap_action:
      action: more-info
    image: /local/floorplan/windows/Window_1Ftoilet_close.png?v=0.5
    state_image:
      'on': /local/floorplan/windows/Window_1Ftoilet_open.png?v=0.5
    style:
      top: 36.3%
      left: 13.8%
      width: 4%
  - type: image
    title: ドアロック(トイレ)
    entity: binary_sensor.0x00158d000xxxxxxb_contact
    tap_action:
      action: more-info
    state_image:
      'on': /local/floorplan/icons/icon_lock-open.png?v=0.5
      'off': /local/floorplan/icons/icon_lock.png?v=0.5
    style:
      top: 36%
      left: 18%
(後略)

 出来上がりは下記の様になります。
f:id:maky_Ba:20211027233949j:plain:w250

5. おわりに

 さて家の窓にすべて何らかのセンサーを取り付けることが出来るようになりました。私は、1Fは「開閉確認と施錠確認が出来るようにセンサー設置」、2Fは「開閉確認が出来るようにセンサー設置*3」というポリシーでセンサー配置しました。

 これで「雨が降ってきた(降雨センサーで確認)」⇒「開けっぱの窓はどこ(フロアプランで確認)」という状況が、離れていてもHome Assistantのアプリ/ページを見れば目視できるようになりました。この流れは自動化したいですね。部屋のランプが光るとか、LINEのメッセージが飛ぶとか、スピーカーが警告メッセージを読み上げるとか。楽しみ楽しみ。

maky-ba.hatenablog.com

*1:専門家の方に名称聞いてみたいものです。家作る時は「何か外にガバっと開く窓」とかと呼んでた気がします。いま窓枠をよく見たら「スイング」と書いてありました。ちなみに英語名もswing windowだの、casement windowだの、vertical projected windowだの何か定まり感ありません…

*2:ホットボンドは中々難しいですね、すぐ固まってしまいますし。普通のボンドの方が良いかな…

*3:2Fに泥棒が来ないわけではありませんが、施錠確認まで頑張ってしなくても