Amazon dash buttonを使って、Macをスリープ状態にするボタンを作ってみた。
##動作確認環境
- Macbook Pro 13 Retina 2014
- macos Siera 10.12.2
- node.js 4.4.6
- node-dash-button 0.6.1
- Amazon Dash ButtonをただのIoTボタンとして使う - Qiitaなどを参考にAmazon dash buttonのセットアップ
- Amazon Dash ButtonをただのIoTボタンとして使う - Qiitaをなどを参考にAmazon dash buttonのMAC Addressを取得する
- macでNode.jsの環境設定 - Qiitaなどを参考にnode.js環境をセットアップ
-
dash_sleep_macをインストールする
bash-3.2$ gitclone https://github.com/katsuyuki-nakamura/dash_sleep_mac.git bash-3.2$ cd dash_sleep_mac bash-3.2$ npm install
-
config/config.jsonにAmazon dash buttonのMAC Addressを設定する
{ "address":"88:71:e5:fc:8d:91" }
-
dash_sleep_macを起動する
bash-3.2$ cd dash_sleep_mac bash-3.2$ sudo npm run start Password: > dash_sleep_mac@1.0.0 start /Users/katsuyuki/work/amazon_dash/dash_sleep_mac > node index.js If 88:71:e5:fc:8d:91 is pressed, mac goes to sleep
-
Amazon dash button を押す
88:71:e5:fc:8d:91 is pressed. Sleeping now...
-
node-dash-buttonでAmazon dash buttonのプッシュを検出
-
child_process#exec経由で、pmsetコマンドを実行する。
var config = require('./config/config.json'); var dash_button = require('node-dash-button'); var exec = require('child_process').exec; console.log('If ' + config.address + ' is pressed, mac goes to sleep'); var dash = dash_button(config.address); dash.on("detected", function() { console.log(config.address + ' is pressed.'); var child = exec('pmset sleepnow', function(error, stdout, stderr) { console.log(stdout); console.log(stderr); if (error !== null) { console.log('exec error: ' + error); } }); });
##参考