Есть ли встроенные средства для получения усредненных за интервал значений?
Если более точно - нужно сделать триггер формата “минимальное значение за последние пять минут выше заданного”.
Нет. Для этого предназначен движок правил.
В движке есть доступ к истории значений?
Добрый день.
Нет, прямого нету.
Можно, например так: Как работать с базой данных 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 дней после последнего ответа. В ней больше нельзя отвечать.