LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

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

概要

 日頃、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で入れる」とか面白そうですね(^^)

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
What you can do with signing up
2