SwitchBot(スイッチボット)をHomeKit対応させる方法【Homebridge】

記事内容が古くなったため、こちらの記事「SwitchBotデバイスをHub Mini無しでホームアプリから操作する方法【Homebridge】」をチェック願います。
どうも、CHASUKEです。
SwitchBotと言えば、物理的な壁スイッチなどのスマート化できる便利なアイテムですが、現状、HomeKitには正式対応していません。
しかし、ある方法を使えば、SwitchBotを「HomeKit」に対応させることが可能です。
今回はその方法を紹介していきます。
SwitchBotには、Bluetoothを使ったAPIが公開されてます。以前、このAPI経由でSwitchBotを操作する「Pythonスクリプト」を紹介しました。

SwitchBot(スイッチボット)をラズパイ経由で遠隔操作する方法
上記APIを元に作られている、Homebridgeプラグイン「homebridge-switchbot」を使うことで、SwitchBotをHomeKitに対応させることが可能です。今回は、ラズパイにHomebridgeをインストールし、このプラグインを使う方法を紹介していきます。
プラグイン作成者@nkym37様に感謝。
既にHomebridgeがインストール済みの場合、「SwitchBotプラグインをインストール」からお読みください
Homebridgeとは?
Homebridge(ホームブリッジ)とは、ホームネット上でHomeKitAPIをエミュレート実行できるNode.jsサーバーのこと
このHomebridgeを使ってサーバを自宅に作れば、あたかもSwitchBotがHomeKitに対応したかのようにできます。
今回は、ラズベリーパイ (通称ラズパイ)をサーバにして、Appleのホームアプリで操作します!

必要なもの
Apple端末(ホームアプリ)

今回の目的は、SwitchBotのHomeKit化。
当たり前ですが、ホームアプリが使えるApple端末が必要です。

ラズベリーパイ一式
ラズパイ本体の他にも、SDカードや電源ケーブルなど付属品が必要となるので、これから用意するならスターターキットがおすすめ。
最新はラズベリーパイ4です。これからラズパイを使い倒すなら、最新モデルがオススメです。
ラズパイ4は技適取得済み(2019/9/29)です
しかし、旧モデルより大幅スペックUPに伴い、セットで1万円オーバーです。もし、Homebridgeを試すだけなら、旧モデルのラズパイ3B+で十分です。ラズパイZEROでもイケると思います。
今回は、ラズベリーパイ3B+に「Raspberry Stretch with desktop」をインストールしたものを使いました。

SwitchBotボット

今回の主役です。
通常、外出先から遠隔操作するにはSwitchBotハブが必要になりますが、ラズパイが代わりになってくれます。

必要ライブラリのインストール作業
さて、ここからラズパイの設定。
ラズパイのターミナルを開いて、必要ライブラリを初期設定済みのラズベリーパイにインストールしていきます。
少し前にセットアップしたので、バージョンが古いかもしれません。
事前準備
設定していく前に、パッケージの最新化をしておきましょう。
コマンド$ sudo apt-get update$ sudo apt-get upgrade
Node.jsのインストール
Homebridgeは、Node.jsサーバなので必要。
▼偶数が安定バージョンなので、8系をインストールしてます。
コマンド$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -$ sudo apt install -y nodejs▼実施後の各種バージョンはこんな感じ。
コマンド$ nodejs -vv8.11.3$ npm -v5.6.0
gatttoolをインストール
ラズパイのBluetooth通信を使うために必要になります。
とは言っても、ラズパイは標準インストールされているため、確認だけしておきましょ。
▼こんな風に出ればOK。
コマンド$ gatttoolUsage:gatttool [OPTION...]
Homebridgeのインストール
Homebridgeをラズパイにインストールする。
コマンド$ sudo npm install -g --unsafe-perm homebridge
正常にインストールできたら、下記コマンドでサーバを起動させ、QRコードやHomeKit設定コードがターミナル上に表示されることを確認しましょう。
コマンド$ homebridge

これが表示されれば成功。
以降設定が続くので、とりあえず「cntrol + c」でサーバ停止しておきましょう。
SwitchBotプラグインをインストール
Homebridgeのプラグインを追加します。
冒頭にも書きましたが「homebridge-switchbot」を利用しています。
▼インストールコマンドはこちら。
コマンド$ sudo npm install -g homebridge-switchbot
こちらのプラグインで使えるのは、以下のようなプッシュ/プル操作のみ。ご注意ください。

