#sql #influxdb #home-assistant
Вопрос:
Я настроил Influxdb для настройки моего домашнего помощника для записи различных данных датчиков. Некоторые данные датчиков я буду хранить с помощью непрерывного запроса для более длительной политики хранения, чем 1 неделя. Это отлично сработало для большинства моих данных, таких как температура, влажность и т. Д.
Тем не менее, я хотел бы сохранить максимальный уровень освещенности в течение дня с помощью непрерывного запроса. Я создал следующий sql-запрос Influxdb:
CREATE CONTINUOUS QUERY cq_1d_max_lightlevel ON homeassistant
BEGIN
SELECT daily_max AS value INTO homeassistant.year.lightlevel
FROM (SELECT max(value) AS daily_max
FROM homeassistant.autogen.lightlevel
GROUP BY time(1d), entity_id)
GROUP BY entity_id
END
Если я выполню запрос «Выбрать» вручную в представлении «Исследование», результаты будут выглядеть правильными для меня:
Однако после создания непрерывного запроса в пользовательском интерфейсе, если я перейду на homeassistant.year.lightlevel, поле «значение» не отображается, как в других непрерывных запросах, которые у меня есть:
Если я запрошу таблицу homeassistant.year.lightlevel, в ней ничего не будет, даже если я подожду достаточно долго, чтобы в нее были внесены данные. Итак, есть ли что-то тонкое, но очевидное, чего мне здесь не хватает как новому пользователю Influxdb?
ПРАВКА: при втором взгляде я не совсем понимаю, почему я использовал подзапрос в исходном запросе. На данный момент я создал следующий запрос, чтобы проверить, работает ли он так, как ожидалось:
CREATE CONTINUOUS QUERY cq_1d_max_lightlevel ON homeassistant
BEGIN
SELECT max(value) AS value INTO homeassistant.year.lightlevel
FROM homeassistant.autogen.lightlevel
GROUP BY time(1d), entity_id fill(previous)
END