Help us understand the problem. What is going on with this article?

ReekohでSigfoxメッセージをSlackにWebhookする

More than 1 year has passed since last update.

Reekohとは

Reekohとは、IoTデータをNode-REDのようにハードウェアデバイス/APIをオンラインサービスに接続したり、独自のダッシュボードを構築することができるクラウドサービスです。
ただ、フリーサービスではないので、Reekoh社及び代理店からの提供されるエンタープライズ向けツールです。

ReekohでSigfoxデバイスメッセージをSlackにWebhookする

大まかな流れは下記の通りとなります。

  1. Reekohでパイプラインを作成
  2. SigfoxクラウドでCallbackを作成
  3. SlackでIncoming Webhookを設定

Reekoh Pipeline Studioでパイプラインを作成

細かい操作方法は割愛しますが、作成するパイプラインは下図のようなものとなります。
image.png

左から下表のPluginを配置し、各Pluginを接続しています。

Plugin 説明
image.png Sigfox GW SigfoxクラウドからのCallbackを受け取る
image.png Converter 受け取ったデバイスデータをSlack Webhook用JSONに変換する
image.png Webhooks SlackにWebhookする

各Pluginの設定

Sigfox GW

SigfoxクラウドからのCallbackを受け取れるようReekoh社から提供されているPluginです。
特に設定する必要はなく、Saveすると、少し時間をおいて、Callback受信用のIPアドレスが発行されます。(下図赤字のところに表示されるので、この後のSigfoxクラウド側での設定に使います)
image.png

Converter (SigfoxデバイスデータからSlack用JSON)

次にConverterの設定をします。Converter設定のhandler.jsに変換ロジックをJavascriptで入力します。

handler.js
'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を入力します。
image.png

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)
image.png
Add Incoming Webhooks Integrationボタンをクリックすると自動的にIncoming Webhook URLが生成されますので、それをコピーして、上述の通り、Reekoh Pipeline StudioのWebhooks Plugin設定に入力してください。
image.png

最後に、ReekohのPipelineをSave&Deployすると、下図のようにSigfoxデバイスからのメッセージがSlackのチャネルに届きます。
図1.png

他にもReekohプラットフォームにはダッシュボード作成機能などもありますので、次に投稿します。
image.png

Sigfox Japan KCCS

sigfox
IoT向け無線ネットワーク Sigfoxを日本国内で構築運用
https://www.kccs-iot.jp/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした