Switch Bot(スイッチボット)をラズパイ経由で遠隔操作する方法

CHASUKEの記事をシェアする..

どうも、CHASUKEです。

この記事では、Switch Bot(スイッチボット)をラズパイ経由で、外出先から遠隔操作する方法を紹介します。

この方法では、公開しているAPI(Pythonスクリプト)を使ってSwitch Botを起動します。そのため、少しばかり専門的な知識が必要となります。

avatar

CHASUKE

といっても、手順通りやれば簡単に操作できます

ラズパイを使ってIoTホームを実現を目指す方には、面白いネタだと思います。例えば、Amazonダッシュボタンを押して、Switch Botを動かしたりできたり..etc

この方法を使えば、スマホアプリ以外から、専用ゲートウェイ(ハブ)無しで、遠隔操作が可能になります。ラズパイをお持ちの方は、ぜひお試しください。

▼専用ゲートウェイは使用しません。

ちなみに、最新のSwich Bot専用ゲートウェイは学習リモコンにもなります。旧型には学習リモコン機能がなかったので、進化してますね。

SPONSORED LINKS

必要なもの

必要なものは以下の通り。

  • スイッチボット(Switch Bot)
  • ラズベリーパイ(RaspberryPi)

スイッチボットは、1粒で4,480円です。

ラズベリーパイは、ラズパイZEROでも、ラズパイ3+でもどちらでも可能です。手持ちのものが使えます。

『Raspberry Pi Zero WH』スターターキットを購入してみた!!
どうも、Chasukeです。 なんだかんだで我が家に3台目のラズベリーパイ(ラズパイ)がやってきました。 今回は、通常モデルの...

今回、僕が動作確認したOSバージョンは「Raspbian jessie 8.0」となります。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 8.0 (jessie)
Release:	8.0
Codename:	jessie
最新OS「Raspbian Stretch」だと動きませんでしたのでご注意を!

スイッチボットをラズパイ経由で操作する方法

スイッチボット公式のPythonスクリプトが公開(リンク)されていますので、こちらを使って操作していきます。

▼ざっと手順は以下の通り

  1. 必要なパッケージをインストール
  2. Pythonスクリプトをインストール
  3. Pythonスクリプトを実行

スイッチボットへの連携イメージは、「ラズパイ→(Bluetooth)→スイッチボット」です。ちなみに、外出先からだと「スマホ・PC→(WiFi)→ラズパイ→(Bluetooth)→スイッチボット」ですね。

専用ゲートウェイと同じでラズパイのBluetoothが届く範囲にスイッチボットがないと動きませんのでご注意を。

必要なパッケージをインストール

▼下記コマンドにてAPIを利用するために必要なパッケージをラズパイにインストールします。

$ sudo apt-get update
$ sudo apt-get install python-pexpect
$ sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev 
$ sudo apt-get install libudev-dev libical-dev libreadline-dev
$ sudo pip install bluepy

Pythonスクリプトをインストール

今回は、Python2を使います。

▼pythonコマンドでバージョンが「2」であることをチェックしときましょう。

$ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()

avatar

CHASUKE

僕は「Python2.7.9」で実施しました

▼適当なフォルダに移動し、Pythonスクリプトをインストールします。

$ git clone https://github.com/OpenWonderLabs/python-host.git
$ cd python-host

Pythonスクリプトを実行

実行の前に、手持ちのSwitch BotのMACアドレスを調べる必要があります。アプリの設定画面から確認できます。

さて、準備OKです。

下記コマンドにて実行します。

$ sudo python switchbot.py 【MACアドレス】 Press

「ギュイーン..」と動けば成功です。

ちなみに、最後の「Press」がアクションになります。3つのアクションを指定可能です。

  • Press:アームを倒して引く
  • Turn On:アームを倒す
  • Turn Off:アームを引く

自作でPythonスクリプト作成・実行

先ほどは、用意されているPythonスクリプトをそのまま実行したのみですが、自作のPythonに以下のコードを利用して組み込むことも可能です。

ファイル名:switchbot_bluepy.py

import binascii
from bluepy.btle import Peripheral

p = Peripheral("【SwichBotのMACアドレス】", "random")
hand_service = p.getServiceByUUID("cba20d00-224d-11e6-9fb8-0002a5d5c51b")
hand = hand_service.getCharacteristics("cba20002-224d-11e6-9fb8-0002a5d5c51b")[0]
hand.write(binascii.a2b_hex("570100"))
p.disconnect()

▼実行すると、動きます♪

python switchbot_bluepy.py

こちらは、例として「Press」を実行しています。ソースコードを修正することで、「Turn On」や「Turn Off」も操作可能です。

  • Press:binascii.a2b_hex(“570100”)
  • Turn On:binascii.a2b_hex(“570103”)
  • Turn Off:binascii.a2b_hex(“570104”)

こちらのコードも公開(リンク)されています。

ダッシュボタンと連携させてみた

専用ゲートウェイがなくても、ラズパイを利用することで、Amazonダッシュボタンとの連携とかできます。

avatar

CHASUKE

自作スクリプトからモノを制御できるのは面白い!

最後に

Swich Botを公開APIから操作してみました。

スマホアプリや専用ゲートウェイがあれば、こんなことする必要はないです。しかし、自作スクリプトからモノが制御できるって面白いですね。

意外と簡単にできてしまうので、面白いと思った方は是非お試しください♪

▼物理スイッチをIoT化できるロボット

それではまた。