Встречается ситуация в которой требуется читать исторические данные из базы и рисовать график. Как “умная Маша” конечно начал решать вопрос с изучения flows.nodered.org где и нашел пример анонсированный для решения именно такой задачи. На первый взгляд подходящий.
Делаем запрос в БД
SELECT data1,data2,time FROM dbasename WHERE time > {{payload}}
Узлом node-red: change, следующей функцией форматируется вывод
(
$series := [
{"field":"data1","label":"Температура"},
{"field":"data2","label":"Давление"}
];
$xaxis := "timestamp";
[
{
"series": $series.label,
"data": $series.[
(
$yaxis := $.field;
$$.payload.{
"x": $lookup($, $xaxis),
"y": $lookup($, $yaxis)
}
)
]
}
]
)
Передаем в Dashboard.chart. Видим два графика: data1 data2. На первый взгляд решение годное.
Однако мне нужно рисовать один график, и это решение никак не работает в этом случае. А всё дело в неполном, небрежном коде функции форматирования данных. Правильный код функции форматирования должен выглядеть так:
(
$series := [ {"field": "data1", "label": "Температура"} ];
$xaxis := "timestamp";
[
{
"data":[[ $series.[
(
$yaxis := $.field;
$$.payload.{
"x": $lookup($, $xaxis),
"y": $lookup($, $yaxis)
}
)
]]],
"labels":[$series.label],
"series":[$series.label]
}
]
)
hello, how can i solve this problem with this page showing? eyeg
What’s the problem?