設定ファイルを編集
ここまで完了すると、「/home/pi/.homebridge」が作成されているはず。
このディレクトリ配下に設定ファイル「config.json」を作成することで、SwitchBotのHomeKit対応は完了します。
config.jsonの編集
中身はこんな感じでイケると思います。
{ "bridge": { "name": "Homebridge", "username": "XX:XX:XX:XX:XX:XX", "port": 51826, "pin": "031-45-154" }, "description": "SwitchBot Control", "accessories": [ { "accessory": "SwitchBot", "name": "Wall Switch", "macAddress": "xx:xx:xx:xx:xx:xx" } ]}
macAddressの設定方法
設定ファイル内にある「macAddress」の項目は、SwitchBotアプリから確認できます。
▼対象のSwitchBotの設定ボタンを押す。


これで、MACアドレスを簡単に特定できます。
Appleホームアプリに登録する
最後の仕上げです。
これまで、設定してきたHomebridgeサーバを再度起動させます。設定ファイルが読み込まれ、エラーが表示されずに、QRコードやHomeKit設定コードが表示されれば、成功です。
▼ホームアプリを開いて、アクセサリ登録しましょう。


サーバを停止するとホームアプリから応答しなくなるので、常時起動しておく必要があります
ホームアプリからSwitchBotを操作してみた
こちらのが反応が早い気がしますねー。
SwitchBotの近くにサーバにしたラズパイを設置しておく必要があります。
Bluetoothが届く範囲でOKなので、隣の部屋でも大丈夫でした。
たまに失敗することも..
ホームアプリ側でスイッチの現在状態までわからない。なので、実際の状態とホームアプリでズレることがあります。
そうなると、こんな感じで「ビックリマーク」が出て失敗します。
この場合、何度かアイコンをポチポチしてると正常に戻ります。
ホームハブで外出先からも操作可能
通常は、外出先からSwitchBotを操作するためには、SwitchBot Hubが必要です。
けれど、今回のHomebridgeを使えば、ラズパイがハブの代わりになります。
▼ただし、Apple TVなどのホームハブが必要となります。

AppleTVをホームハブとしてHomekitデバイスを外出先から操作する方法
続きを見る
最後に

