1 つの Grafana パネル内で InfluxDB の 1 つの測定値からの複数の値の差を表示します。

1 つの Grafana パネル内で InfluxDB の 1 つの測定値からの複数の値の差を表示します。

現在、Grafana パネルで 2 つのセンサーの結果の差を表示しようとしています。InfluxDB データベースには、両方のセンサーの値を保持する測定値があります。

> SELECT * FROM "Vergleich" WHERE time>now()-2m
name: Vergleich
time                rh_dht22 rh_tfa temp_dht22 temp_tfa           tp_dht22 tp_tfa
----                -------- ------ ---------- --------           -------- ------
1611407400000000000          45                21.883333333333333          9.40611175608533
1611407433000000000 47              21.3                          9.5
1611407460000000000          45                21.833333333333332          9.360802312324173
1611407493000000000 47              21.2                          9.4

両方のセンサー (DHT22 と一部の TFA デバイス) にそれぞれ 3 つの値を保存しました。同じタイムスタンプは提供されませんが、問題にはなりません。さまざまなセンサーがどの程度同様のデータを提供しているかを確認するために、差を計算したいと思います。

流入からいくつかの有用なデータを取得できます:

> SELECT mean("temp_dht22") - mean("temp_tfa") AS "d_temp_dht22" FROM "Vergleich" WHERE time>now()-5m GROUP BY time(60s) fill(null)
name: Vergleich
time                d_temp_dht22
----                ------------
1611407220000000000
1611407280000000000 -0.6000000000000014
1611407340000000000 -0.6000000000000014
1611407400000000000 -0.5833333333333321
1611407460000000000 -0.6333333333333329
1611407520000000000

残念ながら、これをGrafanaパネルに追加することはできません。クエリを追加してこのコードを入力すると

SELECT mean("temp_dht22") - mean("temp_tfa") AS "d_temp_dht22" FROM "Vergleich" WHERE $timeFilter GROUP BY time($__interval) fill(null)

自動的に変更されます

SELECT "temp_dht22" -, "temp_tfa" AS "d_temp_dht22" FROM "Vergleich" WHERE $timeFilter GROUP BY time($__interval) fill(null)

グラフには「データなし」とだけ表示されます。

私の Grafana のバージョンは「v7.3.7 (1e261642f4)」で、Raspberry 3B+ と RaspiOS Buster で実行しています (2020 年 12 月 2 日の画像)。

パネルのフィールドにクエリを挿入する方法に関するヒントがあれば、ぜひ教えてください。

関連情報