Я собираю метрики из моего моста Филипса Хью и помещаю их в 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"
для значения true
или false
.
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? В конечном счете, я буду строить панели инструментов в Графане, если это имеет значение.