Raspberry PiとAmazonダッシュボタンでSwitchBot(スイッチボット)を操作する|ラズパイIoT

AmazonダッシュボタンがIoTに使えると聞いて遥か昔に購入したものをようやく活用しました。

少しめんどくさいイメージがあって今までやっていなかったのですが、やってみると1時間程度でサクッと完成したので備忘として載せておきます。

今回は自宅にある超小型PCのRaspberry Pi(ラズベリーパイ)とAmazonダッシュボタンを用いてSwitchBotを操作します。

以前にスイッチボットをラズパイから操作する記事なども書いていますが当時はPythonを使っていました。

今回はnode.jsを利用します。

※関連過去記事

Switch Bot(スイッチボット)家のスイッチをIoT化!使い方・操作方法を解説! ラズパイ(Raspberry Pi)からSwitch Bot(スイッチボット)を操作する手順を解説

 

 

 

Amazonダッシュボタンの初期設定

Amazonダッシュボタンは最初にwifiとの接続設定が必要となります。

その設定がAmazonのスマホアプリを用いて行う必要があるため、まだ持っていない人はインストールが必要です。

Amazon ショッピングアプリ

Amazon ショッピングアプリ

AMZN Mobile LLC無料posted withアプリーチ

 

Amazonのスマホアプリを用いて初期設定を行う

さて、早速初期設定を行なっていきます。

基本的にはダッシュボタンに付属している説明書通りに作業を進めていき、商品を選択する前でセットアップを終了します。

※商品選択までしてしまうと、ボタン押すたびに商品来てしまいます。

手順を記載すると以下のようになります。

Dash Buttonセットアップ手順
  1. Amazonアプリからメニューを表示
  2. 「アカウントサービス」をタップ
  3. 「ダッシュ端末の管理」をタップ
  4. 「新しいDash Buttonをセットアップ」をタップ
  5. 案内に従ってセットアップを進める
  6. 商品選択画面で商品を選択せずにセットアップを終了する

 

STEP.1
Amazonアプリからメニューを表示

スマホアプリのトップ画面左上のハンバーガーメニューをタップするとメニューが表示されます。

STEP.2
「アカウントサービス」をタップ

表示されたメニューの中から「アカウントサービス」をタップします。

STEP.3
「ダッシュ端末の管理」をタップ

下にスクロールすると、「ダッシュ端末の管理」があるのでタップします。

STEP.4
「新しいDash Buttonをセットアップ」をタップ

「新しいDash Buttonをセットアップ」をタップします。

STEP.5
案内に従ってセットアップを進める

基本的には画面の指示に従って操作を行うだけで大丈夫です。

スマホとWifiと接続するところまでを行います。

STEP.6
商品選択画面で商品を選択せずにセットアップを終了する

商品選択画面が出て来たら右上の「×」をタップしてセットアップを終了します。

以上でAmazonダッシュボタンの初期設定が完了しました。

以降はラズパイを用いて作業をしていきます。

 

Raspberry pi(ラズベリーパイ)での作業

ラズパイで行う作業は以下の3つです。

  1. 必要なパッケージのインストール
  2. ダッシュボタンのMACアドレス確認
  3. ダッシュボタンのクリックからイベントの発火

また、ダッシュボタンのプッシュを受け取ってスイッチボットを操作するのはnodeとnpmを使用するのでこれらは入っていない場合は先に入れておいてください。

※nodeが入って入ればnpmも入っているはずなのでnodeの有無を確認すると良いです。

※node -v と入力してバージョン情報が返ってくればnodeは入っています。

nodeとnpmの有無確認
$ node -v
$ npm -v

※共に入って入ればこれでバージョン情報が返って来ます。

 

1.必要なパッケージのインストール

下準備です。

適当な階層でフォルダを作成してその中でコマンドを実行すると良いです。

ラズパイ上で以下のコマンドを実行していってください。

コンソール
//作業用のフォルダを作成する
$ mkdir DashButton

//作成した作業用フォルダに移動
$ cd DashButton

//package.jsonの作成
//パッケージの情報を聞かれますが、基本何も入力せずにEnter押しておけば良いです。
$ npm init

//ダッシュボタンとスイッチボットに必要なパッケージをインストール
$ npm install --save dash-button
$ npm install --save switchbot

全て完了すると同階層に”package.json”というファイルができていると思うので中身を編集します。

