Node Red: Objektwerte aufteilen

Gast #5991806
Hallo,

ich versuche, mein Problem mal verständlich zu schildern:

Node-Red:

Von einem Baustein bekomme ich 7 Objekte.
In jedem Objekt sind 15 Werte. Ein Wert (setpoint) ist für mich von 
Interesse.
Diesen habe ich mit folgender Funktion isoliert:

var D1  =   {payload: msg.payload.setpoint};
return [D1];

Nun bekomme ich 7x den jeweiligen Wert als msg.payload:number zurück.
Ich brauche aber nur die "erste und dritte" Nummer.

Wie kann ich diese herausfiltern?

mfg
#5991891
wenn du 7 Objekte bekommst und durch deine Funktion sendest bekommst du 
7 antworten zurück. Die Funktionen behandeln jedes Objekt gleich.

Wenn du die Möglichkeit hast anhand einer "Identifikation" die 7 Objekte 
zu unterscheiden könntest du das schnell mit If machen.
Gast #5992151
War gerade am Reifenwechsel.
Der Tag heute bot sich an.
So, zurück zum Thema, ich benutze die MAXCUBE-Node und die wirft das 
raus:

object
rf_address: "15c24a"
initialized: true
fromCmd: false
error: false
valid: true
mode: "AUTO"
dst_active: true
gateway_known: true
panel_locked: false
link_error: false
battery_low: false
valve: 24
setpoint: 22
temp: 23.4

Das Ganze wie gesagt 7x für 7 Stellantriebe.
Ich sehe gerade, daß es nur 14 Werte sind, peinlich!

Nachdem ich den setpoint isoliert habe, bekomme ich das:

msg.payload : number
22

msg.payload : number
20

msg.payload : number
21

msg.payload : number
22

msg.payload : number
23

msg.payload : number
24

msg.payload : number
21

Wie gesagt, ich will nur den 1. und 3. Wert für mich.
#5992898
Bist du dir sicher, dass es (immer!) die 1. und 3. sind, oder willst du 
die von 2 bestimmten nodes (rf_address)?

Ansonsten: Objecte in ein Array sammeln und per array[0] und array[2] 
das 1. und 3. Element auswählen.
Gast #5993836
Eric B. schrieb:
> Bist du dir sicher, dass es (immer!) die 1. und 3. sind, oder willst du
> die von 2 bestimmten nodes (rf_address)?
>
> Ansonsten: Objecte in ein Array sammeln und per array[0] und array[2]
> das 1. und 3. Element auswählen.

Würde ich auch so machen das Problem ist nur wen sich das ganze Objekt 
mal verändert oder defekt ist, ich würde mit der rf_address wenn die 
einmalig ist zusammen ein neues Objekt erzeugen das kann dann ja z.b. 
auch <addr>:<Wert> sein dann hast du das Problem nicht wenn da was 
durcheinander kommt z.b. bei nen Update der Steuerung und dann kannst 
dir anhand der Adresse den wert immer zielgenau rauspicken.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.