mikrocontroller.net

Forum: PC-Programmierung Node Red: Objektwerte aufteilen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Erhard S. (ste)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig mal hier das Objekt dann ist es etwas einfacher zu helfen

Autor: Werner M. (werner-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Erhard S. (ste)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Eric B. (beric)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes S. (jojos)
Datum:

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

Autor: K. J. (theborg0815) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.