SwitchBotをAppleのホームアプリから操作できるようにしました。
たまに出る「ビックリマーク」が厄介なものの、比較的反応も良く便利に使えています。
Appleユーザ × SwitchBotユーザさんには、オススメですね。
▼今回のSwitchBot以外にも、Homebridgeネタを書いてますので是非チェックしてみてください。
それではまた。
Amazonでお得に買い物
- この記事を書いた人
松尾和真より:
はじめまして、松尾と言います。
もしよろしければ、お時間ある時にアドバイス頂けると幸いです。初心者なのでCHASUKE様の記事は大変勉強になります。最近Homebridgeを設定しようとしていて疑問があります。
複数のスマートデバイスをhome kit化する際に
config.jsonを作成するときは一つの設定ファイルの中にたくさんプラグイン用の設定を記述すれば良いのでしょうか?その際はbridge部分は共通でその他はそれぞれのスマートデバイス用の記述ということであってますでしょうか?
急いでませんので、もしよろしければお答え頂けると幸いです。
松尾様、はじめまして。
おっしゃる通り、1つのconfig.jsonに複数の設定をつみます。
bridge部分は共通の認識でOKです。今回の場合だと、accessories部分にSwitchBotの定義を追加するイメージです。▼こんな感じです。
"accessories": [ { "accessory": "aa", "bb": "cc" }, { "accessory": "dd", "ee": "ff" }, { "accessory": "SwitchBot", "name": "gg", "macAddress": "hh" }]
もっちより:
はじめまして。
早速ラズパイとSwitchbotを購入して設定しようとしましたが、無事にQRコードまでhomeアプリで読み取れたのはいいものの、肝心のswitchbotが動きません。
何か考えられる原因はありますでしょうか?もっちより:
回答ありがとうございます。
初心者で大変恐縮なのですが、confit.jsonファイルを作成する際に「cd .homebridge」の後にnano config.jsonを入力していたのですが、正しくは「cd /home/pi/.homebridge」ですか? 違いがよくわからないので教えて頂ければ幸いです。cdの指定方法は「相対パス」や「絶対パス」などで調べるとわかると思います。
また、ファイルの編集は、FTPクライアントソフトを使ってPC上で修正するか、ラズパイのデスクトップ上で修正した方が簡単です。
頑張ってください。
commentコメントをキャンセル
関連記事はコチラ
プログラミング学習できるロボット犬「Mini Pupperミニぷぱ」で遊んでみた!
ロボット開発に興味ありのCHASUKEです。どうも、こんにちは。 自分でプログラミングしてロボットが作れたらカッコいいですよね。けど、そんな事を漠然と思ってても、まず何をしていいのかわからない…。 今回は、そんな夢への1歩を踏み出すのに最適なロボットプログラミング学習キットを紹介します。それが「Mini Pupperミニぷぱ」という四足歩行するロボット犬です。 CHASUKEロボット犬といえば、Boston Dynamicsの「Spot」が有名ですよね。アレは1体800万円します。 このミニ ...
キーボード一体型ラズパイ「Raspberry Pi 400」の初期設定&レビュー!
なんだかんだ新しいラズパイが登場すると購入してしまうCHASUKEです。 今回は、ようやく日本で発売されたキーボード一体型ラズパイ「Raspberry Pi 400」を購入。キーボードはUS配列を選びました。 いつもの基板剥き出しのものとは異なり、見た目は少し可愛いキーボード。SDカードや電源を繋いで、いつもどおりに使えます。 ということで本記事では、Raspberry Pi 400の外観や初期設定を中心に、軽く触ってみた使用感を書いていきます。 Pi 400を知らなかった人を含め、ラズパイ選びの参考にな ...
SESAME3とSESAME BotをAppleホームで操作する方法【Homebridge】
SESAME4にも対応 セサミ3の後継モデル「セサミ4」でも、本記事の方法でHomeKit対応が可能です。 どうも、自宅のスマートホーム化に取り組んでいるCHASUKEです。 コスパ最強のスマートロックといえば、「SESAME3(セサミ3)」ですよね。同時に登場した指ロボット「SESAME Bot」もかなりお手頃です。 そんなセサミ3で残念なのが、正式にはHomeKitに対応してない点。そのため、通常Appleホームアプリからの操作ができません。 しかし、セサミとAppleデバイス間にHomebridge ...
屋外防水カメラ「Tapo C310」をHomeKit対応させる方法【Homebridge】
どうも、CHASUKEです。 本記事では、以前紹介した屋外カメラ「Tapo C310」をHomeKit対応させる方法を書きます。 記事はこちら→TP-Link Tapo C310 実機レビュー|高コスパな屋外用ネットワークカメラ 「HomeKitってなに?」という人向けに、簡単にいうと、Apple純正のスマートホーム基盤のこと。HomeKit対応の製品(アクセサリ)は、ホームアプリを使って、あらゆるAppleデバイス上でどこからでも操作することができます。 ▼こちらにもツイートしてますが、i ...
SwitchBotやリモコン家電をHomeKitに対応させる方法【Homebridge】
本記事の内容 SwitchBotデバイスや追加したリモコン家電をiPhoneのホームアプリで操作する方法を紹介します。 どうも、CHASUKEです。 今回は、SwitchBotデバイスおよびハブミニに登録したリモコン家電を、HomeKitに対応させる方法を書いてます。SwitchBotサーバー経由で操作するオープンAPI「SwitchBot-OpneAPI」を利用しています。 実は以前にも、同じようなHomeKit対応するための記事を書いてます。 SwitchBotカーテン・スイッチ・温湿度計をHomeK ...
【LaMetric API 使い方】Remo Eから取得した電気使用量をLaMetricに表示する方法
どうも、CHASUKEです。 「LaMetric Time」と言えば、粗いドットが可愛いスマートデジタル時計。 デジタル時計だけでなく、TwitterやYouTubeの通知を表示させたりする機能も備わっており、さまざまな目的で使うことができます。 CHASUKE人気ユーチューバーさんも使ってる人多いですよね。 LaMetricにはAPIが公開されており、コマンドで好きなメッセージを通知させることができます。さらに、LaMetricネイティブアプリを自作すれば、情報の常時表示やボタンを使ったア ...
















