NEWS
Visualisierung mit Node Red erstellen
-
@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.
-
@mickym Schon wieder so eine schwere Geburt:
-
-
@damrak2022 Super - ich würde es halt immer schön schreiben mit einem Leerzeichen nach dem in.
payload.Zimmer[Zimmername in ["Hochzeitssuite","Prominentensuite"]]
das war diese Node
Wie sieht es mit Deiner Konzentration aus? - Pause nach dieser Anstrengung?
-
@mickym Siehe oben drüber
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Siehe oben drüber
Ok - brauchst Du Pause oder bist du weiter für was Neues offen?
-
@mickym Bin wieder da
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Bin wieder da
Gut dann gehe ich mal davon aus, dass Du nun offen für Neues bist.
Im 1. Fall haben wir ja die Namen unserer Suiten gewusst und diese nun in einem Array aufgelistet, um die entsprechenden Zimmerobjekte zu selektieren.
Nun was müssten wir tun, wenn wir nicht genau den Namen der Suiten wissen - wir wissen lediglich, dass suite im Namen vorkommt?
-
@mickym Ich dachte so, irgendwie mit einer wildcard, scheint aber nicht ganz zu stimmen
payload.Zimmer[Zimmername in["*suite","*suite"]]
payload.Zimmer[Zimmername in["*.suite","*.suite"]]
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ich dachte so, irgendwie mit einer wildcard, scheint aber nicht ganz zu stimmen
payload.Zimmer[Zimmername in["*suite","*suite"]]
Nein das ist schon wieder im Bereich des Ratens - außerdem gehst Du von 2 Objekten aus - aber Du hast Recht - wir müssen alle Zimmernamen in den Werten der Zimmerobjekte nach dem string "suite" durchsuchen.
Der Stern ist was ganz anderes der gilt für Eigenschaftsnamen aber nicht für Werte. Das können wir gerne später in der Anwendung zeigen.
-
@mickym Der steht in der JSONATA Hilfe als Wildcard drin. Ud wie geht es richtig?
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Der steht in der JSONATA Hilfe als Wildcard drin. Ud wie geht es richtig?
Wie gesagt das sind Wildcards für die Bezeichnung von Eigenschaften aber nicht von Werten.
Ein Möglichkeit Werte zu analysieren, sind wieder reguläre Ausdrücke, die auch JSONATA beherrscht. In dem Fall brauchen wir auch kein kompletten Match, sondern es langt wenn es generell nur matched.
Du kennst ja noch unsere RegEx Seite mit der wir schon gearbeitet haben.
Wenn wir den kompletten Match nicht brauchen - können wir in regEx einfach das Wort was wir suchen hinschreiben.
Du siehst alle Suiten matchen.
NUn können wir reguläre Ausdrücke auch in unseren Abfragen von Eigenschaften mit dem Verkettungsoperator nutzen:
https://docs.jsonata.org/regex
Da ein perfektes Beispiel schon vorgegeben ist - müsstest Du nun die Abfrage selbst machen können:
-
-
@damrak2022 Tja wenn Du plötzlich Punkte rein machst, die Du vorher nicht hattest Vor einen Filter kommt kein Punkt, da der Filter grundsätzlich nur bei einem Array von Objekten funktioniert.
Ich hoffe Du weißt, was ein Array von Objekten ist? Ein Beispiel ist Dein Zimmerarray.
Also einen Punkt weg und Deine Lösung ist perfekt !!!!
-
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
Na bist Du nicht Klasse??? -
Aber kannst Du mir verraten, wieso Du plötzlich dazu kommst - aus Gutdünken oder warum auch immer (ist ein Sack Reis in China umgefallen?) du plötzlich Punkte machst, die vorher nicht da waren.