スマートスピーカーで最近話題のAmazonですが、Dash Button(ダッシュボタン)の存在も思い出してあげてくださいね。
ということで、今回は、ボタンを押すだけで簡単に注文ができる便利ガジェット、DashButtonをIoT化して活用してみます。
- ダッシュボタンをPCの休止ボタンにしてみよう
- Amazon Dash Buttonの設定
- AmazonButton_v4J.exeを使い、任意のプログラムを実行できるようにする
- 休止モードに入ると同時にツイート
- ここまで作ったものを組み合わせる
ダッシュボタンをPCの休止ボタンにしてみよう
まずは要件定義
・ボタンを押したらPCを休止モードにする
・休止モードにする前にTVソフトの起動有無のチェック
・起動していたら終了してから休止モードに
・休止と同時にTwitterにツイート
Amazon Dash Buttonの設定
Dash Buttonの初期設定
まず、通常通りダッシュボタンの設定を行います。
Amazon.co.jp ヘルプ: スマートフォンでDash Buttonをセットアップする
許可をタップ
MACアドレスとIPアドレスを特定する
ボタンを押すと、一時的にWi-Fiに接続する仕組みのため、当然MACアドレスを持っています。ググるとnode.jsを導入する方法などありますが、僕はそういう知識皆無なので、簡単な方法を考えました。
接続しているルーターから端末とそのIPアドレスを特定
IPアドレスを払い出しているルーターの設定画面にアクセスします。
僕の場合は、フレッツ光隼環境なので「PR-500KI」というルーター機能一体型ONUが置かれています。
まずこちらの設定画面にアクセスする必要があります。
「情報」→「DHCPv4サーバ払い出し状況」に移動すると、接続されている端末のMACアドレスと割り当てられたIPアドレスが表示されます。しかしこのままではどれがボタンのアドレスかわかりません…。が、MACアドレスから特定できます。
赤で囲ったところがダッシュボタンのMACアドレスです。
なぜわかるかというと、下記のリストに載っているのは全てAmazon製品だから。
端末を接続していても、ダッシュボタン以外は簡単に表示できるので絞り込めるはずです。
僕の場合は「B4:7C:9C」でした。
すると自動的にIPアドレスもわかりますね。
このIPアドレスを控えておきます。MACアドレスはここでお役御免です。
AmazonButton_v4J.exeを使い、任意のプログラムを実行できるようにする
Amazon Dash Button で変熊画像を表示する - Windows7
変熊さんが作ってくださったツールを使用します。
動画概要欄からダウンロードし、任意の場所に解凍し、AmazonButton_v4J.exeを実行します。
IPアドレスを入力し、「OK」をクリック
ファイル選択画面が出るので、ボタンを押したときに実行するファイルを選択。
使い方が決まってる方はここまでで終わりです。ボタンを押すと実行されるはずです。
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
コマンドはこちらを参考に
休止モードに入ると同時にツイート
ほぼお遊びですが、ボタンを押したら任意のツイートができるようにします。
IFTTTでTwitterと連携
仕組みは簡単。ボタンが押されたらIFTTTで作った「アクセスすると指定したツイートする」URLを開く。これだけ。ですがコマンド操作だけではURLを開くことができなさそうなので、VBSを使用しました。
あらかじめIFTTTのアカウントは作っておいてください。
「+this」をクリック。トリガーを指定します。
検索で「web」と入力すると「Webhooks」が出てくるのでクリック
「Connect」をクリック
「Recieve a web request」をクリック
「EventName」はわかりやすければ何でもok
「+that」をクリックし、実際の動作を決めてあげます。
今回はツイートなのでTwitterを選択
画像付きなら上段左から2番目を選択してください。
ツイートしたい内容を入力します。
画像の通り、検索からWebhookの設定ページを開きます。
「Documentation」をクリックすると
大事なページが出てきます。上の囲ったところには上記で指定したイベント名を入力。
この段階で下に表示されている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ファイルのパスを環境に合わせて変えてあげてください。
Amazon Dash ButtonでPCを休止モードにしてみたよ。 pic.twitter.com/FFlgwpmCAl
— どんちゃん(ё)<雪ミク2018行くよ (@d0nchaaan) 2017年11月20日
使い方次第ではいろいろできそうですね。