「洗濯したので帰ったら取り込んで欲しい!」をボタンを押すだけでLINEに通知するようにする
ことのほったん
私と妻は共働きなのですが、私は妻より1時間おくれて出社するので、妻が出社してからの1時間で家事をするのが私の日課です。
出社前に用事があったので、今日は洗濯できないなと思っていたある日。
突然、妻が「お願い!洗濯して!」とだけ言い残して急いで家を出て行きました。
まさに外道!!
用事をやめ、しぶしぶ洗濯をしてから出社しました。
1日が終わり、帰宅した私。
出社が私より1時間早い妻は、逆に私より早く帰宅していたんですが、
洗濯ものが取り込まれていないうえに、カーテンが閉められている。。。
妻曰く「今日洗濯したのかわからないので、したら教えて欲しい!」とのこと。
そんなわけで、「洗濯した」ってことを簡単に通知できる仕組みを考えてみました。
Amazon Dashボタンを使ってLINEに通知
Amazon Dashボタンは、Amazonから一部の商品(天然水, Daveなど)がボタンを押すだけで購入できるようになるという端末です。
このAmazon Dashボタンの「押したらHTTPリクエストが飛ぶ」という仕組みを利用し、LINEのNotify経由で妻とのLINEグループに通知することにしました。
Amazon Dashボタン をセットアップする
公式通りのセットアップ方法で問題ありませんが、項番9の「Dash Button端末を使って再注文する商品を選択します。」以降はやらないでください。ここで選択してしまうと、ボタンを押すたびに毎回その商品を購入してしまうことになります。
ボタン押下時に任意のサーバにHTTPリクエストを飛ばす方法として、
Amazon DashボタンとHTTPサービスを簡単にリンクさせるためのOSS、dasherを使用します。
ボタンと同一ネットワーク内にあるサーバでdasherを起動させます。
github.com
サーバーは家にあったRaspberry Pi (ver.1)を使いました。
Raspberry Pi - Teach, Learn, and Make with Raspberry Pi
ハマった人が多いのか、dasherのREADMEにRasberry Pi用のセットアップ方法が書いてありますので、その通りやれば問題ありません。(よく読まずにやって、ハマりました。)
※ Rasberry Piそのもののセットアップ方法は割愛します。
LINE Notifyをセットアップする
Lineのページで notify の登録します。
以下にLineIDでログインし、ログイン後マイページを開きます。
https://notify-bot.line.me/ja/
サイト下部にある「アクセストークン発行」をクリック
今回は
- トークン名:Washify (Wash + Notify)
- 妻と2人だけのLineグループ
トークンを発行するボタンを押して、発行されるトークンをメモっておきます。
妻と2人だけのLineグループに「LINE notify」 を招待します。
これでLINE側のセットアップは完了です。
curlでLINE Notifyを実行する場合、以下のようになります。
curl -X POST -H ‘Authorization: Bearer [LINE_API_TOKEN]’ -F “message=ほげほげ” https://notify-api.line.me/api/notify
実行してみる
Amazon DashボタンMACアドレスを取得したら、config/config.json
に以下の設定をします。
{"buttons":[ { “name”: “Washify”, “address”: “d8:92:dc:a8:63:09", “url”: “https://notify-api.line.me/api/notify“, “method”: “POST”, “headers”: {“authorization”: “Bearer [LINE_API_TOKEN]”}, “formData”: { “message”:“洗濯したー。取り込みお願いー。” } } ]}
設定したら、起動してみます。
$ sudo npm run start
ボタンを押す!(奇しくもアタックのボタン!)
無事届きました!(無意識に連打)
まとめ
Amazon Dash ボタンと他サービスとの連携を使って、家事のトラブルをITの力で解決してみました。
どれも簡単な技術の組み合わせで、便利な世の中になったことを肌で感じました。
夫婦間のいざこざがこじれると壁の前で悲痛の叫びをネットに向かって訴えたくなる昨今、こういった仕組みを利用し、早々に解決していくのがいいなと思いました。
参考サイト
http://qiita.com/jsoizo/items/3b8bba4160f41aef20f4 http://qiita.com/takeshi_ok_desu/items/576a8226ba6584864d95