Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. SQL Werte separat über Switch Node ausgeben

NEWS

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

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

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

SQL Werte separat über Switch Node ausgeben

Geplant Angeheftet Gesperrt Verschoben Node-Red
8 Beiträge 2 Kommentatoren 384 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • _ Offline
    _ Offline
    _R_A_L_F_
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich mache mehrere MySQL Abfragen und erhalte entsprechend Werte zurück:
    a72be954-e1fc-432a-8220-a5ef71926835-image.png
    b79057f9-f125-40e5-be5a-6157943a21f3-image.png

    Problem ist am MySQL Node, dass es nur eine Ausgabe gibt wo alle SQL Ergebnisse ankommen. Somit muss ich die Werte entsprechend sortieren.
    Dazu dachte ich mir, ich konvertiere es mit der JSON Node in ein JSON und kann dann über die Switch Node das ganze selektieren:
    1d3ff05c-6ee7-4379-9a74-364a59e88bcd-image.png
    54e414bc-5a9b-4b15-adcf-1445ee92557d-image.png

    Aber aktuell läuft mir die Switch Node immer auf den "Ansonsten" Pfad raus (liegt vermutlich am falschen JSONata-Ausdruck) und was daran natürlich auch blöd ist, dass ich den Wert als String habe, obwohl es eine Number ist. Mir fehlt da leider aktuell der Ansatz wie ich das lösen kann.
    Ziel wäre, dass am Switch Node der Wert als Number raus geht ja nach abzufragenden Wert.
    @mickym Hast du da vielleicht bitte einen Ansatz?

    Vielen Dank

    mickymM 1 Antwort Letzte Antwort
    0
    • _ _R_A_L_F_

      Hallo,
      ich mache mehrere MySQL Abfragen und erhalte entsprechend Werte zurück:
      a72be954-e1fc-432a-8220-a5ef71926835-image.png
      b79057f9-f125-40e5-be5a-6157943a21f3-image.png

      Problem ist am MySQL Node, dass es nur eine Ausgabe gibt wo alle SQL Ergebnisse ankommen. Somit muss ich die Werte entsprechend sortieren.
      Dazu dachte ich mir, ich konvertiere es mit der JSON Node in ein JSON und kann dann über die Switch Node das ganze selektieren:
      1d3ff05c-6ee7-4379-9a74-364a59e88bcd-image.png
      54e414bc-5a9b-4b15-adcf-1445ee92557d-image.png

      Aber aktuell läuft mir die Switch Node immer auf den "Ansonsten" Pfad raus (liegt vermutlich am falschen JSONata-Ausdruck) und was daran natürlich auch blöd ist, dass ich den Wert als String habe, obwohl es eine Number ist. Mir fehlt da leider aktuell der Ansatz wie ich das lösen kann.
      Ziel wäre, dass am Switch Node der Wert als Number raus geht ja nach abzufragenden Wert.
      @mickym Hast du da vielleicht bitte einen Ansatz?

      Vielen Dank

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #2

      @_r_a_l_f_ Das ist ein Objekt und da muss gar nichts konvertiert werden. Es ist ein Array, mit allen Werten die Du bekommst.

      Setze die msg.payload mit einer Changenode einfach auf payload.0.day_difference_EVUImport etc.

      Da Du mit einer SQL Abfrage in der Regel nicht nur 1 Wert, sondern viele Werte zurückbekommst würde ich mir IMMER das Array ausgeben und dann auf die einzelnen Werte zugreifen.

      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 Antwort Letzte Antwort
      0
      • mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        69b562a8-a00c-4d89-bb64-45b657952fe3-image.png

        Irgendwann wird es klar. Wie gesagt eine SQL Abfrage kommt immer ein Array zurück, da ja nicht alle Werte der Abfrage einzeln zurückkommen.

        Ansonsten liefert mir nicht nur den Flow, sondern die Daten wie sie aus der Quelle, also wie aus der SQL Node rauskommen und stellt die hier in CodeTags ein. Ich muss jedesmal mit einer Inject Node - eure Daten nachbauen und eintippen und das macht keinen Spaß:

        Hier der Import:

        [
           {
               "id": "23430193ce77de4d",
               "type": "debug",
               "z": "a25f8a10e201ae6f",
               "name": "SQL Abfrage",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 770,
               "y": 2520,
               "wires": []
           },
           {
               "id": "a438f7e3131a7430",
               "type": "inject",
               "z": "a25f8a10e201ae6f",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "[{\"day_difference_EVUImport\":15,\"day_difference_DachPVImport\":10},{\"day_difference_EVUImport\":25,\"day_difference_DachPVImport\":20}]",
               "payloadType": "json",
               "x": 470,
               "y": 2520,
               "wires": [
                   [
                       "23430193ce77de4d",
                       "d00bd4f276a525fa",
                       "d1defe1e97623575"
                   ]
               ]
           },
           {
               "id": "ddcdbcbb62a69a79",
               "type": "debug",
               "z": "a25f8a10e201ae6f",
               "name": "Erster Wert: day_difference_EVUImport",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1080,
               "y": 2580,
               "wires": []
           },
           {
               "id": "d00bd4f276a525fa",
               "type": "change",
               "z": "a25f8a10e201ae6f",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload.0.day_difference_EVUImport",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 790,
               "y": 2580,
               "wires": [
                   [
                       "ddcdbcbb62a69a79"
                   ]
               ]
           },
           {
               "id": "d1defe1e97623575",
               "type": "split",
               "z": "a25f8a10e201ae6f",
               "name": "",
               "splt": "\\n",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "",
               "x": 750,
               "y": 2680,
               "wires": [
                   [
                       "b839f477edbecb0d"
                   ]
               ]
           },
           {
               "id": "7c52929e2acbe110",
               "type": "debug",
               "z": "a25f8a10e201ae6f",
               "name": "Alle Einzelwerte",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1060,
               "y": 2680,
               "wires": []
           },
           {
               "id": "b839f477edbecb0d",
               "type": "split",
               "z": "a25f8a10e201ae6f",
               "name": "",
               "splt": "\\n",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "topic",
               "x": 890,
               "y": 2680,
               "wires": [
                   [
                       "7c52929e2acbe110"
                   ]
               ]
           }
        ]
        

        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 Antwort Letzte Antwort
        0
        • mickymM mickym

          @_r_a_l_f_ Das ist ein Objekt und da muss gar nichts konvertiert werden. Es ist ein Array, mit allen Werten die Du bekommst.

          Setze die msg.payload mit einer Changenode einfach auf payload.0.day_difference_EVUImport etc.

          Da Du mit einer SQL Abfrage in der Regel nicht nur 1 Wert, sondern viele Werte zurückbekommst würde ich mir IMMER das Array ausgeben und dann auf die einzelnen Werte zugreifen.

          _ Offline
          _ Offline
          _R_A_L_F_
          schrieb am zuletzt editiert von
          #4

          @mickym said in SQL Werte separat über Switch Node ausgeben:

          Setze die msg.payload mit einer Changenode einfach auf payload.0.day_difference_EVUImport etc.

          Danke für diesen entscheidenden Tipp :)
          Somit war es dann eigentlich recht schnell klar, wie das Thema zu lösen ist.

          @mickym said in SQL Werte separat über Switch Node ausgeben:

          Da Du mit einer SQL Abfrage in der Regel nicht nur 1 Wert, sondern viele Werte zurückbekommst würde ich mir IMMER das Array ausgeben und dann auf die einzelnen Werte zugreifen.

          Das stimmt natürlich. Ich möchte ja aber gezielt einzelne Werte abgreifen und solange es nur einen Output DB Gesamt gibt, muss ja irgendwie die Unterscheidung erfolgen :)

          1 Antwort Letzte Antwort
          0
          • mickymM mickym

            69b562a8-a00c-4d89-bb64-45b657952fe3-image.png

            Irgendwann wird es klar. Wie gesagt eine SQL Abfrage kommt immer ein Array zurück, da ja nicht alle Werte der Abfrage einzeln zurückkommen.

            Ansonsten liefert mir nicht nur den Flow, sondern die Daten wie sie aus der Quelle, also wie aus der SQL Node rauskommen und stellt die hier in CodeTags ein. Ich muss jedesmal mit einer Inject Node - eure Daten nachbauen und eintippen und das macht keinen Spaß:

            Hier der Import:

            [
               {
                   "id": "23430193ce77de4d",
                   "type": "debug",
                   "z": "a25f8a10e201ae6f",
                   "name": "SQL Abfrage",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 770,
                   "y": 2520,
                   "wires": []
               },
               {
                   "id": "a438f7e3131a7430",
                   "type": "inject",
                   "z": "a25f8a10e201ae6f",
                   "name": "",
                   "props": [
                       {
                           "p": "payload"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "payload": "[{\"day_difference_EVUImport\":15,\"day_difference_DachPVImport\":10},{\"day_difference_EVUImport\":25,\"day_difference_DachPVImport\":20}]",
                   "payloadType": "json",
                   "x": 470,
                   "y": 2520,
                   "wires": [
                       [
                           "23430193ce77de4d",
                           "d00bd4f276a525fa",
                           "d1defe1e97623575"
                       ]
                   ]
               },
               {
                   "id": "ddcdbcbb62a69a79",
                   "type": "debug",
                   "z": "a25f8a10e201ae6f",
                   "name": "Erster Wert: day_difference_EVUImport",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1080,
                   "y": 2580,
                   "wires": []
               },
               {
                   "id": "d00bd4f276a525fa",
                   "type": "change",
                   "z": "a25f8a10e201ae6f",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "payload.0.day_difference_EVUImport",
                           "tot": "msg"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 790,
                   "y": 2580,
                   "wires": [
                       [
                           "ddcdbcbb62a69a79"
                       ]
                   ]
               },
               {
                   "id": "d1defe1e97623575",
                   "type": "split",
                   "z": "a25f8a10e201ae6f",
                   "name": "",
                   "splt": "\\n",
                   "spltType": "str",
                   "arraySplt": 1,
                   "arraySpltType": "len",
                   "stream": false,
                   "addname": "",
                   "x": 750,
                   "y": 2680,
                   "wires": [
                       [
                           "b839f477edbecb0d"
                       ]
                   ]
               },
               {
                   "id": "7c52929e2acbe110",
                   "type": "debug",
                   "z": "a25f8a10e201ae6f",
                   "name": "Alle Einzelwerte",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1060,
                   "y": 2680,
                   "wires": []
               },
               {
                   "id": "b839f477edbecb0d",
                   "type": "split",
                   "z": "a25f8a10e201ae6f",
                   "name": "",
                   "splt": "\\n",
                   "spltType": "str",
                   "arraySplt": 1,
                   "arraySpltType": "len",
                   "stream": false,
                   "addname": "topic",
                   "x": 890,
                   "y": 2680,
                   "wires": [
                       [
                           "7c52929e2acbe110"
                       ]
                   ]
               }
            ]
            

            _ Offline
            _ Offline
            _R_A_L_F_
            schrieb am zuletzt editiert von
            #5

            @mickym said in SQL Werte separat über Switch Node ausgeben:

            Ansonsten liefert mir nicht nur den Flow, sondern die Daten wie sie aus der Quelle, also wie aus der SQL Node rauskommen und stellt die hier in CodeTags ein. Ich muss jedesmal mit einer Inject Node - eure Daten nachbauen und eintippen und das macht keinen Spaß:

            Tut mir leid, daran habe ich nicht gedacht bzw. war ich mir nicht sicher, ob der bisherige Flow so hilfreich ist.

            _ 1 Antwort Letzte Antwort
            0
            • _ _R_A_L_F_

              @mickym said in SQL Werte separat über Switch Node ausgeben:

              Ansonsten liefert mir nicht nur den Flow, sondern die Daten wie sie aus der Quelle, also wie aus der SQL Node rauskommen und stellt die hier in CodeTags ein. Ich muss jedesmal mit einer Inject Node - eure Daten nachbauen und eintippen und das macht keinen Spaß:

              Tut mir leid, daran habe ich nicht gedacht bzw. war ich mir nicht sicher, ob der bisherige Flow so hilfreich ist.

              _ Offline
              _ Offline
              _R_A_L_F_
              schrieb am zuletzt editiert von
              #6

              @mickym
              Ich hab hinter der Change Node auch noch eine Switch Node gepackt um "undefined" Messages (wenn das Array nicht definiert wurde auf Grund der nicht vorhandenen Abfrage) noch herauszufiltern:
              53ca9ff1-a48c-4fc2-9d5e-92d40814a46f-image.png

              83b387b0-4fa9-44a3-aa0c-34a195eb257c-image.png

              Viele Dank für die wie immer hilfreiche Unterstützung :)

              1 Antwort Letzte Antwort
              0
              • mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                Jedenfalls Schöne Weihnachten und freut mich ja auch immer, wenn ich helfen konnte.

                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 Antwort Letzte Antwort
                0
                • mickymM mickym

                  Jedenfalls Schöne Weihnachten und freut mich ja auch immer, wenn ich helfen konnte.

                  _ Offline
                  _ Offline
                  _R_A_L_F_
                  schrieb am zuletzt editiert von
                  #8

                  @mickym Das wünsche ich auch ;) . Ja wenn du nicht bei Node-Red wer dann :)

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  781

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe