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.
  • mickymM mickym

    @damrak2022 So der Flow ist fertig - musst halt nur noch die iobroker-In Node bzw. JSON Node dran hängen - ich habe halt nur die Daten über die Inject Node selektiert:

    d19e05e6-02b9-4490-a813-b07ce2b2493e-image.png

    Die für Dich interessanten Tankstellen, selektierst Du in dem Du die Übersetzungstabelle nur die für Dich relevanten Tankstellen einpflegst. Es werden ausserdem alle geschlossenen Tankstellen herausgefiltert, da diese ja eh keine Preise liefern.

    In der Übersetzungstabelle alle - habe ich mal alle Tankstellen eingepflegt, die Du unten dargestellt hast.
    Ergebnis sieht so aus:

    4cfbc7c9-ae0d-453a-a55c-23d83f943c3f-image.png

    [
        {
            "id": "2dfbb2b81239ceb7",
            "type": "inject",
            "z": "53d8621916dd6725",
            "name": "",
            "props": [
                {
                    "p": "payload"
                }
            ],
            "repeat": "",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "{\"ok\":true,\"license\":\"CC BY 4.0 - https://creativecommons.tankerkoenig.de\",\"data\":\"MTS-K\",\"prices\":{\"a568458f-57f0-4e11-a099-aca55ec3b799\":{\"status\":\"closed\"},\"eb61cb0c-f9b6-4100-83f5-1accfe5759af\":{\"status\":\"open\",\"e5\":2.089,\"e10\":2.029,\"diesel\":2.209},\"05164f2f-4edc-4a03-9ec3-4898d05fbc9c\":{\"status\":\"closed\"},\"30d45fe3-08f4-40cd-82b0-b2c4f872b270\":{\"status\":\"closed\"},\"5d73b461-5646-4b7b-a98d-aa866b87fdd3\":{\"status\":\"open\",\"e5\":2.129,\"e10\":2.069,\"diesel\":2.209},\"7cb7ee38-945d-48df-89be-eb9a20fdcc52\":{\"status\":\"open\",\"e5\":2.099,\"e10\":2.039,\"diesel\":2.209},\"48cbfeb3-dfd2-4442-8911-97e13ce2e871\":{\"status\":\"closed\"}}}",
            "payloadType": "json",
            "x": 130,
            "y": 2200,
            "wires": [
                [
                    "ee850b4b9132ebdf"
                ]
            ]
        },
        {
            "id": "ee850b4b9132ebdf",
            "type": "change",
            "z": "53d8621916dd6725",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.prices",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 310,
            "y": 2200,
            "wires": [
                [
                    "164d39fefa0fae81"
                ]
            ]
        },
        {
            "id": "164d39fefa0fae81",
            "type": "split",
            "z": "53d8621916dd6725",
            "name": "",
            "splt": "\\n",
            "spltType": "str",
            "arraySplt": 1,
            "arraySpltType": "len",
            "stream": false,
            "addname": "topic",
            "x": 490,
            "y": 2200,
            "wires": [
                [
                    "8c5c8371f2e53d1e"
                ]
            ]
        },
        {
            "id": "8c5c8371f2e53d1e",
            "type": "change",
            "z": "53d8621916dd6725",
            "name": "Übersetzungstabelle (nur interessante)",
            "rules": [
                {
                    "t": "set",
                    "p": "translation_table",
                    "pt": "msg",
                    "to": "[{\"id\":\"5d73b461-5646-4b7b-a98d-aa866b87fdd3\",\"Tankstelle\":\"Aral, Siemensstraße\"},{\"id\":\"eb61cb0c-f9b6-4100-83f5-1accfe5759af\",\"Tankstelle\":\"Shell, Kennedyallee\"}]",
                    "tot": "json"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 730,
            "y": 2200,
            "wires": [
                [
                    "9ae864ecb6d662b1"
                ]
            ]
        },
        {
            "id": "9ae864ecb6d662b1",
            "type": "change",
            "z": "53d8621916dd6725",
            "name": "ID übersetzen",
            "rules": [
                {
                    "t": "set",
                    "p": "payload.name",
                    "pt": "msg",
                    "to": "translation_table[id=$$.topic] ? translation_table[id=$$.topic].Tankstelle : \"unbekannte ID\"",
                    "tot": "jsonata"
                },
                {
                    "t": "delete",
                    "p": "translation_table",
                    "pt": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1000,
            "y": 2200,
            "wires": [
                [
                    "a2d9e76e78407836"
                ]
            ]
        },
        {
            "id": "f3e148a2dbfd4105",
            "type": "join",
            "z": "53d8621916dd6725",
            "name": "",
            "mode": "custom",
            "build": "array",
            "property": "payload",
            "propertyType": "msg",
            "key": "payload.name",
            "joiner": "\\n",
            "joinerType": "str",
            "accumulate": false,
            "timeout": "1",
            "count": "",
            "reduceRight": false,
            "reduceExp": "",
            "reduceInit": "",
            "reduceInitType": "",
            "reduceFixup": "",
            "x": 1890,
            "y": 2200,
            "wires": [
                [
                    "c18568e641d6f22a"
                ]
            ]
        },
        {
            "id": "6ec60bf72df05237",
            "type": "switch",
            "z": "53d8621916dd6725",
            "name": "Nur wenn Tankstelle offen",
            "property": "payload.status",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "eq",
                    "v": "open",
                    "vt": "str"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 1,
            "x": 1470,
            "y": 2200,
            "wires": [
                [
                    "93dc4829579bf1f9"
                ]
            ]
        },
        {
            "id": "a2d9e76e78407836",
            "type": "switch",
            "z": "53d8621916dd6725",
            "name": "Keine unbekannte ID",
            "property": "payload.name",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "neq",
                    "v": "unbekannte ID",
                    "vt": "str"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 1,
            "x": 1220,
            "y": 2200,
            "wires": [
                [
                    "6ec60bf72df05237"
                ]
            ]
        },
        {
            "id": "c18568e641d6f22a",
            "type": "ui_table",
            "z": "53d8621916dd6725",
            "group": "cce10362a261a42e",
            "name": "",
            "order": 1,
            "width": 0,
            "height": 0,
            "columns": [
                {
                    "field": "name",
                    "title": "Tankstelle",
                    "width": "",
                    "align": "left",
                    "formatter": "plaintext",
                    "formatterParams": {
                        "target": "_blank"
                    }
                },
                {
                    "field": "e5",
                    "title": "Super E5",
                    "width": "",
                    "align": "center",
                    "formatter": "plaintext",
                    "formatterParams": {
                        "target": "_blank"
                    }
                }
            ],
            "outputs": 0,
            "cts": false,
            "x": 2030,
            "y": 2200,
            "wires": []
        },
        {
            "id": "a3b6de1ce40ec227",
            "type": "change",
            "z": "53d8621916dd6725",
            "name": "Übersetzungstabelle (alle)",
            "rules": [
                {
                    "t": "set",
                    "p": "translation_table",
                    "pt": "msg",
                    "to": "[{\"id\":\"5d73b461-5646-4b7b-a98d-aa866b87fdd3\",\"Tankstelle\":\"Aral, Siemensstraße\"},{\"id\":\"7cb7ee38-945d-48df-89be-eb9a20fdcc52\",\"Tankstelle\":\"Esso, Stresemannallee\"},{\"id\":\"05164f2f-4edc-4a03-9ec3-4898d05fbc9c\",\"Tankstelle\":\"Total, Goldsteinstraße\"},{\"id\":\"a568458f-57f0-4e11-a099-aca55ec3b799\",\"Tankstelle\":\"Aral, Lyoner Straße\"},{\"id\":\"eb61cb0c-f9b6-4100-83f5-1accfe5759af\",\"Tankstelle\":\"Shell, Kennedyallee\"},{\"id\":\"48cbfeb3-dfd2-4442-8911-97e13ce2e871\",\"Tankstelle\":\"Shell, Mörfelder Landstraße 377\"}]",
                    "tot": "json"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 710,
            "y": 2260,
            "wires": [
                []
            ]
        },
        {
            "id": "93dc4829579bf1f9",
            "type": "change",
            "z": "53d8621916dd6725",
            "name": "formatiere Preise",
            "rules": [
                {
                    "t": "set",
                    "p": "payload.e5",
                    "pt": "msg",
                    "to": "payload.e5 & \" €\"",
                    "tot": "jsonata"
                },
                {
                    "t": "set",
                    "p": "payload.e10",
                    "pt": "msg",
                    "to": "payload.e10  & \" €\"",
                    "tot": "jsonata"
                },
                {
                    "t": "set",
                    "p": "payload.diesel",
                    "pt": "msg",
                    "to": "payload.diesel  & \" €\"",
                    "tot": "jsonata"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1710,
            "y": 2200,
            "wires": [
                [
                    "f3e148a2dbfd4105"
                ]
            ]
        },
        {
            "id": "cce10362a261a42e",
            "type": "ui_group",
            "name": "Table Node Demo",
            "tab": "379a501f.53b59",
            "order": 3,
            "disp": true,
            "width": "6",
            "collapse": false,
            "className": ""
        },
        {
            "id": "379a501f.53b59",
            "type": "ui_tab",
            "name": "ui-table command",
            "icon": "fa-table",
            "disabled": false,
            "hidden": false
        }
    ]
    

    Ich empfehle Dir halt mal hinter jede Node mal eine Debug Node zu hängen, um zu lernen was jede Node macht.

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

    @mickym Ich habe Deine Rat mit der Debug Node befolgt, aber so ganz schlau bin ich nicht geworden.
    Jetzt habe ich in der Node - Übersetzungstabelle nur interessante alle Tankstellen eingepflegt.
    Bildschirmfoto 2022-09-06 um 21.05.27.png
    Bei Table habe ich noch nichts verändert, denn ich steh immer noch auf der Leitung

    Mit besten Grüßen
    Andy

    mickymM 1 Reply Last reply
    0
    • Damrak2022D Damrak2022

      @mickym Ich habe Deine Rat mit der Debug Node befolgt, aber so ganz schlau bin ich nicht geworden.
      Jetzt habe ich in der Node - Übersetzungstabelle nur interessante alle Tankstellen eingepflegt.
      Bildschirmfoto 2022-09-06 um 21.05.27.png
      Bei Table habe ich noch nichts verändert, denn ich steh immer noch auf der Leitung

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

      @damrak2022 An der Table musst ja nichts mehr einpflegen. Also dann erzähle mal wo Du noch Fragen hast und fang am Besten von links an. 😉

      Am Besten Du postest das/die Objekte bevor sie in eine Node gehen und dann was danach rauskommt.

      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 An der Table musst ja nichts mehr einpflegen. Also dann erzähle mal wo Du noch Fragen hast und fang am Besten von links an. 😉

        Am Besten Du postest das/die Objekte bevor sie in eine Node gehen und dann was danach rauskommt.

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

        @mickym Na im Dashboard sieht es so aus
        Bildschirmfoto 2022-09-06 um 21.16.51.png
        Mich irritiert das obere Feld, Das kann doch eigentlich weg, oder?
        Und mir werden gerade nur 3 Tankstellen angezeigt, weil die anderen zu sind, Okay das ist auch klar.
        Und die inject Node müsste ich durch eine iobroker in ersetzen und da den json Datenpunkt hinterlegen. Dann wäre ja doch alles korrekt

        Mit besten Grüßen
        Andy

        mickymM 1 Reply Last reply
        0
        • Damrak2022D Damrak2022

          @mickym Na im Dashboard sieht es so aus
          Bildschirmfoto 2022-09-06 um 21.16.51.png
          Mich irritiert das obere Feld, Das kann doch eigentlich weg, oder?
          Und mir werden gerade nur 3 Tankstellen angezeigt, weil die anderen zu sind, Okay das ist auch klar.
          Und die inject Node müsste ich durch eine iobroker in ersetzen und da den json Datenpunkt hinterlegen. Dann wäre ja doch alles korrekt

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

          @damrak2022 Na da hast halt oben noch ein TableNode - die irgendwo rumhängt.

          11bb317f-b1c3-4755-b7ce-ab3c232e4844-image.png

          Lösch halt mal eine und wenn es die Table im Flow ist machst Du das mit CTRL + Z wieder rückgängig. Wenn nicht dann ist diese Dummy Node einfach weg.

          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 Na da hast halt oben noch ein TableNode - die irgendwo rumhängt.

            11bb317f-b1c3-4755-b7ce-ab3c232e4844-image.png

            Lösch halt mal eine und wenn es die Table im Flow ist machst Du das mit CTRL + Z wieder rückgängig. Wenn nicht dann ist diese Dummy Node einfach weg.

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

            @mickym Ah, okay danke. Jetzt geht alles

            Mit besten Grüßen
            Andy

            mickymM 1 Reply Last reply
            0
            • Damrak2022D Damrak2022

              @mickym Ah, okay danke. Jetzt geht alles

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

              @damrak2022 Die Frage ist nicht ob alles geht - da war ich mir eigentlich sicher - wichtiger ist, dass du verstehst - damit Du das in Zukunft ohne mich machen kannst.

              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 Die Frage ist nicht ob alles geht - da war ich mir eigentlich sicher - wichtiger ist, dass du verstehst - damit Du das in Zukunft ohne mich machen kannst.

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

                @mickym Ich komme in kleinen Schritten voran

                Mit besten Grüßen
                Andy

                mickymM 1 Reply Last reply
                0
                • Damrak2022D Damrak2022

                  @mickym Ich komme in kleinen Schritten voran

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

                  @damrak2022 Gut dann weisst Du also wie die Übersetzung funktioniert und was in JSONATA precate Queries sind.

                  https://docs.jsonata.org/predicate

                  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 Gut dann weisst Du also wie die Übersetzung funktioniert und was in JSONATA precate Queries sind.

                    https://docs.jsonata.org/predicate

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

                    @mickym Ich lese das gerade und versuche es zu verstehen

                    Mit besten Grüßen
                    Andy

                    mickymM 1 Reply Last reply
                    0
                    • Damrak2022D Damrak2022

                      @mickym Ich lese das gerade und versuche es zu verstehen

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

                      @damrak2022 Also ich merke schon - Du tust noch schwer, es mit eigenen Worten zu erklären. Ich werde es einmal versuchen - aber das nächste mal - werde ich das nicht mehr machen. Wie gesagt, es geht mir nicht darum hier auf Anforderungen fertige Lösungen vorzustellen. Ich bin nämlich selbst noch oft am Rumprobieren, weil das JSONATA nicht so einfach ist - zumindest bei den fortgeschritteneren Tasks.

                      So schauen wir uns also die einzelnen Nodes an - hier mal der gesamte Flow -

                      d47dd99f-7a78-47e5-ae02-87b794bf82e8-image.png

                      Das heißt wenn wir uns die 1 Change Node setze msg.payload anschauen - müssen wir sehen was geht in die Node rein bzw. kommt aus der Inject Node raus debug 19 - und was kommt raus - debug 20:

                      1. Change Node setze msg. payload:
                        In die Node kommt also die payload mit einem Objekt (s. debug 19) und den 4 Eigenschaften: ok, license, data,prices

                      6c799cff-2720-40bc-a4a7-0d9fe32e895f-image.png

                      da uns nur die Eigenschaft prices interessiert schmeissen wir die anderen Eigenschaften weg und setzen die neue payload nur noch auf das Objekt prices:

                      da13a277-4e8f-4c44-9b13-b9fe6549a1d9-image.png

                      Das heißt raus aus dieser Change Node kommt nur noch das Object prices - siehe debug 20:

                      3dcacd99-d18c-46cc-ac8e-ea5c13f80d02-image.png

                      Deswegen gibt es hier keine Eigenschaft mehr prices mehr, sondern die ganze Eigenschaft payload des Nachrichtenobjektes enthält das objekt prices.

                      1. Dieses Objekt (s. debug 20) geht nun in die split Node. Diese zerlegt nun jede Objekteigenschaft in einzelne Nachrichten, so dass diese einzeln bearbeitet werden können.

                      Die debug Node - enthält nun alle Eigenschaften als eigene Nachrichtenobjekte - wobei die Objekteigenschaft in topic kopiert wird, der Wert dieser Objekteigenschaften in die payload. - Zusammengehörige Inhalte wurde farblich zusammengehörig markiert:

                      e1ebed62-fb5a-41db-a37e-a72bbef884fb-image.png

                      1. So ich hab mal die debug Nodes 21 und 22 zur Ausgabe des kompletten Nachrichten Objektes umgestellt.

                      b1af5f05-ad7a-4279-8565-3607592df950-image.png

                      Im Prinzip wird die payload der Einzelnnachrichten durch die Übersetzungstabelle nicht geändert, sondern nur dem Nachrichtenobjekt hinzugefügt.

                      Die einzelnen Nachrichten bekommen also die gesamte Übersetzungstabelle mit in das Nachrichtenobjekt zusätzlich als Eigenschaft mit.

                      c994a2f5-1908-49a3-b59f-d427efce4a72-image.png

                      Das heißt dem Nachrichtenobjekt wird nur eine Eigenschaft hinzugefügt. (s. debug Node 22).

                      Schauen wir also mal das Nachrichtenobjekt der debug Node 22 genauer an - bevor die in diese in der ID übersetzen Node verarbeitet wird.

                      fd42d65f-37dc-46c8-a765-2ebeeac058c7-image.png

                      Die eigentliche ID befindet sich also in der topic Eigenschaft des Nachrichtenobjektes und diese wird nun als Wert in der Eigenschaft id einer Liste von Objekten gesucht.

                      1. ID übersetzen
                        Die Abfrage in JSONATA mit den precate Queries ist nämlich mit einem Einzeiler ziemlich genial:

                      ac0b4be5-e70e-4986-b751-1bab1196ed43-image.png

                      Das Ergebnis dieser Query - wird in einer neuen Eigenschaft des payload objektes mit Namen name gespeichert.

                      Wir haben ja gesehen, das die translation wie folgt aufgebaut ist:

                      cb0de36e-24de-4553-a416-243626d48f2a-image.png

                      Die precate Query - kann somit 2 Dinge auf einmal - schauen wir erst mal den gesamten Einzeiler an:

                      translation_table[id=$$.topic] ? translation_table[id=$$.topic].Tankstelle : "unbekannte ID"
                      

                      Über das $$.topic .- sagen wir JSONATA suche - von der Wurzel des Nachrichtenobjektes die aktuelle topic Eigenschaft.

                      Die eigentliche precate Query ist nun:

                      translation_table[id=$$.topic]
                      

                      findet diese Abfrage also ein Objekt dessen id der aktuellen msg.topic Eigenschaft entspricht, wird das eigentliche Objekt zurückgegeben bzw. ist das wahr - und somit wird dieses Objekt nochmal abgefragt und es soll nun anstelle ID der Wert der Eigenschaft Tankstelle zurückgegeben werden.

                      translation_table[id=$$.topic].Tankstelle
                      

                      wir das Objekt hingegen nicht gefunden, da es kein Objekt mit der id Eigenschaft ergibt die gleich dem msg.topic ist, dann soll "unbekannte ID" zurückgegeben werden.

                      Anschließend löschen wir wieder die translation_table aus dem Nachrichtenobjekt, da wir es nicht mehr brauchen.

                      1. Wenn wir uns also den Output der ID übersetzen node anschauen - siehe debug 23 - dann sehen wir immer noch für jedes Objekt eine Einzelnachricht mit einer neuen Eigenschaft name im payload Objekt.

                      bc39861e-56ab-4296-ac2f-f96f2801d8dc-image.png

                      für die Nachrichten, deren msg.topic Eigenschaften in der Translation gefunden wurde - enthält die Eigenschaft name den Wert der Tankstelle aus der Übersetzungstabellen, ansonsten eben unbekannte ID

                      1. Nun filtern wir alle unbekannten IDs mit der switch Node raus - lassen also nur die durch des payload.name NICHT "unbekannte ID" ist.

                      1c56f286-36ee-4928-89f9-767790cf1731-image.png

                      Schauen wir uns alle Nachrichten an - dann enthält die debug Node 23 noch alle Nachrichten - debug Node 24 nur noch die, deren name nicht unbekannte ID heisst.
                      6002c9e6-2896-4fd0-99ef-203a4581be73-image.png

                      1. Entsprechend werden nun die geschlossenen Tankstellen herausgefiltert, die den status geschlossen haben da diese eh keine Preise enthalten.

                      bac3e617-d3fe-4aa7-8146-08f6ca1ed17a-image.png

                      1. Jetzt machen wir noch die Währung an die Preise.

                      a821b4e5-4c91-4301-966d-e306f3a147ef-image.png

                      Stringverkettungen macht man auch im JSONATA

                      2f73e6ea-f54c-4ad9-9b17-7b65d007df97-image.png

                      Hier wieder wie es in die Node formatiere Preise eingeht (debug 25) und wie es rauskommt (debug 26)
                      41ff6612-a11c-4425-96f3-63db0aa05272-image.png

                      1. Die JOIN Node macht nun aus den Einzelnachrichten (debug #26) wieder ein Array (debug #27) - weil dies von der Table Node so erwartet wird - also eine Liste mit Objekten.

                      Da wir aufgrund der Filterung nicht wissen, wir groß das Array sein wird - habe ich mal gesagt - mach ein Array nach 1 Sekunde - bei größeren Arrays - aber unbekannter Anzahl - warte ich also lieber länger.

                      Aus den Einzelnachricht wird also wieder eine mit einem Array/Liste aus Einzelobjekten.

                      134ec9b7-73e1-4dba-956b-b203909f2904-image.png

                      Die debug Node #26 enthält noch die Einzelnachrichten und die JOIN Node fasst alle innerhalb einer Sekunde eintreffenden Nachrichten in einer - und in diesem Fall in einem Array zusammen.

                      5bd167ea-459b-47a9-a96a-7a5d3c7d8810-image.png

                      1. Die Table Node ist dann Standard und erhält den Inhalt entsprechend debug #27;

                      a42bb7d1-82b4-4c57-872d-18c6d97c15e1-image.png

                      So das wars - so ich hoffe Du kannst das nächstes Mal alleine. Und falls noch Fragen sind - dann bitte mit Angabe zur Step- Nummer.

                      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 Also ich merke schon - Du tust noch schwer, es mit eigenen Worten zu erklären. Ich werde es einmal versuchen - aber das nächste mal - werde ich das nicht mehr machen. Wie gesagt, es geht mir nicht darum hier auf Anforderungen fertige Lösungen vorzustellen. Ich bin nämlich selbst noch oft am Rumprobieren, weil das JSONATA nicht so einfach ist - zumindest bei den fortgeschritteneren Tasks.

                        So schauen wir uns also die einzelnen Nodes an - hier mal der gesamte Flow -

                        d47dd99f-7a78-47e5-ae02-87b794bf82e8-image.png

                        Das heißt wenn wir uns die 1 Change Node setze msg.payload anschauen - müssen wir sehen was geht in die Node rein bzw. kommt aus der Inject Node raus debug 19 - und was kommt raus - debug 20:

                        1. Change Node setze msg. payload:
                          In die Node kommt also die payload mit einem Objekt (s. debug 19) und den 4 Eigenschaften: ok, license, data,prices

                        6c799cff-2720-40bc-a4a7-0d9fe32e895f-image.png

                        da uns nur die Eigenschaft prices interessiert schmeissen wir die anderen Eigenschaften weg und setzen die neue payload nur noch auf das Objekt prices:

                        da13a277-4e8f-4c44-9b13-b9fe6549a1d9-image.png

                        Das heißt raus aus dieser Change Node kommt nur noch das Object prices - siehe debug 20:

                        3dcacd99-d18c-46cc-ac8e-ea5c13f80d02-image.png

                        Deswegen gibt es hier keine Eigenschaft mehr prices mehr, sondern die ganze Eigenschaft payload des Nachrichtenobjektes enthält das objekt prices.

                        1. Dieses Objekt (s. debug 20) geht nun in die split Node. Diese zerlegt nun jede Objekteigenschaft in einzelne Nachrichten, so dass diese einzeln bearbeitet werden können.

                        Die debug Node - enthält nun alle Eigenschaften als eigene Nachrichtenobjekte - wobei die Objekteigenschaft in topic kopiert wird, der Wert dieser Objekteigenschaften in die payload. - Zusammengehörige Inhalte wurde farblich zusammengehörig markiert:

                        e1ebed62-fb5a-41db-a37e-a72bbef884fb-image.png

                        1. So ich hab mal die debug Nodes 21 und 22 zur Ausgabe des kompletten Nachrichten Objektes umgestellt.

                        b1af5f05-ad7a-4279-8565-3607592df950-image.png

                        Im Prinzip wird die payload der Einzelnnachrichten durch die Übersetzungstabelle nicht geändert, sondern nur dem Nachrichtenobjekt hinzugefügt.

                        Die einzelnen Nachrichten bekommen also die gesamte Übersetzungstabelle mit in das Nachrichtenobjekt zusätzlich als Eigenschaft mit.

                        c994a2f5-1908-49a3-b59f-d427efce4a72-image.png

                        Das heißt dem Nachrichtenobjekt wird nur eine Eigenschaft hinzugefügt. (s. debug Node 22).

                        Schauen wir also mal das Nachrichtenobjekt der debug Node 22 genauer an - bevor die in diese in der ID übersetzen Node verarbeitet wird.

                        fd42d65f-37dc-46c8-a765-2ebeeac058c7-image.png

                        Die eigentliche ID befindet sich also in der topic Eigenschaft des Nachrichtenobjektes und diese wird nun als Wert in der Eigenschaft id einer Liste von Objekten gesucht.

                        1. ID übersetzen
                          Die Abfrage in JSONATA mit den precate Queries ist nämlich mit einem Einzeiler ziemlich genial:

                        ac0b4be5-e70e-4986-b751-1bab1196ed43-image.png

                        Das Ergebnis dieser Query - wird in einer neuen Eigenschaft des payload objektes mit Namen name gespeichert.

                        Wir haben ja gesehen, das die translation wie folgt aufgebaut ist:

                        cb0de36e-24de-4553-a416-243626d48f2a-image.png

                        Die precate Query - kann somit 2 Dinge auf einmal - schauen wir erst mal den gesamten Einzeiler an:

                        translation_table[id=$$.topic] ? translation_table[id=$$.topic].Tankstelle : "unbekannte ID"
                        

                        Über das $$.topic .- sagen wir JSONATA suche - von der Wurzel des Nachrichtenobjektes die aktuelle topic Eigenschaft.

                        Die eigentliche precate Query ist nun:

                        translation_table[id=$$.topic]
                        

                        findet diese Abfrage also ein Objekt dessen id der aktuellen msg.topic Eigenschaft entspricht, wird das eigentliche Objekt zurückgegeben bzw. ist das wahr - und somit wird dieses Objekt nochmal abgefragt und es soll nun anstelle ID der Wert der Eigenschaft Tankstelle zurückgegeben werden.

                        translation_table[id=$$.topic].Tankstelle
                        

                        wir das Objekt hingegen nicht gefunden, da es kein Objekt mit der id Eigenschaft ergibt die gleich dem msg.topic ist, dann soll "unbekannte ID" zurückgegeben werden.

                        Anschließend löschen wir wieder die translation_table aus dem Nachrichtenobjekt, da wir es nicht mehr brauchen.

                        1. Wenn wir uns also den Output der ID übersetzen node anschauen - siehe debug 23 - dann sehen wir immer noch für jedes Objekt eine Einzelnachricht mit einer neuen Eigenschaft name im payload Objekt.

                        bc39861e-56ab-4296-ac2f-f96f2801d8dc-image.png

                        für die Nachrichten, deren msg.topic Eigenschaften in der Translation gefunden wurde - enthält die Eigenschaft name den Wert der Tankstelle aus der Übersetzungstabellen, ansonsten eben unbekannte ID

                        1. Nun filtern wir alle unbekannten IDs mit der switch Node raus - lassen also nur die durch des payload.name NICHT "unbekannte ID" ist.

                        1c56f286-36ee-4928-89f9-767790cf1731-image.png

                        Schauen wir uns alle Nachrichten an - dann enthält die debug Node 23 noch alle Nachrichten - debug Node 24 nur noch die, deren name nicht unbekannte ID heisst.
                        6002c9e6-2896-4fd0-99ef-203a4581be73-image.png

                        1. Entsprechend werden nun die geschlossenen Tankstellen herausgefiltert, die den status geschlossen haben da diese eh keine Preise enthalten.

                        bac3e617-d3fe-4aa7-8146-08f6ca1ed17a-image.png

                        1. Jetzt machen wir noch die Währung an die Preise.

                        a821b4e5-4c91-4301-966d-e306f3a147ef-image.png

                        Stringverkettungen macht man auch im JSONATA

                        2f73e6ea-f54c-4ad9-9b17-7b65d007df97-image.png

                        Hier wieder wie es in die Node formatiere Preise eingeht (debug 25) und wie es rauskommt (debug 26)
                        41ff6612-a11c-4425-96f3-63db0aa05272-image.png

                        1. Die JOIN Node macht nun aus den Einzelnachrichten (debug #26) wieder ein Array (debug #27) - weil dies von der Table Node so erwartet wird - also eine Liste mit Objekten.

                        Da wir aufgrund der Filterung nicht wissen, wir groß das Array sein wird - habe ich mal gesagt - mach ein Array nach 1 Sekunde - bei größeren Arrays - aber unbekannter Anzahl - warte ich also lieber länger.

                        Aus den Einzelnachricht wird also wieder eine mit einem Array/Liste aus Einzelobjekten.

                        134ec9b7-73e1-4dba-956b-b203909f2904-image.png

                        Die debug Node #26 enthält noch die Einzelnachrichten und die JOIN Node fasst alle innerhalb einer Sekunde eintreffenden Nachrichten in einer - und in diesem Fall in einem Array zusammen.

                        5bd167ea-459b-47a9-a96a-7a5d3c7d8810-image.png

                        1. Die Table Node ist dann Standard und erhält den Inhalt entsprechend debug #27;

                        a42bb7d1-82b4-4c57-872d-18c6d97c15e1-image.png

                        So das wars - so ich hoffe Du kannst das nächstes Mal alleine. Und falls noch Fragen sind - dann bitte mit Angabe zur Step- Nummer.

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

                        @mickym Ich habe mir den Flow von Dir jetzt mal auf einem neuen Flow als Übungsflow exakt so angelegt, damit ich das zusammen mit Deiner sehr ausführlichen Anleitung - danke dafür - beim nächsten Mal hoffentlich so nachvollziehen kann.

                        Mit besten Grüßen
                        Andy

                        mickymM 1 Reply Last reply
                        0
                        • Damrak2022D Damrak2022

                          @mickym Ich habe mir den Flow von Dir jetzt mal auf einem neuen Flow als Übungsflow exakt so angelegt, damit ich das zusammen mit Deiner sehr ausführlichen Anleitung - danke dafür - beim nächsten Mal hoffentlich so nachvollziehen kann.

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

                          @damrak2022 sagte in Visualisierung mit Node Red erstellen:

                          @mickym Ich habe mir den Flow von Dir jetzt mal auf einem neuen Flow als Übungsflow exakt so angelegt, damit ich das zusammen mit Deiner sehr ausführlichen Anleitung - danke dafür - beim nächsten Mal hoffentlich so nachvollziehen kann.

                          👍

                          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 Ich habe mir den Flow von Dir jetzt mal auf einem neuen Flow als Übungsflow exakt so angelegt, damit ich das zusammen mit Deiner sehr ausführlichen Anleitung - danke dafür - beim nächsten Mal hoffentlich so nachvollziehen kann.

                            👍

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

                            @mickym Habe ich das hier zu kompliziert gemacht, oder ist das so okay?
                            Wie bekomme ich unten den Text weg und wie kann ich hinter die Zahlen das "%" Zeichen setzen?

                            Bildschirmfoto_2022-09-07_um_23_37_21.png
                            Bildschirmfoto 2022-09-07 um 23.37.40.png

                            Meine Einstellungen sind so gesetzt:
                            Bildschirmfoto 2022-09-07 um 23.46.14.png

                            1. Frage von mir ist wie ich bei den Dashboards wieder die Übersicht reinbekomme, die ich idiotischweise gelöscht habe. Du hast zwar geschrieben, ie müsse noch irgendwo sein, aber ich habe sie nicht gefunden, da ich mir gerne so eine Startseite bauen würde, welche mich auf die einzelnen Bereiche verlinkt.

                            Mit besten Grüßen
                            Andy

                            mickymM 1 Reply Last reply
                            0
                            • Damrak2022D Damrak2022

                              @mickym Habe ich das hier zu kompliziert gemacht, oder ist das so okay?
                              Wie bekomme ich unten den Text weg und wie kann ich hinter die Zahlen das "%" Zeichen setzen?

                              Bildschirmfoto_2022-09-07_um_23_37_21.png
                              Bildschirmfoto 2022-09-07 um 23.37.40.png

                              Meine Einstellungen sind so gesetzt:
                              Bildschirmfoto 2022-09-07 um 23.46.14.png

                              1. Frage von mir ist wie ich bei den Dashboards wieder die Übersicht reinbekomme, die ich idiotischweise gelöscht habe. Du hast zwar geschrieben, ie müsse noch irgendwo sein, aber ich habe sie nicht gefunden, da ich mir gerne so eine Startseite bauen würde, welche mich auf die einzelnen Bereiche verlinkt.
                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              wrote on last edited by
                              #274

                              @damrak2022 Nein passt schon - geht doch nicht einfacher - Ein - und Ausgang

                              zu 2: Nein Du bekommst Deine Übersicht nicht mehr - aber die Nodes die in der Übersicht waren, sollten ja noch irgendwo sein. Du musst die Übersicht komplett neu erstellen und die Nodes wieder diesem Tab zuordnen. Was weg ist, ist weg - zumindest wenn Du Deploy drückst. Solange Du noch nicht Deploy gedrückt hast, kann man die Änderungen mit CTRL+Z stückweise wieder rückgängig machen.

                              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 Nein passt schon - geht doch nicht einfacher - Ein - und Ausgang

                                zu 2: Nein Du bekommst Deine Übersicht nicht mehr - aber die Nodes die in der Übersicht waren, sollten ja noch irgendwo sein. Du musst die Übersicht komplett neu erstellen und die Nodes wieder diesem Tab zuordnen. Was weg ist, ist weg - zumindest wenn Du Deploy drückst. Solange Du noch nicht Deploy gedrückt hast, kann man die Änderungen mit CTRL+Z stückweise wieder rückgängig machen.

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

                                @mickym Okay, danke

                                Mit besten Grüßen
                                Andy

                                1 Reply Last reply
                                0
                                • mickymM mickym

                                  @damrak2022 Nein passt schon - geht doch nicht einfacher - Ein - und Ausgang

                                  zu 2: Nein Du bekommst Deine Übersicht nicht mehr - aber die Nodes die in der Übersicht waren, sollten ja noch irgendwo sein. Du musst die Übersicht komplett neu erstellen und die Nodes wieder diesem Tab zuordnen. Was weg ist, ist weg - zumindest wenn Du Deploy drückst. Solange Du noch nicht Deploy gedrückt hast, kann man die Änderungen mit CTRL+Z stückweise wieder rückgängig machen.

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

                                  @mickym Hallo Micky, lass Dir Zeit mit der Antwort, denn ich bin gerade ziemlich genervt, weil das wieder nicht klappt und fahre erstmal etwas spazieren.
                                  Ich lese meinen Datenpunkt direkt im ioBroker bei Pegelalarm aus:
                                  Bildschirmfoto 2022-09-08 um 00.28.22.png
                                  Warum werde die Werte mir nicht dargestellt. Die sind doch im iobroker in vorhanden? Welche Node muss da noch dazwischen?
                                  Bildschirmfoto 2022-09-08 um 00.25.24.png Bildschirmfoto 2022-09-08 um 00.25.12.png Bildschirmfoto 2022-09-08 um 00.25.01.png

                                  Mit besten Grüßen
                                  Andy

                                  mickymM 1 Reply Last reply
                                  0
                                  • Damrak2022D Damrak2022

                                    @mickym Hallo Micky, lass Dir Zeit mit der Antwort, denn ich bin gerade ziemlich genervt, weil das wieder nicht klappt und fahre erstmal etwas spazieren.
                                    Ich lese meinen Datenpunkt direkt im ioBroker bei Pegelalarm aus:
                                    Bildschirmfoto 2022-09-08 um 00.28.22.png
                                    Warum werde die Werte mir nicht dargestellt. Die sind doch im iobroker in vorhanden? Welche Node muss da noch dazwischen?
                                    Bildschirmfoto 2022-09-08 um 00.25.24.png Bildschirmfoto 2022-09-08 um 00.25.12.png Bildschirmfoto 2022-09-08 um 00.25.01.png

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

                                    @damrak2022 Ich hatte Dir schon mal gesagt, dass die Table Node nur Objekt-Arrays akzeptiert (hast Du das nicht verstanden, nachdem ich Dir den letzten Flow bis ins letzte erklärt habe? ) und keine Datenpunkte braucht. Hast Du mal geschaut, was wir bei den Tankstellen in die Table-Node geschrieben haben - sicherlich keine einfachen Zahlenwerte. Das sind doch keine Objekte die aus den Datenpunkten rauskommen. Mach doch eine Debug-Node hinter Deine iobroker-IN Nodes. Siehst Du da eine Eigenschaft height - die Du in die Table einträgst - die gibts in Node Red nicht - sie ist wenn max. der Bestandteil im String der msg.topic. Du verinnerlichst die Theorie hier nicht.

                                    Wenn Du nur 2. Punkte ausgibst - da rentiert sich doch keine Tabelle - am einfachsten sind doch 2 Textnodes - warum muss das denn unbedingt eine Tabelle sein. Das macht doch keinen Sinn???? Ich hab Dir schon gesagt, dass Tabellen kompliziert sind und bei 2 Datenpunkten finde ich es einfach ...

                                    Es macht aber eigentlich keinen Sinn - weil ich keine Lust habe - jetzt einzelne Werte auszutauschen - dann kannst Dich gerne in Tabulator einlesen oder Dir mal die Beispielflows zur table Node anzuschauen. Deswegen muss immer alles gesendet werden. Hör einfach mit den Tabellen auf - solange Du nicht 10 oder mehr Werte hast.

                                    Ich mach Dir zwar nochmal einen Flow mit 2 Werten - aber das ist wirklich doof - warum nicht 2 TextNodes?

                                    Es kann so einfach sein:

                                    cfcb5d82-8379-4ed6-81c5-2cf5d2fa21ba-image.png
                                    498a7b7d-1ed6-4621-98a7-dcb0355cbd38-image.png

                                    Um das mit der Tabelle hinzubekommen sind einige Verrenkungen nötig. So hier die Table und die Text Nodes - der Aufwand steht in keinem Verhältnis:

                                    794b4768-cce7-4d18-8837-d6d502a2cf46-image.png

                                    1ca6ac74-fadd-460d-9773-a49e1afbbe82-image.png

                                    [
                                       {
                                           "id": "0b8d8a08c99d37ce",
                                           "type": "inject",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "props": [
                                               {
                                                   "p": "payload"
                                               },
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Osthafen",
                                           "payload": "147",
                                           "payloadType": "num",
                                           "x": 150,
                                           "y": 2580,
                                           "wires": [
                                               [
                                                   "660ae2a0a1577cbc"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "b00c5ab69343b67c",
                                           "type": "inject",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "props": [
                                               {
                                                   "p": "payload"
                                               },
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Konstanz",
                                           "payload": "314",
                                           "payloadType": "num",
                                           "x": 150,
                                           "y": 2540,
                                           "wires": [
                                               [
                                                   "408c6edf9592c67e"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "408c6edf9592c67e",
                                           "type": "ui_text",
                                           "z": "53d8621916dd6725",
                                           "group": "90c59dd2a6f32bf8",
                                           "order": 0,
                                           "width": 0,
                                           "height": 0,
                                           "name": "",
                                           "label": "{{msg.topic}}",
                                           "format": "{{msg.payload}}",
                                           "layout": "row-spread",
                                           "className": "",
                                           "x": 370,
                                           "y": 2540,
                                           "wires": []
                                       },
                                       {
                                           "id": "660ae2a0a1577cbc",
                                           "type": "ui_text",
                                           "z": "53d8621916dd6725",
                                           "group": "90c59dd2a6f32bf8",
                                           "order": 0,
                                           "width": 0,
                                           "height": 0,
                                           "name": "",
                                           "label": "{{msg.topic}}",
                                           "format": "{{msg.payload}}",
                                           "layout": "row-spread",
                                           "className": "",
                                           "x": 370,
                                           "y": 2580,
                                           "wires": []
                                       },
                                       {
                                           "id": "1292d82056d0c266",
                                           "type": "inject",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "props": [
                                               {
                                                   "p": "payload"
                                               },
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Osthafen",
                                           "payload": "147",
                                           "payloadType": "num",
                                           "x": 150,
                                           "y": 2740,
                                           "wires": [
                                               [
                                                   "f9e76f4367b29629"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "d7c797de79386194",
                                           "type": "inject",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "props": [
                                               {
                                                   "p": "payload"
                                               },
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Konstanz",
                                           "payload": "314",
                                           "payloadType": "num",
                                           "x": 150,
                                           "y": 2700,
                                           "wires": [
                                               [
                                                   "10564b4fce9d20a2"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "10564b4fce9d20a2",
                                           "type": "change",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "rules": [
                                               {
                                                   "t": "move",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "payload.Pegel",
                                                   "tot": "msg"
                                               },
                                               {
                                                   "t": "set",
                                                   "p": "payload.Hafen",
                                                   "pt": "msg",
                                                   "to": "Konstanz",
                                                   "tot": "str"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 350,
                                           "y": 2700,
                                           "wires": [
                                               [
                                                   "31606a69142fcbca"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "f9e76f4367b29629",
                                           "type": "change",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "rules": [
                                               {
                                                   "t": "move",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "payload.Pegel",
                                                   "tot": "msg"
                                               },
                                               {
                                                   "t": "set",
                                                   "p": "payload.Hafen",
                                                   "pt": "msg",
                                                   "to": "Osthafen",
                                                   "tot": "str"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 350,
                                           "y": 2740,
                                           "wires": [
                                               [
                                                   "31606a69142fcbca"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "31606a69142fcbca",
                                           "type": "join",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "mode": "custom",
                                           "build": "object",
                                           "property": "payload",
                                           "propertyType": "msg",
                                           "key": "payload.Hafen",
                                           "joiner": "\\n",
                                           "joinerType": "str",
                                           "accumulate": true,
                                           "timeout": "",
                                           "count": "1",
                                           "reduceRight": false,
                                           "reduceExp": "",
                                           "reduceInit": "",
                                           "reduceInitType": "",
                                           "reduceFixup": "",
                                           "x": 550,
                                           "y": 2720,
                                           "wires": [
                                               [
                                                   "1ef8b202b9d8e23a"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "1ef8b202b9d8e23a",
                                           "type": "split",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "splt": "\\n",
                                           "spltType": "str",
                                           "arraySplt": 1,
                                           "arraySpltType": "len",
                                           "stream": false,
                                           "addname": "",
                                           "x": 690,
                                           "y": 2720,
                                           "wires": [
                                               [
                                                   "7010156ab9ed07ab"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "7010156ab9ed07ab",
                                           "type": "join",
                                           "z": "53d8621916dd6725",
                                           "name": "",
                                           "mode": "custom",
                                           "build": "array",
                                           "property": "payload",
                                           "propertyType": "msg",
                                           "key": "topic",
                                           "joiner": "\\n",
                                           "joinerType": "str",
                                           "accumulate": false,
                                           "timeout": "",
                                           "count": "2",
                                           "reduceRight": false,
                                           "reduceExp": "",
                                           "reduceInit": "",
                                           "reduceInitType": "",
                                           "reduceFixup": "",
                                           "x": 830,
                                           "y": 2720,
                                           "wires": [
                                               [
                                                   "24ef7a60f294bd8f"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "24ef7a60f294bd8f",
                                           "type": "ui_table",
                                           "z": "53d8621916dd6725",
                                           "group": "cce10362a261a42e",
                                           "name": "",
                                           "order": 2,
                                           "width": 0,
                                           "height": 0,
                                           "columns": [
                                               {
                                                   "field": "Hafen",
                                                   "title": "Hafen",
                                                   "width": "",
                                                   "align": "left",
                                                   "formatter": "plaintext",
                                                   "formatterParams": {
                                                       "target": "_blank"
                                                   }
                                               },
                                               {
                                                   "field": "Pegel",
                                                   "title": "Pegel",
                                                   "width": "",
                                                   "align": "left",
                                                   "formatter": "plaintext",
                                                   "formatterParams": {
                                                       "target": "_blank"
                                                   }
                                               }
                                           ],
                                           "outputs": 0,
                                           "cts": false,
                                           "x": 970,
                                           "y": 2720,
                                           "wires": []
                                       },
                                       {
                                           "id": "29055c34d03df8f9",
                                           "type": "comment",
                                           "z": "53d8621916dd6725",
                                           "name": "Ausgabe als Text",
                                           "info": "",
                                           "x": 140,
                                           "y": 2480,
                                           "wires": []
                                       },
                                       {
                                           "id": "4e40b69157b57af1",
                                           "type": "comment",
                                           "z": "53d8621916dd6725",
                                           "name": "Ausgabe in Table",
                                           "info": "",
                                           "x": 140,
                                           "y": 2660,
                                           "wires": []
                                       },
                                       {
                                           "id": "90c59dd2a6f32bf8",
                                           "type": "ui_group",
                                           "name": "Pegelstände",
                                           "tab": "379a501f.53b59",
                                           "order": 4,
                                           "disp": true,
                                           "width": "6",
                                           "collapse": false,
                                           "className": ""
                                       },
                                       {
                                           "id": "cce10362a261a42e",
                                           "type": "ui_group",
                                           "name": "Table Node Demo",
                                           "tab": "379a501f.53b59",
                                           "order": 3,
                                           "disp": true,
                                           "width": "6",
                                           "collapse": false,
                                           "className": ""
                                       },
                                       {
                                           "id": "379a501f.53b59",
                                           "type": "ui_tab",
                                           "name": "ui-table command",
                                           "icon": "fa-table",
                                           "disabled": false,
                                           "hidden": false
                                       }
                                    ]
                                    

                                    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 Ich hatte Dir schon mal gesagt, dass die Table Node nur Objekt-Arrays akzeptiert (hast Du das nicht verstanden, nachdem ich Dir den letzten Flow bis ins letzte erklärt habe? ) und keine Datenpunkte braucht. Hast Du mal geschaut, was wir bei den Tankstellen in die Table-Node geschrieben haben - sicherlich keine einfachen Zahlenwerte. Das sind doch keine Objekte die aus den Datenpunkten rauskommen. Mach doch eine Debug-Node hinter Deine iobroker-IN Nodes. Siehst Du da eine Eigenschaft height - die Du in die Table einträgst - die gibts in Node Red nicht - sie ist wenn max. der Bestandteil im String der msg.topic. Du verinnerlichst die Theorie hier nicht.

                                      Wenn Du nur 2. Punkte ausgibst - da rentiert sich doch keine Tabelle - am einfachsten sind doch 2 Textnodes - warum muss das denn unbedingt eine Tabelle sein. Das macht doch keinen Sinn???? Ich hab Dir schon gesagt, dass Tabellen kompliziert sind und bei 2 Datenpunkten finde ich es einfach ...

                                      Es macht aber eigentlich keinen Sinn - weil ich keine Lust habe - jetzt einzelne Werte auszutauschen - dann kannst Dich gerne in Tabulator einlesen oder Dir mal die Beispielflows zur table Node anzuschauen. Deswegen muss immer alles gesendet werden. Hör einfach mit den Tabellen auf - solange Du nicht 10 oder mehr Werte hast.

                                      Ich mach Dir zwar nochmal einen Flow mit 2 Werten - aber das ist wirklich doof - warum nicht 2 TextNodes?

                                      Es kann so einfach sein:

                                      cfcb5d82-8379-4ed6-81c5-2cf5d2fa21ba-image.png
                                      498a7b7d-1ed6-4621-98a7-dcb0355cbd38-image.png

                                      Um das mit der Tabelle hinzubekommen sind einige Verrenkungen nötig. So hier die Table und die Text Nodes - der Aufwand steht in keinem Verhältnis:

                                      794b4768-cce7-4d18-8837-d6d502a2cf46-image.png

                                      1ca6ac74-fadd-460d-9773-a49e1afbbe82-image.png

                                      [
                                         {
                                             "id": "0b8d8a08c99d37ce",
                                             "type": "inject",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "props": [
                                                 {
                                                     "p": "payload"
                                                 },
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Osthafen",
                                             "payload": "147",
                                             "payloadType": "num",
                                             "x": 150,
                                             "y": 2580,
                                             "wires": [
                                                 [
                                                     "660ae2a0a1577cbc"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "b00c5ab69343b67c",
                                             "type": "inject",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "props": [
                                                 {
                                                     "p": "payload"
                                                 },
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Konstanz",
                                             "payload": "314",
                                             "payloadType": "num",
                                             "x": 150,
                                             "y": 2540,
                                             "wires": [
                                                 [
                                                     "408c6edf9592c67e"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "408c6edf9592c67e",
                                             "type": "ui_text",
                                             "z": "53d8621916dd6725",
                                             "group": "90c59dd2a6f32bf8",
                                             "order": 0,
                                             "width": 0,
                                             "height": 0,
                                             "name": "",
                                             "label": "{{msg.topic}}",
                                             "format": "{{msg.payload}}",
                                             "layout": "row-spread",
                                             "className": "",
                                             "x": 370,
                                             "y": 2540,
                                             "wires": []
                                         },
                                         {
                                             "id": "660ae2a0a1577cbc",
                                             "type": "ui_text",
                                             "z": "53d8621916dd6725",
                                             "group": "90c59dd2a6f32bf8",
                                             "order": 0,
                                             "width": 0,
                                             "height": 0,
                                             "name": "",
                                             "label": "{{msg.topic}}",
                                             "format": "{{msg.payload}}",
                                             "layout": "row-spread",
                                             "className": "",
                                             "x": 370,
                                             "y": 2580,
                                             "wires": []
                                         },
                                         {
                                             "id": "1292d82056d0c266",
                                             "type": "inject",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "props": [
                                                 {
                                                     "p": "payload"
                                                 },
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Osthafen",
                                             "payload": "147",
                                             "payloadType": "num",
                                             "x": 150,
                                             "y": 2740,
                                             "wires": [
                                                 [
                                                     "f9e76f4367b29629"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "d7c797de79386194",
                                             "type": "inject",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "props": [
                                                 {
                                                     "p": "payload"
                                                 },
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Konstanz",
                                             "payload": "314",
                                             "payloadType": "num",
                                             "x": 150,
                                             "y": 2700,
                                             "wires": [
                                                 [
                                                     "10564b4fce9d20a2"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "10564b4fce9d20a2",
                                             "type": "change",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "rules": [
                                                 {
                                                     "t": "move",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "payload.Pegel",
                                                     "tot": "msg"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "payload.Hafen",
                                                     "pt": "msg",
                                                     "to": "Konstanz",
                                                     "tot": "str"
                                                 }
                                             ],
                                             "action": "",
                                             "property": "",
                                             "from": "",
                                             "to": "",
                                             "reg": false,
                                             "x": 350,
                                             "y": 2700,
                                             "wires": [
                                                 [
                                                     "31606a69142fcbca"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "f9e76f4367b29629",
                                             "type": "change",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "rules": [
                                                 {
                                                     "t": "move",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "payload.Pegel",
                                                     "tot": "msg"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "payload.Hafen",
                                                     "pt": "msg",
                                                     "to": "Osthafen",
                                                     "tot": "str"
                                                 }
                                             ],
                                             "action": "",
                                             "property": "",
                                             "from": "",
                                             "to": "",
                                             "reg": false,
                                             "x": 350,
                                             "y": 2740,
                                             "wires": [
                                                 [
                                                     "31606a69142fcbca"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "31606a69142fcbca",
                                             "type": "join",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "mode": "custom",
                                             "build": "object",
                                             "property": "payload",
                                             "propertyType": "msg",
                                             "key": "payload.Hafen",
                                             "joiner": "\\n",
                                             "joinerType": "str",
                                             "accumulate": true,
                                             "timeout": "",
                                             "count": "1",
                                             "reduceRight": false,
                                             "reduceExp": "",
                                             "reduceInit": "",
                                             "reduceInitType": "",
                                             "reduceFixup": "",
                                             "x": 550,
                                             "y": 2720,
                                             "wires": [
                                                 [
                                                     "1ef8b202b9d8e23a"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "1ef8b202b9d8e23a",
                                             "type": "split",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "splt": "\\n",
                                             "spltType": "str",
                                             "arraySplt": 1,
                                             "arraySpltType": "len",
                                             "stream": false,
                                             "addname": "",
                                             "x": 690,
                                             "y": 2720,
                                             "wires": [
                                                 [
                                                     "7010156ab9ed07ab"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "7010156ab9ed07ab",
                                             "type": "join",
                                             "z": "53d8621916dd6725",
                                             "name": "",
                                             "mode": "custom",
                                             "build": "array",
                                             "property": "payload",
                                             "propertyType": "msg",
                                             "key": "topic",
                                             "joiner": "\\n",
                                             "joinerType": "str",
                                             "accumulate": false,
                                             "timeout": "",
                                             "count": "2",
                                             "reduceRight": false,
                                             "reduceExp": "",
                                             "reduceInit": "",
                                             "reduceInitType": "",
                                             "reduceFixup": "",
                                             "x": 830,
                                             "y": 2720,
                                             "wires": [
                                                 [
                                                     "24ef7a60f294bd8f"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "24ef7a60f294bd8f",
                                             "type": "ui_table",
                                             "z": "53d8621916dd6725",
                                             "group": "cce10362a261a42e",
                                             "name": "",
                                             "order": 2,
                                             "width": 0,
                                             "height": 0,
                                             "columns": [
                                                 {
                                                     "field": "Hafen",
                                                     "title": "Hafen",
                                                     "width": "",
                                                     "align": "left",
                                                     "formatter": "plaintext",
                                                     "formatterParams": {
                                                         "target": "_blank"
                                                     }
                                                 },
                                                 {
                                                     "field": "Pegel",
                                                     "title": "Pegel",
                                                     "width": "",
                                                     "align": "left",
                                                     "formatter": "plaintext",
                                                     "formatterParams": {
                                                         "target": "_blank"
                                                     }
                                                 }
                                             ],
                                             "outputs": 0,
                                             "cts": false,
                                             "x": 970,
                                             "y": 2720,
                                             "wires": []
                                         },
                                         {
                                             "id": "29055c34d03df8f9",
                                             "type": "comment",
                                             "z": "53d8621916dd6725",
                                             "name": "Ausgabe als Text",
                                             "info": "",
                                             "x": 140,
                                             "y": 2480,
                                             "wires": []
                                         },
                                         {
                                             "id": "4e40b69157b57af1",
                                             "type": "comment",
                                             "z": "53d8621916dd6725",
                                             "name": "Ausgabe in Table",
                                             "info": "",
                                             "x": 140,
                                             "y": 2660,
                                             "wires": []
                                         },
                                         {
                                             "id": "90c59dd2a6f32bf8",
                                             "type": "ui_group",
                                             "name": "Pegelstände",
                                             "tab": "379a501f.53b59",
                                             "order": 4,
                                             "disp": true,
                                             "width": "6",
                                             "collapse": false,
                                             "className": ""
                                         },
                                         {
                                             "id": "cce10362a261a42e",
                                             "type": "ui_group",
                                             "name": "Table Node Demo",
                                             "tab": "379a501f.53b59",
                                             "order": 3,
                                             "disp": true,
                                             "width": "6",
                                             "collapse": false,
                                             "className": ""
                                         },
                                         {
                                             "id": "379a501f.53b59",
                                             "type": "ui_tab",
                                             "name": "ui-table command",
                                             "icon": "fa-table",
                                             "disabled": false,
                                             "hidden": false
                                         }
                                      ]
                                      

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

                                      @mickym Danke Micky. Nein die Tabelle würde insgesamt aus 10 Werten bestehen.
                                      Ich habe diese Dashboards alle schon in Grafana, suche mir aber einen Wolf um rauszufinden, wie ich eine Grafana Tabelle in Node Red einbinde.
                                      Wenn ich das hinbekommen würde, wäre ich grundsätzlich erstmal fertig und mir würde nur noch der Fernzugriff fehlen.

                                      Mit besten Grüßen
                                      Andy

                                      mickymM 1 Reply Last reply
                                      0
                                      • Damrak2022D Damrak2022

                                        @mickym Danke Micky. Nein die Tabelle würde insgesamt aus 10 Werten bestehen.
                                        Ich habe diese Dashboards alle schon in Grafana, suche mir aber einen Wolf um rauszufinden, wie ich eine Grafana Tabelle in Node Red einbinde.
                                        Wenn ich das hinbekommen würde, wäre ich grundsätzlich erstmal fertig und mir würde nur noch der Fernzugriff fehlen.

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

                                        @damrak2022 Hast Du denn die URLs für Grafana - Du kannst die entweder als ganze Seiten einbinden oder halt wieder in eine Gruppe.

                                        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 Offline
                                          Damrak2022D Offline
                                          Damrak2022
                                          wrote on last edited by Damrak2022
                                          #280

                                          @mickym Ja, jedes Dashboard hat eine eigene Url. In meiner Visualisierung würde ich einen Tab anlegen mit dem Namen "Grafana" und darunter die einzelnen Gruppen wo das jeweilige Dashboard rein soll.

                                          Bildschirmfoto 2022-09-08 um 22.05.56.png

                                          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

                                          481

                                          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