Встроенные средства получения усредненных за интервал значений

Есть ли встроенные средства для получения усредненных за интервал значений?
Если более точно - нужно сделать триггер формата “минимальное значение за последние пять минут выше заданного”.

Нет. Для этого предназначен движок правил.

В движке есть доступ к истории значений?

Добрый день.
Нет, прямого нету.
Можно, например так: Как работать с базой данных HIstory. wb-mqtt-db - #73 от пользователя BrainRoot
А можно через RPC.

Мне кажется, проще при каждом получении значения проверять, выше оно уставки, или нет. Если выше - взводить таймер на 5 мин. Если (выше) И (взведен таймер) - ничего не делать. Если ниже - сбрасывать таймер. Если таймер сработал - фиксировать событие.

Да, не находил этой ветки. Спасибо!

Тоже вариант. Попробуем. Спасибо!

Видимо я уже пробовал эту wb-mqtt-db-cli. Не разобрался, как получить нужный результат.
Выбрал интервал в час. Смотрю график температуры - “пила” от 5 до 17 градусов.
Запрос
wb-mqtt-db-cli --from ‘2023-06-28 4:0:0’ --to ‘2023-06-28 5:0:0’ wb-w1/28-00000eb8a342
дает на выходе
channel time average min max
wb-w1/28-00000eb8a342 2023-06-28 04:59:56.858000 5.53954545454545 4.937 6.375

Это баг, исправим.
Показал разработчикам.

Спасибо!
А можно еще уточнить - в базе записи идут как “значение”, “мин”, “макс”. А что означают последние два поля, если речь о данных с 1-Wire термометра?

Вообще можно и не использовать wb-mqtt-db-cli
Сервис имеет RPC, описанный
То есть можно mqtt_publish использовать, пример раюоты с RPC тут: Подключение счетчика Энергомера CE307 R33.145.ОA.N - #17 от пользователя BrainRoot

Минимальное за период и максимальное.

Этот вариант тоже пробовал. С аналогичным неуспехом.

Нет, штатный интерфейс именно по нему и работает.

Я так пробовал (возможно не соответствует ответ запросу, не могу в истории точно найти, сейчас не отвечает совсем):

/rpc/v1/db_logger/history/get_values/mqttx_2dc22ec6

{
	"id": 2233,
	"params": {
		"ver": 0,
		"channels": [
			["wb-w1", "28-00000eb85f7a"]
		],
		"timestamp": {
			"gt": 1686240349,
			"lt": 1686240949
		},
		"max_records": 1
	}
}



/rpc/v1/db_logger/history/get_values/mqttx_2dc22ec6/reply

{"error":null,"id":2233,"result":{"values":[{"control":"28-00000eb85f7a","device":"wb-w1","max":"21.437","min":"21","retain":false,"timestamp":1686240532,"uid":57518,"value":"21.213"},{"control":"28-00000eb85f7a","device":"wb-w1","max":"21.75","min":"19.875","retain":false,"timestamp":1686240892,"uid":57560,"value":"21.375"}]}}

Пока написали скрипт на питоне с прямым доступом к базе - выборка value за интервал для данного контрола и потом усреднение и запись результата в топик виртуального “усредненного” устройства.

Конечно, это решение. Напишу, наверно пример из wb-rules, у меня запросы к базе отрабатывают.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.