Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Timestamp Umwandeln in Node Red (gelöst)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Timestamp Umwandeln in Node Red (gelöst)

Geplant Angeheftet Gesperrt Verschoben Node-Red
17 Beiträge 4 Kommentatoren 19.3k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    frankyboy73
    schrieb am zuletzt editiert von frankyboy73
    #1

    Hi, kann mir vielleicht jemand sagen wie ich einen Timestamp von einer Input Node bzw. Get Node in ein anderes Format (Jahr, Monat, Tag, Stunden, Minuten) umwandeln kann?
    Timestamp1.jpg

    Schöne Grüße Frank

    R mickymM 2 Antworten Letzte Antwort
    0
    • F frankyboy73

      Hi, kann mir vielleicht jemand sagen wie ich einen Timestamp von einer Input Node bzw. Get Node in ein anderes Format (Jahr, Monat, Tag, Stunden, Minuten) umwandeln kann?
      Timestamp1.jpg

      R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #2

      @frankyboy73 Da gibt es wie immer mehrere Möglichkeiten ;-) Hier mal 2 Varianten:

      [
          {
              "id": "6e4722f.e292adc",
              "type": "inject",
              "z": "a57304f5.446898",
              "name": "JSONata $now()",
              "props": [
                  {
                      "p": "payload"
                  },
                  {
                      "p": "topic",
                      "vt": "str"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "$now('[H01]:[m01]')",
              "payloadType": "jsonata",
              "x": 340,
              "y": 400,
              "wires": [
                  [
                      "5110edff.d90ee4"
                  ]
              ]
          },
          {
              "id": "5110edff.d90ee4",
              "type": "debug",
              "z": "a57304f5.446898",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "true",
              "targetType": "full",
              "statusVal": "",
              "statusType": "auto",
              "x": 810,
              "y": 400,
              "wires": []
          },
          {
              "id": "be36aed3.a4a7d",
              "type": "inject",
              "z": "a57304f5.446898",
              "name": "",
              "props": [
                  {
                      "p": "payload"
                  },
                  {
                      "p": "topic",
                      "vt": "str"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "",
              "payloadType": "date",
              "x": 350,
              "y": 500,
              "wires": [
                  [
                      "24eea9de.83b826"
                  ]
              ]
          },
          {
              "id": "24eea9de.83b826",
              "type": "function",
              "z": "a57304f5.446898",
              "name": "dTime",
              "func": "// function mydTime()\n// this function returns actual date/time as dd.mm.yy hh:mm:ss \n\nvar options = {\n        hour: 'numeric',\n        minute: 'numeric',\n        second: 'numeric'\n    };\n\nglobal.set(\"mydTime\", function () {\n    return ((new Date()).toLocaleDateString('de-DE', options))\n})\n\n\n\n\nnode.status({fill:\"green\",shape:\"dot\",text:global.get(\"mydTime\")()});\nreturn msg;\n",
              "outputs": 1,
              "noerr": 0,
              "initialize": "",
              "finalize": "",
              "x": 530,
              "y": 500,
              "wires": [
                  [
                      "5110edff.d90ee4"
                  ]
              ]
          }
      ]
      

      2021-01-09_11-41-52.png

      1. JSONata $now()
        Nähere Infos findest du hier:
        Beschreibung $now()

      2. Plain Javascript im function-node

      var options = {
              hour: 'numeric',
              minute: 'numeric',
              second: 'numeric'
          };
      
      global.set("mydTime", function () {
          return ((new Date()).toLocaleDateString('de-DE', options))
      })
      

      Da musst du dich mit dem JD Date Object auseinandersetzen.
      Näheres z.B. hier:
      Javascript Date()

      Gruß Reiner

      F 1 Antwort Letzte Antwort
      1
      • R rewenode

        @frankyboy73 Da gibt es wie immer mehrere Möglichkeiten ;-) Hier mal 2 Varianten:

        [
            {
                "id": "6e4722f.e292adc",
                "type": "inject",
                "z": "a57304f5.446898",
                "name": "JSONata $now()",
                "props": [
                    {
                        "p": "payload"
                    },
                    {
                        "p": "topic",
                        "vt": "str"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "$now('[H01]:[m01]')",
                "payloadType": "jsonata",
                "x": 340,
                "y": 400,
                "wires": [
                    [
                        "5110edff.d90ee4"
                    ]
                ]
            },
            {
                "id": "5110edff.d90ee4",
                "type": "debug",
                "z": "a57304f5.446898",
                "name": "",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "true",
                "targetType": "full",
                "statusVal": "",
                "statusType": "auto",
                "x": 810,
                "y": 400,
                "wires": []
            },
            {
                "id": "be36aed3.a4a7d",
                "type": "inject",
                "z": "a57304f5.446898",
                "name": "",
                "props": [
                    {
                        "p": "payload"
                    },
                    {
                        "p": "topic",
                        "vt": "str"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "",
                "payloadType": "date",
                "x": 350,
                "y": 500,
                "wires": [
                    [
                        "24eea9de.83b826"
                    ]
                ]
            },
            {
                "id": "24eea9de.83b826",
                "type": "function",
                "z": "a57304f5.446898",
                "name": "dTime",
                "func": "// function mydTime()\n// this function returns actual date/time as dd.mm.yy hh:mm:ss \n\nvar options = {\n        hour: 'numeric',\n        minute: 'numeric',\n        second: 'numeric'\n    };\n\nglobal.set(\"mydTime\", function () {\n    return ((new Date()).toLocaleDateString('de-DE', options))\n})\n\n\n\n\nnode.status({fill:\"green\",shape:\"dot\",text:global.get(\"mydTime\")()});\nreturn msg;\n",
                "outputs": 1,
                "noerr": 0,
                "initialize": "",
                "finalize": "",
                "x": 530,
                "y": 500,
                "wires": [
                    [
                        "5110edff.d90ee4"
                    ]
                ]
            }
        ]
        

        2021-01-09_11-41-52.png

        1. JSONata $now()
          Nähere Infos findest du hier:
          Beschreibung $now()

        2. Plain Javascript im function-node

        var options = {
                hour: 'numeric',
                minute: 'numeric',
                second: 'numeric'
            };
        
        global.set("mydTime", function () {
            return ((new Date()).toLocaleDateString('de-DE', options))
        })
        

        Da musst du dich mit dem JD Date Object auseinandersetzen.
        Näheres z.B. hier:
        Javascript Date()

        Gruß Reiner

        F Offline
        F Offline
        frankyboy73
        schrieb am zuletzt editiert von frankyboy73
        #3

        @rewenode Hi, vielen Dank für deine Antwort. Deine Funktion macht nur leider das genaue Gegenteil von dem was ich gesucht habe. Die wandelt das Datum wieder in Millisekunden um.
        Timestamp2.jpg

        Edit: Hatte gedacht ich hätte ne Lösung gefunden und hier auch gepostet, aber da hatte ich mir den Timestamp nur ins aktuelle Datum umgewandelt und nicht den Timestamp selber. Deshalb Post Editiert und wieder entfernt.

        Schöne Grüße Frank

        R 1 Antwort Letzte Antwort
        0
        • F frankyboy73

          @rewenode Hi, vielen Dank für deine Antwort. Deine Funktion macht nur leider das genaue Gegenteil von dem was ich gesucht habe. Die wandelt das Datum wieder in Millisekunden um.
          Timestamp2.jpg

          Edit: Hatte gedacht ich hätte ne Lösung gefunden und hier auch gepostet, aber da hatte ich mir den Timestamp nur ins aktuelle Datum umgewandelt und nicht den Timestamp selber. Deshalb Post Editiert und wieder entfernt.

          R Offline
          R Offline
          rewenode
          schrieb am zuletzt editiert von
          #4

          @frankyboy73 Ich hab ja nicht gesagt, dass ich dein konkretes Problem lösen will. Ich habe dir nur 2 Wege aufgezeigt, wie man das lösen kann.
          In meinem Beispiel gebe ich beim Funktion-node einen formatierten Datumsstring unter dem Node aus.
          Aber natürlich kannst du den auch im payload haben.

          2021-01-09_13-56-20.png

          Dazu musst du den payload entsprechend füllen.
          Wie dein Format konkret zu formatieren ist, kannst du den Links entnehmen.

          msg.payload = global.get("mydTime")();
          
          F 1 Antwort Letzte Antwort
          0
          • R rewenode

            @frankyboy73 Ich hab ja nicht gesagt, dass ich dein konkretes Problem lösen will. Ich habe dir nur 2 Wege aufgezeigt, wie man das lösen kann.
            In meinem Beispiel gebe ich beim Funktion-node einen formatierten Datumsstring unter dem Node aus.
            Aber natürlich kannst du den auch im payload haben.

            2021-01-09_13-56-20.png

            Dazu musst du den payload entsprechend füllen.
            Wie dein Format konkret zu formatieren ist, kannst du den Links entnehmen.

            msg.payload = global.get("mydTime")();
            
            F Offline
            F Offline
            frankyboy73
            schrieb am zuletzt editiert von frankyboy73
            #5

            @rewenode Hi, ok das habe ich wohl falsch verstanden oder überlesen :grin: . Ich dachte die Funktion Node sollte die Funktion haben die ich suchte.
            Vielen Dank für die verlinkten Seiten, nach viel lesen und rumprobieren, bin ich jetzt zu einer Lösung gekommen. Ich wandle die Nachricht (msg.payload.ts) ins Date Format um, ziehe mir die einzelnen Daten ( Jahr, Monat, Tage usw.) aus der Nachricht und setzte sie nacher wieder als neue Nachricht mit dem gleichen Namen zusammen.
            Timestamp3.jpg

            var dt = new Date(msg.payload.ts);
            
            var Monat = dt.getMonth() + 1;
            var Tag = dt.getDate();
            var Jahr = dt.getFullYear();
            var Stunde = dt.getHours();
            var Minute = dt.getMinutes();
            var Sekunde = dt.getSeconds();
            if(Monat.toString().length == 1) {
            var Monat = '0'+Monat;
            }
            if(Tag.toString().length == 1) {
            var Tag = '0'+Tag;
            }
            if(Stunde.toString().length == 1) {
            var Stunde = '0'+Stunde;
            }
            if(Minute.toString().length == 1) {
            var Minute = '0'+Minute;
            }
            if(Sekunde.toString().length == 1) {
            var Sekunde = '0'+Sekunde;
            }
            
            msg.payload.ts = Tag+'-'+Monat+'-'+Jahr+' / '+Stunde+':'+Minute+':'+Sekunde;
            return msg;
            

            Falls jemand ne einfachere oder bessere Lösung weiß, bin ich für jeden Vorschlag zu haben.

            Schöne Grüße Frank

            R 1 Antwort Letzte Antwort
            0
            • F frankyboy73

              @rewenode Hi, ok das habe ich wohl falsch verstanden oder überlesen :grin: . Ich dachte die Funktion Node sollte die Funktion haben die ich suchte.
              Vielen Dank für die verlinkten Seiten, nach viel lesen und rumprobieren, bin ich jetzt zu einer Lösung gekommen. Ich wandle die Nachricht (msg.payload.ts) ins Date Format um, ziehe mir die einzelnen Daten ( Jahr, Monat, Tage usw.) aus der Nachricht und setzte sie nacher wieder als neue Nachricht mit dem gleichen Namen zusammen.
              Timestamp3.jpg

              var dt = new Date(msg.payload.ts);
              
              var Monat = dt.getMonth() + 1;
              var Tag = dt.getDate();
              var Jahr = dt.getFullYear();
              var Stunde = dt.getHours();
              var Minute = dt.getMinutes();
              var Sekunde = dt.getSeconds();
              if(Monat.toString().length == 1) {
              var Monat = '0'+Monat;
              }
              if(Tag.toString().length == 1) {
              var Tag = '0'+Tag;
              }
              if(Stunde.toString().length == 1) {
              var Stunde = '0'+Stunde;
              }
              if(Minute.toString().length == 1) {
              var Minute = '0'+Minute;
              }
              if(Sekunde.toString().length == 1) {
              var Sekunde = '0'+Sekunde;
              }
              
              msg.payload.ts = Tag+'-'+Monat+'-'+Jahr+' / '+Stunde+':'+Minute+':'+Sekunde;
              return msg;
              

              Falls jemand ne einfachere oder bessere Lösung weiß, bin ich für jeden Vorschlag zu haben.

              R Offline
              R Offline
              rewenode
              schrieb am zuletzt editiert von
              #6

              @frankyboy73 Sollte mit einem entsprechenden Formatstring zwar einfacher gehen, aber so bist du natürlich voll flexibel und kannst di Ausgabe so machen wie du es brauchst.

              F 1 Antwort Letzte Antwort
              0
              • R rewenode

                @frankyboy73 Sollte mit einem entsprechenden Formatstring zwar einfacher gehen, aber so bist du natürlich voll flexibel und kannst di Ausgabe so machen wie du es brauchst.

                F Offline
                F Offline
                frankyboy73
                schrieb am zuletzt editiert von frankyboy73
                #7

                @rewenode Stimmt, nach dem ich mich jetzt etwas eingelesen habe und mich noch etwas mit deinem Beispiel beschäftigt habe, habe ich es auch kapiert. Je nach dem was ich bei "return" als Konvertierung eingebe (toLocalDateString oder toUTCString, usw) bekomme unterschiedliche Ausgaben des Datums. Meine bevorzugte Variante wäre glaube ich UTCString. Dann muss ich nur noch bei Date auf die richtige msg verweisen und ich habe das was ich wollte.
                Vielen Dank für den Schubser in die richtige Richtung, dadurch habe ich wieder ne Menge dazu gelernt. Mehr als hättest du mir die komplette Lösung für meinen Bedarf auf dem Silbertabett serviert.
                Timestamp4.jpg

                // diese funktion wandelt msg.payload.ts in Wochentag Tag Monat Jahr Stunde Minute Sekunde um
                // +3600000 weil sonst eine Stunde zu wenig angezeigt wird
                
                global.set("mydTime", function () {
                    return ((new Date(msg.payload.ts + 3600000)).toUTCString())
                })
                
                msg.payload.ts = global.get("mydTime")();
                return msg;
                
                

                Edit: Bei UTC oder auch bei GMT wurde mir leider 1 Stunde zu wenig angezeigt. Weiß jemand woran das liegt?
                Ich habe mir jetzt erst mal damit beholfen das ich zu meiner msg.payload.ts 3600000 (1 Stunde) dazu addiere. Mal schauen ob das auch beim 0 Uhr (Tageswechsel) so hin haut.

                Schöne Grüße Frank

                R 1 Antwort Letzte Antwort
                0
                • F frankyboy73

                  @rewenode Stimmt, nach dem ich mich jetzt etwas eingelesen habe und mich noch etwas mit deinem Beispiel beschäftigt habe, habe ich es auch kapiert. Je nach dem was ich bei "return" als Konvertierung eingebe (toLocalDateString oder toUTCString, usw) bekomme unterschiedliche Ausgaben des Datums. Meine bevorzugte Variante wäre glaube ich UTCString. Dann muss ich nur noch bei Date auf die richtige msg verweisen und ich habe das was ich wollte.
                  Vielen Dank für den Schubser in die richtige Richtung, dadurch habe ich wieder ne Menge dazu gelernt. Mehr als hättest du mir die komplette Lösung für meinen Bedarf auf dem Silbertabett serviert.
                  Timestamp4.jpg

                  // diese funktion wandelt msg.payload.ts in Wochentag Tag Monat Jahr Stunde Minute Sekunde um
                  // +3600000 weil sonst eine Stunde zu wenig angezeigt wird
                  
                  global.set("mydTime", function () {
                      return ((new Date(msg.payload.ts + 3600000)).toUTCString())
                  })
                  
                  msg.payload.ts = global.get("mydTime")();
                  return msg;
                  
                  

                  Edit: Bei UTC oder auch bei GMT wurde mir leider 1 Stunde zu wenig angezeigt. Weiß jemand woran das liegt?
                  Ich habe mir jetzt erst mal damit beholfen das ich zu meiner msg.payload.ts 3600000 (1 Stunde) dazu addiere. Mal schauen ob das auch beim 0 Uhr (Tageswechsel) so hin haut.

                  R Offline
                  R Offline
                  rewenode
                  schrieb am zuletzt editiert von
                  #8

                  @frankyboy73 Kann zwar nicht mit Sicherheit sagen, ob das das Problem löst, weil ich damit nicht getestet habe, aber du solltest vlt. hier mal reinschauen:

                  time-zone offset

                  So fixes ändern +/- 1 Stunde fällt einem i.d.R. irgendwann auf die Füße;-)

                  F 1 Antwort Letzte Antwort
                  1
                  • R rewenode

                    @frankyboy73 Kann zwar nicht mit Sicherheit sagen, ob das das Problem löst, weil ich damit nicht getestet habe, aber du solltest vlt. hier mal reinschauen:

                    time-zone offset

                    So fixes ändern +/- 1 Stunde fällt einem i.d.R. irgendwann auf die Füße;-)

                    F Offline
                    F Offline
                    frankyboy73
                    schrieb am zuletzt editiert von
                    #9

                    @rewenode Hi, danke, mit dem getTimezoneOffset klappts jetzt, ohne das ich es fix umrechnen muss.

                    Schöne Grüße Frank

                    1 Antwort Letzte Antwort
                    0
                    • F frankyboy73

                      Hi, kann mir vielleicht jemand sagen wie ich einen Timestamp von einer Input Node bzw. Get Node in ein anderes Format (Jahr, Monat, Tag, Stunden, Minuten) umwandeln kann?
                      Timestamp1.jpg

                      mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #10

                      @frankyboy73 Ich nutze die Javascript Moment Bibliothek - da bist am flexibelsten.

                      Hier mal die Nodes: https://flows.nodered.org/node/node-red-contrib-moment

                      dann hast Du zur formatierung der Datum/Zeit folgende Möglichkeiten:

                      https://momentjs.com/docs/#/displaying/format/

                      Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      R 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @frankyboy73 Ich nutze die Javascript Moment Bibliothek - da bist am flexibelsten.

                        Hier mal die Nodes: https://flows.nodered.org/node/node-red-contrib-moment

                        dann hast Du zur formatierung der Datum/Zeit folgende Möglichkeiten:

                        https://momentjs.com/docs/#/displaying/format/

                        Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                        R Offline
                        R Offline
                        rewenode
                        schrieb am zuletzt editiert von
                        #11

                        @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                        Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                        Nicht unbedingt nötig. Moment.js ist in allen JSONata-nodes (change, incjekt usw.) seit NR 1.1.0 enthalten.

                        Siehe hier: moment.js in NR

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • R rewenode

                          @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                          Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                          Nicht unbedingt nötig. Moment.js ist in allen JSONata-nodes (change, incjekt usw.) seit NR 1.1.0 enthalten.

                          Siehe hier: moment.js in NR

                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #12

                          @rewenode said in Timestamp Umwandeln in Node Red (gelöst):

                          @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                          Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                          Nicht unbedingt nötig. Moment.js ist in allen JSONata-nodes (change, incjekt usw.) seit NR 1.1.0 enthalten.

                          Siehe hier: moment.js in NR

                          Klasse !!! Das wusste ich auch noch nicht. Allerdings hat es mich nun ca. 2 Stunden gekostet - bis ich die Syntax rausbekommen habe, dass ich das gleiche wie mit der Node bekommen habe - aber letztlich habe ich es rausbekommen.

                          Wichtig scheint hier auch die Reihenfolge zu sein.

                          Ich hab das mal hier in dem Flow gegenübergestellt:
                          Hier mal mit der Moment Node:

                          screen.png

                          Hier mit der ChangeNode und JSONata:

                          screen.png

                          Um also auch die deutschen Namen zu übernehmen muss das locale vorne dran gestellt werden, das ist leider in der Beschreibung nicht drin gewesen. ;)
                          Also wie folgt:

                          $moment(payload).locale("de").format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                          

                          Statt hh wie in dem Screenshot kk oder HH für 24h Anzeige nehmen.

                          HIer wieder der gesamte Workflow zum Nachvollziehen:

                          [
                              {
                                  "id": "df944da5.6a23e",
                                  "type": "inject",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "",
                                  "props": [
                                      {
                                          "p": "payload"
                                      },
                                      {
                                          "p": "topic",
                                          "vt": "str"
                                      }
                                  ],
                                  "repeat": "",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "topic": "",
                                  "payload": "",
                                  "payloadType": "date",
                                  "x": 940,
                                  "y": 140,
                                  "wires": [
                                      [
                                          "ccf0fb59.dd6798",
                                          "39d58864.e30568",
                                          "8b85c7e7.4986b8"
                                      ]
                                  ]
                              },
                              {
                                  "id": "bfb1aa88.fe50c8",
                                  "type": "debug",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "false",
                                  "statusVal": "",
                                  "statusType": "auto",
                                  "x": 1390,
                                  "y": 140,
                                  "wires": []
                              },
                              {
                                  "id": "ccf0fb59.dd6798",
                                  "type": "moment",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "",
                                  "topic": "",
                                  "input": "",
                                  "inputType": "msg",
                                  "inTz": "Europe/Berlin",
                                  "adjAmount": 0,
                                  "adjType": "days",
                                  "adjDir": "add",
                                  "format": "dddd, [der] D. MMMM YYYY [um] hh:mm",
                                  "locale": "de-DE",
                                  "output": "",
                                  "outputType": "msg",
                                  "outTz": "Europe/Berlin",
                                  "x": 1170,
                                  "y": 140,
                                  "wires": [
                                      [
                                          "bfb1aa88.fe50c8"
                                      ]
                                  ]
                              },
                              {
                                  "id": "9e57419a.12eb2",
                                  "type": "debug",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "Change Node",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "payload",
                                  "targetType": "msg",
                                  "statusVal": "",
                                  "statusType": "auto",
                                  "x": 1400,
                                  "y": 180,
                                  "wires": []
                              },
                              {
                                  "id": "39d58864.e30568",
                                  "type": "change",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "payload",
                                          "pt": "msg",
                                          "to": "$moment(payload).locale(\"de\").format('dddd, [der] D. MMMM YYYY [um] hh:mm')",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 1170,
                                  "y": 180,
                                  "wires": [
                                      [
                                          "9e57419a.12eb2"
                                      ]
                                  ]
                              },
                              {
                                  "id": "8b85c7e7.4986b8",
                                  "type": "debug",
                                  "z": "dce8fa20.2e93c8",
                                  "name": "unix TimeStamp",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "payload",
                                  "targetType": "msg",
                                  "statusVal": "",
                                  "statusType": "auto",
                                  "x": 1160,
                                  "y": 100,
                                  "wires": []
                              }
                          ]
                          

                          Nochmal ganz herzlichen Dank an Dich @rewenode . Man lernt nicht aus. ;)

                          Die Zeitzonen habe ich auch gerade getestet das funktioniert auch - allerdings ist es auch wieder wichtig, dass die vor dem Format String steht:

                          $moment(payload).locale("de").tz('Europe/Berlin').format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                          

                          Hier habe ich im Übrigen noch ein Auflistung für mögliche Zeitzonen gefunden.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          F R 2 Antworten Letzte Antwort
                          0
                          • mickymM mickym

                            @rewenode said in Timestamp Umwandeln in Node Red (gelöst):

                            @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                            Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                            Nicht unbedingt nötig. Moment.js ist in allen JSONata-nodes (change, incjekt usw.) seit NR 1.1.0 enthalten.

                            Siehe hier: moment.js in NR

                            Klasse !!! Das wusste ich auch noch nicht. Allerdings hat es mich nun ca. 2 Stunden gekostet - bis ich die Syntax rausbekommen habe, dass ich das gleiche wie mit der Node bekommen habe - aber letztlich habe ich es rausbekommen.

                            Wichtig scheint hier auch die Reihenfolge zu sein.

                            Ich hab das mal hier in dem Flow gegenübergestellt:
                            Hier mal mit der Moment Node:

                            screen.png

                            Hier mit der ChangeNode und JSONata:

                            screen.png

                            Um also auch die deutschen Namen zu übernehmen muss das locale vorne dran gestellt werden, das ist leider in der Beschreibung nicht drin gewesen. ;)
                            Also wie folgt:

                            $moment(payload).locale("de").format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                            

                            Statt hh wie in dem Screenshot kk oder HH für 24h Anzeige nehmen.

                            HIer wieder der gesamte Workflow zum Nachvollziehen:

                            [
                                {
                                    "id": "df944da5.6a23e",
                                    "type": "inject",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "",
                                    "props": [
                                        {
                                            "p": "payload"
                                        },
                                        {
                                            "p": "topic",
                                            "vt": "str"
                                        }
                                    ],
                                    "repeat": "",
                                    "crontab": "",
                                    "once": false,
                                    "onceDelay": 0.1,
                                    "topic": "",
                                    "payload": "",
                                    "payloadType": "date",
                                    "x": 940,
                                    "y": 140,
                                    "wires": [
                                        [
                                            "ccf0fb59.dd6798",
                                            "39d58864.e30568",
                                            "8b85c7e7.4986b8"
                                        ]
                                    ]
                                },
                                {
                                    "id": "bfb1aa88.fe50c8",
                                    "type": "debug",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "",
                                    "active": true,
                                    "tosidebar": true,
                                    "console": false,
                                    "tostatus": false,
                                    "complete": "false",
                                    "statusVal": "",
                                    "statusType": "auto",
                                    "x": 1390,
                                    "y": 140,
                                    "wires": []
                                },
                                {
                                    "id": "ccf0fb59.dd6798",
                                    "type": "moment",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "",
                                    "topic": "",
                                    "input": "",
                                    "inputType": "msg",
                                    "inTz": "Europe/Berlin",
                                    "adjAmount": 0,
                                    "adjType": "days",
                                    "adjDir": "add",
                                    "format": "dddd, [der] D. MMMM YYYY [um] hh:mm",
                                    "locale": "de-DE",
                                    "output": "",
                                    "outputType": "msg",
                                    "outTz": "Europe/Berlin",
                                    "x": 1170,
                                    "y": 140,
                                    "wires": [
                                        [
                                            "bfb1aa88.fe50c8"
                                        ]
                                    ]
                                },
                                {
                                    "id": "9e57419a.12eb2",
                                    "type": "debug",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "Change Node",
                                    "active": true,
                                    "tosidebar": true,
                                    "console": false,
                                    "tostatus": false,
                                    "complete": "payload",
                                    "targetType": "msg",
                                    "statusVal": "",
                                    "statusType": "auto",
                                    "x": 1400,
                                    "y": 180,
                                    "wires": []
                                },
                                {
                                    "id": "39d58864.e30568",
                                    "type": "change",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "",
                                    "rules": [
                                        {
                                            "t": "set",
                                            "p": "payload",
                                            "pt": "msg",
                                            "to": "$moment(payload).locale(\"de\").format('dddd, [der] D. MMMM YYYY [um] hh:mm')",
                                            "tot": "jsonata"
                                        }
                                    ],
                                    "action": "",
                                    "property": "",
                                    "from": "",
                                    "to": "",
                                    "reg": false,
                                    "x": 1170,
                                    "y": 180,
                                    "wires": [
                                        [
                                            "9e57419a.12eb2"
                                        ]
                                    ]
                                },
                                {
                                    "id": "8b85c7e7.4986b8",
                                    "type": "debug",
                                    "z": "dce8fa20.2e93c8",
                                    "name": "unix TimeStamp",
                                    "active": true,
                                    "tosidebar": true,
                                    "console": false,
                                    "tostatus": false,
                                    "complete": "payload",
                                    "targetType": "msg",
                                    "statusVal": "",
                                    "statusType": "auto",
                                    "x": 1160,
                                    "y": 100,
                                    "wires": []
                                }
                            ]
                            

                            Nochmal ganz herzlichen Dank an Dich @rewenode . Man lernt nicht aus. ;)

                            Die Zeitzonen habe ich auch gerade getestet das funktioniert auch - allerdings ist es auch wieder wichtig, dass die vor dem Format String steht:

                            $moment(payload).locale("de").tz('Europe/Berlin').format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                            

                            Hier habe ich im Übrigen noch ein Auflistung für mögliche Zeitzonen gefunden.

                            F Offline
                            F Offline
                            frankyboy73
                            schrieb am zuletzt editiert von
                            #13

                            @mickym @rewenode
                            Vielen Dank ihr beiden, dank euch konnte ich es jetzt genau so umsetzen wie ich wollte.
                            Timestamp4.jpg

                            Schöne Grüße Frank

                            F 1 Antwort Letzte Antwort
                            0
                            • F frankyboy73

                              @mickym @rewenode
                              Vielen Dank ihr beiden, dank euch konnte ich es jetzt genau so umsetzen wie ich wollte.
                              Timestamp4.jpg

                              F Offline
                              F Offline
                              frankyboy73
                              schrieb am zuletzt editiert von
                              #14

                              So sieht die Meldung jetzt in Telegram aus . 😁
                              84157D0E-F564-4BC7-A019-301D73724291.jpeg

                              Schöne Grüße Frank

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • F frankyboy73

                                So sieht die Meldung jetzt in Telegram aus . 😁
                                84157D0E-F564-4BC7-A019-301D73724291.jpeg

                                mickymM Offline
                                mickymM Offline
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #15

                                @frankyboy73 said in Timestamp Umwandeln in Node Red (gelöst):

                                Na schaut doch gut aus - hast Du Change Node - mit JSONata verwendet?

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                F 1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @frankyboy73 said in Timestamp Umwandeln in Node Red (gelöst):

                                  Na schaut doch gut aus - hast Du Change Node - mit JSONata verwendet?

                                  F Offline
                                  F Offline
                                  frankyboy73
                                  schrieb am zuletzt editiert von frankyboy73
                                  #16

                                  @mickym
                                  Ja, ich habe die change Node verwendet.
                                  Timestamp5.jpg
                                  Hier der Eintrag.

                                  $moment(payload.ts).locale("de").format('dddd, D.MM.YYYY [,] kk[ Uhr ]mm')
                                  

                                  Schöne Grüße Frank

                                  1 Antwort Letzte Antwort
                                  1
                                  • mickymM mickym

                                    @rewenode said in Timestamp Umwandeln in Node Red (gelöst):

                                    @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                                    Musst halt über den Adapter oder falls Du Palettenmanager nutzt über diesen installieren.

                                    Nicht unbedingt nötig. Moment.js ist in allen JSONata-nodes (change, incjekt usw.) seit NR 1.1.0 enthalten.

                                    Siehe hier: moment.js in NR

                                    Klasse !!! Das wusste ich auch noch nicht. Allerdings hat es mich nun ca. 2 Stunden gekostet - bis ich die Syntax rausbekommen habe, dass ich das gleiche wie mit der Node bekommen habe - aber letztlich habe ich es rausbekommen.

                                    Wichtig scheint hier auch die Reihenfolge zu sein.

                                    Ich hab das mal hier in dem Flow gegenübergestellt:
                                    Hier mal mit der Moment Node:

                                    screen.png

                                    Hier mit der ChangeNode und JSONata:

                                    screen.png

                                    Um also auch die deutschen Namen zu übernehmen muss das locale vorne dran gestellt werden, das ist leider in der Beschreibung nicht drin gewesen. ;)
                                    Also wie folgt:

                                    $moment(payload).locale("de").format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                                    

                                    Statt hh wie in dem Screenshot kk oder HH für 24h Anzeige nehmen.

                                    HIer wieder der gesamte Workflow zum Nachvollziehen:

                                    [
                                        {
                                            "id": "df944da5.6a23e",
                                            "type": "inject",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "",
                                            "props": [
                                                {
                                                    "p": "payload"
                                                },
                                                {
                                                    "p": "topic",
                                                    "vt": "str"
                                                }
                                            ],
                                            "repeat": "",
                                            "crontab": "",
                                            "once": false,
                                            "onceDelay": 0.1,
                                            "topic": "",
                                            "payload": "",
                                            "payloadType": "date",
                                            "x": 940,
                                            "y": 140,
                                            "wires": [
                                                [
                                                    "ccf0fb59.dd6798",
                                                    "39d58864.e30568",
                                                    "8b85c7e7.4986b8"
                                                ]
                                            ]
                                        },
                                        {
                                            "id": "bfb1aa88.fe50c8",
                                            "type": "debug",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "",
                                            "active": true,
                                            "tosidebar": true,
                                            "console": false,
                                            "tostatus": false,
                                            "complete": "false",
                                            "statusVal": "",
                                            "statusType": "auto",
                                            "x": 1390,
                                            "y": 140,
                                            "wires": []
                                        },
                                        {
                                            "id": "ccf0fb59.dd6798",
                                            "type": "moment",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "",
                                            "topic": "",
                                            "input": "",
                                            "inputType": "msg",
                                            "inTz": "Europe/Berlin",
                                            "adjAmount": 0,
                                            "adjType": "days",
                                            "adjDir": "add",
                                            "format": "dddd, [der] D. MMMM YYYY [um] hh:mm",
                                            "locale": "de-DE",
                                            "output": "",
                                            "outputType": "msg",
                                            "outTz": "Europe/Berlin",
                                            "x": 1170,
                                            "y": 140,
                                            "wires": [
                                                [
                                                    "bfb1aa88.fe50c8"
                                                ]
                                            ]
                                        },
                                        {
                                            "id": "9e57419a.12eb2",
                                            "type": "debug",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "Change Node",
                                            "active": true,
                                            "tosidebar": true,
                                            "console": false,
                                            "tostatus": false,
                                            "complete": "payload",
                                            "targetType": "msg",
                                            "statusVal": "",
                                            "statusType": "auto",
                                            "x": 1400,
                                            "y": 180,
                                            "wires": []
                                        },
                                        {
                                            "id": "39d58864.e30568",
                                            "type": "change",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "",
                                            "rules": [
                                                {
                                                    "t": "set",
                                                    "p": "payload",
                                                    "pt": "msg",
                                                    "to": "$moment(payload).locale(\"de\").format('dddd, [der] D. MMMM YYYY [um] hh:mm')",
                                                    "tot": "jsonata"
                                                }
                                            ],
                                            "action": "",
                                            "property": "",
                                            "from": "",
                                            "to": "",
                                            "reg": false,
                                            "x": 1170,
                                            "y": 180,
                                            "wires": [
                                                [
                                                    "9e57419a.12eb2"
                                                ]
                                            ]
                                        },
                                        {
                                            "id": "8b85c7e7.4986b8",
                                            "type": "debug",
                                            "z": "dce8fa20.2e93c8",
                                            "name": "unix TimeStamp",
                                            "active": true,
                                            "tosidebar": true,
                                            "console": false,
                                            "tostatus": false,
                                            "complete": "payload",
                                            "targetType": "msg",
                                            "statusVal": "",
                                            "statusType": "auto",
                                            "x": 1160,
                                            "y": 100,
                                            "wires": []
                                        }
                                    ]
                                    

                                    Nochmal ganz herzlichen Dank an Dich @rewenode . Man lernt nicht aus. ;)

                                    Die Zeitzonen habe ich auch gerade getestet das funktioniert auch - allerdings ist es auch wieder wichtig, dass die vor dem Format String steht:

                                    $moment(payload).locale("de").tz('Europe/Berlin').format('dddd, [der] D. MMMM YYYY [um] HH:mm')
                                    

                                    Hier habe ich im Übrigen noch ein Auflistung für mögliche Zeitzonen gefunden.

                                    R Offline
                                    R Offline
                                    rewenode
                                    schrieb am zuletzt editiert von
                                    #17

                                    @mickym said in Timestamp Umwandeln in Node Red (gelöst):

                                    Allerdings hat es mich nun ca. 2 Stunden gekostet - bis ich die Syntax rausbekommen habe, dass ich das gleiche wie mit der Node bekommen habe - aber letztlich habe ich es rausbekommen.

                                    Ja, ist leider nicht gerade einfach dokumentiert.
                                    Hätte vlt. noch diesen Link angeben sollen https://momentjs.com/docs/
                                    Da braucht's aber auch viel Zeit da durchzusteigen;-) Na wenigstens hast du jetzt die wichtigsten Infos zusammengetragen. Danke dafür!

                                    1 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    828

                                    Online

                                    32.4k

                                    Benutzer

                                    81.5k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe