#概要
日頃、obnizをNode-REDと連携して使っています。この組み合わせで利用されている記事を見かけないので、私の活用法をご紹介します。
#活用法
obnizにはサーバレスイベントというサービスがあります。
obnizで定期的にセンサデータを取得したい場合、外部から定期的にhttp requestが必要になってきます。この「外部から定期的に」をobnizクラウドに設定するだけで自動で実行してくれる仕組みが「サーバレスイベント」です。※注意点として、1日のトリガ数は最多で120回に制限されています。
「定期的に」だけならこのサーバレスイベントだけ実現可能だと思います。自分の場合、外部サービス(Web API等)をトリガとして動かしたいことがありました。
サービスの連携といえばNode-REDですね。ということで、Node-REDからobnizのプログラムを動かす仕組みを作ってみました。
##サーバレスイベントの設定
obnizの開発者コンソールを開くと、画面左側に「サーバレスイベント」という項目があるので、これを選択します。
サーバレスイベントの設定で注意するところは、きっかけの項目をWebhookにすることです。他は実行するWebAPPにサーバレスイベントで実行したいobnizのリポジトリを選択します。記入が終わったら「作成ボタン」を押して確定します。
##サーバレスイベントの実行確認
サーバレスイベント作成後、次のような画面となります。画面右の「テスト実行ボタン」を押して{"status":"OK"}と表示されれば設定完了です。
後ほど、EndpointのURLをNode-REDで使用するので、メモ帳などにコピーしておきます。
##Node-REDのフローを作る
Node-REDでは外部サービスからのトリガを受けて、http requestを行います。
http requestを利用するには次のようなフローを作成します。今回は外部サービスからのトリガの代わりに、injectノードを使用しています。injectノードは周期的にトリガをかけることや、ノード横のボタンを押すと事でトリガをかけることができます。
http requestノードの設定を開き、URL欄にサーバレスイベントのEndpointに記載されたURLを入力します。
URLの設定後デプロイを行い、injectノードのボタンを押すとサーバレスイベントに登録されたプログラムが実行されます。Node-REDのデバッグコンソールを確認し、{"status":"OK"}と表示されていれば正常に実行できていることになります。
#おわりに
obnizで何か動かす事はとっても楽しいと思います。Node-REDと組み合わせればできることの範囲が広がり、楽しいこともいっぱい増えると思います。
例えば、「今日の最低気温がxx℃を下回っていたら、yy時にエアコンの電源をobnizで入れる」とか面白そうですね(^^)