Forum: PC-Programmierung Node Red: Objektwerte aufteilen


von Erhard S. (Gast)


Lesenswert?

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

von K. J. (Gast)


Lesenswert?

Zeig mal hier das Objekt dann ist es etwas einfacher zu helfen

von Werner M. (werner-m)


Lesenswert?

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.

von Erhard S. (Gast)


Lesenswert?

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.

von Eric B. (beric)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

oder das msg Objekt für die nicht benötigten auf null setzen müsste auch 
gehen.

von K. J. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.