技術情報
ReekohでSigfoxメッセージをSlackにWebhookする
2018.10.04
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のチャネルに届きます。
他にもReekohプラットフォームにはダッシュボード作成機能などもありますので、次に投稿します。