Node-REDでSesame Webhookを使う


はじめに

2019年5月10日にSesame Webhookが公開されました。
今までは鍵の情報をpushで知るにはIFTTTを使うしかなかったのが
Webhookで受け取ることが出来ます。
オートロックなども比較的簡単に作れますね。

受け取れる情報が、Device IDとlockedだけなのは少し残念でした。
DASHBOARDのHISTORYのようにAuto Lock, Manual Lock, APIの区別を
付けられるようになればもっと細かいオートロックの仕組みなども
作れるようになったのになと思っています。

必要なもの

  • SESAME mini
  • Node-REDの環境

参考文献

手順1.Webhookの有効化

CANDY HOUSEのダッシュボードにログインして
下の方のAPI settingsからSEND CODEを押して
送られてきた認証コードを入力してConfirm。


CANDY HOUSEダッシュボード
https://my.candyhouse.co

Servicesの一番下のWebhookのEDITをクリックして
POSTに変更した後に、Webhookを受け取るURLを入力します。

手順2.フローの作成

inputノードのhttp、outputノードのhttp responseとDebugを配置してつなげます。

httpノードのnode propertyで、MethodをPOST、
URLを手順1で指定したURLになるように設定します。

これで鍵が開閉されると、Debugノードに通知が届くようになります。

{"device_id":"********-****-****-****-************","locked":true}

手順3.オートロックを作る

セサミの公式アプリではオートロックは4分まで設定できます。
しかしちょっと郵便受けに荷物を取りに行ったりしていると
4分というのは短すぎることがあります。
ここではオートロックのノードを作成します。

手順2で作成したhttpノードにSwitchノードをつなげて
propertyにmsg.payload.locked、条件にis falseを指定します。
lockedがfalseとなった時、つまり解錠されたときにフローが進みます。

SwitchにDelayノードを接続して、オートロックまでの時間を設定します。
まずはテストとして5秒などを設定してちゃんと動作するか確認します。

そしてDelayノードに解錠のノードを接続します。
解錠のノードの作り方は「Node-REDでSesame API v3を使う」手順4で解説しています。

これで鍵が開くと5秒後に閉まるオートロックが完成しました。
実際にはWebhookやAPIの作動までの時間などのラグがあるため
もう少し時間がかかると思います。

Delayの時間を変えれば自由な時間でオートロックをすることが出来ます。

おわりに

記事作成時点(2019年5月10日19時)ではアプリや手動での開閉など
API以外を使用した鍵の開閉ではWebhookが作動していないようです。

Webhookが動作しないと本記事のオートロックも作動しないので
鍵が閉まっていると思ったら閉まっていないこともありえます。

しっかりと動作確認をして自分の用途にあわせた設定をしてください。