Skip to content

katsuyuki-nakamura/dash_sleep_mac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dash_sleep_mac

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

事前準備

  1. Amazon Dash ButtonをただのIoTボタンとして使う - Qiitaなどを参考にAmazon dash buttonのセットアップ
  2. Amazon Dash ButtonをただのIoTボタンとして使う - Qiitaをなどを参考にAmazon dash buttonのMAC Addressを取得する
  3. macでNode.jsの環境設定 - Qiitaなどを参考にnode.js環境をセットアップ

dash_sleep_macのセットアップ

  1. 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
  2. config/config.jsonにAmazon dash buttonのMAC Addressを設定する

    {
      "address":"88:71:e5:fc:8d:91"
    }

実行

  1. 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
  2. Amazon dash button を押す

    88:71:e5:fc:8d:91 is pressed.
    Sleeping now...

仕組み

  1. node-dash-buttonでAmazon dash buttonのプッシュを検出

  2. 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);
            }
        });
    });

##参考

About

Mac sleep switch using Amazon dash button and nodejs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published