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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Msg.payload werte extrahieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    876

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Msg.payload werte extrahieren

Scheduled Pinned Locked Moved Skripten / Logik
10 Posts 3 Posters 19.2k 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.
  • O Offline
    O Offline
    okifet96
    wrote on last edited by
    #1

    Hallo,

    folgendes Problem:

    Ich habe 2 Sensoren DSB1820 am Raspi hängen, ich bekommen über das "DS18B20 Node" folgende Daten übermittelt:

    12.3.2018, 20:34:11node: 7d1736a7.4602f8
    msg.payload : array[2]
    array[2]
    0: object
    family: "28"
    id: "FF58F6011502"
    dir: "w1_bus_master1"
    file: "28-021501f658ff"
    temp: 22.5
    1: object
    family: "28"
    id: "FF5701031503"
    dir: "w1_bus_master1"
    file: "28-0315030157ff"
    temp: 22.562
    

    2717_bildschirmfoto_2018-03-12_um_20.50.05.png
    2717_bildschirmfoto_2018-03-12_um_20.48.35.png

    Ich möchte die beiden Temperaturwerte extrahieren um diese an einer Anzeige auf der Weboberfläche zu zeigen.

    Habe leider keine Ahnung von Javascript denke aber das es nicht schwierig sein kann, das zu bewerkstelligen.

    Meine Recherchen zeigten das entweder das Function Node oder das Split Node an mein Ziel führen könnten.

    Kann mir hier jemand helfen?

    1 Reply Last reply
    0
    • G Offline
      G Offline
      Garf
      wrote on last edited by
      #2

      @okifet96:

      Ich möchte die beiden Temperaturwerte extrahieren um diese an einer Anzeige auf der Weboberfläche zu zeigen. `

      Ist absolut kein Problem. Die Werte bzw. die Variable läßt sich kopieren und an das gauge-Node übergeben. Du gehst auf >_ und kopierst dir die Variable (Path copied), z.B. payload[0]. Setzt Du noch ein msg. davor, dann kannst Du den Inhalt einer beliebigen Variablen zuordnen und weiterverarbeiten. Das machst Du am besten in einem function-Node.

      1 Reply Last reply
      0
      • O Offline
        O Offline
        okifet96
        wrote on last edited by
        #3

        Hey Garf, danke für die rasche Antwort,

        leider hab ichs nicht zustande gebracht.

        Ich habe im Debug Fenster die 1. und 2. Temp. kopiert:

        payload[0].temp

        payload[1].temp

        waren die Daten,

        hab dann das im Function Node eingefügt und 2 Ausgänge gemacht:
        2717_bildschirmfoto_2018-03-12_um_21.29.33.png

        hab diese dann jeweils an eine Gauge verbunden jedoch kamen keine Werte an und im Debug Fenster

        kam auch wieder nicht das gewünschte an:
        2717_bildschirmfoto_2018-03-12_um_21.31.55.png

        Wo ist mein Denkfehler?

        1 Reply Last reply
        0
        • G Offline
          G Offline
          Garf
          wrote on last edited by
          #4

          @okifet96:

          Wo ist mein Denkfehler? `
          Schon nicht schlecht für den Anfang. Ich würde noch zwei Kleinigkeiten ändern. Ob man es noch vereinfachen könnte, dass schauen wir dann später mal.

          Du brauchst zwei Function-Nodes mit je einem Ausgang und folgendem Inhalt:

          msg.payload=msg.payload[0].temp;

          global.set("temp1",msg.payload[0]); //schreibt den Wert in eine globale Variable

          return msg;

          Function-Node 2:

          msg.payload=msg.payload[0].temp;

          global.set("temp2",msg.payload[1]);

          return msg;

          Das Setzen der globalen Variablen kannst Du natürlich auch weglassen. Ich möchte damit nur zeigen, dass Du die Messwerte als globale Variable in allen Flows und Nodes von Node-Red zur Verfügung stellen kannst. Den Wert der globalen Variablen kannst Du dir im contextbrowser ansehen.

          Die Function-Nodes werden mit dem rpi-ds Node und dem jeweiligen gauge-Node verbunden. Zur Kontrolle schließt Du dann noch ein debug-Node an. Bei Fragen, fragen.

          1 Reply Last reply
          0
          • O Offline
            O Offline
            okifet96
            wrote on last edited by
            #5

            ich habe gestern Nacht noch sehr lange rumprobiert und bin dann auf diese Lösung gekommen:

            Mittels 2 "Change Nodes" konnte ich die Werte separieren:
            2717_bildschirmfoto_2018-03-13_um_14.56.50.png

            Habe nun deine Lösung ausprobiert und sie funktioniert auch prima,

            Wie könnte ich die Globale Variable woanders wieder aufrufen?

            Ich würde dann quasi keine direkte Verbindung mit den Nodes benötigen sonder nur die Variable einbauen?

            1 Reply Last reply
            0
            • G Offline
              G Offline
              Garf
              wrote on last edited by
              #6

              @okifet96:

              Mittels 2 "Change Nodes" konnte ich die Werte separieren:

              Wie könnte ich die Globale Variable woanders wieder aufrufen?

              Ich würde dann quasi keine direkte Verbindung mit den Nodes benötigen sonder nur die Variable einbauen? `

              Change Node geht natürlich auch.

              Die globale Variable kannst Du im Function Node über global.get("temp") wieder einer beliebigen Variablen zuordnen.

              Beispiel: var temp = global.get("temp");

              In verschiedenen Nodes (z.B. dem inject-Node) lassen sich die globalen Variablen als Inputwert weiterverarbeiten.

              Insgesamt gibt es folgende Variablentypen:

              Die einfachste Form

              var x = 1;

              Diese Variablen behalten ihren Wert nur innerhalb des Function Node und werden bei jedem inject wieder mit ihrem Eingangswert, hier mit dem Wert 1, versehen. Dieser Variablentyp ist als Zähler nicht geeignet.

              Die context Variable

              context.set("x",1);

              Um einen Variablenwert dauerhaft im function-Node festzuschreiben muss dieser Variablentyp gewählt werden. Der Variablenwert kann nur in dem definierten Node verwendet werden. Andere Nodes wie das switch-Node, inject-Node und change-Node können nicht auf die Variable zugreifen.

              Die definierten context-Variablen werden im contextbrowser unter Node angezeigt.

              Die flow Variable

              Die Werte aus diesem Variablentyp können im gesamten Flow (außer in Subflows) und somit in allen auf der Seite befindlichen Nodes ausgelesen werden.

              Der Variablenwert kann im gesamten Flow verwendet werden. Andere Nodes wie das switch-Node, inject-Node und change-Node können ebenfalls lesend und schreibend auf die Variable zugreifen.

              Die definierten context-Variablen werden im contextbrowser unter Flow angezeigt.

              Die globale Variable

              Die Werte aus diesem Variablentyp können über alle Flows von Node-Red in den Nodes ausgelesen werden. Andere Nodes wie das switch-Node, inject-Node und change-Node können ebenfalls lesend und schreibend auf die Variable zugreifen.

              Die definierten globalen-Variablen werden im contextbrowser unter Global angezeigt.

              1 Reply Last reply
              0
              • R Offline
                R Offline
                rewenode
                wrote on last edited by
                #7

                Perfekte Auflistung
                ` > Die flow Variable

                Die Werte aus diesem Variablentyp können im gesamten Flow und somit in allen auf der Seite befindlichen Nodes ausgelesen werden. … `
                außer in Subflows

                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  Garf
                  wrote on last edited by
                  #8

                  @rewenode:

                  außer in Subflows `
                  Wie und wo legt man diese an. Ich lerne, was Node-Red betrifft, immer gerne noch dazu. Und deutschsprachige Literatur zu Node-Red habe ich bisher noch keine gefunden.

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    rewenode
                    wrote on last edited by
                    #9

                    @Garf:

                    @rewenode:

                    außer in Subflows Wie und wo legt man diese an. Ich lerne, was Node-Red betrifft, immer gerne noch dazu. Und deutschsprachige Literatur zu Node-Red habe ich bisher noch keine gefunden.

                    https://github.com/node-red/node-red/wi … :-subflows
                    3999_subflow.png

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      Garf
                      wrote on last edited by
                      #10

                      Cool.

                      Gesehen habe ich den Menüpunkt schon mal. Da muss ich den Subflow wohl mal austesten.

                      Danke für die Info

                      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

                      780

                      Online

                      32.6k

                      Users

                      82.1k

                      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