#Reekohとは
Reekohとは、IoTデータをNode-REDのようにハードウェアデバイス/APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、Reekoh社及び代理店からの提供されるエンタープライズ向けツールです。
#ReekohでSigfoxデバイスメッセージをSlackにWebhookする
大まかな流れは下記の通りとなります。
- Reekohでパイプラインを作成
- SigfoxクラウドでCallbackを作成
- SlackでIncoming Webhookを設定
##Reekoh Pipeline Studioでパイプラインを作成
細かい操作方法は割愛しますが、作成するパイプラインは下図のようなものとなります。
左から下表のPluginを配置し、各Pluginを接続しています。
Plugin | 説明 | |
---|---|---|
Sigfox GW | SigfoxクラウドからのCallbackを受け取る | |
Converter | 受け取ったデバイスデータをSlack Webhook用JSONに変換する | |
Webhooks | SlackにWebhookする |
###各Pluginの設定
####Sigfox GW
SigfoxクラウドからのCallbackを受け取れるようReekoh社から提供されているPluginです。
特に設定する必要はなく、Saveすると、少し時間をおいて、Callback受信用のIPアドレスが発行されます。(下図赤字のところに表示されるので、この後のSigfoxクラウド側での設定に使います)
####Converter (SigfoxデバイスデータからSlack用JSON)
次にConverterの設定をします。Converter設定のhandler.jsに変換ロジックをJavascriptで入力します。
'use strict'
exports.handle = function (data, logger) {
logger.log(data)
return Promise.resolve({
text: 'device=' + data.device + ' payload=' + data.payload,
icon_emoji: ':globe_with_meridians:',
username: 'reekoh'
})
}
ここでは、Promise.resolveのところで、JSON用の連想配列を作っています。
slackのWebhookに投げるには最低{"text":"なんたらかんたら"}
というJSONメッセージが必要ですので、
text: 'device=' + data.device + ' payload=' + data.payload,
の一行をいれています。上記のSigfox GWから送られてくるデータ、つまりSigfox Callbackで送るJSONデータは"data.xxx"という形で定義できます。
この場合、Sigfox Callbackでは、
{
"device": "{device}",
"payload": "{data}"
}
と設定されたdeviceとpayloadを指定しています。
####Webhook (SlackへWebhook)
ここでは、Webhook URLとして、slackで設定したIncoming WebhookのURLを入力します。
##SigfoxクラウドでCallbackを作成
SigfoxクラウドでのCallbackの基本的な設定方法はこちらを見てください。
その上で、今回の設定例は下表のとおりとなります
項目 | 設定例 | 補足 |
---|---|---|
Url pattern | https://xx.xx.xx.xx:8080/data | ReekohのSigfox GWのIPアドレスを入れます |
Use HTTP Method | POST | |
Body | {"device": "{device}","payload": "{data}"} | ReekohのConverter Pluginのhandler.jsで使います |
##SlackでIncoming Wehookを設定
基本的なIncoming Webhookの設定方法はこちらがわかりやすかな。
SlackでWebhookで受けたテキストメッセージを表示するChannelを作った後(今回は#reekohというチャネルを例にします)、下記URLからIncoming Webhookの設定をします。
https://slack.com/services/new/incoming-webhook
下記のページでChoose a ChannelというところでWebhookを受けるChannelを選択します。(今回は#reekoh)
Add Incoming Webhooks Integrationボタンをクリックすると自動的にIncoming Webhook URLが生成されますので、それをコピーして、上述の通り、Reekoh Pipeline StudioのWebhooks Plugin設定に入力してください。
最後に、ReekohのPipelineをSave&Deployすると、下図のようにSigfoxデバイスからのメッセージがSlackのチャネルに届きます。