どんちゃんのひまつぶし

4月からSEとして働く大学生が暇つぶしに旅行グルメガジェットなどについて書くブログ

Amazon Dash Buttonを間違った使い方をしてみる

スマートスピーカーで最近話題のAmazonですが、Dash Button(ダッシュボタン)の存在も思い出してあげてくださいね。

 

ということで、今回は、ボタンを押すだけで簡単に注文ができる便利ガジェット、DashButtonをIoT化して活用してみます。

f:id:d0nchan:20171119230517j:plain

ダッシュボタンをPCの休止ボタンにしてみよう

まずは要件定義

・ボタンを押したらPCを休止モードにする

・休止モードにする前にTVソフトの起動有無のチェック

・起動していたら終了してから休止モードに

・休止と同時にTwitterにツイート

Amazon Dash Buttonの設定

Dash Buttonの初期設定

まず、通常通りダッシュボタンの設定を行います。

Amazon.co.jp ヘルプ: スマートフォンでDash Buttonをセットアップする

f:id:d0nchan:20171120004411p:plainf:id:d0nchan:20171120004430p:plain

f:id:d0nchan:20171120004448p:plainf:id:d0nchan:20171120004518p:plain

許可をタップ

f:id:d0nchan:20171120004534p:plainf:id:d0nchan:20171120004550p:plain

f:id:d0nchan:20171120004704p:plain

MACアドレスIPアドレスを特定する

ボタンを押すと、一時的にWi-Fiに接続する仕組みのため、当然MACアドレスを持っています。ググるとnode.jsを導入する方法などありますが、僕はそういう知識皆無なので、簡単な方法を考えました。

 

接続しているルーターから端末とそのIPアドレスを特定

IPアドレスを払い出しているルーターの設定画面にアクセスします。

僕の場合は、フレッツ光隼環境なので「PR-500KI」というルーター機能一体型ONUが置かれています。

f:id:d0nchan:20171120120246j:plain

まずこちらの設定画面にアクセスする必要があります。

192.168.1.1

f:id:d0nchan:20171120120736j:plain

「情報」→「DHCPv4サーバ払い出し状況」に移動すると、接続されている端末のMACアドレスと割り当てられたIPアドレスが表示されます。しかしこのままではどれがボタンのアドレスかわかりません…。が、MACアドレスから特定できます。

f:id:d0nchan:20171120121250j:plain

赤で囲ったところがダッシュボタンのMACアドレスです。

なぜわかるかというと、下記のリストに載っているのは全てAmazon製品だから。

f:id:d0nchan:20171120122754j:plain

端末を接続していても、ダッシュボタン以外は簡単に表示できるので絞り込めるはずです。

僕の場合は「B4:7C:9C」でした。

すると自動的にIPアドレスもわかりますね。

このIPアドレスを控えておきます。MACアドレスはここでお役御免です。

mac.uic.jp

AmazonButton_v4J.exeを使い、任意のプログラムを実行できるようにする


Amazon Dash Button で変熊画像を表示する - Windows7

変熊さんが作ってくださったツールを使用します。

 

動画概要欄からダウンロードし、任意の場所に解凍し、AmazonButton_v4J.exeを実行します。

f:id:d0nchan:20171120125110j:plain

IPアドレスを入力し、「OK」をクリック

f:id:d0nchan:20171120130123j:plain

ファイル選択画面が出るので、ボタンを押したときに実行するファイルを選択。

使い方が決まってる方はここまでで終わりです。ボタンを押すと実行されるはずです。

PCを休止モードにするファイルを作る

今回は休止モードにする実行ファイルを作ります。ただのバッチファイルです。

適当にテキストファイルを新規作成し、拡張子を「bat」にして保存します。

powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState
powercfg -h on 

素人なんでググりながら書きましたが、詳しい人はご自分でカスタムしてください。

休止する前に、TV視聴ソフトの起動有無をチェック

僕はベッドに寝ころびながらPC TV PlusやTVTestでテレビを見ながらそのまま寝落ちすることもあるので、不具合防止に、ソフトを終了させてから休止モードに入るようにします。

taskkill /F /IM TVtest.exe /IM Vnt.exe /T

コマンドはこちらを参考に

Windowsコマンド集 - taskkill:ITpro

休止モードに入ると同時にツイート

ほぼお遊びですが、ボタンを押したら任意のツイートができるようにします。

IFTTTでTwitterと連携

仕組みは簡単。ボタンが押されたらIFTTTで作った「アクセスすると指定したツイートする」URLを開く。これだけ。ですがコマンド操作だけではURLを開くことができなさそうなので、VBSを使用しました。

あらかじめIFTTTのアカウントは作っておいてください。

f:id:d0nchan:20171120150928j:plainf:id:d0nchan:20171120150954j:plain

「+this」をクリック。トリガーを指定します。

f:id:d0nchan:20171120151039j:plain

検索で「web」と入力すると「Webhooks」が出てくるのでクリック

f:id:d0nchan:20171120151128j:plain

「Connect」をクリック

f:id:d0nchan:20171120151218j:plain

「Recieve a web request」をクリック

f:id:d0nchan:20171120151513j:plain

「EventName」はわかりやすければ何でもok

f:id:d0nchan:20171120151611j:plain

「+that」をクリックし、実際の動作を決めてあげます。

f:id:d0nchan:20171120151650j:plain

今回はツイートなのでTwitterを選択

f:id:d0nchan:20171120151721j:plain

画像付きなら上段左から2番目を選択してください。

f:id:d0nchan:20171120151803j:plain

ツイートしたい内容を入力します。

f:id:d0nchan:20171120152102j:plain

画像の通り、検索からWebhookの設定ページを開きます。

f:id:d0nchan:20171120152158j:plain

「Documentation」をクリックすると

f:id:d0nchan:20171120152232j:plain

大事なページが出てきます。上の囲ったところには上記で指定したイベント名を入力。

この段階で下に表示されているURLにアクセスするとツイートされます。

ここまで作ったものを組み合わせる

VBSファイルを作る

バッチファイルだけでは限界があるので、VBSに頼ります。

拡張子を.vbsにして下記のコードを書きます。

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run ("chrome.exe -url [先ほど作ったURLに置き換えてください]")

WScript.Sleep( 1000 )

WshShell.AppActivate "chrome.exe"

WshShell.SendKeys "^w"

URLを開くとタブも開くのでタブを閉じる処理を入れています。

あとはググってくださいw

バッチファイルと合体

taskkill /F /IM TVtest.exe /IM Vnt.exe /T
"C:\DashButtonSleep\AmazonButton_v4J\closetab.vbs %"
TIMEOUT /T 1
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState
powercfg -h on

最終的なコードです。

2行目は先ほど作ったVBSファイルのパスを環境に合わせて変えてあげてください。

 

使い方次第ではいろいろできそうですね。