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. Msg.payload werte extrahieren

NEWS

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

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

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

Msg.payload werte extrahieren

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 19.1k 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.
  • O Offline
    O Offline
    okifet96
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • G Offline
      G Offline
      Garf
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • O Offline
        O Offline
        okifet96
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • G Offline
          G Offline
          Garf
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • O Offline
            O Offline
            okifet96
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • G Offline
              G Offline
              Garf
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • R Offline
                R Offline
                rewenode
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  Garf
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    rewenode
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • G Offline
                      G Offline
                      Garf
                      schrieb am zuletzt editiert von
                      #10

                      Cool.

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

                      Danke für die Info

                      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

                      865

                      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