16
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

myThingsをつかったHackeyからslackへのメッセージ通知

販売されたばかりのHackeyを使って、myThings経由でslackへの通知をさせてみました。
HackeyCerevoさんが販売している、ウェブサービスを制御するための鍵型スイッチです。
あえて鍵でon/offすることで、リアルなアクションをネットと連携させられる点が魅力です。通知系のチャンネルが充実しているmyThingsとも相性がよいとおもいます。
Hackeyはwebhook方式に対応しているサービスを前提にトリガーを通知できるため、myThingsでこれをうけられるようにするため、webscript.ioを利用してみました。

IMG_3061.png

概要

今回は、これからがっつり開発をするぞ!というときに、自ら気合をいれると同時に、チームメンバー(特に上司)に”邪魔しないでほしい!”というアピールをするという想定にしました。
Hackeyの鍵をONにすると、IDCFチャンネルのtrigger-1に通知がいき、指定のslackの部屋に"集中モードに入ります!"というメッセージをいれるようにします。

myThingsと自作デバイスでどのようなことができるかについてきになるかたは、公式サイトこちらの情報を参照ください。

Hackeyをセットアップ

  1. myHackeyへのアカウント登録
    myHackeyにアクセスして、サインアップします。
    ここで発行されるPINコードがデバイス登録のさいに必要になります。

  2. Hackeyのwifi接続
    電源をいれるとHackey自体がWifiのAP(Hackey-xxxxxxx)として動作しているので、設定用のPCで該当APに接続の上、http://192.168.4.1にアクセスします。
    "Set Access Point"を選び、wifi設定を入力します。

  3. Hackeyのアクティベーション
    "regist this hackey"から、アクティベーションを行います。

スクリーンショット 2015-09-25 9.30.58.png

myThingsサーバの設定

masatoさんmyThingsをはじめよう - Part2をベースに、myThingsサーバを構築します。
myThingsサーバとのやりとりのためにowner、Hackeyとのやりとりのためにtrigger-2を利用するので、ownerとtrigger-2のUUIDとTOKENをメモっておいてください。

webscript.ioの設定

webscript.ioは、サーバーをたてずにWebサーバー機能を提供するサービスで、GitHubStripeなどのwebサービスでwebhookのターゲットとして利用することが多いようです。ここでは無料ユーザでできる機能で対応します。

  1. ターゲットの設定 webscript.ioのsignupをすませます。signup後にhackeyからの通知先のターゲットを設定します。 scriptから"create a New Script"を選択します。 スクリーンショット 2015-09-27 12.36.35.png

ターゲットのURLはここでは、mythings.webscript.io/turnonとします。

スクリーンショット 2015-09-25 23.21.49.png

  1. スクリプトの設定 "script"を選択し、ターゲットにアクセスがあった場合は、IDCFチャンネルサーバのtiger-2へ通知をとばすように設定します。 myThingsサーバの設定でメモした、trigger-2のUUIDとTOKENを以下の画面で入力してください。

script2.png

local status = http.request({
    method='post',
    url='http://{IP Address}/data/{trigger-2のUUID}',
    headers={
        meshblu_auth_uuid='{trigger-2のUUID}',
        meshblu_auth_token='{trigger-2のTOKEN ID}'
    }}).statuscode

スクリプトを保存すれば設定は終了です。
webscript.ioの無料ユーザーは、スクリプト保存期間が7日間に限定されるので、継続的に利用をしたい場合は有料ユーザーになる必要があります。

webhookアクションの設定

myhackeyにアクセスし、webhookアクションの設定をおこないます。
ダッシュボードのHackeyのステータス"から、Webhook actionのアクションの追加を選択し、webscript.ioで設定したターゲットのURLを登録します。

target設定.png

myThingsアプリでの組み合わせ設定

・IDCFチャンネルサーバの登録
myThingsをはじめよう - Part4: 「IDCF」チャンネルを認証するを参考に、IDCFチャンネルの登録を行ってください。
たまにうまくIDCFチャンネルが認証ができないケースがあるようです。myThingsアプリから一旦ログアウト/ログインしてから、認証をするとうまくいくようです。

・トリガーとアクションの設定:IDCFチャンネルとslackチャンネルの設定
IDCFチャンネルをトリガーとして選択し、trigger-2を選択します。
その後、slackチャンネルでメッセージを出力したい箇所とメッセージを設定します。

image1 (2) copy.jpg

動作結果

ということで、実際に鍵をまわしてみます!ガチャ!
IMG_3062.png

myThingsサーバからIDCFチャンネルサーバへのポーリングは、15分おきになっているので、今回はmyThingsアプリから手動実行で強制的に状態を確認させます。
image

slackのメッセージをみてみると、通知されました!!
スクリーンショット 2015-09-27 22.58.52.png

ここではswitch onの事例だけですが、triggerをもう一つ追加するこで、switch offの設定も簡単にできます。また、hackeyには外部からhttpでコントロールできるLEDがついています。myThingsで取得できる天気やスケジュールの状況などと連携して、色をかえるのもおもしろいとおもいます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
16
Help us understand the problem. What are the problem?