LoraTap社のZigbee無線スイッチをZigbee2MQTT (Z2M) とHomebridge経由でHomeKitから使えるようにしました。通常の壁スイッチと同じサイズなので、取り替えが簡単で綺麗に収まります。
壁スイッチ問題
電球やシーリングライトをスマートな電球やシーリングライトに交換すれば、お手軽にスマートホーム化できます。でも、壁スイッチが残っていると、それをOffにされた時に、照明をOn/Offできなくなってしまいます。
スマート壁スイッチを使う
壁スイッチの代わりに、スマート壁スイッチを使えばこの問題は解決します。スマートな壁スイッチは、手動で照明をon/offできると同時に、スマートホームからの制御にも対応します。
特に中性線不要の2線式配線に対応した壁スイッチを使えば、従来のスイッチをそのまま置き換えられます。
スマート壁スイッチには、スマートホームが不具合で機能しなくても、従来と同じ手動壁スイッチとして使い続けられる利点もあります。
壁スイッチを廃止する
壁スイッチを廃止して、常時給電状態にしておくことも対応策の一つです。ただ壁スイッチには、スマホを取り出さなくいつでもその場所で使えるメリットがあります。なので、照明をOn/Offできる無線スイッチを、廃止したスイッチの代わりに壁に取り付けておくと良いです。
今回は、壁スイッチを廃止する方法で対応します。そして、Zigbee無線スイッチを使用して、壁スイッチのような機能を実現します。
壁スイッチみたいな無線スイッチ
電池動作してリモコンとして機能するZigbee無線スイッチはたくさん商品化されてます。例えば、以下で紹介したIKEAのTRÅDFRIのZigbeeスイッチならば、国内店舗で購入できますし、Z2Mからもすぐに使用できます。壁に取り付けて壁スイッチとして使えます。
一方、以下で紹介したTuyaのZigbee無線スイッチのように、ヨーロッパ式壁スイッチと同じ形状のスイッチもあります。
これらの地域の住居ならば、従来の壁スイッチを取り外して、ネジ穴をそのまま利用して、取り付けることができます。壁に新たに穴を開ける必要がありません。
AliExpressで売られているスマートホームのデバイスは、中国・ヨーロッパ仕様の製品が多いです。壁スイッチや壁コンセントも85x85mmの正方形型が多く、電球の電圧も220V製品がほとんどです。日本でも使えるUS仕様の製品はなかなか見つからないです。
そんな中から唯一見つかったのが、こちらです。US規格の壁スイッチのサイズに合わせたZigbeeスイッチです。縦長のスイッチ・コンセントは奇異に映るのか、商品写真がどれも横向きで、US規格と気付きにくいです。
LoraTapという会社の製品です。Z2Mのサポートデバイス一覧には掲載されていません。でも、他の同社製品は掲載されているので、そのまま動作するのではと思い購入してみました。でも動かすためにはひと工夫が必要でした。
開封する
商品はシンプルな段ボール箱で届きました。表のラベルによると、SS7100ZBという製品です。2ボタン, 3ボタンの製品は、SS7200ZB, SS7300ZBと数字の一部が変わります。Tuya製品と互換性があり、本来はTuyaのZigbeeハブとクラウドを使用する製品です。
取説以外の同梱品です。本体の他に、ネジキャップ、ストラップ、両面テープなどが付属してます。
リモコン本体内部と取り付けパネル裏側には磁石があり、リモコン本体がパネルに磁力で貼りつきます。
ストラップは、リモコン本体に取り付けて使用します。本体をパネルから取り外さず使用する予定なので、ストラップは使用しません。
リモコン本体裏蓋は、ネジで開けられます。中にはCR2032の電池が入ってました。電池の近くにペアリング用の押しボタンスイッチが見えます。
裏蓋の中の中蓋は、はめ込み式で、ギターピックなどで外せます。本体チップが見えました。
チップの名前は、ZS3Lです。
検索すると、Tuyaが開発しているZigbee搭載のチップのようです。Tuyaが提供するZigbeeハブに接続するためのライブラリが提供されていて、各企業が簡単に対応製品を作れるようになっているようです。
壁スイッチを取り外す
まずは既存の壁スイッチを取り外して、常時Onにします。そのために、スイッチから配線を外して、圧着端子などで接続するなどしても良いです。でも今回は、壁スイッチ本体部品を壁の中に残すことにしました。この先に、Yeelightのシーリングライト
を接続するのですが、このライトは、電源を5回On/Offするとペアリングモードに入ります。スイッチ部品を残しておかないと、この操作が困難になり不便です。
壁スイッチ本体部品は、取り付け枠に嵌め込まれてます。下の赤丸の部分にマイナスドライバを入れて回すと、枠の変形が元に戻り、スイッチ部品を取り外せます。
取り外したスイッチ部品は、Onの状態にして壁の中に入れておきます。シーリングライトをペアリングをする際には、スイッチカバーを取り外せばOn/Offできます。
この上に、LoraTapのスイッチカバーを取り付ければ完成です。ネジ穴位置はUS規格で、日本の規格と同じですので、問題なく取り付けることができました。
ネジ頭は付属のキャップで隠しておきました。
Zigbee2MQTTで使う
この製品は、通常はTuyaのハブとクラウドを使用して使います。それらを使わずに、いつものようにZigbee2MQTTで直接接続して使用します。Zigbee2MQTTサーバ、MQTTブローカー (Mosquitto) 、Homebridgeが動作していて、さらにHomebridgeにZigbee2MQTTを使用するプラグインが入っている必要があります。手元の環境では、これらをRaspbetty Piで動かしてます。
設定の詳細に関しては、以下をご覧ください。
Z2Mでペアリングする
追記:現在のZigbee2MQTTではペアリングできます。なので以下の対処法は読み飛ばしてください。(2023/12/18)
ペアリングできない
電池蓋の中のリセットボタンを、ピンのようなもので5秒以上長押しすると、内部のLEDが点滅開始し、Zigbeeのペアリングか始まります。Zigbee2MQTTのwebインタフェースでペアリングを有効にすれば、
いつもならばペアリングが完了するのですが、今回はデバイスに関する表示が出ませんでした。Z2MのサポートデバイスでLoraTapを検索すると、
別の形状のZigbee製品ならば見つかりますが、今回使用したデバイスはありません。Z2Mでサポートされていないので、ペアリングできないようです。
tuya.jsファイルを編集する
Z2Mでサポートされていませんが、LoraTapの他の製品はサポートされてます。色々な製品で使われているTuyaチップを搭載しているので、このZigbeeスイッチも多少手を加えれば使えるのではないかと思いました。以下は試行錯誤した手順です。これが正しい方法かどうかはわかりませんが、とりあえず動きました。
Z2Mでサポートされているデバイスの情報は、
/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/devices/
の中に書かれているようです。このディレクトリに移動して、LoraTapという文字をgrepで検索したところ、以下のような結果になりました。
$ cd /opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/devices/ $ grep LoraTap * tuya.js: whiteLabel: [{vendor: 'LoraTap', model: 'RR400ZB'}, {vendor: 'LoraTap', model: 'SP400ZB'}], tuya.js: whiteLabel: [{vendor: 'LoraTap', model: 'SC400'}], tuya.js: whiteLabel: [{vendor: 'Smart9', model: 'S9TSZGB'}, {vendor: 'Lonsonho', model: 'TS0041'}, {vendor: 'Benexmart', model: 'ZM-sui1'}, {vendor: 'LoraTap', model: 'SS7100ZB'}], tuya.js: whiteLabel: [{vendor: 'Smart9', model: 'S9TSZGB'}, {vendor: 'Lonsonho', model: 'TS0043'}, {vendor: 'LoraTap', model: 'SS600ZB'}], tuya.js: {vendor: 'LoraTap', model: 'SS6400ZB'}, {vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS'}], tuya.js: description: 'LoraTap garage door opener with wireless sensor', tuya.js: whiteLabel: [{vendor: 'LoraTap', model: 'GDC311ZBQ1'}], tuya.js: whiteLabel: [{vendor: 'LoraTap', model: 'SS9600ZB'}],
LoraTapの情報は、全てtuya.jsというファイルに記述されていました。Tuyaのチップを使った製品は全てこのファイルで記述されているようです。そこで、tuya.jsの中を見てみると、Wireless switchとして定義されているLoraTap製品は、
- vendor: ‘LoraTap’, model: ‘SS600ZB’
- vendor: ‘LoraTap’, model: ‘SS6400ZB’
- vendor: ‘LoraTap’, model: ‘SS9600ZB’
の3種類でした。今回のデバイス、SS7100ZBは記述されてません。これらの3種類を検索してみると、Zigbeeデバイスの互換性をまとめてくれているサイトが見つかりました。サポートされているLoraTap社無線スイッチのページは以下です。
3ボタン、4ボタン、6ボタンの製品のようです。3, 4ボタンの製品は、細長い棒状で、6ボタンの製品はヨーロッパ式壁スイッチの形状をしています。
それぞれの、tuya.jsの項目をもう少し詳しく見てみます。Zigbeeモデル名には、
- TS0043
- TS0044
- TS0046
と書かれてます。これらがTuyaのチップもしくはフレームワークの名前のようです。最後の数字はボタン数のようです。
それぞれの項目にはwhiteLabelというキーが定義されていて、その中で、ベンダー名LoraTapと型名が書かれています。例えば、3ボタンモデルの項目は、以下のように記述されています。(わかりやすいように改行を挿入し、一部の行を省略しました)
{
zigbeeModel: ['TS0043'],
model: 'TS0043',
vendor: 'TuYa',
description: 'Wireless switch with 3 buttons',
whiteLabel: [
{vendor: 'Smart9', model: 'S9TSZGB'},
{vendor: 'Lonsonho', model: 'TS0043'},
{vendor: 'LoraTap', model: 'SS600ZB'}
],
(略)
},
whiteLabelの項目には、LoraTab以外の他社製品も列挙されています。このwhiteLabelってどういう意味でしょうか。おそらくは、Tuyaからはラベルが白いまま出荷して、これを購入したベンダーがそこに自社のブランドを書き込んで販売するという状況を指しているのかと思います。なのでノーブランドで出荷した製品とか、OEM製品のような意味かと思います。
今回使用した製品、SS7100ZBは、US規格壁スイッチの形状になっていて、形が違いますが、おそらくは同じチップを使って同じライブラリで構成されているはずです。だとしたら、1ボタンモデルのTS0041のwhiteLabel項目に、この製品情報を書き足せば良いのではと思いました。そこで、tuya.jsのTS0041の場所に、以下のようにSS7100ZBを追加しました。
{
zigbeeModel: ['TS0041'],
model: 'TS0041',
vendor: 'TuYa',
description: 'Wireless switch with 1 button',
whiteLabel: [(略), {vendor: 'LoraTap', model: 'SS7100ZB'}],
(略)
},
書き換えた後、
sudo systemctl restart zigbee2mqtt
コマンドでZ2Mを再起動します。この結果、無事、ペアリングできるようになりました。
HomeKitから使う
ペアリングできたので、iPhoneやMacのホーム.appに、このスイッチが現れました。初期状態の名前はZigbee ID番号でしたが、LoraTap SWに変えてあります。
アクションには、シングルクリック、ダブルクリック、長押しが用意されてます。
1回押すごとに、シーリングライトを点灯・消灯させたかったので、1回押しの項目に、以下のようなショートカットを用意しました。
シーリングライトの電源の状態を取得して、if文で消灯もしくは点灯させています。
まとめ
LoraTapの電池式Zigbee無線スイッチを使って、壁スイッチを置き換えました。壁スイッチ部品は残して、Onにしたまま壁の中に残してあります。このデバイスは、当初Zigbee2MQTTでペアリングできなかったのですが、tuya.jsファイルを書き換えて対応しました。(追記:現在は書き換え不要です)
日本の壁スイッチと同じサイズなので、ネジ穴をそのまま使って取り付けられます。本体は取り外せる構造ですが、強い磁石で固定されているので、安定してます。壁スイッチと置き換えても違和感が無いですが、もう少し洗練したデザインにして欲しいかなとは思います。以下のようなZigbeeスイッチで、薄型電池式のモデルが出たらぜひ欲しいです。
コメント