NEWS
Visualisierung mit Node Red erstellen
-
@mickym Momentan bekomme ich nur da Objekt einer Suite, aber kein Array und schon garnicht von beiden. Muss noch ein wenig grübeln.
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Momentan bekomme ich nur da Objekt einer Suite, aber kein Array und schon garnicht von beiden. Muss noch ein wenig grübeln.
Nein das weisst Du noch nicht. Gib mir doch bitte mal nur ein Array mit beiden Namen der Suiten - die schreibst Du nur mal hier rein und dann erkläre ich Dir was Neues. Das ist doch sinnvoller, als wenn Du ewig rumprobierst. Die Dinge, die ich Dir jetzt zeige sind neu und deshalb kannst Du die noch nicht.
-
@mickym sagte in Visualisierung mit Node Red erstellen:
Gib mir doch bitte mal nur ein Array mit beiden Namen der Suiten
Daran hänge ich gerade
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym sagte in Visualisierung mit Node Red erstellen:
Gib mir doch bitte mal nur ein Array mit beiden Namen der Suiten
Daran hänge ich gerade
Na das kann ja nicht sein, das Array hast Du Dir doch ausgeben lassen, als Du die Zimmernamen mit Preisen über 200 € ausgeben hast lassen. Das brauchst doch nur zu kopieren.
-
@mickym Okay, mich hat irritiert das Du geschrieben hast ich könnte den Namen der Suiten direkt eingeben
Da du das weisst kannst Du die Namen der Suiten direkt in die Abfrage eingeben. Also erstelle mal ein Array aus den Namen der Suiten.
-
@damrak2022 Ja kopiere doch bitte mal hier das Array in CodeTags, da Du es für die nächste Abfrage brauchst.
-
[ "Hochzeitssuite", "Prominentensuite" ]
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
[ "Hochzeitssuite", "Prominentensuite" ]
Genau und Du kannst also bekannte Namen in ein Array eingeben und DIREKT in der Abfrage verwenden.
Du kannst nämlich das Wort
in
verwenden.Also allgemein (ich such das noch aus der originalen Beschreibung):
Array[Eigenschaft in ["Wert1","Wert2"]]
ergibt Array mit Objekten, deren Eigenschaft entweder "Wert1" oder "Wert2" ist, also
[ { "Eigenschaft": "Wert1"}, { "Eigenschaft": "Wert2"} ]
Das heißt Du kannst dieses Array nun direkt verwenden, um die beiden Objekte mit den Suiten zu extrahieren
Das
in
Schlüsselwort kann also ebenfalls als Vergleichsoperator verwendet werden.https://docs.jsonata.org/comparison-operators
-
@mickym Vielleicht bin ich gerade etwas von der Rolle, aber so klappt das nicht:
-
@damrak2022 Na Du musst schon die Wert Deines Eingangsobjektes einsetzen. Nicht einfach abschreiben.
Was ist denn Dein
- Array
- Eigenschaft
Also Du willst alle Zimmer abfragen, der Zimmername im Array [ "Hochzeitssuite", "Prominentensuite" ] sind.
-
@mickym Array ist "Zimmer" aber wie die Abfrage dann weitergeht bekomme ich gerade nicht hin. Vor allem dieses Eigenschaft in?
-
@damrak2022 Na die Eigenschaft ist das was Du abfragst. Vorher hast Du die Eigenschaft Preis aus dem Zimmerobjekt abgefragt. Jetzt willst Du ja wissen welche Objekte den Zimmernamen "Hochzeitssuite" oder "Prominentensuite" sind. Was ist also der Eigenschaftsname den Du abfragst?
-
@mickym Zimmername, nur bekomme ich den Code gerade nicht hin. Wird gleich wieder besser, hoffe ich
-
@damrak2022 Fangen wir einfach an. Wie gibst Du alle Zimmerobjekte aus? Poste mal bei Schritt für Schritt nur hier im Thread.
-
payload.Zimmer
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
payload.Zimmer
Sehr gut und wie filterst Du nun die Objekte mit welchem Zeichen?
-
payload.Zimmer[Zimmername="Prominentensuite"]
-
@damrak2022 Sehr gut - damit bekommst Du das Objekt mit dem Zimmernamen "Prominentensuite" - nun wollen wir aber alle Objekte haben die Bestandteil eines Array sind. Statt dem = also das Schlüsselwort in und statt "Prominentensuite" das Array, das die Namen unserer Suiten enthält.
-
@mickym Da fehlt doch irgendwas vor dem "in"
payload.Zimmer[Zimmernamein"4"]
-
@damrak2022 Na Zimmername und in musst Du trennen und dahinter kommt statt "4" Dein Array mit Deinen Suitenamen rein.
https://forum.iobroker.net/post/943476 - da steht doch unten in dem Beispiel mit "world" in drin - wie es geht.