2

我正在从我的 philips hue 桥中收集指标并将它们放入 InfluxDB。我希望能够在仪表板上显示其中一些指标。

一个基本查询如下所示:

SELECT mean("state.bri") AS "mean_state.bri" FROM "telegraf_hue"."autogen"."hue" WHERE time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null)

这会返回一个漂亮的图表,显示灯光的亮度级别。

基本查询结果

这个查询的问题是灯实际上并没有一直亮着。Hue Bridge 会返回最后的亮度级别,即使它已关闭。

"state.on"我可以通过检查a trueorfalse值来查看它是否打开。

SELECT mean("state.bri") AS "mean_state.bri" FROM "telegraf_hue"."autogen"."hue" WHERE "state.on" = true AND time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null)

这仅返回灯亮的点。

查询结果亮的位置

我想做一些类似于CASEMySQL 中的语句的事情:

SELECT CASE WHEN "state.on" = true THEN mean("state.bri") ELSE 0 END FROM "telegraf_hue"."autogen"."hue" WHERE time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null)

这行不通。它失败了:

Request failed with status code 400

我怎样才能用 InfluxDB 完成类似的事情?最终,如果这很重要,我将在 Grafana 中构建仪表板。

4

0 回答 0