Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Visualisierung mit Node Red erstellen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Visualisierung mit Node Red erstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Damrak2022 last edited by 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.

      Damrak2022 2 Replies Last reply Reply Quote 0
      • Damrak2022
        Damrak2022 @mickym last edited by

        @mickym Vielen, vielen Dank, ich bekomm es gerade nicht hin, aber jetzt mache ich erstmal was anderes und dann wenn ich fit bin, werde ich mir das nochmal in Ruhe zu Gemüte führen.
        Im Notfall melde ich mich.

        1 Reply Last reply Reply Quote 0
        • Damrak2022
          Damrak2022 @mickym last edited by

          @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

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Damrak2022 last edited by 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.

            Damrak2022 1 Reply Last reply Reply Quote 0
            • Damrak2022
              Damrak2022 @mickym last edited by

              @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

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Damrak2022 last edited by

                @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.

                Damrak2022 1 Reply Last reply Reply Quote 0
                • Damrak2022
                  Damrak2022 @mickym last edited by Damrak2022

                  @mickym Ah, okay danke. Jetzt geht alles

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Damrak2022 last edited by

                    @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.

                    Damrak2022 1 Reply Last reply Reply Quote 0
                    • Damrak2022
                      Damrak2022 @mickym last edited by

                      @mickym Ich komme in kleinen Schritten voran

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Damrak2022 last edited by

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

                        https://docs.jsonata.org/predicate

                        Damrak2022 1 Reply Last reply Reply Quote 0
                        • Damrak2022
                          Damrak2022 @mickym last edited by

                          @mickym Ich lese das gerade und versuche es zu verstehen

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Damrak2022 last edited by 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.

                            Damrak2022 1 Reply Last reply Reply Quote 0
                            • Damrak2022
                              Damrak2022 @mickym last edited by

                              @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.

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Damrak2022 last edited by

                                @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.

                                👍

                                Damrak2022 1 Reply Last reply Reply Quote 0
                                • Damrak2022
                                  Damrak2022 @mickym last edited by 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.
                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @Damrak2022 last edited by

                                    @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.

                                    Damrak2022 2 Replies Last reply Reply Quote 0
                                    • Damrak2022
                                      Damrak2022 @mickym last edited by

                                      @mickym Okay, danke

                                      1 Reply Last reply Reply Quote 0
                                      • Damrak2022
                                        Damrak2022 @mickym last edited by

                                        @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

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Damrak2022 last edited by 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
                                             }
                                          ]
                                          

                                          Damrak2022 1 Reply Last reply Reply Quote 0
                                          • Damrak2022
                                            Damrak2022 @mickym last edited by

                                            @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.

                                            mickym 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            917
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            4845
                                            2063237
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo