Daten aus MYSQL in einer Node-Red Chart darstellen

tmessers

New member
Guten Abend liebe Heimnetz-Gemeinde,

ich bin neu hier und hoffe ich finde hier Hilfe.
Zu meinem Problem:
Ich schreibe Daten meiner Solaranlage in einen MariaDB Datenbank. Das funktioniert sehr gut.
In einem zweiten Schritt lese ich die maximale Leistung jedes einzelnen Tages aus. Ich verwende dazu folgende Query:

"SELECT max(leistung), date_format(zeit, '%Y-%m-%d') from daten where zeit>'2024-01-01'GROUP BY date_format(zeit, '%Y-%m-%d');

ich erhalte im Terminal folgende Ausgabe. Genau diese Werte brauche ich.
+---------------+-------------------------------+
| max(leistung) | date_format(zeit, '%Y-%m-%d') |
+---------------+-------------------------------+
| 0.52 | 2024-02-11 |
| 295.62 | 2024-02-12 |
| 378.45 | 2024-02-13 |
| 356.39 | 2024-02-14 |
| 311.85 | 2024-02-15 |
| 158.21 | 2024-02-16 |
| 193.26 | 2024-02-17 |
| 203.7 | 2024-02-18 |
| 428.76 | 2024-02-19 |
| 461.92 | 2024-02-20 |
| 238.06 | 2024-02-21 |
| 47.93 | 2024-02-22 |
| 503.53 | 2024-02-23 |
| 494.29 | 2024-02-24 |
| 454.84 | 2024-02-25 |
| 399.26 | 2024-02-26 |
| 317.08 | 2024-02-27 |
| 410.1 | 2024-02-28 |
+---------------+-------------------------------+

Im Debug-Node ist die Darstellung wie folgt:


array[18]
[0 … 9]
0: object
max(leistung): 0.52
date_format(zeit, '%Y-%m-%d'): "2024-02-11"
1: object
max(leistung): 295.62
date_format(zeit, '%Y-%m-%d'): "2024-02-12"
2: object
max(leistung): 378.45
date_format(zeit, '%Y-%m-%d'): "2024-02-13"
3: object
4: object
5: object
6: object
7: object
8: object
9: object
[10 … 17]

ich möchte diese Daten an eine Chart-Node übergeben, um sie darzustellen.
Um dies zu tun, habe ich mir angelsen, dass ich die Daten ins JSON-Format
überführen muss. Ein Beispiel habe ich aus dem Netz gezogen. Leider bekomme ich die Fehlermeldung
"series not array".

Meine Change-Node enthält den folgenden Code.
(
Code:
(
   $series := [
       {
           "field": "max(leistung)",
           "label": "max(leistung) label"
       }
  ];
   $xaxis := "date_format(zeit, '%Y-%m-%d')";
   [
       {
           "series": $series.label,
           "data": $series.[
               (
                   $yaxis := $.field;
                   $$.payload.{
                       "x": $lookup($, $xaxis),
                       "y": $lookup($, $yaxis)
          }
        )
      ]
    }
  ]
)

Weiß jemand, wo mein Fehler liegt?

LG tmessers
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.591
Beiträge
46.964
Mitglieder
4.234
Neuestes Mitglied
andreassw14
Zurück
Oben