konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【Xi IoT実装】温度計アプリを実装してみる Slack連携 その1

せっかくなので、前回のXi IoTで温度計を表示するだけじゃXi IoTである必要はまったく無いので、Slackへ通知をしてみたいと思います

Slackで通知する方法は2種類を検討
 1.現時点の温度を送信 ←今回はここ
 2.指定値を越えたら通知
を実装します!
今回はまずシンプルに送信を実装します

Python からSlackへhttpでなげる

Xi IoT用にSlack作ります
おつぎにSlack上でAPIトークンを作成します
このAPIトークンは古い方法にということですが、Slackの開発自体が目的ではないのでこのままいきます
これでサクッと好きなSlackチャネルに好きなメッセージを飛ばせます

import json
import urllib3
urllib3.disable_warnings()

http = urllib3.PoolManager()
url = 'https://slack.com/api/chat.postMessage'
headers = {
    'Authorization': 'Bearer {トークン}',
    'Content-Type': 'application/json; charset=utf-8'
}
method = 'POST'

# 
data = {
    "channel": "#xi-iot温度計",
    "username": "xi-iot",
    "icon_emoji": ":thermometer:",
    "text": slack_msg
}

json_data = json.dumps(data).encode("utf-8")

req = http.request(url=url, body=json_data, headers=headers, method=method)
print(json.loads(req.data.decode('utf-8')))


ちゃんとSlackへメッセージとんできました
f:id:konchangakita:20200301164902p:plain


Xi IoTへ実装してみる

つぎにData Pipelineへ実装してSlackへとばせるか、テストします
上記のPythonコードをFunction、Data Pipelineへ設置します

Functionには、Tensorflow Pythonで実装
f:id:konchangakita:20200303041946p:plain
Xi IoTのFunction用に関数化してこんな感じで


Data Pipelineに設置して
f:id:konchangakita:20200303042032p:plain


Slackにバシバシ飛んでくるようになりました
f:id:konchangakita:20200303041829p:plain

次にやること

今はひたすら垂れ流しなっているなっているので、定期送信にする
しきい値設定で通知