はじめに
InfluxDBのQuery言語は、InfluxQLで表記します。言語仕様はこちら。
SQLと似ている面がありますが、ちょっとしたフィールド間の計算の仕方で戸惑ってしまいました。分かってしまえば、全然普通の記法で良いのですが、迷った点をアップしておきます。
InfluxDBに保存してある気温と湿度
センサーから得た気温と湿度は、InfluxDBに以下の形で格納されています。コマンドプロンプトから influxコマンドで接続して確認しました。
$ influx
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> use influx_iot01
Using database influx_iot01
> show measurements
name: measurements
name
----
bme280_101
pir_bed
table1
tof
> select * from table1 limit 5
name: table1
time hum temp
---- --- ----
1590678854985666143 70.22 17.7
1590679151614186158 70.42 17.58
1590679448330920972 72.27 17.41
1590679745266150226 72.48 17.4
1590680042062531150 72.58 17.43
>
不快指数の計算式
不快指数の計算式は、Wikipediaによると、
GrafanaのQueryで入力
可視化したいパネルを選択した後、通常のQuery選択画面から、要素を選択していく方法では、今回のような計算式を含むQueryを入力できませんでしたが、「鉛筆マーク」をクリックした後で、直接 InfluxQL文法でQueryを書いてしまえば問題なくできました。
ただ、入力した後、鉛筆マークを再度クリックすると、元に戻ってしまいますので、この状態で保存する必要があります。使ったQueryは以下。
SELECT mean("temp") *0.81+ mean("hum") * 0.01 * (mean("temp") * 0.99 - 14.3) + 46.3
FROM "table1" WHERE $timeFilter GROUP BY time(5m) fill(null)
しきい値で表示色を変える設定
Fieldのタブから、Thresholdを選択し、しきい値と色を選択すればOKです。
アラートを出す
アラートをメールに送る方法は、別途試してみます。