[Gelöst] [V4.0 IP4] Umwandlung einer ISO 8601 Zeit in Unix

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 476
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 209 Mal

[V4.0 IP4] Umwandlung einer ISO 8601 Zeit in Unix

#1

Beitrag von jensgulow »

Hallo,

Hier mal ein Auszug aus dem Response einer Http-API Anfrage beim DWD ....
"EC_GROUP": "WIND",
"EC_AREA_COLOR": "251 140 0",
"EFFECTIVE": "2023-10-02T17:47:00Z",
"ONSET": "2023-10-03T15:00:00Z",
"EXPIRES": "2023-10-03T22:00:00Z",

Die Zeitangaben sind in ISO 8601 Format. Um die Zeitangaben ("ONSET", "EXPIRES") im TWS weiterverwenden zu können suche ich einen Weg diese in die Unixzeit zu wandeln. Habe hier im Forum bisher keinen Ansatz gefunden. Hat sich da ggf. jemand schon einmal was zusammengebaut?
Zuletzt geändert von Parsley am Mi Nov 01, 2023 9:08 am, insgesamt 1-mal geändert.
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 644 Mal
Danksagung erhalten: 797 Mal

#2

Beitrag von Robosoc »

Zumindest im Logik-Editor würde ich dafür bis jetzt (V4 IP4) noch keine Möglichkeit sehen.
Hast Du Node-Red im Portainer am Laufen?
Zuletzt geändert von Robosoc am Mi Okt 04, 2023 8:11 am, insgesamt 1-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 476
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 209 Mal

#3

Beitrag von jensgulow »

@Robosoc Ja , habe ich. Wollte aber wenn möglich irgendwann davon weg kommen. Aktuell laufen da aber noch einige Amazon-Alexa-Bausteine drüber. Also wenn es da eine gute Lösung gäbe, würde mir das sicher auch helfen.
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 644 Mal
Danksagung erhalten: 797 Mal

#4

Beitrag von Robosoc »

Ich bin leider auch kein JS-Crack und könnte Dir die Lösung da nicht aus dem Ärmel zaubern...da Du ja aber grundsätzlich "nur" einen String in Teile und diese dann in Zahlen zerlegen musst und aus diesen Zahlen dann durch eine Formeln eine große Zahl "basteln" musst, wird es in NodeRed auf jeden Fall gehen.

Ich bin mir nicht ganz sicher, aber ich glaube auf den ersten Blick, dass Dir die Funktion

Code: Alles auswählen

$toMillis
aus JSONata 2.0.0 die Aufgabe löst:
https://docs.jsonata.org/date-time-functions

Bin mir nicht sicher, ob Du JSONata irgendwie als Palette einbinden kannst, aber ansonsten könntest Du vermutlich hier ein wenig mehr dazu finden:
https://flows.nodered.org/flow/29fd01f8 ... bd68001cb0

Wenn Dich die JSONata Library nicht weiterbringt, dann vielleicht Folgender Link. Dort sind ähnliche Dinge beschrieben, damit würde man vermutlich schon ein wenig anfangen können und sich dann selber die richtige Lösung in Java Script basteln.
https://forum.iobroker.net/topic/40727/ ... el%C3%B6st
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 476
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 209 Mal

#5

Beitrag von jensgulow »

Na ich werde mich mal nach einer Lösung umsehen und berichte dann.
Danke für die Links.
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

gbglace
Reactions:
Beiträge: 4103
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1434 Mal
Danksagung erhalten: 1923 Mal

#6

Beitrag von gbglace »

Ich hatte gestern zufällig ein Video bei YT gesehen da hat der Torben Ledermann mal gezeigt wie er in NodeRed sich Zeiten aus irgendwelchen Müllkalendern für die Anzeige am Glastaster passend umformatiert. Er hat da einen Node gefunden wo man das recht bequem angeben kann, links die Payload mit dem Datum/Zeit in Format X rein und rechts in Format Y wieder raus.

Das hier war es
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 644 Mal
Danksagung erhalten: 797 Mal

#7

Beitrag von Robosoc »

Cooler Hinweis Göran, aus dem Video recht am Anfang lernt man, das das Zauberwort der node MOMENT ist.
https://flows.nodered.org/node/node-red-contrib-moment

