【Home Assistant(Hass.io)】
シーリングライトの壁スイッチをスマート化
「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。
以前の記事で、汎用赤外線リモコン(Broadlink rm3)とライトセンサー(Xiaomi)を使って赤外線リモコン対応シーリングライトをHome Assistantの「ライト」として扱えるようにしてスマート電灯化しました。しかしながら、その記事でも書きましたが「元の壁スイッチが切れちゃってる」問題*1はそのままでした。
今回はそこに手を入れましょう。
前回の記事はこれ。 maky-ba.hatenablog.com 今回は「スマート壁スイッチの導入」と「壁スイッチを物理的に切れないようにする」の二本立てで「切られちゃう」問題を力技込みで回避したいと思います。
- 【Home Assistant(Hass.io)】 シーリングライトの壁スイッチをスマート化
- 1. スマート壁スイッチの導入
- 2. 壁スイッチを物理的に切れない/切られないようにする
- 4. ちょっと費用の話
- 5. おわりに
この記事の前提条件 | |
---|---|
Home Assistant | 2021.8.3 |
HassOS | 6.20 |
Server | Raspberry Pi 4(2GB) |
上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)
1. スマート壁スイッチの導入
そもそも今ある壁スイッチを下記の様なスマート壁スイッチ(電灯OnOff付)に交換してしまえば話は早いのですが、日本で売っている製品があまりない&第二種電気工事士の資格が必要、ということで今回は断念。そのうち製品を手に入れたら資格を持っている人にやってもらいましょう。 www.zigbee2mqtt.io
ということで、大前提のテーマは「工事資格不要の」壁スイッチ導入ということになります。今回のスマート壁スイッチ(本当にスイッチのみ)を導入したシーリングライトのスマート電灯2.0バージョン構想は下図の通りです。
シーリングライトが点くまでの経路が長いですねぇ…。
1.1. スマート壁スイッチ(WXKG06LM/WXKG07LM)
今回はXiaomiのスマート壁スイッチ(WXKG06LM/WXKG07LM)を使います。これは、ずばり単なる「スイッチ」です。壁スイッチ風*2なので「スマート壁スイッチ」とここでは表現しましたが、機能としてはスイッチのクリックを信号として送信する機能しかありません。
1つボタンがWXKG06LM、2つボタンがWXKG07LMです。写真の上の箱がWXKG06LM、下の箱とスイッチがWXKG07LMです。
(スイッチが1個のやつは既に壁につけちゃいました。)
これらもzigbeeベースで、zigbee2mqttの対象デバイス(Supported devices)に入っていますので、下記の記事の応用でHome Assistantに組み込むことが出来ます。
maky-ba.hatenablog.com
スイッチを10秒程度押すと青いランプが点滅してペアリングします。先の記事「【Home AssistantでDIY Smart Home】zigbeeデバイスを活用せよ」の4.1. zigbee2mqtt側でのデバイスの接続の通りにペアリングして、friendly_nameの登録まですませます。「設定」ー「インテグレーション」ー「MQTT」でfrinedly_nameをもとにデバイスの登録状況を確認しておきます。
私のデバイスはこんな感じでした。
- デバイス名:xiaomi_wall_switch_d1_01
- デバイス情報:Aqara D1 single key wireless wall switch (WXKG06LM) Xiaomi
- エンティティ
xiaomi_wall_switch_d1_01_action
xiaomi_wall_switch_d1_01_battery
xiaomi_wall_switch_d1_01_linkquality (無効なエンティティ)
xiaomi_wall_switch_d1_01_voltage (無効なエンティティ)
(最近「無効な」が多発中。linkqualityとvoltageは値が怪しい、というもっぱらの噂なのでまあ仕方なしかも)
スイッチの動作(sigle/double/hold)を示すエンティティは下記の通りです。
- Friendly Name: xiaomi_wall_switch_d1_01_action
- エンティティ名:sensor.0x00158xxxxxxxxxxx_action
スマート壁スイッチのボタンの個数で違いはありますが、押し方で下記の様なActionが飛びます。
スイッチ名 | 一回クリック | 二回クリック | 長押し | |
---|---|---|---|---|
シングル壁スイッチ WXKG06LM |
single | double | hold | |
ダブル壁スイッチ WXKG07LM |
左ボタン | left | left_double | left_long |
右ボタン | right | right_double | right_long | |
左右同時 | both | both_double | both_long |
1.2. スマート壁スイッチとシーリングライトを結びつける
スマート壁スイッチを押したら、シーリングライトをオンオフできるように、オートメーションで設定します。トリガーの設定は下記に様にします。
トリガーの種類 Trigger type |
状態 State |
Trigger ID | 空白 |
エンティティ Entity |
sensor.0x00158xxxxxxxxxxx_action (先ほど設定したスイッチを選択) |
属性(オプション) Attribute (Option) |
Action (自動的に選択される?) |
変化前 From |
空白 |
変化後 To |
single |
のために For |
空白 |
このように設定するとスマート壁スイッチを押すたび(=状態がSingleに変わるたび)に、このオートメーションが起動(Trigger)されます。
トリガーで起動されたら実行するアクションは、下記の様に設定します。
アクションの種類 Action type |
サービスの呼び出し Call service |
サービス Service |
switch.toggle |
ターゲット Target |
Hitachi ceiling light ch1 (勉強部屋のシーリングライトのBroadlink赤外線リモコンのswitch。前の記事で新しく設定し直したやつ) |
以上を設定したら「保存」します。(下に画面キャプチャを載せておきます)
これでスマート壁スイッチを押すとシーリングライトが点灯・消灯するようになりました。シーリングライトの操作ですが、ライト(light)ではなくてスイッチ(Switch)の方を使うことで、タイムラグなくオン・オフできるようになります。
Switchエンティティを使う欠点は状態(State)が分からないところ=つまりライトが本当に点灯しているか消灯しているかHome Assistantには判らない、というところでしょうか。ただし物理的なスイッチと連動させて使う分には問題ないのです。どういうことか簡単に説明しましょう(というか自分の頭の整理のために)。現実とHome Assistantの中の状態(State)がズレているとします。そうですねHome Assistantはシーリングライトが点灯(On)だと思っている、けど現実世界ではシーリングライトは消えている(Off)状況を考えてみましょう。
- 人間はシーリングライトを点けたくてスマート壁スイッチをクリックします(=Switch.toggleを呼びます)
- Home Assistantはシーリングライトが点灯していると思っているので、消灯の赤外線信号を発信します。赤外線信号を発信したのでHome Assistantはシーリングライトの状態を消灯(Off)にしたと思っています。この時点で、Home Assistantの認識(消灯)と現実世界(消灯)が合致します
- 残念ながら現実世界ではシーリングライトは消えているので消灯信号を受けて何も起きません
- シーリングライトが点かないので(不思議に思った/イライラした)人間はもう一度スマート壁スイッチをクリックします
- 今やHome Assistant は消灯している状態なので、点灯の赤外線信号を発信します
- 無事シーリングライトが点灯します
いらちな人間がカチャカチャとスイッチを押すので、Home Assistantと現実世界のずれが解消されるのです。謂わば人間が外部センサーとして活躍する、という訳ですね。
ちなみにGUIとかで点灯を確認するにはやはりライトセンサーと組みあわせたライト(light)エンティティを使った方が良いですね(そのために頑張ってライトセンサー+汎用赤外線リモコンでライトを作ったのですよね)。
2. 壁スイッチを物理的に切れない/切られないようにする
「1. スマート壁スイッチの導入」で示した構想図の「⓪壁スイッチ常時On」がこの仕組みの肝です。これをOffにされると赤外線リモコンが利かなくなり、スマート壁スイッチはむなしくクリック信号をHAサーバに送信し続けることになります。なんとかして壁スイッチを切れないようにしないといけません。力技パートの始まりです。
2.1. 壁スイッチを保護するパネルを設計する
要は壁スイッチに触れないようにすれば良いので、壁スイッチを覆いで囲ってしまえばよいのです。家の24時間換気スイッチとかは透明な蓋(例:保護カバー付スイッチプレート)でカバーされたりしてますが、そんな感じをイメージしてもらえれば。
ただしスイッチが1個だけなら良いのですが、他のスイッチが一緒に配置されていたら保護カバーでは対応しきれません(まあ保護カバーでも穴が開いているやつとかもあるのですが)。またHome Assistantが壊れちゃったりした時にシーリングライトが点灯できないのは困ります。ということで壁スイッチの手前にパネルを配置しながら、そこに穴を開けて下のスイッチにも何とか触れるというものをイメージしました(下記の左側がパネルのイメージ)。
パネル2枚組で、表が壁スイッチガード用で右側のスリットが非常用の穴。このパネルを壁につけるためにもう一枚パネルを作ってネジとスペーサーで接続する仕組みを考えました。この土台のパネルはスマート壁スイッチの土台にもしようという魂胆です。
上記の右側が(イマイチわかりにくいのですが*3)完成形です。スリットから覗いているのが、パナソニックのコスモシリーズワイド21の3つスイッチ(のつもり)です。
まずは土台となるパネルです。一応自己消火性があるポリカーボネート4mm厚を使うことを想定しています。
右側の四角い穴は、スイッチボックスの穴です。その上下にあるΦ5mmの穴はコスモシリーズワイド21の埋込スイッチ取付枠とスイッチボックスをねじ止めするネジを通過させる穴です。この土台の上に元々壁についていたパナソニックの壁スイッチ(コスモシリーズワイド21)とスマート壁スイッチが載る形になります。これまたちょっと分かりにくいかと思いますが、左側の箱がスマート壁スイッチ、右側がパナソニックのコスモシリーズワイド21の壁スイッチパネルです。
次に手前側のパネルです。こちらは透明性と綺麗さを重視してアクリルを使いました。
左側の大きな四角い穴は、スマート壁スイッチ用の穴です。右側の縦長の穴は非常時に壁スイッチを押すための穴です。
2.2. パネルの加工
自分で穴あけたりPカッターで切り出したりして、日曜大工加工しても良いのですが、完成度と手間を考えて今回は外注してみることにしました。ネットでざっと調べたところ下記が良さそうだったので発注してみました。
www.hazaiya.co.jp
「はざいや」さんは、結構細かいところまでweb上で加工指定が出来て、お値段も妥当な感じ(複数枚指定すると今回のケースでは2000円~3000円/枚ぐらいが加工賃)です。子供のころからアクリル板は使ってますが真っ直ぐはPカッターで割っていけるのですが、大きな穴あけとかは結構大変です。
アクリル加工業界(?)はこのコロナ禍で結構お忙しい様子ですが、結構早く対応してくれました。嬉しい。
とっても綺麗に出来てます。というか本職に失礼ですね、素晴らしい、これは自分では無理だなぁ。レーザーカッター買ったら少しは近づくかな…。
2.3. 取り付け
なんで土台が必要かとか、土台はどうやって固定するのか等々、拙い説明ではイマイチ分かり難かったと思うので、取り付け手順で写真でその雰囲気を掴んでもらいたいと思います。
(1)パナソニックのスイッチパネル解体
まずは今あるスイッチをばらさなければなりません。
まあ配線しなければ(電線に触れなければ)パネルをばらすところまでは工事資格は不要で素人でも大丈夫なはずです。でもスイッチの裏側には100Vが来ているのでくれぐれも気をつけてくださいね。ブレーカーをオフにしておくことを推奨します。
- うちにあるのは パナソニックのコスモシリーズワイド21の基本スイッチです。写真はシングルスイッチです
- スイッチプレートを外します。爪などを隙間に差し込んでパキっと外します
- スイッチプレートを外すと簡易耐火プレートが見えます
- まずハンドル(押すところ)を外します。押す側を持って手前に引いて開くと外せます
- ハンドルを外すとスイッチ本体(黄色は3路スイッチを表しています*4)が見えます。
- 次に上下の小さなネジを回して簡易耐火プレートを外します
- 取付枠とスイッチ、それから壁の中のスイッチボックスの穴が見えますね
- 上下のネジを回して外すと取付枠が取り出せるようになります。配線は100Vなので触らないように。今回は配線は触りません。
- 三枚(?)に下ろした壁スイッチです。左からスイッチプレート、ハンドル、簡易耐火プレート、スイッチボックス固定用ネジ、です。
(2)スマート壁スイッチパネルの組み立て
スイッチの取付枠と壁の間にポリカーボネートの土台パネルを挟み込んで固定することが基本となります。スイッチから見ればちょっと壁が厚くなったかな、という感じでしょうか。
- まずは土台となるパネルにスマート壁スイッチを貼り付ける準備をします。スマート壁スイッチの厚み薄いのでそのままで少し埋もれた感じになってしまします。手前のパネルの穴で切り出された余ったアクリル*5を嵩上げに使います。アクリルに両面テープを貼ります
- 土台となるパネルにスマート壁スイッチ嵩上げ用のアクリルパネルを貼り付けます。フロントパネルを使って位置を合わせて貼ってください。
(写真の土台パネルの四角の穴に刻み目的なもの4つあるのに気が付いた方もいるかもしれません。これは穴のサイズを間違えて2mm程小さく取付枠がうまい具合に入らなかったので削りました。2.1の設計図ではそこは直してあります) - スマート壁スイッチの裏側に両面テープを貼りつけます
- スマート壁スイッチを土台となるパネルに貼り付けます
- ネジが切られたジュラコン製スペーサーと皿ネジ(プラネジ)で土台を挟んで締めます
- 土台のパネルの穴に取付枠を通します(斜めにすれば通るかと思います)
- スイッチパネルの取付枠の穴、土台パネルの穴、スイッチボックスの取付穴の順にネジを2つ通します
- その取付枠のネジを締めて土台パネルを壁に固定します。水準器等を使って傾いていないか確認しながら進めると良いでしょう
- 簡易耐火プレートを取り付けます
- ハンドルをつけるにはまず根本(押す方と反対側)をパチッと差し込みます
- 次にスイッチを押す部分をグイっと押し込むとハンドルの取り付けは完成です
- スイッチパネルを取り付けて土台部分は完成です
- 手前のアクリルパネルを皿ネジ(プラネジ)を使って取り付けて全体の完成です
これでシーリングライトのスマート電灯2.0化、スマート壁スイッチ導入完了です。やった!勝手にスイッチをオフにされないぞ!
4. ちょっと費用の話
うまくいった!と素直に喜んではいますが、おすすめか?と言われると微妙です。
実は費用面のハードルが高いですね。下記に素直にかかった費用をリスト化してみました。
品名 | 個数 | 価格 | 入手先 | 備考 |
---|---|---|---|---|
スマート壁スイッチ WXKG06LM |
1 | 1,792円 | Aliexpress | |
土台パネル ポリカ製 |
1 | 2,476円 | はざいや | 材料・加工費込み。 2枚発注時です。 |
フロントパネル アクリル製 |
1 | 3,309円 | はざいや | 材料・加工費込み。 2枚発注時です。 |
ジュラコン製スペーサ 12mm, M4穴 |
6 | 479円 | MonotaRO | 5個で399円 |
樹脂皿ネジ M4, 10mm |
6 | 78円 | MonotaRO | 50個で649円 |
両面テープ | 適量 | ?円 | ||
合計 | 8,139円 | (他に汎用赤外線 リモコン等も必要) |
スマート壁スイッチは2,000円もしないのに、たかが天井の照明をスマート化する壁スイッチを作るだけで 8,000円!ううむ…
5. おわりに
まあ、私にとっては、すべての照明をスマート化したいわけではないので、費用も許容範囲です(苦しくはありますが)。よく使う部屋の壁スイッチをもぞもぞと徐々にスマート壁スイッチに改造してゆきたいと思います*6。
*1:切られちゃう問題か。家人はスマートホームに積極的な理解は示しませんからねぇ。誰かに壁スイッチをオフにされちゃうと電気がシーリングライトまで到達しないので、シーリングライトの赤外線受光部は電源なしで動作しないし、たとえ何とか(バッテリーとかで?)受光部を作動させることが出来たとしても電灯を灯す事など到底出来ない(100Vが来ていないのにどう光らせようというのか…)という恐ろしい問題のことです。
*2:Xiaomiは中国製なので、欧州、中国サイズの壁スイッチで正方形なパネルです。米国は日本と同じ縦長型パネルです
*3:わかりにくいのはFusion360のレンダリングがまだ自由に使えないからです。勉強しないと…。
*4:3路スイッチは二か所でオンオフできるようにするスイッチ。階段の上と下のスイッチがそれです。もう一か所勉強部屋のシーリングライトのスイッチがある、ということですね。つまりもう一か所パネルで防御しないと「切られちゃう」が発生します。頑張ろう!
*5:基本的には穴の部分のあまりパーツはもらえない事になっているので、偶々もらえた場合には活用しましょう。無ければアクリルパネルを88mm x 88mmにカットして使いましょう