NEWS
Visualisierung mit Node Red erstellen
-
@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
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Okay, sorry
So aber Du scheinst das nun verstanden haben - wie Du aus einem beliebigen Datumsformat das korrekte $moments Objekt konstruiert.
Also die einzige richtige Lösung ist:
$moment("2022-10-26", "YYYY-MM-DD")
2022-10-26 ist das Format, das aus der iobroker IN Node rauskommt.
$moment("2022-10-26", "MM-DD-YYYY") schreibst kommt invalidate Date - also ungültiges Datum, da vorne doch eine 4stellige Zahl steht die nicht als Monat interpretiert werden kann. Oder welches ist der 20. Monat im Jahr. Ich denke der wurde noch nicht erfunden.
Soweit klar?
-
@mickym Ja, das ist vollkommen klar. War auch nur ein Versuch, ob er das dann ändert.
-
@damrak2022 Gut nachdem wir nun das richtige $moment Objekt erzeugt haben - kümmern wir uns jetzt um die Ausgabeformat des moments Objekts.
Das steht hier: https://momentjs.com/docs/#/displaying/
Das heißt an das moments Objekt schließen wir eine format Ausgabe an. Wie könnte die Aussehen - im Prinzip hast Du es in diesem Post schon beschrieben.
Wenn Du es geschaft hast, wieder den JSONATA Code Deiner Change Node und das Debug Fenster als Beweis posten.
-
@mickym So, hier bitte:
Da kann ich das Leerzeichen zwischen DD. und MM. YYYY wahrscheinlich weglassen
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym So, hier bitte:
Da kann ich das Leerzeichen zwischen DD. und MM. YYYY wahrscheinlich weglassen
Na das schaut doch schon mal sehr gut aus - ja und ich würde das Leerzeichen lieber weglassen, damit das Datum auch schön aussieht - aber letztlich siehst Du, dass Du da reinschreiben kannst was Du willst und das Datum wird genau so ausgeben. Wenn Du also lieber ein Datum mit Leerzeichen schreiben willst - dann kannst Du das wie Du siehst tun.