Добрый день!
Возникла проблема с написанием правила с использованием wb-mqtt-db-cli
При запросе на определенные даты и время, функция возвращает неверные даты.
Запрос выглядит так:
'wb-mqtt-db-cli -h 10.20.9.14 --from “${day}” --limit 1 --decimal-places 1 bar-control/water_consumption |tail -1 ’
var today = new Date()
Где day = new String(today.setHours(0,10,0)).slice(0, -10) // формат 2022-08-18 00:10:00
Возвращается ответ функции : bar-control/water_consumption 2022-08-12 13:01:41
Если писать в ручную нужную дату, без переменной, то все работает
Это баг? или есть какое-то решение?
Добрый день.
Как я понимаю по этому примеру: Как работать с базой данных HIstory. wb-mqtt-db - #73 от пользователя BrainRoot
Очень непонятно что такое “${day}”
То есть каким образом “day” из js попадает в переменные bash?
Да, по этому примеру.
На счет day:
Мой ход мыслей был такой, что в runShell попадает строка с данными, в которую я могу вставить переменную согласно работе js ( через апостроф )
runShellCommand(“wb-mqtt-db-cli -h 127.0.0. …”)
Может это не верно, но тогда вопрос, как делать ежедневный “отчет”, если в bash можно записать только “руками” дату и время?
Зачем “в bash”? Да, можно, определить в запускаемой сессии переменную но тут не имеет смысла. Отправляйте в runShell готовую строку, ну так например:
runShellCommand("wb-mqtt-db-cli -h 127.0.0.1 --from '"+day+"' --limit 1 -d';' wb-adc/5Vout |tail -1 | cut -f 3 -d';'",
При такой конкатенации функция возвращает пустоту, идет описание, но данных нет , как и ошибок. В истории данные есть.
cmd output: channel time average min max
Строчку ж покажите, которая получается для выполнения…
runShellCommand(“wb-mqtt-db-cli -h 10.20.9.14 --from '”+ day +"’ --limit 1 --decimal-places 1 bar-control/water_consumption |tail -1| cut -f 3 -d’;’"
Это понятно, имею в виду что именно формируется, в лог вывести.
Скрин выше, это именно лог, вот само правило
Имею в виду - какая строка отправляется в функцию? Вот в RunShellCommand что в итоге передается?
Опять же, если про дату, то на скрине, где и лог.
2022-08-19 00:10:00
Нет. Или дайте работающий пример кода, текстом, не картинкой или покажите именно выполняющуюся, передающуюся в shell строку.