package.jsonのscriptsと記載があるところを以下のように変更してください。

pakage.json
"scripts": {
    "scan": "dash-button scan",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

「”scan”: “dash-button scan”,」この行を追加しています。

※linux上での編集は「vi package.json」と打つと編集画面になります。

その状態で編集を行う箇所にカーソルを合わせて「i」を押すと編集モードになります。

編集した上で「ESC」を押して編集モードを解除、「:wq」と打つと保存して終了になります。

以上で必要なパッケージの準備と変更が完了です。

 

2.ダッシュボタンのMACアドレス確認

続いてダッシュボタンのMACアドレスを確認します。

MACアドレスとは簡単に言うと、ダッシュボタンを特定するために使用するものです。

コンソール
$ sudo npm run scan

> dashbutton@1.0.0 scan /home/pi/Documents/DashButton
> dash-button scan

Scanning for DHCP requests and ARP probes on wlan0...
//ここより上がコマンドを実行すると表示され、その状態でダッシュボタンの押すと以下のような行が表示されます。

Detected a DHCP request or ARP probe from 00:00:00:00:00:00
//この上の行のfrom以降の部分がダッシュボタンのMACアドレスになるので控えてください。

これ書きながら気づきましたが、スイッチボットのMACアドレスも使用するため確認しておく必要があります。

確認方法はスイッチボットのスマホアプリから動作させたいスイッチボットの設定画面を開くと表示されています。

SwitchBot

SwitchBot

wonderlabs, Incorporated無料posted withアプリーチ

 

アプリを起動してメニューからホーム画面に移動すると近くにあるスイッチボットが認識されます。

歯車マークをタップすると設定画面が開きます。

一番下に表示されているのがスイッチボットのMACアドレスになります。

これはあとで使用します。

 

3.ダッシュボタンのクリックからイベントの発火

いよいよ最後です。nodeで実行するjsファイルを作成して先ほど調べてMACアドレスを元にソースを書いていきます。

適当なjsファイル(dash-to-switch.js)を作成して中に以下のソースを記載してください。

dash-to-switch.js
const DashButton = require('dash-button');
const Switchbot = require('switchbot');

const button = new DashButton('ダッシュボタンのMACアドレス');
const switchbot = Switchbot('スイッチボットのMACアドレス');

button.addListener(() => {
  console.log('押された');
  switchbot.press();
});

ファイルを保存したら以下のコマンドで実行します。

コンソール
node dash-to-switch.js

コンソール上に「押された」と表示され、スイッチボットが動作するはずです。

コンソール自体表示されない場合はダッシュボタンのMACアドレスが誤っている可能性があるため、再確認してください。

「押された」と表示されたにも関わらずスイッチボットが動作しない場合はスイッチボットのMACアドレスが誤っている可能性があるため、再確認してください。

ちなみにコンソールを閉じてもnodeを動きっぱなしにしたい場合は以下のコマンドでjsを実行すると良いです。

$ nohup node dash-to-switch.js &

「nohup」とかで検索すればコマンドの意味はわかります。

 

まとめ

先人達が便利なライブラリを作ってくれているおかげでかなりさっくりとできたかと思います。

今回はダッシュボタンからスイッチボットの処理を実行しましたが、jsで実行できるものは大抵の処理が行えます。

そのため、ダッシュボタンを押したら特定のURLをキックしてバッチ処理を実行するなどといった使い方も可能です。

URLキックができるとなるとGASやIFTTTとの連携も可能になるためかなり多くのことができるようになりそうです。

一つだけ欠点があるとするとボタンを押してから実際にイベントが処理されるまで多少のタイムラグがあることですね。。

といっても10秒あるかないかぐらいなので使い方がある程度は絞られますが十分許容範囲かと思います。

 

記事内で使用した製品

Switch Bot ボタンを押してくれる超小型指ロボット (ワイヤレス / スイッチボット)
Switch Bot

 

関連記事

【Raspberry Pi(ラズパイ)×Node-RED】スイッチボットをアレクサのスマートホームスキルで操作する 【Alexa × IFTTT× Beebotte × Raspberry Pi】スイッチリンクを使わずにスイッチボットを声で操作する方法 Switch Bot(スイッチボット)家のスイッチをIoT化!使い方・操作方法を解説! ラズパイ(Raspberry Pi)からSwitch Bot(スイッチボット)を操作する手順を解説

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA