Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. String in 2 Variable/Objekte

NEWS

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

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

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

String in 2 Variable/Objekte

Scheduled Pinned Locked Moved Skripten / Logik
7 Posts 3 Posters 4.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Michy
    wrote on last edited by
    #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 Reply Last reply
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      wrote on last edited by
      #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 Reply Last reply
      0
      • frankjokeF Offline
        frankjokeF Offline
        frankjoke
        wrote on last edited by
        #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 Reply Last reply
        0
        • M Offline
          M Offline
          Michy
          wrote on last edited by
          #4

          Klasse das werde ich morgen früh gleich mal testen

          Gesendet von iPhone mit Tapatalk

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Michy
            wrote on last edited by
            #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 Reply Last reply
            0
            • eric2905E Offline
              eric2905E Offline
              eric2905
              wrote on last edited by
              #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 Reply Last reply
              0
              • M Offline
                M Offline
                Michy
                wrote on last edited by
                #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 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                285

                Online

                32.4k

                Users

                81.4k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe