NEWS
Visualisierung mit Node Red erstellen
-
So was hast Du gemacht, als Du das $moments Objekt für ein bestimmtes Datum erzeugt hast?
-
@mickym Ich verstehe nicht was Du genau meinst.
Vorhin hatte ich ja nur einen fertigen Code benutzt.moment("12-25-1995", "MM-DD-YYYY");
-
@damrak2022 Gut aber was stand dabei.
Auch hier fehlt wieder das $ Zeichen vorne und da es kein JS Code ist und nur eine Zeile braucht man auch keinen Strichpunkt.
Der richtige Code heißt also
$moment("12-25-1995", "MM-DD-YYYY")
Das würdest ein Datumsobjekt erzeugen am 25.12.1995 um 0:00 Uhr.
In Deinem Post hast Du es auf diesen Code, Dein gewünschtes Datum erzeugt:
$moment("10-27-2022", "MM-DD-YYYY")
Was ja auch geklappt hat.
Nun kommt aber aus Deiner iobroker IN Node das Datum in dieser Form raus:
Wie müsste also der Code aussehen, damit ein String wie 2022-10-17 ebenfalls richtig interpretiert würde?
-
@mickym Ich lese das hier
Der Parser ignoriert standardmäßig nicht-alphanumerische Zeichen, so dass beide der folgenden Elemente dasselbe zurückgeben.
Allerdings müsse ich nicht wie ich das so umwandle das ich als Ausgabe 27.10.2022 erhalte. Gestern habe wird das in der Change Node in 3 Datenpunkte aufgeteilt und dann in der zweiten Zeile bei der Change Node hinzugefügt. -
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ich lese das hier
Der Parser ignoriert standardmäßig nicht-alphanumerische Zeichen, so dass beide der folgenden Elemente dasselbe zurückgeben.Du darfst solche Sätze doch nicht aus dem Zusammenhang reißen. Vollständig heißt doch der Beitrag:
Im 1. Parameter wird das Datum mitgegeben, mit dem Du das $moment Objekt erzeugen willst. Hinter dem Komma steht wie das Datum interpretiert werden soll.
Also sagst Du erst mal
$moment("12-25-1995", "MM-DD-YYYY")
dass die ersten beiden Ziffern den Monat bedeuten, die zweiten beiden Ziffern den Tag und die letzten 4 Ziffern das Jahr und zwischen diesen Zahlen ein Bindestrich steht.
Dieser Satz aber sagt:
Der Parser ignoriert standardmäßig nicht-alphanumerische Zeichen, so dass beide der folgenden Elemente dasselbe zurückgeben.Das heißt auch wenn keine Bindestriche sondern andere nicht-alphanummerische Zeichen (also 0-9 bzw. A-Z), als Trenner verwendet werden, wird dies auch richtig interpretiert.
Sprich auch wenn Schrägstriche, anstelle von Bindestrichen beim Datumsstring verwendet werden, wird das trotzdem richtig interpretiert.
War das soweit verständlich? - Sonst bitte fragen.
========================================================================
Allerdings müsse ich nicht wie ich das so umwandle das ich als Ausgabe 27.10.2022 erhalte. Gestern habe wird das in der Change Node in 3 Datenpunkte aufgeteilt und dann in der zweiten Zeile bei der Change Node hinzugefügt.
Vergiss was wir gestern gemacht haben - wir kümmern uns um die moments Bibliothek die sich mit Datumsobjekten beschäftig. Gestern haben wir eine Zeichenkette mit einem bestimmten Zeichen in ein Array umgewandelt um die einzelnen Objekte einzeln adressieren zu können.
HEUTE nehmen wir einen komplett neuen Ansatz. Das von gestern kannst Du Dir merken - hat aber erst mal nichts mit der moments Bibliothek zu tun, die wir heute mal als Lösung verwenden.
===========================================================
So wie müsste als der Code lauten, damit das Datum, sowie es aus Deiner iobroker-IN Node kommt, richtig interpretiert wird?
-
@mickym sagte in Visualisierung mit Node Red erstellen:
War das soweit verständlich? - Sonst bitte fragen.
Das war verständlich, aber ich habe noch nicht mal ansatzweise eine Ahnung wie ich das in DD.MM.YYYY ändere
-
@damrak2022 Wie wäre es mit Geduld. Ich weiß schon wie das geht. Du brauchst Dir darüber erst mal keinen Kopf zu machen.
Du hast erst mal als Aufgabe - dass mit Hilfe des Datumstrings, der aus der iobroker-IN Node ein korrektes $moments Objekt erzeugst.
Also bitte die 2 Fragen beantworten (und ausser Fragen sonst nichts.
)
- Wie sieht der String aus, der aus Deiner iobroker-IN Node rauskommt?
- Wie konstruierst Du daraus das richtige $moment Objekt mit dem richtigen Datum?
-
@mickym Zu 1:
zu 2: Sorry, weiß ich nicht
-
@damrak2022 Ja - also es kommt als Datumstring
2022-10-26
So wie erstellst Du nun ein $moment Objekt zum 26. Oktober 2022 um 0:00 Uhr?
Na wenn Du das verstanden hast, was ich vorher geschrieben habe, dann gibst Du doch als erstes den Datumsstring ein und nach dem Komma, zeigst Du der $moment Bibliothek, wie sie das Datum interpretieren muss.
Ich hatt doch in meinem vorherigen Post geschrieben
$moment("12-25-1995", "MM-DD-YYYY")
dass die ersten beiden Ziffern den Monat bedeuten, die zweiten beiden Ziffern den Tag und die letzten 4 Ziffern das Jahr und zwischen diesen Zahlen ein Bindestrich steht.
Und Du sagtest doch, dass Du das verstanden hattest?
Du musst doch nun nur das Datum in der Form so einsetzen, wie es aus der iobroker-IN Node rauskommt und im 2. Teil erklären, welche Zahl was bedeutet - also wo steht Jahr, Monat und Tag.
Im nächsten Post - poste ich dann die Lösung und dann reden wir darüber was unklar war. Aber möchtest Du es noch einmal versuchen?
-
Moment
-
@damrak2022 Sehr gut.
Und wie schaut der Code in der Change Node aus?
-
Aber ich habe das Datum doch jetzt händisch eingetragen. Kann er das nicht aus dem String der ioBroker in Node übernehmen?
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
Aber ich habe das Datum doch jetzt händisch eingetragen. Kann er das nicht aus dem String der ioBroker in Node übernehmen?
Na das ersetzen wir dann einfach durch die payload - die ja das Datum genau in dieser Form enthält. OK?
-
@mickym Bin mit allem einverstanden
-
@damrak2022 Gut aber es ist doch schon mal ein Erfolgserlebnis, dass Du der $moment Bibliothek beigebracht hast, wie sie nun einen etwas verqueren Datumstring richtig interpretiert wird, oder?
-
@mickym Ja das schon. Mich irritiert halt nur das er den Wert nicht direkt aus der Iobroker in node übernommen hat. Aber Du sagst ja, das kommt jetzt.
-
Aber ich stelle gerade fest, Du hast doch nicht den String genommen, der aus der iobroker-In Node kommt.
Du hast
10-26-2022
genommen.
Aus der ioboker-In Node kommt das Datum aber in der Form:
2022-10-26
Also stimmt Dein Code leider immer noch nicht.
-
@mickym Geändert beim zweiten kommt logischerweise Invalid Date raus.
Beim ersten stimmt es dann , aber ich habe immer noch das englische Format -
Kannst Du mal damit aufhören, wie die Ausgabe aussieht??????????????
Die richtige Lösung kann nur das erste sein. Das 2. kann doch nur falsch interpretiert werden. Es steht doch kein MM vorne???
-
@mickym Okay, sorry