Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Visualisierung mit Node Red erstellen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Visualisierung mit Node Red erstellen

Scheduled Pinned Locked Moved Visualisierung
4.8k Posts 4 Posters 2.5m Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Damrak2022D Damrak2022

    @mickym Meinst Du so?

    payload[10]._value
    

    Das ist die Systole

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by
    #3136

    @damrak2022 Nein Du sollst den Wert aus dem Debug-Fenster kopieren, der aus der Debug Node rauskommt - aber ganz oben, wie man das sauber macht mit "Wert kopieren".

    copy path.gif

    Ich hab das Gefühl - wir fangen wieder bei NULL an.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    Damrak2022D 1 Reply Last reply
    0
    • mickymM mickym

      @damrak2022 Nein Du sollst den Wert aus dem Debug-Fenster kopieren, der aus der Debug Node rauskommt - aber ganz oben, wie man das sauber macht mit "Wert kopieren".

      copy path.gif

      Ich hab das Gefühl - wir fangen wieder bei NULL an.

      Damrak2022D Offline
      Damrak2022D Offline
      Damrak2022
      wrote on last edited by
      #3137

      @mickym

      {"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"}
      

      Sorry, stehe gerade völlig auf dem Schlauch.

      Mit besten Grüßen
      Andy

      mickymM 1 Reply Last reply
      0
      • Damrak2022D Damrak2022

        @mickym

        {"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"}
        

        Sorry, stehe gerade völlig auf dem Schlauch.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by
        #3138

        @damrak2022 Das ist doch nur ein Objekt - aber schon besser.

        72cbbd8d-748b-419f-b41f-7b9020fccaff-image.png

        Du kannst doch mit der Maus ganz oben den Wert kopieren, sodass das ganze Array enthalten ist.

        aec60912-f6e8-4344-8602-6f8d85945df6-image.png

        Also direkt mit der Maus in die Zeile wo array[12] stehen und den Wert kopieren. Ich dachte eigentlich, dass Du das weißt, wie man in dem Debug Fenster Pfade und Werte kopierst.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        Damrak2022D 1 Reply Last reply
        0
        • mickymM mickym

          @damrak2022 Das ist doch nur ein Objekt - aber schon besser.

          72cbbd8d-748b-419f-b41f-7b9020fccaff-image.png

          Du kannst doch mit der Maus ganz oben den Wert kopieren, sodass das ganze Array enthalten ist.

          aec60912-f6e8-4344-8602-6f8d85945df6-image.png

          Also direkt mit der Maus in die Zeile wo array[12] stehen und den Wert kopieren. Ich dachte eigentlich, dass Du das weißt, wie man in dem Debug Fenster Pfade und Werte kopierst.

          Damrak2022D Offline
          Damrak2022D Offline
          Damrak2022
          wrote on last edited by
          #3139

          @mickym

          [{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.438Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.52Z","_value":71,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:51:28.093Z","_value":114,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.392Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.442Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":85,"_field":"value","_measurement":"Puls"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:25.342Z","_value":127,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.439Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":107,"_field":"value","_measurement":"Systole"}]
          

          Mit besten Grüßen
          Andy

          mickymM 2 Replies Last reply
          0
          • Damrak2022D Damrak2022

            @mickym

            [{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.438Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.52Z","_value":71,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:51:28.093Z","_value":114,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.392Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.442Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":85,"_field":"value","_measurement":"Puls"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:25.342Z","_value":127,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.439Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":107,"_field":"value","_measurement":"Systole"}]
            
            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by
            #3140

            @damrak2022 Sehr gut! 👍 👍

            Nun kann ich mit den gleichen Daten selbst rumprobieren:

            4e0b827f-f3a0-4e91-8f75-be9b447260d1-image.png

            So was sollte aber inzwischen selbstverständlich sein. 😉 - Also Danke!

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            1 Reply Last reply
            0
            • Damrak2022D Damrak2022

              @mickym

              [{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:55.302Z","_value":84,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.438Z","_value":78,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":0,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.52Z","_value":71,"_field":"value","_measurement":"Diastole"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:51:28.093Z","_value":114,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.392Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.442Z","_value":106,"_field":"value","_measurement":"Puls"},{"result":"_result","table":1,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":85,"_field":"value","_measurement":"Puls"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T05:50:25.342Z","_value":127,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-23T06:07:26.39Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:07:26.439Z","_value":114,"_field":"value","_measurement":"Systole"},{"result":"_result","table":2,"_start":"2023-01-19T00:35:58.94679632Z","_stop":"2023-01-26T00:35:58.94679632Z","_time":"2023-01-24T07:22:26.521Z","_value":107,"_field":"value","_measurement":"Systole"}]
              
              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by mickym
              #3141

              @damrak2022 So ich habs fertig - grundsätzlich gilt, dass das Auslesen der Daten aus der Influx DB nur zum Initialisieren des Charts dient - weitere Werte lässt Du direkt in die Chart Node wandern.

              Also die DB Abfrage nur einmal machen - wenn der Flow neu gestartet wird.

              9f8e5220-80ea-4cf5-9180-55c0e2e74cf8-image.png

              Löschen kann man die Chart Node in dem man ihr wie in der ersten Node ein leeres Array übergibt.

              Sprich die Inject Nodes mit Diastole etc. da müssen dann direkt die Datenpunkte über die iobroker IN Node davor und Du musst das topic setzen wie in den Inject-Nodes vorgegeben.

              Die Influx-DB Abfrage machst Du nur einmal beim Neustart des NodeRed Adapters - also einfach einmalig mit einer Inject Node die Query machen und dann in die von mir erstelle Change Node verbinden.

              Und wenn Du das JSONATA so gut verstehst, was ich da drin gemacht habe - dann können wir solche Aufgaben machen. Aber da muss ich selbst rumprobieren und ich glaube, dass Du da noch so weit entfernt bist (Lichtjahre 😁 ), dass wir uns da entsprechend austauschen könnten.

              [
                 {
                     "id": "e79f1c62ef97b36a",
                     "type": "inject",
                     "z": "1983aa28392732ca",
                     "name": "Influx DB Abfrage zur Initialisierung",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "[{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:55.302Z\",\"_value\":84,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.438Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.52Z\",\"_value\":71,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:51:28.093Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.392Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.442Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":85,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:25.342Z\",\"_value\":127,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.439Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":107,\"_field\":\"value\",\"_measurement\":\"Systole\"}]",
                     "payloadType": "json",
                     "x": 220,
                     "y": 280,
                     "wires": [
                         [
                             "efd1ab4c73f3d571",
                             "a9c39616decfa97c"
                         ]
                     ]
                 },
                 {
                     "id": "4d853addf9c082fb",
                     "type": "inject",
                     "z": "1983aa28392732ca",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "Diastole",
                     "payload": "88",
                     "payloadType": "num",
                     "x": 500,
                     "y": 120,
                     "wires": [
                         [
                             "2d8acec0ec2da68e"
                         ]
                     ]
                 },
                 {
                     "id": "2d8acec0ec2da68e",
                     "type": "ui_chart",
                     "z": "1983aa28392732ca",
                     "name": "",
                     "group": "57f13d6f733e5c9d",
                     "order": 2,
                     "width": 0,
                     "height": 0,
                     "label": "Blutdruck und Puls",
                     "chartType": "line",
                     "legend": "true",
                     "xformat": "dd HH:mm",
                     "interpolate": "linear",
                     "nodata": "",
                     "dot": false,
                     "ymin": "",
                     "ymax": "",
                     "removeOlder": 1,
                     "removeOlderPoints": "50",
                     "removeOlderUnit": "604800",
                     "cutout": 0,
                     "useOneColor": false,
                     "useUTC": false,
                     "colors": [
                         "#1f77b4",
                         "#aec7e8",
                         "#ff7f0e",
                         "#2ca02c",
                         "#98df8a",
                         "#d62728",
                         "#ff9896",
                         "#9467bd",
                         "#c5b0d5"
                     ],
                     "outputs": 1,
                     "useDifferentColor": false,
                     "className": "",
                     "x": 770,
                     "y": 180,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "0ca3dc50cb11869a",
                     "type": "inject",
                     "z": "1983aa28392732ca",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "Systole",
                     "payload": "170",
                     "payloadType": "num",
                     "x": 490,
                     "y": 160,
                     "wires": [
                         [
                             "2d8acec0ec2da68e"
                         ]
                     ]
                 },
                 {
                     "id": "efd1ab4c73f3d571",
                     "type": "change",
                     "z": "1983aa28392732ca",
                     "name": "Create Object Arrays",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "[\t   {\t       \"series\" : [\"Systole\",\"Diastole\",\"Puls\"],\t       \"data\": [\t           [\t               payload[_measurement=\"Systole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Diastole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Puls\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ]\t       ],\t       \"labels\" : [\"Systole\",\"Diastole\",\"Puls\"]\t    }\t]",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 500,
                     "y": 280,
                     "wires": [
                         [
                             "2d8acec0ec2da68e",
                             "cb3a1a566bc5679f"
                         ]
                     ]
                 },
                 {
                     "id": "097b4e4032b4bcff",
                     "type": "inject",
                     "z": "1983aa28392732ca",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "Puls",
                     "payload": "75",
                     "payloadType": "num",
                     "x": 510,
                     "y": 200,
                     "wires": [
                         [
                             "2d8acec0ec2da68e"
                         ]
                     ]
                 },
                 {
                     "id": "5b8909ad22babab7",
                     "type": "inject",
                     "z": "1983aa28392732ca",
                     "name": "löschen",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "[]",
                     "payloadType": "json",
                     "x": 510,
                     "y": 60,
                     "wires": [
                         [
                             "2d8acec0ec2da68e"
                         ]
                     ]
                 },
                 {
                     "id": "a9c39616decfa97c",
                     "type": "debug",
                     "z": "1983aa28392732ca",
                     "name": "Array aus InfluxDB Abfrage",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 520,
                     "y": 320,
                     "wires": []
                 },
                 {
                     "id": "cb3a1a566bc5679f",
                     "type": "debug",
                     "z": "1983aa28392732ca",
                     "name": "Array zur Initialisierung der Chart Node",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 830,
                     "y": 280,
                     "wires": []
                 },
                 {
                     "id": "57f13d6f733e5c9d",
                     "type": "ui_group",
                     "name": "Test",
                     "tab": "20b3095113f94d70",
                     "order": 2,
                     "disp": true,
                     "width": "6",
                     "collapse": false,
                     "className": ""
                 },
                 {
                     "id": "20b3095113f94d70",
                     "type": "ui_tab",
                     "name": "Home",
                     "icon": "dashboard",
                     "order": 1,
                     "disabled": false,
                     "hidden": false
                 }
              ]
              

              Du siehst wie man mit einer Change Node durch Filtern von Objekten und gleichzeitiger Neuerstellung - da ist JSONATA wirklich genial, völlig neue Objekte in der gewünschten Form erzeugen kann.

              Oben siehst Du ja das Array mit den Datensätzen aus der InfluxDB - das völlig neu erstellt wird, wie die Chart Node es braucht und wie es in der Beschreibung von Steve stand.

              Aus diesen Objekten:

              27143a53-7527-4859-a933-5d11e0b3beb8-image.png

              wurde diese alle je nach _measurement in verschiedene data Objekte gespeichert und gleichzeitig die Werte für die x und y-Achse generiert.

              6dab5899-8cea-41d3-acec-83c65df5fc89-image.png

              Im ersten Array = grün findest Du alle systolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

              Im zweiten Array = gelb findest Du alle diastolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

              Im dritten Array = hellblau findest Du alle Puls-Werte mit dem timestamp als x und der entsprechenden Wert als y.

              5bf271a7-ca66-41fc-befd-39ccd2d5519a-image.png

              Hier der Inhalt des Change / JSONATA Erstellung des Objektes:

              [
                 {
                     "series" : ["Systole","Diastole","Puls"],
                     "data": [
                         [
                             payload[_measurement="Systole"].{
                                 "x" : $toMillis(_time),
                                 "y" : _value
                  
                             }
                         ],
                         [
                             payload[_measurement="Diastole"].{
                                 "x" : $toMillis(_time),
                                 "y" : _value
                  
                             }
                         ],
                         [
                             payload[_measurement="Puls"].{
                                 "x" : $toMillis(_time),
                                 "y" : _value
                  
                             }
                         ]
                     ],
                     "labels" : ["Systole","Diastole","Puls"]
                  }
              ]
              

              Also wie gesagt beschäftige Dich mit Arrays, Objekten, Filterung und Objekterstellung mit JSONATA.

              Wenn Du das mit Javascript programmieren wolltest, bräuchtest Du das Mehrfache an Code.

              Wie gesagt der Schlüssel ist der Screenshot, wie die Arrays und Objekte aufgebaut sein müssen, den ich aus dem Artikel von Steve kopiert hatte (https://forum.iobroker.net/post/934428).

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              Damrak2022D 2 Replies Last reply
              0
              • mickymM mickym

                @damrak2022 So ich habs fertig - grundsätzlich gilt, dass das Auslesen der Daten aus der Influx DB nur zum Initialisieren des Charts dient - weitere Werte lässt Du direkt in die Chart Node wandern.

                Also die DB Abfrage nur einmal machen - wenn der Flow neu gestartet wird.

                9f8e5220-80ea-4cf5-9180-55c0e2e74cf8-image.png

                Löschen kann man die Chart Node in dem man ihr wie in der ersten Node ein leeres Array übergibt.

                Sprich die Inject Nodes mit Diastole etc. da müssen dann direkt die Datenpunkte über die iobroker IN Node davor und Du musst das topic setzen wie in den Inject-Nodes vorgegeben.

                Die Influx-DB Abfrage machst Du nur einmal beim Neustart des NodeRed Adapters - also einfach einmalig mit einer Inject Node die Query machen und dann in die von mir erstelle Change Node verbinden.

                Und wenn Du das JSONATA so gut verstehst, was ich da drin gemacht habe - dann können wir solche Aufgaben machen. Aber da muss ich selbst rumprobieren und ich glaube, dass Du da noch so weit entfernt bist (Lichtjahre 😁 ), dass wir uns da entsprechend austauschen könnten.

                [
                   {
                       "id": "e79f1c62ef97b36a",
                       "type": "inject",
                       "z": "1983aa28392732ca",
                       "name": "Influx DB Abfrage zur Initialisierung",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "[{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:55.302Z\",\"_value\":84,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.438Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.52Z\",\"_value\":71,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:51:28.093Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.392Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.442Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":85,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:25.342Z\",\"_value\":127,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.439Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":107,\"_field\":\"value\",\"_measurement\":\"Systole\"}]",
                       "payloadType": "json",
                       "x": 220,
                       "y": 280,
                       "wires": [
                           [
                               "efd1ab4c73f3d571",
                               "a9c39616decfa97c"
                           ]
                       ]
                   },
                   {
                       "id": "4d853addf9c082fb",
                       "type": "inject",
                       "z": "1983aa28392732ca",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "Diastole",
                       "payload": "88",
                       "payloadType": "num",
                       "x": 500,
                       "y": 120,
                       "wires": [
                           [
                               "2d8acec0ec2da68e"
                           ]
                       ]
                   },
                   {
                       "id": "2d8acec0ec2da68e",
                       "type": "ui_chart",
                       "z": "1983aa28392732ca",
                       "name": "",
                       "group": "57f13d6f733e5c9d",
                       "order": 2,
                       "width": 0,
                       "height": 0,
                       "label": "Blutdruck und Puls",
                       "chartType": "line",
                       "legend": "true",
                       "xformat": "dd HH:mm",
                       "interpolate": "linear",
                       "nodata": "",
                       "dot": false,
                       "ymin": "",
                       "ymax": "",
                       "removeOlder": 1,
                       "removeOlderPoints": "50",
                       "removeOlderUnit": "604800",
                       "cutout": 0,
                       "useOneColor": false,
                       "useUTC": false,
                       "colors": [
                           "#1f77b4",
                           "#aec7e8",
                           "#ff7f0e",
                           "#2ca02c",
                           "#98df8a",
                           "#d62728",
                           "#ff9896",
                           "#9467bd",
                           "#c5b0d5"
                       ],
                       "outputs": 1,
                       "useDifferentColor": false,
                       "className": "",
                       "x": 770,
                       "y": 180,
                       "wires": [
                           []
                       ]
                   },
                   {
                       "id": "0ca3dc50cb11869a",
                       "type": "inject",
                       "z": "1983aa28392732ca",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "Systole",
                       "payload": "170",
                       "payloadType": "num",
                       "x": 490,
                       "y": 160,
                       "wires": [
                           [
                               "2d8acec0ec2da68e"
                           ]
                       ]
                   },
                   {
                       "id": "efd1ab4c73f3d571",
                       "type": "change",
                       "z": "1983aa28392732ca",
                       "name": "Create Object Arrays",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "[\t   {\t       \"series\" : [\"Systole\",\"Diastole\",\"Puls\"],\t       \"data\": [\t           [\t               payload[_measurement=\"Systole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Diastole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Puls\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ]\t       ],\t       \"labels\" : [\"Systole\",\"Diastole\",\"Puls\"]\t    }\t]",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 500,
                       "y": 280,
                       "wires": [
                           [
                               "2d8acec0ec2da68e",
                               "cb3a1a566bc5679f"
                           ]
                       ]
                   },
                   {
                       "id": "097b4e4032b4bcff",
                       "type": "inject",
                       "z": "1983aa28392732ca",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "Puls",
                       "payload": "75",
                       "payloadType": "num",
                       "x": 510,
                       "y": 200,
                       "wires": [
                           [
                               "2d8acec0ec2da68e"
                           ]
                       ]
                   },
                   {
                       "id": "5b8909ad22babab7",
                       "type": "inject",
                       "z": "1983aa28392732ca",
                       "name": "löschen",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "[]",
                       "payloadType": "json",
                       "x": 510,
                       "y": 60,
                       "wires": [
                           [
                               "2d8acec0ec2da68e"
                           ]
                       ]
                   },
                   {
                       "id": "a9c39616decfa97c",
                       "type": "debug",
                       "z": "1983aa28392732ca",
                       "name": "Array aus InfluxDB Abfrage",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 520,
                       "y": 320,
                       "wires": []
                   },
                   {
                       "id": "cb3a1a566bc5679f",
                       "type": "debug",
                       "z": "1983aa28392732ca",
                       "name": "Array zur Initialisierung der Chart Node",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 830,
                       "y": 280,
                       "wires": []
                   },
                   {
                       "id": "57f13d6f733e5c9d",
                       "type": "ui_group",
                       "name": "Test",
                       "tab": "20b3095113f94d70",
                       "order": 2,
                       "disp": true,
                       "width": "6",
                       "collapse": false,
                       "className": ""
                   },
                   {
                       "id": "20b3095113f94d70",
                       "type": "ui_tab",
                       "name": "Home",
                       "icon": "dashboard",
                       "order": 1,
                       "disabled": false,
                       "hidden": false
                   }
                ]
                

                Du siehst wie man mit einer Change Node durch Filtern von Objekten und gleichzeitiger Neuerstellung - da ist JSONATA wirklich genial, völlig neue Objekte in der gewünschten Form erzeugen kann.

                Oben siehst Du ja das Array mit den Datensätzen aus der InfluxDB - das völlig neu erstellt wird, wie die Chart Node es braucht und wie es in der Beschreibung von Steve stand.

                Aus diesen Objekten:

                27143a53-7527-4859-a933-5d11e0b3beb8-image.png

                wurde diese alle je nach _measurement in verschiedene data Objekte gespeichert und gleichzeitig die Werte für die x und y-Achse generiert.

                6dab5899-8cea-41d3-acec-83c65df5fc89-image.png

                Im ersten Array = grün findest Du alle systolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

                Im zweiten Array = gelb findest Du alle diastolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

                Im dritten Array = hellblau findest Du alle Puls-Werte mit dem timestamp als x und der entsprechenden Wert als y.

                5bf271a7-ca66-41fc-befd-39ccd2d5519a-image.png

                Hier der Inhalt des Change / JSONATA Erstellung des Objektes:

                [
                   {
                       "series" : ["Systole","Diastole","Puls"],
                       "data": [
                           [
                               payload[_measurement="Systole"].{
                                   "x" : $toMillis(_time),
                                   "y" : _value
                    
                               }
                           ],
                           [
                               payload[_measurement="Diastole"].{
                                   "x" : $toMillis(_time),
                                   "y" : _value
                    
                               }
                           ],
                           [
                               payload[_measurement="Puls"].{
                                   "x" : $toMillis(_time),
                                   "y" : _value
                    
                               }
                           ]
                       ],
                       "labels" : ["Systole","Diastole","Puls"]
                    }
                ]
                

                Also wie gesagt beschäftige Dich mit Arrays, Objekten, Filterung und Objekterstellung mit JSONATA.

                Wenn Du das mit Javascript programmieren wolltest, bräuchtest Du das Mehrfache an Code.

                Wie gesagt der Schlüssel ist der Screenshot, wie die Arrays und Objekte aufgebaut sein müssen, den ich aus dem Artikel von Steve kopiert hatte (https://forum.iobroker.net/post/934428).

                Damrak2022D Offline
                Damrak2022D Offline
                Damrak2022
                wrote on last edited by Damrak2022
                #3142

                @mickym Hallo Micky,
                erstmal vielen Dank.

                Mit besten Grüßen
                Andy

                1 Reply Last reply
                0
                • mickymM mickym

                  @damrak2022 So ich habs fertig - grundsätzlich gilt, dass das Auslesen der Daten aus der Influx DB nur zum Initialisieren des Charts dient - weitere Werte lässt Du direkt in die Chart Node wandern.

                  Also die DB Abfrage nur einmal machen - wenn der Flow neu gestartet wird.

                  9f8e5220-80ea-4cf5-9180-55c0e2e74cf8-image.png

                  Löschen kann man die Chart Node in dem man ihr wie in der ersten Node ein leeres Array übergibt.

                  Sprich die Inject Nodes mit Diastole etc. da müssen dann direkt die Datenpunkte über die iobroker IN Node davor und Du musst das topic setzen wie in den Inject-Nodes vorgegeben.

                  Die Influx-DB Abfrage machst Du nur einmal beim Neustart des NodeRed Adapters - also einfach einmalig mit einer Inject Node die Query machen und dann in die von mir erstelle Change Node verbinden.

                  Und wenn Du das JSONATA so gut verstehst, was ich da drin gemacht habe - dann können wir solche Aufgaben machen. Aber da muss ich selbst rumprobieren und ich glaube, dass Du da noch so weit entfernt bist (Lichtjahre 😁 ), dass wir uns da entsprechend austauschen könnten.

                  [
                     {
                         "id": "e79f1c62ef97b36a",
                         "type": "inject",
                         "z": "1983aa28392732ca",
                         "name": "Influx DB Abfrage zur Initialisierung",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "[{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:55.302Z\",\"_value\":84,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.438Z\",\"_value\":78,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":0,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.52Z\",\"_value\":71,\"_field\":\"value\",\"_measurement\":\"Diastole\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:51:28.093Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.392Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.442Z\",\"_value\":106,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":1,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":85,\"_field\":\"value\",\"_measurement\":\"Puls\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T05:50:25.342Z\",\"_value\":127,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-23T06:07:26.39Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:07:26.439Z\",\"_value\":114,\"_field\":\"value\",\"_measurement\":\"Systole\"},{\"result\":\"_result\",\"table\":2,\"_start\":\"2023-01-19T00:35:58.94679632Z\",\"_stop\":\"2023-01-26T00:35:58.94679632Z\",\"_time\":\"2023-01-24T07:22:26.521Z\",\"_value\":107,\"_field\":\"value\",\"_measurement\":\"Systole\"}]",
                         "payloadType": "json",
                         "x": 220,
                         "y": 280,
                         "wires": [
                             [
                                 "efd1ab4c73f3d571",
                                 "a9c39616decfa97c"
                             ]
                         ]
                     },
                     {
                         "id": "4d853addf9c082fb",
                         "type": "inject",
                         "z": "1983aa28392732ca",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "Diastole",
                         "payload": "88",
                         "payloadType": "num",
                         "x": 500,
                         "y": 120,
                         "wires": [
                             [
                                 "2d8acec0ec2da68e"
                             ]
                         ]
                     },
                     {
                         "id": "2d8acec0ec2da68e",
                         "type": "ui_chart",
                         "z": "1983aa28392732ca",
                         "name": "",
                         "group": "57f13d6f733e5c9d",
                         "order": 2,
                         "width": 0,
                         "height": 0,
                         "label": "Blutdruck und Puls",
                         "chartType": "line",
                         "legend": "true",
                         "xformat": "dd HH:mm",
                         "interpolate": "linear",
                         "nodata": "",
                         "dot": false,
                         "ymin": "",
                         "ymax": "",
                         "removeOlder": 1,
                         "removeOlderPoints": "50",
                         "removeOlderUnit": "604800",
                         "cutout": 0,
                         "useOneColor": false,
                         "useUTC": false,
                         "colors": [
                             "#1f77b4",
                             "#aec7e8",
                             "#ff7f0e",
                             "#2ca02c",
                             "#98df8a",
                             "#d62728",
                             "#ff9896",
                             "#9467bd",
                             "#c5b0d5"
                         ],
                         "outputs": 1,
                         "useDifferentColor": false,
                         "className": "",
                         "x": 770,
                         "y": 180,
                         "wires": [
                             []
                         ]
                     },
                     {
                         "id": "0ca3dc50cb11869a",
                         "type": "inject",
                         "z": "1983aa28392732ca",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "Systole",
                         "payload": "170",
                         "payloadType": "num",
                         "x": 490,
                         "y": 160,
                         "wires": [
                             [
                                 "2d8acec0ec2da68e"
                             ]
                         ]
                     },
                     {
                         "id": "efd1ab4c73f3d571",
                         "type": "change",
                         "z": "1983aa28392732ca",
                         "name": "Create Object Arrays",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "[\t   {\t       \"series\" : [\"Systole\",\"Diastole\",\"Puls\"],\t       \"data\": [\t           [\t               payload[_measurement=\"Systole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Diastole\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ],\t           [\t               payload[_measurement=\"Puls\"].{\t                   \"x\" : $toMillis(_time),\t                   \"y\" : _value\t    \t               }\t           ]\t       ],\t       \"labels\" : [\"Systole\",\"Diastole\",\"Puls\"]\t    }\t]",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 500,
                         "y": 280,
                         "wires": [
                             [
                                 "2d8acec0ec2da68e",
                                 "cb3a1a566bc5679f"
                             ]
                         ]
                     },
                     {
                         "id": "097b4e4032b4bcff",
                         "type": "inject",
                         "z": "1983aa28392732ca",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "Puls",
                         "payload": "75",
                         "payloadType": "num",
                         "x": 510,
                         "y": 200,
                         "wires": [
                             [
                                 "2d8acec0ec2da68e"
                             ]
                         ]
                     },
                     {
                         "id": "5b8909ad22babab7",
                         "type": "inject",
                         "z": "1983aa28392732ca",
                         "name": "löschen",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "[]",
                         "payloadType": "json",
                         "x": 510,
                         "y": 60,
                         "wires": [
                             [
                                 "2d8acec0ec2da68e"
                             ]
                         ]
                     },
                     {
                         "id": "a9c39616decfa97c",
                         "type": "debug",
                         "z": "1983aa28392732ca",
                         "name": "Array aus InfluxDB Abfrage",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 520,
                         "y": 320,
                         "wires": []
                     },
                     {
                         "id": "cb3a1a566bc5679f",
                         "type": "debug",
                         "z": "1983aa28392732ca",
                         "name": "Array zur Initialisierung der Chart Node",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 830,
                         "y": 280,
                         "wires": []
                     },
                     {
                         "id": "57f13d6f733e5c9d",
                         "type": "ui_group",
                         "name": "Test",
                         "tab": "20b3095113f94d70",
                         "order": 2,
                         "disp": true,
                         "width": "6",
                         "collapse": false,
                         "className": ""
                     },
                     {
                         "id": "20b3095113f94d70",
                         "type": "ui_tab",
                         "name": "Home",
                         "icon": "dashboard",
                         "order": 1,
                         "disabled": false,
                         "hidden": false
                     }
                  ]
                  

                  Du siehst wie man mit einer Change Node durch Filtern von Objekten und gleichzeitiger Neuerstellung - da ist JSONATA wirklich genial, völlig neue Objekte in der gewünschten Form erzeugen kann.

                  Oben siehst Du ja das Array mit den Datensätzen aus der InfluxDB - das völlig neu erstellt wird, wie die Chart Node es braucht und wie es in der Beschreibung von Steve stand.

                  Aus diesen Objekten:

                  27143a53-7527-4859-a933-5d11e0b3beb8-image.png

                  wurde diese alle je nach _measurement in verschiedene data Objekte gespeichert und gleichzeitig die Werte für die x und y-Achse generiert.

                  6dab5899-8cea-41d3-acec-83c65df5fc89-image.png

                  Im ersten Array = grün findest Du alle systolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

                  Im zweiten Array = gelb findest Du alle diastolischen Werte mit dem timestamp als x und der entsprechenden Wert als y.

                  Im dritten Array = hellblau findest Du alle Puls-Werte mit dem timestamp als x und der entsprechenden Wert als y.

                  5bf271a7-ca66-41fc-befd-39ccd2d5519a-image.png

                  Hier der Inhalt des Change / JSONATA Erstellung des Objektes:

                  [
                     {
                         "series" : ["Systole","Diastole","Puls"],
                         "data": [
                             [
                                 payload[_measurement="Systole"].{
                                     "x" : $toMillis(_time),
                                     "y" : _value
                      
                                 }
                             ],
                             [
                                 payload[_measurement="Diastole"].{
                                     "x" : $toMillis(_time),
                                     "y" : _value
                      
                                 }
                             ],
                             [
                                 payload[_measurement="Puls"].{
                                     "x" : $toMillis(_time),
                                     "y" : _value
                      
                                 }
                             ]
                         ],
                         "labels" : ["Systole","Diastole","Puls"]
                      }
                  ]
                  

                  Also wie gesagt beschäftige Dich mit Arrays, Objekten, Filterung und Objekterstellung mit JSONATA.

                  Wenn Du das mit Javascript programmieren wolltest, bräuchtest Du das Mehrfache an Code.

                  Wie gesagt der Schlüssel ist der Screenshot, wie die Arrays und Objekte aufgebaut sein müssen, den ich aus dem Artikel von Steve kopiert hatte (https://forum.iobroker.net/post/934428).

                  Damrak2022D Offline
                  Damrak2022D Offline
                  Damrak2022
                  wrote on last edited by
                  #3143

                  @mickym Also, wenn ich das alles halbwegs richtig verstehe, hast Du hier die Werte von der Systole und Diastole eingearbeitet. Das zeigt sich ja auch im Debug:
                  Bildschirm­foto 2023-01-26 um 05.38.32.png
                  Bildschirm­foto 2023-01-26 um 05.40.10.png

                  Die Nodes für den Puls muss ich noch dementsprechend hinzufügen, richtig?

                  Ich habe jetzt mal die Chart Node hinten drangehängt, sehe hier aber nur eine Linie, obwohl es laut Debug ja zwei Werte sein müssten, das verwundert mich etwas.

                  Mit besten Grüßen
                  Andy

                  mickymM 2 Replies Last reply
                  0
                  • Damrak2022D Damrak2022

                    @mickym Also, wenn ich das alles halbwegs richtig verstehe, hast Du hier die Werte von der Systole und Diastole eingearbeitet. Das zeigt sich ja auch im Debug:
                    Bildschirm­foto 2023-01-26 um 05.38.32.png
                    Bildschirm­foto 2023-01-26 um 05.40.10.png

                    Die Nodes für den Puls muss ich noch dementsprechend hinzufügen, richtig?

                    Ich habe jetzt mal die Chart Node hinten drangehängt, sehe hier aber nur eine Linie, obwohl es laut Debug ja zwei Werte sein müssten, das verwundert mich etwas.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    wrote on last edited by mickym
                    #3144

                    @damrak2022 mach doch bitte das was ich geschrieben habe. Schmeiß alles weg, was du hast. Du brauchst doch nur die Change Node zwischen der chartnode und influx-dB platzieren. Zusätzlich kommen dann noch die aktuellen Werte rein. Ich hab alles beschrieben- ich will’s eigentlich nicht nochmal schreiben.

                    Siehst du in meinem Flow irgendwelche Switch nodes?? - ich hab doch alles quasi fix und fertig für dich aufbereitet

                    War wohl mein Fehler - habe einen Mist exportiert! Sorry und Entschuldigung!

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    Damrak2022D 1 Reply Last reply
                    0
                    • mickymM mickym

                      @damrak2022 mach doch bitte das was ich geschrieben habe. Schmeiß alles weg, was du hast. Du brauchst doch nur die Change Node zwischen der chartnode und influx-dB platzieren. Zusätzlich kommen dann noch die aktuellen Werte rein. Ich hab alles beschrieben- ich will’s eigentlich nicht nochmal schreiben.

                      Siehst du in meinem Flow irgendwelche Switch nodes?? - ich hab doch alles quasi fix und fertig für dich aufbereitet

                      War wohl mein Fehler - habe einen Mist exportiert! Sorry und Entschuldigung!

                      Damrak2022D Offline
                      Damrak2022D Offline
                      Damrak2022
                      wrote on last edited by
                      #3145

                      @mickym Okay, mache ich. Nur das mit der Change Node war mir nicht klar.

                      Mit besten Grüßen
                      Andy

                      mickymM 1 Reply Last reply
                      0
                      • Damrak2022D Damrak2022

                        @mickym Okay, mache ich. Nur das mit der Change Node war mir nicht klar.

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        wrote on last edited by mickym
                        #3146

                        @damrak2022 Ich wundere mich, wie Du überhaupt zu diesen Nodes kommst - das waren meine Fehlversuche - ich schau mal ob ich Dir über haupt das richtige exportiert habe.

                        Importiere den Flow nochmal neu - ich glaube ich habe beim Export einen Fehler gemacht.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        1 Reply Last reply
                        0
                        • Damrak2022D Damrak2022

                          @mickym Also, wenn ich das alles halbwegs richtig verstehe, hast Du hier die Werte von der Systole und Diastole eingearbeitet. Das zeigt sich ja auch im Debug:
                          Bildschirm­foto 2023-01-26 um 05.38.32.png
                          Bildschirm­foto 2023-01-26 um 05.40.10.png

                          Die Nodes für den Puls muss ich noch dementsprechend hinzufügen, richtig?

                          Ich habe jetzt mal die Chart Node hinten drangehängt, sehe hier aber nur eine Linie, obwohl es laut Debug ja zwei Werte sein müssten, das verwundert mich etwas.

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          wrote on last edited by mickym
                          #3147

                          @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                          @mickym Also, wenn ich das alles halbwegs richtig verstehe, hast Du hier die Werte von der Systole und Diastole eingearbeitet. Das zeigt sich ja auch im Debug:
                          Bildschirm­foto 2023-01-26 um 05.38.32.png
                          Bildschirm­foto 2023-01-26 um 05.40.10.png

                          Die Nodes für den Puls muss ich noch dementsprechend hinzufügen, richtig?

                          Ich habe jetzt mal die Chart Node hinten drangehängt, sehe hier aber nur eine Linie, obwohl es laut Debug ja zwei Werte sein müssten, das verwundert mich etwas.

                          Also das war ein Versehen - Du hast meine Tests und Fehlversuche importiert. 😉 Der Flow muss so aussehen, wie auf dem Screenshot:

                          ed481534-cea8-4be8-af72-beabb175862d-image.png

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          Damrak2022D 1 Reply Last reply
                          0
                          • mickymM mickym

                            @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                            @mickym Also, wenn ich das alles halbwegs richtig verstehe, hast Du hier die Werte von der Systole und Diastole eingearbeitet. Das zeigt sich ja auch im Debug:
                            Bildschirm­foto 2023-01-26 um 05.38.32.png
                            Bildschirm­foto 2023-01-26 um 05.40.10.png

                            Die Nodes für den Puls muss ich noch dementsprechend hinzufügen, richtig?

                            Ich habe jetzt mal die Chart Node hinten drangehängt, sehe hier aber nur eine Linie, obwohl es laut Debug ja zwei Werte sein müssten, das verwundert mich etwas.

                            Also das war ein Versehen - Du hast meine Tests und Fehlversuche importiert. 😉 Der Flow muss so aussehen, wie auf dem Screenshot:

                            ed481534-cea8-4be8-af72-beabb175862d-image.png

                            Damrak2022D Offline
                            Damrak2022D Offline
                            Damrak2022
                            wrote on last edited by
                            #3148

                            @mickym Jetzt fehlt nur der korrekte Export von Dir😄

                            Mit besten Grüßen
                            Andy

                            mickymM 1 Reply Last reply
                            0
                            • Damrak2022D Damrak2022

                              @mickym Jetzt fehlt nur der korrekte Export von Dir😄

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              wrote on last edited by
                              #3149

                              @damrak2022 ich hab das in dem Beitrag unten ausgetauscht- also einfach nochmal neu importieren

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              Damrak2022D 2 Replies Last reply
                              0
                              • mickymM mickym

                                @damrak2022 ich hab das in dem Beitrag unten ausgetauscht- also einfach nochmal neu importieren

                                Damrak2022D Offline
                                Damrak2022D Offline
                                Damrak2022
                                wrote on last edited by
                                #3150

                                @mickym Okay, danke.

                                Mit besten Grüßen
                                Andy

                                1 Reply Last reply
                                0
                                • mickymM mickym

                                  @damrak2022 ich hab das in dem Beitrag unten ausgetauscht- also einfach nochmal neu importieren

                                  Damrak2022D Offline
                                  Damrak2022D Offline
                                  Damrak2022
                                  wrote on last edited by
                                  #3151

                                  @mickym Hallo Micky,

                                  ich brauche mal Deinen Ratschlag: Ich wollte jetzt die Daten von der Influx auslesen um auch mein Gewicht im Liniendiagramm darzustellen. Ich hätte das dann so nachgebaut, wie Du es mit dem Blutdruck/Puls gemacht hast.
                                  Allerdings bekomme ich jetzt folgende Debug Meldung wenn ich das Gewicht so versuche auszulesen:

                                  Bildschirm­foto 2023-01-27 um 02.07.14.png Bildschirm­foto 2023-01-27 um 02.04.27.png Bildschirm­foto 2023-01-27 um 02.04.16.png

                                  Nur kann ich mit der Fehlermeldung nicht wirklich was anfangen. Hast Du eine Idee, was hier falsch ist?

                                  Mit besten Grüßen
                                  Andy

                                  1 Reply Last reply
                                  0
                                  • mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    wrote on last edited by mickym
                                    #3152

                                    @damrak2022 Nun in Deinem aggregateWindow referenzierst Du ein Objekt mit dem Namen v und das gibt es nicht. Anstelle von v.WindowPeriod - solltest Du direkt die Periode eingeben, die aggregieren willst.

                                    Du scheinst ja nicht die einzelnen Werte abfragen zu wollen, sondern den Mittelwert über bestimmte Zeitspannen zu bilden. Warum?

                                    Hier hast die Syntax - aber wie gesagt, warum?
                                    https://docs.influxdata.com/flux/v0.x/stdlib/universe/aggregatewindow/

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    Damrak2022D 1 Reply Last reply
                                    0
                                    • mickymM mickym

                                      @damrak2022 Nun in Deinem aggregateWindow referenzierst Du ein Objekt mit dem Namen v und das gibt es nicht. Anstelle von v.WindowPeriod - solltest Du direkt die Periode eingeben, die aggregieren willst.

                                      Du scheinst ja nicht die einzelnen Werte abfragen zu wollen, sondern den Mittelwert über bestimmte Zeitspannen zu bilden. Warum?

                                      Hier hast die Syntax - aber wie gesagt, warum?
                                      https://docs.influxdata.com/flux/v0.x/stdlib/universe/aggregatewindow/

                                      Damrak2022D Offline
                                      Damrak2022D Offline
                                      Damrak2022
                                      wrote on last edited by
                                      #3153

                                      @mickym Damit ich dann das Array, so wie gestern kopieren kann, um es dann mit der Inject Node anzufragen und nachzubauen.

                                      Mit besten Grüßen
                                      Andy

                                      mickymM 1 Reply Last reply
                                      0
                                      • Damrak2022D Damrak2022

                                        @mickym Damit ich dann das Array, so wie gestern kopieren kann, um es dann mit der Inject Node anzufragen und nachzubauen.

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        wrote on last edited by mickym
                                        #3154

                                        @damrak2022 Dazu musst Du doch nichts aggregieren. Ich würde mal die Zeile 5 weglassen.

                                        So oft steigst Du ja nicht auf die Waage, dass Du das aggregieren musst. Ein Beispiel siehst Du ja in dem verlinkten Code:

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        Damrak2022D 1 Reply Last reply
                                        0
                                        • mickymM mickym

                                          @damrak2022 Dazu musst Du doch nichts aggregieren. Ich würde mal die Zeile 5 weglassen.

                                          So oft steigst Du ja nicht auf die Waage, dass Du das aggregieren musst. Ein Beispiel siehst Du ja in dem verlinkten Code:

                                          Damrak2022D Offline
                                          Damrak2022D Offline
                                          Damrak2022
                                          wrote on last edited by
                                          #3155

                                          @mickym Stimmt Zeile 5 war der Fehler.

                                          Mit besten Grüßen
                                          Andy

                                          mickymM 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          446

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe