12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

obnizAdvent Calendar 2019

Day 1

obnizとNode-REDを連携した活用法

Last updated at Posted at 2019-11-30

#概要
 日頃、obnizNode-REDと連携して使っています。この組み合わせで利用されている記事を見かけないので、私の活用法をご紹介します。

#活用法
 obnizにはサーバレスイベントというサービスがあります。
 obnizで定期的にセンサデータを取得したい場合、外部から定期的にhttp requestが必要になってきます。この「外部から定期的に」をobnizクラウドに設定するだけで自動で実行してくれる仕組みが「サーバレスイベント」です。※注意点として、1日のトリガ数は最多で120回に制限されています。

 サーバレスイベントには次のようなトリガーを設定できます。
image.png

 「定期的に」だけならこのサーバレスイベントだけ実現可能だと思います。自分の場合、外部サービス(Web API等)をトリガとして動かしたいことがありました。
 サービスの連携といえばNode-REDですね。ということで、Node-REDからobnizのプログラムを動かす仕組みを作ってみました。

##サーバレスイベントの設定
 obnizの開発者コンソールを開くと、画面左側に「サーバレスイベント」という項目があるので、これを選択します。
image.png

次に、サーバレスイベントを新規作成します。
image.png

サーバレスイベントの設定で注意するところは、きっかけの項目をWebhookにすることです。他は実行するWebAPPにサーバレスイベントで実行したいobnizのリポジトリを選択します。記入が終わったら「作成ボタン」を押して確定します。

image.png

##サーバレスイベントの実行確認
 サーバレスイベント作成後、次のような画面となります。画面右の「テスト実行ボタン」を押して{"status":"OK"}と表示されれば設定完了です。

image.png

 後ほど、EndpointのURLをNode-REDで使用するので、メモ帳などにコピーしておきます。
image.png

##Node-REDのフローを作る
 Node-REDでは外部サービスからのトリガを受けて、http requestを行います。
http requestを利用するには次のようなフローを作成します。今回は外部サービスからのトリガの代わりに、injectノードを使用しています。injectノードは周期的にトリガをかけることや、ノード横のボタンを押すと事でトリガをかけることができます。

image.png

 http requestノードの設定を開き、URL欄にサーバレスイベントのEndpointに記載されたURLを入力します。
image.png

 URLの設定後デプロイを行い、injectノードのボタンを押すとサーバレスイベントに登録されたプログラムが実行されます。Node-REDのデバッグコンソールを確認し、{"status":"OK"}と表示されていれば正常に実行できていることになります。

image.png

#おわりに
 obnizで何か動かす事はとっても楽しいと思います。Node-REDと組み合わせればできることの範囲が広がり、楽しいこともいっぱい増えると思います。
 例えば、「今日の最低気温がxx℃を下回っていたら、yy時にエアコンの電源をobnizで入れる」とか面白そうですね(^^)

12
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?