NEWS
Visualisierung mit Node Red erstellen
-
@mickym Das ist die Hausaufgabe, wo ich Dich morgen mit einer perfekten Lösung verblüffe?
-
@damrak2022 Na komm, dass ist nicht Dein Ernst. Ein Wort auszutauschen ist doch nun kein Akt.
-
@mickym Bei mir anscheinend schon
-
Funktioniert
-
@damrak2022 Na also - dafür wolltest Du jetzt 1 Tag Zeit haben?
So die Frage, die Du dann bis morgen beantwortest, was für ein Vorteil dieser Variante gegenüber den parallel geschalteten Switch Nodes aus https://forum.iobroker.net/post/945395 (also dem was wir vor 3 Stunden besprochen haben).
Bitte genaue Situation und Ursache bzw. die unterschiedlichen Ergebnisse beschreiben. Wenn Du es theoretisch nicht hin bringst, kannst Du es ja ausprobieren und dann solltest Du den Unterschied sehen.
Das wäre dann Deine Hausaufgabe. Also so ca. 5-10 Sätze mit Variante des JSONATA Filters und ohne des JSONATA Filters wären sicherlich für Dich und alle Leser hilfreich.
-
@mickym Okay, ich gebe mir Mühe
-
@mickym Habe mal etwas rumgespielt. Hatte nämlich festgestellt das mir der Shellystatus vom Router fehlt und dann noch etwas für die Optik gemacht. Wie gefällt Dir das?
-
@damrak2022 Ja schaut doch ganz gut aus - vor allen Dingen, weiß man was einen erwartet.
-
@mickym Ein Problem habe ich bisher allerdings nicht lösen können:
Schalte ich mein WLAN aus bleibt der Smart Kettle Pro unter Gerätestatus als "Eingeschaltet" stehen, obwohl er unter dem Shellystatus als "aus" angegeben ist.
Dieser Flow ist korrekt, da er genauso ist, wie bei den Geräten wo es funktioniert:
Ich vermute die Ursache hier in diesem Flow, bin aber auch mit Debug Nodes nicht auf die Lösung gekommen:
könntest Du da bitte mal einen Blick drauf werfen? Das wäre nett.
-
@damrak2022 da kann ich leider gar nicht helfen. Das liegt doch nicht an NodeRed oder am Flow.
Meines Erachtens vermischt Du doch auch verschiedene Dinge. Wenn der Shelly aus ist, dann ist die Steckdose ausgeschaltet. Die Steckdose ist aber natürlich noch aktiv in der FritzBox - das wäre ja schlimm, wenn sie da auf aus wäre, dann könntest Du die Steckdose nicht mehr einschalten. Deswegen würde ich mal sagen - ganz normal.
Jedenfalls prüfst Du mit dem einen den Schaltzustand der Steckdose und mit dem anderen ob ein Gerät noch in der FritzBox aktiv ist - das sind doch 2 vollkommen unterschiedliche Dinge. Wenn Du jedenfalls die Shelly Steckdose in der FB überprüfst wird die immer aktiv sein.
-
@mickym Okay, danke da muss ich mich nochmal irgendwann näher mit befassen. Aber ich verstehe schon das das unterschiedliche Dinge sind.
-
@mickym
Auf die "and" Abfragepayload[Strasse="Schlossallee" and Hausnummer="16"]
sieht das Ergebnis so aus:
{ "Zimmer": [ { "Nummer": "1", "Zimmername": "blaues Zimmer", "Preis": 139 }, { "Nummer": "2", "Zimmername": "gelbes Zimmer", "Preis": 189 }, { "Nummer": "3", "Zimmername": "grünes Zimmer", "Preis": 179 }, { "Nummer": "4", "Zimmername": "Hochzeitssuite", "Preis": 349 }, { "Nummer": "5", "Zimmername": "Prominentensuite", "Preis": 589 } ], "Anrede": "Herr", "Strasse": "Schlossallee", "Nachname": "Mustermann", "Vorname": "Max", "Hausnummer": "16", "Stadt": "Wiesbaden", "PLZ": "65187" }
Auf die "or" Abfrage
payload[Strasse="Schlossallee" or Hausnummer="16"]
sieht das Ergebnis so aus:
{ "Zimmer": [ { "Nummer": "1", "Zimmername": "blaues Zimmer", "Preis": 139 }, { "Nummer": "2", "Zimmername": "gelbes Zimmer", "Preis": 189 }, { "Nummer": "3", "Zimmername": "grünes Zimmer", "Preis": 179 }, { "Nummer": "4", "Zimmername": "Hochzeitssuite", "Preis": 349 }, { "Nummer": "5", "Zimmername": "Prominentensuite", "Preis": 589 } ], "Anrede": "Herr", "Strasse": "Schlossallee", "Nachname": "Mustermann", "Vorname": "Max", "Hausnummer": "16", "Stadt": "Wiesbaden", "PLZ": "65187" }
In diesen beiden Fällen verwende ich zwei Switch Nodes um einmal die "Strasse" und einmal die "Hausnummer" abzufragen. Anschließend eine Change Node um das Zimmer zu extrahieren.
Man kann die Switch Nodes in Reihe platzieren = "and" Abfrage
Man kann die Switch Nodes untereinander platzieren = "or" Abfrage
Es gibt aber auch die Möglichkeit die Abfrage direkt in den Eigenschaften einer Switch Node abzufragen:
Das funktioniert sowohl mit der "and", sowie "or" Abfrage:
Bei der "and" Abfrage erhalte ich ein Debug mit einem Array und den 5 Zimmern
Bei der "or" Abfrage erhalte ich ein Debug wo mir 2 Arrays mit jeweils 5 Zimmern ausgegeben werden, da ja auch zwei Abfragen durchgeführt wurden.
Wenn ich die ganze JSONATA Abfrage in den Eigenschaften der Switch Node mache, bekomme ich ebenfalls ein Array mit den 5 Zimmern, aber zusätzlich auch noch die Adressdaten.
-
@damrak2022 Na da hast Du zwar viel geschrieben und schaut auch gut aus. Aber die Fragestellung war
- Nur die ODER Abfrage und hier der Unterschied ob ich es mit 3 switch Nodes mache oder 1 switch Node mit JSONATA?
Also die 4 Fälle untersuchen und nur oder - und die Objekte bleiben auch immer die gleichen - aber einen Unterschied gibt es.
Wenn Du dir das Bild anschaust kann man den Unterschied auch so erkennen, wenn Du es mal logisch durchgehst.
Du hast nicht mal im Ansatz die 4 Fälle untersucht, wo der Unterschied auftritt:
-
@mickym
Der einzige Unterschied, den ich sehe, ist halt das bei einer "and" Abfrage beide Bedingungen erfüllt sein müssen, während bei einer "or" Abfrage eine der beiden Bedingungen erfüllt sein müssen. Dies ergibt sich aber auch schon aus der Art der Abfrage, also "and" oder "or".
Bei der "and" Abfrage werden die Abfragen nacheinender gestellt
Bei der "or" Abfrage werden die Abfragen gleichzeitig gestellt. -
@damrak2022 Ich habe nicht "and" und "or" untersuchen, sondern nur "or" oder "ODER".
Dann schrieb ich Dir das:
Du hast nicht mal im Ansatz die 4 Fälle untersucht, wo der Unterschied auftritt:
Und hast Du das gemacht? Nein ich sehr nur Erläuterungen.
Wenn Du das gemacht hättest was ich gesagt habe, dann hättest Du folgendes festgestellt bei einer ODER Verknüpfung festgestellt:
Ich kürze
das nun mitJSONATA Switch
ab und das
mitSwitch Nodes parallel.
Parkstrasse 16 :
JSONATA Switch: 1 Nachricht
Switch Nodes parallel: 1 Nachricht
Schlossallee 8:
JSONATA Switch: 1 Nachricht
Switch Nodes parallel:1 Nachricht
Parkstrasse 8:
JSONATA Switch: 0 Nachrichten
Switch Nodes parallel: 0 Nachrichten
Schlossallee 16:
JSONATA Switch: 1 Nachricht
Switch Nodes parallel: 2 NachrichtenSo und daraus ergibt sich in einem Fall ein unterschiedliches Verhalten. Das kannst Du Dir hoffentlich erklären. Und es ist manchmal eben nicht erwünscht, wenn 2 mal getriggert wird, insofern hat die JSONATA Methode hier einen Vorteil.
Ich verstehe nicht, wie ich die Aufgabenstellungen besser formulieren soll.
-
@mickym Bei der Abfrage "Schlossallee 16" ist es sinnvoller mit einem JSONATA Switch abzufragen, da ich dann nur eine Nachricht bekomme.
Würde ich die gleiche Abfrage mit den Switch Nodes parallel abfragen, würde ich zwei identische Nachrichten bekommen, da bei Punkte gleichzeitig abgefragt werden. Es bringt mir aber nichts, zwei identische Ergebnisse zu erhalten. -
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Bei der Abfrage "Schlossallee 16" ist es sinnvoller mit einem JSONATA Switch abzufragen, da ich dann nur eine Nachricht bekomme.
Würde ich die gleiche Abfrage mit den Switch Nodes parallel abfragen, würde ich zwei identische Nachrichten bekommen, da bei Punkte gleichzeitig abgefragt werden. Es bringt mir aber nichts, zwei identische Ergebnisse zu erhalten.Na ja diese Antwort habe ich Dir ja vorgegeben. Die Frage, die sich mir stellt, warum kommt so ein Ergebnis nicht, nachdem ich Dir die Aufgabe gestellt habe. Was war denn bitte so schwer daran zu verstehen?
-
@mickym Irgendwie hä ich gedacht,das Du eine andere Antwort erwartest, zumal wir das ja schon weiter oben durchgegangen sind, wann eine Nachricht durchkommt und wann nicht.
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Irgendwie hä ich gedacht,das Du eine andere Antwort erwartest, zumal wir das ja schon weiter oben durchgegangen sind, wann eine Nachricht durchkommt und wann nicht.
Gestern abend schrieb ich noch - du hast nicht im Ansatz die 4 Fälle untersucht, wo ein Unterschied auftritt und trotzdem kam nicht die Antwort mit dem Unterschied zwischen dem JSONATA Switch und den 3 Switch Nodes. Was soll ich denn noch schreiben, dass Du diese 4 Fälle untersuchst und mir nicht den Unterschied zwischen and und or erklärst???
Wie hättest Du denn bitte die Frage gestellt, dass die gesuchte Antwort kommt? - Das würde mich mal interessieren.
-
@mickym Wahrscheinlich habe ich Deine einfache Frage nur wieder für mich selbst verkompliziert.