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. String in 2 Variable/Objekte

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

String in 2 Variable/Objekte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 3 Kommentatoren 4.0k 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.
  • M Offline
    M Offline
    Michy
    schrieb am zuletzt editiert von
    #1

    Nabend,

    ich hole mir mit Node-Red über Mqtt Daten, die in Base64 encrypted sind.

    Decrypted werden die Daten im Skript:

    Input= "MyAAMDE5AAA="

    function:

    // msg1 - Unencrypted (vanilla data)
    var msg1 = { payload: msg.payload.length };
    msg1.payload = JSON.parse(msg.payload);
    msg1.payload = msg1.payload;
    
    // msg2 - Decrypt to Text
    var msg2 = { payload: msg.payload.length };
    msg2.payload = JSON.parse(msg.payload);
    msg2.payload = new Buffer(msg2.payload.payload, 'base64').toString('ascii');
    
    // msg3 - Decrypt as Binary value (MSB,LSB)
    var msg3 = { payload: msg.payload.length };
    msg3.payload = JSON.parse(msg.payload);
    msg3.payload = new Buffer(msg3.payload.payload, 'base64').toString('hex');
    msg3.payload = parseInt(msg3.payload, 16);
    
    return [ msg1, msg2, msg3 ];
    

    in ASCII und Hex

    Im Output werden die Daten in einem String ausgegeben:

    • <size size="200">3 019</size> 3 Helligkeitswert

    019 Temperatur.

    Diese beiden Werte würde ich gerne getrennt im IoBroker als Objekte anlegen.

    Mit der Funktion:

    var outputMsgs = [];
    var words = msg.payload.split(" ");
    for (var w in words) {
        outputMsgs.push({payload:words[w]});
    }
    return [ outputMsgs ];
    

    bekomme ich die beiden Daten einzeln angezeigt, schaffe es aber nicht auch beide Werte einzeln so auszugeben,

    dass diese dann mit dem IOBroker verknüpft werden können.

    Gibt es hier einen Javascript Experten, der mir an dieser Stelle weiterhelfen kann oder einen besseren Weg kennt? :D

    Gruß

    Micha

    1 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #2

      Hi,

      Du machst das ganze doch in Node-Red, wenn ich Dich richtig verstanden habe.

      Du hast doch am Script-Block 3 Ausgänge (durch "Return [msg1, msg2, msg3]").

      An den jeweiligen Ausgangspunkt bindest Du dann den ioBroker-Output (also zwei Stück).

      Ich hoffe es kommt rüber was ich meine. Hab nur mein iPhone zur Hand und bin erst morgen Abend zu Hause.

      Gruß,

      Eric

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • frankjokeF Offline
        frankjokeF Offline
        frankjoke
        schrieb am zuletzt editiert von
        #3

        Nach Adam-Riese sollte:

        var words = msg.payload.split(" ");
        
        var helligkeit = words[1]; 
        var temperatur = words[2];
        
        

        Solltest dann die unterschiedlichen Werte einzeln verarbeiten können.

        Frank,

        NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
        Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          Michy
          schrieb am zuletzt editiert von
          #4

          Klasse das werde ich morgen früh gleich mal testen

          Gesendet von iPhone mit Tapatalk

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Michy
            schrieb am zuletzt editiert von
            #5

            Die Variante von Eric hat leider nicht geklappt.

            Fsjoke, wie bringe ich das in ein Script ? Also das splitten, welches mein Script macht und das mit deinem - in 2 strings ausgeben?

            Gruß

            Micha

            Gesendet von iPhone mit Tapatalk

            1 Antwort Letzte Antwort
            0
            • eric2905E Offline
              eric2905E Offline
              eric2905
              schrieb am zuletzt editiert von
              #6

              Moin,

              @Michy:

              Die Variante von Eric hat leider nicht geklappt. `
              Was hat da nicht geklappt?

              Hast Du bei der Funktion unten die Anzahl Outputs auf 3 erhöht?

              Du musst rechts an dem Funktionsblock 3 kleine Kreise haben (siehe Screenshot)
              355_outputs.png
              355_function.png

              Und Du musst im ioBroker-Output noch angeben, das ein nicht existierender Datenpunkt erzeugt werden soll.
              355_create_datenpunkt.png

              Und hier mal mein kompletter Test als Node-Red-Export:
              355_flow.png

              ! ````
              [
              {
              "id": "4ccef53d.2e1dec",
              "type": "function",
              "z": "e863ae55.b767a8",
              "name": "Funktion",
              "func": "var wert1 = {};\nvar wert2 = {};\nvar wert3 = {};\n\nwert1.payload = "1";\nwert2.payload = "2";\nwert3.payload = "3";\n\nreturn [wert1, wert2, wert3];\n",
              "outputs": "3",
              "noerr": 0,
              "x": 332.5,
              "y": 771,
              "wires": [
              [
              "4a44b388.416b54",
              "7a97485e.94816"
              ],
              [
              "e75de716.e74258",
              "1c477691.5b99c9"
              ],
              [
              "b1e2db79.5596",
              "77c1711a.b379e8"
              ]
              ]
              },
              {
              "id": "9affbc33.e2f368",
              "type": "inject",
              "z": "e863ae55.b767a8",
              "name": "Start",
              "topic": "",
              "payload": "",
              "payloadType": "date",
              "repeat": "",
              "crontab": "",
              "once": false,
              "x": 100.5,
              "y": 775,
              "wires": [
              [
              "4ccef53d.2e1dec"
              ]
              ]
              },
              {
              "id": "4a44b388.416b54",
              "type": "debug",
              "z": "e863ae55.b767a8",
              "name": "",
              "active": true,
              "console": "false",
              "complete": "payload",
              "x": 707.5,
              "y": 615,
              "wires": []
              },
              {
              "id": "e75de716.e74258",
              "type": "debug",
              "z": "e863ae55.b767a8",
              "name": "",
              "active": true,
              "console": "false",
              "complete": "false",
              "x": 716.5,
              "y": 730,
              "wires": []
              },
              {
              "id": "b1e2db79.5596",
              "type": "debug",
              "z": "e863ae55.b767a8",
              "name": "",
              "active": true,
              "console": "false",
              "complete": "false",
              "x": 720.5,
              "y": 852,
              "wires": []
              },
              {
              "id": "7a97485e.94816",
              "type": "ioBroker out",
              "z": "e863ae55.b767a8",
              "name": "",
              "topic": "node-red.0.Test.wert1",
              "ack": "false",
              "autoCreate": "true",
              "x": 730.5,
              "y": 656,
              "wires": []
              },
              {
              "id": "1c477691.5b99c9",
              "type": "ioBroker out",
              "z": "e863ae55.b767a8",
              "name": "",
              "topic": "node-red.0.Test.wert2",
              "ack": "false",
              "autoCreate": "true",
              "x": 740.5,
              "y": 767,
              "wires": []
              },
              {
              "id": "77c1711a.b379e8",
              "type": "ioBroker out",
              "z": "e863ae55.b767a8",
              "name": "",
              "topic": "node-red.0.Test.wert3",
              "ack": "false",
              "autoCreate": "true",
              "x": 739.5,
              "y": 892,
              "wires": []
              }
              ]

              
              Gruß,
              
              Eric

              Roses are red, violets are blue,

              if I listen to metal, my neighbours do too

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                Michy
                schrieb am zuletzt editiert von
                #7

                Danke für die ausführliche Antwort, hatte die Anzahl der Ausgänge nur auf 2 erhöht. Werde das heute Abend nochmal versuchen.

                Gruß

                Micha

                Gesendet von iPhone mit Tapatalk

                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

                936

                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