Beim Mittagstisch hat mich heute ein Kollege noch auf eine andere Idee gebracht. Wir sprachen über Programmieren und Hilfe von ChatGPT im Allgemeinen. Das hat mich auf die Idee gebracht mal auf https://chatgptx.de/folgende Frage zu stellen:
Wie kann ich ein ISO 8601 Datum in NodeRed in eine Unix Zeit wandeln?
Die Antwort hat mich mal wieder ziemlich beeindruckt:
In Node-RED können Sie das moment-Modul verwenden, um ein ISO 8601-Datum in eine Unix-Zeit umzuwandeln. Hier ist ein Beispiel, wie Sie dies tun können:

1. Installieren Sie das moment-Modul, indem Sie den folgenden Befehl in Ihrem Node-RED-Projektverzeichnis ausführen:

Code: Alles auswählen

npm install moment
2. Fügen Sie einen function-Knoten zu Ihrem Flow hinzu und konfigurieren Sie ihn wie folgt:

Code: Alles auswählen

// Importieren des moment-Moduls
var moment = global.get('moment');

// Eingabe des ISO 8601-Datums
var isoDate = msg.payload;

// Umwandlung in Unix-Zeit
var unixTime = moment(isoDate).unix();

// Ausgabe der Unix-Zeit
msg.payload = unixTime;
return msg;
3. Verbinden Sie den function-Knoten mit dem Eingangsknoten, von dem das ISO 8601-Datum stammt, und dem Ausgangsknoten, an den die Unix-Zeit gesendet werden soll.

4. Speichern und bereiten Sie Ihren Flow vor.

Jetzt wird das ISO 8601-Datum, das an den Eingangsknoten gesendet wird, in eine Unix-Zeit umgewandelt und an den Ausgangsknoten gesendet.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

KFloo
Reactions:
Beiträge: 111
Registriert: Di Jan 04, 2022 10:14 pm
Hat sich bedankt: 65 Mal
Danksagung erhalten: 55 Mal

#8

Beitrag von KFloo »

Vielleicht stehe ich gerade auf dem Schlauch und habe auch leider gerade wenig Zeit, aber ich wundere mich, warum niemand die printf u. concat-Modulbausteine und Custom-Logik erwähnt hat (ab V4 IP?). Funktioniert das nicht?

(Ich habe damit mal einen einfachen Dez->Hex-Rechner gebaut.)

Edit: Überlesen, dass das Ziel die Unixzeit ist, evtl. braucht es dann noch CalcFormula?
Zuletzt geändert von KFloo am Do Okt 05, 2023 3:13 pm, insgesamt 1-mal geändert.
Vg, Florian. (TWS 3500XL #1706, VPN geschlossen)
Benutzeravatar

Ersteller
jensgulow
Reactions:
Beiträge: 476
Registriert: Fr Apr 19, 2019 4:37 pm
Wohnort: Leipzig
Hat sich bedankt: 75 Mal
Danksagung erhalten: 209 Mal

#9

Beitrag von jensgulow »

@Robosoc Ja, die Sache mit moments werde ich ausprobieren ....

Frage nebenher: Kann man in node red sichtbar machen, welche "Rechenschritte" der node so macht um das gezeigte Ergebnis zu erhalten? Kann man ja sicher draus lernen ....

@KFloo Vielleicht geht das, aber dazu steh ich mit dem Logikeditor bei solch komplexer Fragestellung etwas auf dem Schlauch...
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, TWS 3500XL#1691 VPN offen, Reboot erlaubt
genutzt? -> TWS, KNX, 1-wire, MQTT, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

KFloo
Reactions:
Beiträge: 111
Registriert: Di Jan 04, 2022 10:14 pm
Hat sich bedankt: 65 Mal
Danksagung erhalten: 55 Mal

#10

Beitrag von KFloo »

Hallo @jensgulow ,
habs nicht kritisch gemeint. :) Ich denke, ich habe mich auch vertan, ich hab irgendwie gedacht, ich könnte den String zerlegen. Sorry, an alle für die Verwirrung.
Vg, Florian. (TWS 3500XL #1706, VPN geschlossen)
Antworten

Zurück zu „Logikengine & Logik-Editor“