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 Array in ioBroker nutzen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Node Red Array in ioBroker nutzen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 2 Kommentatoren 11.9k Aufrufe
  • Ä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.
  • A Offline
    A Offline
    andre1000
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe in node red ein Array mit 17 Variablen erstellt. Ich möchte dieses Array geasmt in ioBroker nutzen. Gibt es eine Möglichkeit, das gesamte Arry zu übertragen?

    Danke für die Unterstützung

    André

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #2

      hi,

      ich bin nicht sicher, ob ich dein Problem richtig verstanden habe, aber wenn du in NR ein Array an einen state übergibst, tut es das auch, auch wenn man es optisch im state nur als string sieht.

      Ich hab man einen Minimal-Flow gebastelt.

      ! ````
      [
      {
      "id": "b4b05430.922da8",
      "type": "ioBroker out",
      "z": "a9a2a713.60106",
      "name": "set node-red_array to iob-State",
      "topic": "node-red.0.myArrayState",
      "ack": "false",
      "autoCreate": "true",
      "x": 250,
      "y": 160,
      "wires": []
      },
      {
      "id": "c33ff31b.e30ac8",
      "type": "inject",
      "z": "a9a2a713.60106",
      "name": "injectetd array",
      "topic": "",
      "payload": "[1,2,3,4,5]",
      "payloadType": "json",
      "repeat": "",
      "crontab": "",
      "once": false,
      "onceDelay": 0.1,
      "x": 190,
      "y": 80,
      "wires": [
      [
      "b4b05430.922da8"
      ]
      ]
      }
      ]

      
       ![3999_flow.png](/assets/uploads/files/3999_flow.png) 
      
      Und hier der state.
      
       ![3999_state.png](/assets/uploads/files/3999_state.png) 
      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        andre1000
        schrieb am zuletzt editiert von
        #3

        Hallo rewenode,

        danke für die Antwort. Ich glaube, dass ich mein Problem nicht komplett beschrieben habe.

        Hier einmal komplett beschrieben.

        Ich empfange über red node ein CAN Telegramm. Dies setzt sich wie folgt zusammen:

        msg.canid (z.B. 0x100)

        msg.payload (z.B. 80 04 01) - dies sind die Zustände von Schaltern, die in ioBroker verwendet werden sollen

        da ich bis jetzt alles über node red gemacht hatte, habe ich die Telegramme in die einzelnen Bits aufgeteilt, mit der folgenden Struktur:

        msg.CANID

        msg.IN1

        msg.IN2

        ..

        msg.IN32

        Jetzt suche ich eine einfache Möglichkeit, die Signale in ioBroker weiter zuverwenden. Hier ist die Variante mit dem Array eine mögliche. Jedoch habe ich es bisher nicht geschafft, ein Array aus der Struktur zu erstellen.

        Vielleicht hat jemand eine gute Idee.

        Danke

        André

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          rewenode
          schrieb am zuletzt editiert von
          #4

          Was ich da sehe, sind einzelne Properties im msg-Objekt IN1..IN32. Was konkret In1.. sind sehe ich nicht.

          Sowas läßt sich ganz simpel mit dem change-node machen.

          Damit wir aber nicht wieder aneinander vorbei reden, poste doch einfach mal einen Export deiner originalen Struktur aus dem debug-node.

          3999_objekt-struktur-copy.png

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andre1000
            schrieb am zuletzt editiert von
            #5

            Hallo,

            anbei meine Struktur aus Node Red
            2159_1.jpg

            Ich hoffe, dass es jetzt klarer ist.

            André

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              rewenode
              schrieb am zuletzt editiert von
              #6

              Das ist mal wieder nur ein Bild. Du solltest die Struktur als Text posten, so wie ich es im Bild gezeigt habe, kann man sich die Struktur als ASCII-String in die Zwischenablage kopieren und dann als Text posten.

              Jemand der die helfen will, kann diese dann direkt verwenden und außerdem vermeidet man so Fehler. Aber sei's drum…

              Nach deinem Bild hast du deine Daten als Properties von msg angelegt. Das sollte in node-red vermieden werden! Dafür ist msg.payload vorgesehen.

              Also wo du in deinem functions-node msg.IN0 stehen hast sollte msg.payload.IN0 stehen usw. besser noch als eigenes Object.

              msg.payload.myout = {};
              let myout =  msg.payload.myout;
              
              myout.IN0 = was_es_halt_sein_soll; 
              //usw.
              

              Jetzt hast du alle zusammengehörigen Daten in eine Object. Das läßt sich dann ganz simpel mit einem Change-node in ein Array überführen. z.B. so:

              ! ````
              [
              {
              "id": "4f62b5b4.c33e7c",
              "type": "inject",
              "z": "98aa089a.d49718",
              "name": "",
              "topic": "",
              "payload": "{"ID":4711,"IN1":0,"IN2":1,"IN3":2}",
              "payloadType": "json",
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "x": 130,
              "y": 280,
              "wires": [
              [
              "79129325.03cf64",
              "7258677a.1ce2b"
              ]
              ]
              },
              {
              "id": "79129325.03cf64",
              "type": "debug",
              "z": "98aa089a.d49718",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "true",
              "x": 530,
              "y": 280,
              "wires": []
              },
              {
              "id": "fd2caf0c.32a608",
              "type": "debug",
              "z": "98aa089a.d49718",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "false",
              "x": 550,
              "y": 360,
              "wires": []
              },
              {
              "id": "7258677a.1ce2b",
              "type": "change",
              "z": "98aa089a.d49718",
              "name": "obj.property -> array",
              "rules": [
              {
              "t": "set",
              "p": "payload",
              "pt": "msg",
              "to": "payload.*[]",
              "tot": "jsonata"
              }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 360,
              "y": 360,
              "wires": [
              [
              "fd2caf0c.32a608"
              ]
              ]
              }
              ]

              
              So wie du es gemacht hast, ist es vergleichsweise aufwendig. Aber du könntest es immer noch in reinem Javascript im function-node machen. Etwa so:
              
              

              //definiere dein array
              let myarray = [];
              //eigenschaften fommen aus dem payload,
              //ist hier aber egal woher sie kommen
              //{"ID":4711,"IN1":0,"IN2":1,"IN3":2}

              //für alle Elemente an, die du willst
              myarray.push(msg.payload.ID);
              myarray.push(msg.payload.IN1);
              myarray.push(msg.payload.IN2);
              myarray.push(msg.payload.IN3);

              //hänge das array an das msg-objekt
              msg.payload.myarry=myarray;

              return msg;

              
              Also wenn du damit auch noch nicht klar kommst, poste nächstes mal unbedingt deinen flow als Export! Und sie dir an, wie du einen low dann importieren kannst, damit du eine evtl. Hilfe auch verwenden kannst.
              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                andre1000
                schrieb am zuletzt editiert von
                #7

                Hallo,

                vielen Dank für den Tip. Habe es jetzt mit dem Array hinbekommen.

                André

                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

                938

                Online

                32.5k

                Benutzer

                81.6k

                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