IoT に限らず、普段の生活において「複数の情報を基に判断する」ことは一般的です。例えば温度だけでなく湿度も使って、体感温度がひどく暑い日に警告を出すような仕組みがあります。他にも人感センサーと照度センサーによる照明の自動制御などもあります。
SORACOM Lagoon 3 (以下、Lagoon 3) は、そうした「複数の情報に基づき通知を出す」を実現できます。このブログでは Lagoon 3 の通知の基本的な使い方をご存知の方向けに、もう一歩進んだ「複数のデータを通知条件に使う」方法をご紹介します。
SORACOM Lagoon の通知機能とは
Lagoon 3 は、IoT データの「ダッシュボード作成」と「通知」を行う SORACOM のサービスです。この記事で注目するのは「通知」の機能で、これは IoT デバイスが収集したデータに基づき、条件を満たしたときに通知してくれる機能です。
Lagoon 3 で通知を設定するには、まず Alert rule を作成します。Alert rule の設定では、[Query] 時間の範囲を指定してデータを取り出す、[Reduce] 取り出したデータを 1 つの数値にまとめる、[Threshold] まとめた数値と基準値とを比べる、の 3 つの段階を踏みます。これが Alert rule の基本的な考え方です。
Lagoon 3 の通知の基本的な考え方を詳しく知りたい方は、ブログ記事 SORACOM Lagoon 3 の Alert rule の考え方をマスターして、最適な通知を作成 も参考にしてみてください。
[Math] で、複数の値を使って計算する
Lagoon 3 では複数のデータを組み合わせた通知を設定できます。鍵となるのは [Math] です。[Math] は、データを取り出す [Query]、まとめる [Reduce]、比べる [Threshold] と組み合わせて使う Alert rule の部品です。
たとえば温度と湿度を組み合わせた指標 (体感温度) を計算し、その値に応じた通知を行うには、次のように設定します。
- まず過去 1 時間の平均温度を取得するために、[Query] で過去 1 時間の温度のデータ系列を取得し、[Reduce] でそれらを平均化します (下図の左上の 2 つ)
- 次に過去 1 時間の平均湿度を取得するために [Query] と [Reduce] をもう 1 つずつ追加し、[Query] で過去 1 時間の湿度のデータ系列を取得し、[Reduce] でそれらを平均化します (下図の左下の 2 つ)
- [Math] を使い、温度の平均値と湿度の平均値を使って四則演算を行い、必要な指標を算出する (下図の黄部)
- 最後に [Threshold] を使い、[Math] で算出した指標と基準値を比べ、通知の出す出さないを判定する (下図の右部)
見ての通り、Lagoon 3 の通知設定の基本「取り出す」「まとめる」「比べる」に 1 つ「計算する」の段階を追加しただけです。これだけの工夫で、さらにきめ細やかな通知条件を設定できるのです。
下の画像は、実際の Lagoon 3 の Alert rule の設定画面で、[Math] に計算式を書いた様子です。式中の変数名には、他の Expression に設定した名前を利用できます。日本語で書くと分かりやすいので、この例では日本語の名前をつけています。
[Math] を使った通知設定の実践的なチュートリアルを試したい方は、2 つのセンサーの温度差が 7 °C を超えた場合に Slack で通知する を試してみてください。[Math] の使い方のイメージがよりクッキリするはずです。
演算処理を含む高度な通知も SORACOM Lagoon 3 で!
[Math] は数値同士の演算だけでなく、真理値の演算 (論理和 ||
、論理積 &&
、否定 !
) にも対応しています。[Threshold] の出力は真理値 (TRUE
なら Alert を出す、FALSE
なら Alert を出さない) であるため、これらを [Math] で演算することも可能です。たとえば「温度が 10 ℃ 以下」または「湿度が 99% 以上」なら Alert を出す、といった設定ができるのです。
高度な通知条件が必要な方は、ぜひ Lagoon 3 の Alert rule の [Math] を試してみてください。Lagoon 3 は利用開始から最大 2 ヶ月間は無料で利用できますし、Free プランもありますよ!
― ソラコム 小林 (tau)