Node Red Dashboard Chart + SQL DB

Автор: | 2021-09-17

Встречается ситуация в которой требуется читать исторические данные из базы и рисовать график. Как “умная Маша” конечно начал решать вопрос с изучения 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]   
    }
  ]
)

Node Red Dashboard Chart + SQL DB: 2 комментария

  1. eyeheads

    hello, how can i solve this problem with this page showing? eyeg

Обсуждение закрыто.