Amazon Dash ButtonとMacを連携させてみた
Amazon Dash ButtonとMacを連携させてみました。
基本的には下の記事を参考にさせてもらってます。
- Node.jsとnpmのアップデート
- Amazon Dash Button の購入
- Amazon Dash Button のセットアップ
- node-dash-buttonを使ってAmazon Dash ButtonのMACアドレスを取得
- node-applescript を使って Apple Scriptを動かす
- 動作確認
- 最後に
Node.jsとnpmのアップデート
Node.jsとnpmが古い場合は事前にアップデートしておきましょう。
yamano3201.hatenablog.jp
$ node -v
v7.4.0$ npm -v
4.0.5
Amazon Dash Button の購入
以前、購入したときの記事です。
yamano3201.hatenablog.jp
このとき購入した「食器用洗剤」の他に、「トイレットペーパー」と「ティッシュ箱」と今回の「Mac連携用」の計4つを購入しました。
Amazon Dash Button のセットアップ
1.Amazonアプリの左上ハンバーガーメニューより「アカウントサービス」
2.下部にあるDush端末の「新しい端末をセットアップ」
3.表示される通りDushボタンの電源を入れ、Wifiに接続
4.Wifiに接続完了すると商品を設定する画面が表示されるのでここでやめる。
ここは参考サイトそのままの手順になります。
ボタンを押したときのスマホへのPush通知をオフにするために、
Amazonアプリの「端末を管理」から、「このDash Buttonを無効にする」で無効にしておきます。
node-dash-buttonを使ってAmazon Dash ButtonのMACアドレスを取得
$ npm install node-dash-button $ sudo node bin/findbutton Watching for arp & udp requests on your local network, please try to press your dash now Dash buttons should appear as manufactured by 'Amazon Technologies Inc.' # ここでAmazon Dash Button を押します Possible dash hardware address detected: XX:XX:XX:XX:XX:XX Manufacturer: Amazon Technologies Inc. Protocol: arp
XX:XX:XX:XX:XX:XX の部分が取得できたMACアドレスになります。
node-applescript を使って Apple Scriptを動かす
ここではsayコマンドでMacに喋らせるScriptを用意しています。
$ npm install applescript $ cat << EOF > script.applescript tell application "System Events" say "test" end tell EOF
続いて、Amazon Dash Buttonが押されたタイミングで Apple Script を実行するJavaScriptを用意します。
XX:XX:XX:XX:XX:XX には事前に取得しておいたMACアドレスを入力します。
$ export MAC_ADDRESS=XX:XX:XX:XX:XX:XX $ cat << EOF > app2.js var applescript = require('applescript'); var dash_button = require('node-dash-button'); var fs = require('fs'); var dash = dash_button("${MAC_ADDRESS}", null, null, 'all'); dash.on("detected", function (){ console.log("test"); fs.readFile('./script.applescript', 'utf8', function (err, script) { applescript.execString(script, function(err, rtn) { if (err) { // Error console.log(err); } }); }); }); EOF
このJavaScriptも参考サイトそのままです。
最後に
思ったより参考にしていた記事と変わらなくなってしまった。。
あとは好きなコマンドに変えれば面白いことできそうですね。アイデアは考え中です。