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 Werte aus Objekten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    533

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Node Red Werte aus Objekten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 1.1k Aufrufe 3 Watching
  • Ä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.
  • Sascha HolzerS Offline
    Sascha HolzerS Offline
    Sascha Holzer
    schrieb am zuletzt editiert von Sascha Holzer
    #1

    Hallo zusammen,

    ich spiele gerade mit Node Red etwas rum und komme an einem Punkt nicht weiter:

    015ead50-6301-40f4-a300-78af9730b29c-image.png

    0577ef81-4c33-4d7e-93da-e5bd033f2e13-image.png

    e2470e35-4303-4b55-8314-29f587b82c29-image.png

    Und zwar möchte ich, wenn über Alexa der Schalter "Speicher" aktiviert wird, dass der Wert von SoC PV Anlage über "Routine Speak" ausgegeben wird. Dazu wollte ich den Wert in die Variable flow.speicher_soc schreiben.

    Wenn ich das ganze mit INJECT und Zahlenwerten probiere und manuell anstoße, funktioniert es. Wenn ich das an "SOC PV Anlage" hänge, geht nicht.

    Nun meine Frage(n):
    1.) Wie triggere ich das CHANGE an, wenn über "SoC PV Anlage" nur der Wert geliefert wird? Vermutlich liegt es daran?!

    Alternative Idee:
    2.) Was muss ich eingeben, um direkt auf den Wert von dem Baustein "SoC PV Anlage" zugreifen zu können? Dann könnte ich das ja eventuell in dem CHANGE Node direkt auf die FLOW Variable schreiben und triggern tu ich das ganze dann über Alexa und den "Schalter".

    Ich hoffe man versteht, was mein Problem ist. :D

    Bin für jeden Hinweis dankbar!

    VG
    Sascha

    mickymM 1 Antwort Letzte Antwort
    0
    • Sascha HolzerS Sascha Holzer

      Hallo zusammen,

      ich spiele gerade mit Node Red etwas rum und komme an einem Punkt nicht weiter:

      015ead50-6301-40f4-a300-78af9730b29c-image.png

      0577ef81-4c33-4d7e-93da-e5bd033f2e13-image.png

      e2470e35-4303-4b55-8314-29f587b82c29-image.png

      Und zwar möchte ich, wenn über Alexa der Schalter "Speicher" aktiviert wird, dass der Wert von SoC PV Anlage über "Routine Speak" ausgegeben wird. Dazu wollte ich den Wert in die Variable flow.speicher_soc schreiben.

      Wenn ich das ganze mit INJECT und Zahlenwerten probiere und manuell anstoße, funktioniert es. Wenn ich das an "SOC PV Anlage" hänge, geht nicht.

      Nun meine Frage(n):
      1.) Wie triggere ich das CHANGE an, wenn über "SoC PV Anlage" nur der Wert geliefert wird? Vermutlich liegt es daran?!

      Alternative Idee:
      2.) Was muss ich eingeben, um direkt auf den Wert von dem Baustein "SoC PV Anlage" zugreifen zu können? Dann könnte ich das ja eventuell in dem CHANGE Node direkt auf die FLOW Variable schreiben und triggern tu ich das ganze dann über Alexa und den "Schalter".

      Ich hoffe man versteht, was mein Problem ist. :D

      Bin für jeden Hinweis dankbar!

      VG
      Sascha

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @sascha-holzer Na ich versteh es nur halb. Warum kannst Du den Wert nicht in einer Flow variable speichern. Wenn da halt auch andere Werte rauskommen, dann filtere halt mit einer switch Node die Nachrichten aus, die den korrekten Wert enthalten.

      Die Flow-variable über ein Change Node wieder zu holen, sollte ja kein Problem sein.

      Wenn das oben Dein korrektes payload Objekt ist, dann filtere halt die Nachrichten aus, deren state korrekt ist und speichere dann die payload.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      0
      • Sascha HolzerS Offline
        Sascha HolzerS Offline
        Sascha Holzer
        schrieb am zuletzt editiert von
        #3

        @mickym Ok du hast recht, das Problem lag wohl nicht an dieser change node sondern beim Routine Speak von Alexa.
        993ba445-2d79-4ab0-aad5-a2bf87548644-image.png
        Der Wert kam dort an (68), aber irgendwie scheint es ein Problem mit dem Datentyp zu geben?!

        Wenn ich das vorher nochmal in einen String umwandle, dann hat es funktioniert.

        var SoC = String(msg.payload)
        msg.payload = "Der Speicher hat " +SoC+ " Prozent"
        return msg;

        Mein Verständnis-Problem lag daran, dass ich dachte, man muss die Change Node nochmal antriggern, damit der Befehl ausgeführt wird. Bin noch sehr am Anfang mit Node Red

        Aber für die Zukunft, nochmal zu Frage 2): Wie kann ich in zB einer Function direkt auf diese 5 aus dem Objekt zugreifen? Oder geht das gar nicht?

        VG
        Sascha

        mickymM 1 Antwort Letzte Antwort
        0
        • Sascha HolzerS Sascha Holzer

          @mickym Ok du hast recht, das Problem lag wohl nicht an dieser change node sondern beim Routine Speak von Alexa.
          993ba445-2d79-4ab0-aad5-a2bf87548644-image.png
          Der Wert kam dort an (68), aber irgendwie scheint es ein Problem mit dem Datentyp zu geben?!

          Wenn ich das vorher nochmal in einen String umwandle, dann hat es funktioniert.

          var SoC = String(msg.payload)
          msg.payload = "Der Speicher hat " +SoC+ " Prozent"
          return msg;

          Mein Verständnis-Problem lag daran, dass ich dachte, man muss die Change Node nochmal antriggern, damit der Befehl ausgeführt wird. Bin noch sehr am Anfang mit Node Red

          Aber für die Zukunft, nochmal zu Frage 2): Wie kann ich in zB einer Function direkt auf diese 5 aus dem Objekt zugreifen? Oder geht das gar nicht?

          VG
          Sascha

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #4

          @sascha-holzer Ich würde Dir generell raten nicht soviel mit function Nodes zu machen. Solche Dinge kann man alle mit Change Node machen. Mit function Nodes programmierst Du wieder auf herkömmliche Weise und das muss man nur, für wirklich komplexe Anforderungen - für die es keine eigene Node gibt.

          Auf die Eigenschaften von Objekten greifst Du wie in Javascript auch über die Punkt oder über die Klammernotation zu.

          0d3714cb-9ce6-4d03-bca6-a0688ced88ca-image.png

          aus https://www.w3schools.com/js/js_objects.asp

          Am Besten ist einfach - du lässt Dir das Objekt in einer Debug Node ausgeben und dann kopierst Du Dir den Pfad zu einer Objekteigenschaft direkt aus dem Debugfenster:

          copy path.gif

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          Sascha HolzerS 1 Antwort Letzte Antwort
          0
          • Marc BergM Offline
            Marc BergM Offline
            Marc Berg
            Most Active
            schrieb am zuletzt editiert von
            #5

            @sascha-holzer sagte in Node Red Werte aus Objekten:

            Aber für die Zukunft, nochmal zu Frage 2): Wie kann ich in zB einer Function direkt auf diese 5 aus dem Objekt zugreifen? Oder geht das gar nicht?

            einfach per "msg.payload"

            hier ein kurzer Ausschnitt als Beispiel:

            if (msg.payload==msg.actuator){
                //downlink queue löschen mit leerem Array
                msg.payload={};
            }
            

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            mickymM 1 Antwort Letzte Antwort
            0
            • Marc BergM Marc Berg

              @sascha-holzer sagte in Node Red Werte aus Objekten:

              Aber für die Zukunft, nochmal zu Frage 2): Wie kann ich in zB einer Function direkt auf diese 5 aus dem Objekt zugreifen? Oder geht das gar nicht?

              einfach per "msg.payload"

              hier ein kurzer Ausschnitt als Beispiel:

              if (msg.payload==msg.actuator){
                  //downlink queue löschen mit leerem Array
                  msg.payload={};
              }
              
              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #6

              @marc-berg Nur eine kleine Anmerkung zu Deinem Code- Schnipsel - ist ein leeres Objekt und kein leeres Array auf das Du die payload setzt. ;)

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              Marc BergM 1 Antwort Letzte Antwort
              1
              • mickymM mickym

                @marc-berg Nur eine kleine Anmerkung zu Deinem Code- Schnipsel - ist ein leeres Objekt und kein leeres Array auf das Du die payload setzt. ;)

                Marc BergM Offline
                Marc BergM Offline
                Marc Berg
                Most Active
                schrieb am zuletzt editiert von Marc Berg
                #7

                @mickym sagte in Node Red Werte aus Objekten:

                @marc-berg Nur eine kleine Anmerkung zu Deinem Code- Schnipsel - ist ein leeres Objekt und kein leeres Array auf das Du die payload setzt. ;)

                Da hast Du natürlich recht, wobei in meinem Code sonst in diesem Object noch ein Array drin steckt, deshalb der Kommentar.

                NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @sascha-holzer Ich würde Dir generell raten nicht soviel mit function Nodes zu machen. Solche Dinge kann man alle mit Change Node machen. Mit function Nodes programmierst Du wieder auf herkömmliche Weise und das muss man nur, für wirklich komplexe Anforderungen - für die es keine eigene Node gibt.

                  Auf die Eigenschaften von Objekten greifst Du wie in Javascript auch über die Punkt oder über die Klammernotation zu.

                  0d3714cb-9ce6-4d03-bca6-a0688ced88ca-image.png

                  aus https://www.w3schools.com/js/js_objects.asp

                  Am Besten ist einfach - du lässt Dir das Objekt in einer Debug Node ausgeben und dann kopierst Du Dir den Pfad zu einer Objekteigenschaft direkt aus dem Debugfenster:

                  copy path.gif

                  Sascha HolzerS Offline
                  Sascha HolzerS Offline
                  Sascha Holzer
                  schrieb am zuletzt editiert von
                  #8

                  @mickym
                  Danke für die Tipps, ich werde mich durchwuseln.
                  Habe es jetzt geschafft, die Function zu ersetzen und gleich mit den anderen Werten weiter gemacht =)

                  1092fb51-5ab3-4660-b65a-d5a69d68e33d-image.png

                  Besten Dank!

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • Sascha HolzerS Sascha Holzer

                    @mickym
                    Danke für die Tipps, ich werde mich durchwuseln.
                    Habe es jetzt geschafft, die Function zu ersetzen und gleich mit den anderen Werten weiter gemacht =)

                    1092fb51-5ab3-4660-b65a-d5a69d68e33d-image.png

                    Besten Dank!

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @sascha-holzer Gerne Du - kannst im Übrigen auch mehrere Regel in einer Change Node zusammenfassen. ;) Nur mal so allgemein gesprochen. ;)

                    Also so was:

                    069f91e2-904f-4d1d-b224-089e642a437d-image.png

                    kann man wahrscheinlich auch in eine Change NOde packen. ;)

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    Sascha HolzerS 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @sascha-holzer Gerne Du - kannst im Übrigen auch mehrere Regel in einer Change Node zusammenfassen. ;) Nur mal so allgemein gesprochen. ;)

                      Also so was:

                      069f91e2-904f-4d1d-b224-089e642a437d-image.png

                      kann man wahrscheinlich auch in eine Change NOde packen. ;)

                      Sascha HolzerS Offline
                      Sascha HolzerS Offline
                      Sascha Holzer
                      schrieb am zuletzt editiert von
                      #10

                      @mickym Da hab ich mir schon gedacht, aber ich finde es als Anfänger so tatsächlich übersichtlicher und man kann sich schnell was neues zusammenkopieren.

                      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

                      883

                      Online

                      32.6k

                      Benutzer

                      81.9k

                      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