我正在从我的 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 true
orfalse
值来查看它是否打开。
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)
这仅返回灯亮的点。
我想做一些类似于CASE
MySQL 中的语句的事情:
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 中构建仪表板。