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. JavaScript
  5. [gelöst] timestamp eines DP als String ausgeben

NEWS

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

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

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

[gelöst] timestamp eines DP als String ausgeben

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 2 Kommentatoren 438 Aufrufe 1 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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #1

    Folgender Code erzeugt als Timestamp anscheinend definitiv keinen "LocaleString" kann jemand helfen?

    on({ id: [].concat(['mqtt.0.thermostat.logmsg']), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      console.info(([(obj.state ? obj.state.val : ''),' ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
    });
    
    2025-03-13 17:43:37.048  - info: javascript.0 (299058) script.js.Geräteüberwachung: Thermosensor[1] regained (3C1E0457CBD0) 1,741,884,217,032
    

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
    Linux pve 6.8.12-16-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    paul53P MartinPM 2 Antworten Letzte Antwort
    0
    • MartinPM MartinP

      Folgender Code erzeugt als Timestamp anscheinend definitiv keinen "LocaleString" kann jemand helfen?

      on({ id: [].concat(['mqtt.0.thermostat.logmsg']), change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        console.info(([(obj.state ? obj.state.val : ''),' ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
      });
      
      2025-03-13 17:43:37.048  - info: javascript.0 (299058) script.js.Geräteüberwachung: Thermosensor[1] regained (3C1E0457CBD0) 1,741,884,217,032
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @martinp
      Wie hast du in Blockly toLocaleString() bekommen?

      Versuche es so:

      Blockly_temp.JPG

      In Javascript muss der Zeitstempel erst in ein Date-Object gewandelt werden.

      new Date(obj.state.ts).toLocaleString('de-DE')
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      MartinPM 1 Antwort Letzte Antwort
      1
      • MartinPM MartinP

        Folgender Code erzeugt als Timestamp anscheinend definitiv keinen "LocaleString" kann jemand helfen?

        on({ id: [].concat(['mqtt.0.thermostat.logmsg']), change: 'ne' }, async (obj) => {
          let value = obj.state.val;
          let oldValue = obj.oldState.val;
          console.info(([(obj.state ? obj.state.val : ''),' ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
        });
        
        2025-03-13 17:43:37.048  - info: javascript.0 (299058) script.js.Geräteüberwachung: Thermosensor[1] regained (3C1E0457CBD0) 1,741,884,217,032
        
        MartinPM Online
        MartinPM Online
        MartinP
        schrieb am zuletzt editiert von MartinP
        #3

        @martinp eine Abhilfe, die ausreicht, wenn die Verzögerung, bis Javascript feuert nicht stört habe ich schon selbst gefunden:

        on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
          const d = new Date();
          // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
          console.info(([' Timestamp ', d.toLocaleString("DE-de")].join('')));
        });
        

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        paul53P 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @martinp
          Wie hast du in Blockly toLocaleString() bekommen?

          Versuche es so:

          Blockly_temp.JPG

          In Javascript muss der Zeitstempel erst in ein Date-Object gewandelt werden.

          new Date(obj.state.ts).toLocaleString('de-DE')
          
          MartinPM Online
          MartinPM Online
          MartinP
          schrieb am zuletzt editiert von
          #4

          @paul53 sagte in timestamp eines DP als String ausgeben:

          @martinp
          Wie hast du in Blockly toLocaleString() bekommen?

          Habe ein Test-Blockly aus Versehen unumkehrbar nach Javascript umgewandelt, und brin dann bei Tests in Javascript geblieben...

          Leider scheint der Timestamp des Objekts nicht der aktuellen Zeit zu entsprechen....

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
          Linux pve 6.8.12-16-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          MartinPM 1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            @martinp eine Abhilfe, die ausreicht, wenn die Verzögerung, bis Javascript feuert nicht stört habe ich schon selbst gefunden:

            on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
              const d = new Date();
              // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
              console.info(([' Timestamp ', d.toLocaleString("DE-de")].join('')));
            });
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @martinp sagte: wenn die Verzögerung, bis Javascript feuert nicht stört

            Für die Auswertung des Zeitstempels ändere Zeile 2:

              const d = new Date(obj.state.ts);
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            1
            • MartinPM MartinP

              @paul53 sagte in timestamp eines DP als String ausgeben:

              @martinp
              Wie hast du in Blockly toLocaleString() bekommen?

              Habe ein Test-Blockly aus Versehen unumkehrbar nach Javascript umgewandelt, und brin dann bei Tests in Javascript geblieben...

              Leider scheint der Timestamp des Objekts nicht der aktuellen Zeit zu entsprechen....

              MartinPM Online
              MartinPM Online
              MartinP
              schrieb am zuletzt editiert von
              #6

              Jetzt bin ich völlig verwirrt...

              on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
                const d = new Date();
                // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
                console.info([' d.toLocale... ', d.toLocaleString("DE-de")].join(''));
                console.info([' d raw ', d.valueOf()].join(''));
                console.info([' obj to loc ', obj.state.ts.toLocaleString("DE-de")].join(''));
                console.info([' obj raw ', obj.state.ts.toFixed()].join(''));
              });
              

              Ausgabe bei Triggerung:

              javascript.0	20:36:52.375	info	script.js.Spielwiese.TestJs: d.toLocale... 13.3.2025, 20:36:52
              javascript.0	20:36:52.375	info	script.js.Spielwiese.TestJs: d raw 1741894612375
              javascript.0	20:36:52.377	info	script.js.Spielwiese.TestJs: obj to loc 1.741.894.612.371
              javascript.0	20:36:52.378	info	script.js.Spielwiese.TestJs: obj raw 1741894612371
              
              

              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
              Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
              Linux pve 6.8.12-16-pve
              6 GByte RAM für den Container
              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
              Remote-Access über Wireguard der Fritzbox

              paul53P 1 Antwort Letzte Antwort
              0
              • MartinPM MartinP

                Jetzt bin ich völlig verwirrt...

                on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
                  const d = new Date();
                  // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
                  console.info([' d.toLocale... ', d.toLocaleString("DE-de")].join(''));
                  console.info([' d raw ', d.valueOf()].join(''));
                  console.info([' obj to loc ', obj.state.ts.toLocaleString("DE-de")].join(''));
                  console.info([' obj raw ', obj.state.ts.toFixed()].join(''));
                });
                

                Ausgabe bei Triggerung:

                javascript.0	20:36:52.375	info	script.js.Spielwiese.TestJs: d.toLocale... 13.3.2025, 20:36:52
                javascript.0	20:36:52.375	info	script.js.Spielwiese.TestJs: d raw 1741894612375
                javascript.0	20:36:52.377	info	script.js.Spielwiese.TestJs: obj to loc 1.741.894.612.371
                javascript.0	20:36:52.378	info	script.js.Spielwiese.TestJs: obj raw 1741894612371
                
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @martinp sagte: Jetzt bin ich völlig verwirrt...

                @paul53 sagte in timestamp eines DP als String ausgeben:

                In Javascript muss der Zeitstempel erst in ein Date-Object gewandelt werden.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                MartinPM 1 Antwort Letzte Antwort
                2
                • paul53P paul53

                  @martinp sagte: Jetzt bin ich völlig verwirrt...

                  @paul53 sagte in timestamp eines DP als String ausgeben:

                  In Javascript muss der Zeitstempel erst in ein Date-Object gewandelt werden.

                  MartinPM Online
                  MartinPM Online
                  MartinP
                  schrieb am zuletzt editiert von MartinP
                  #8

                  @paul53 Okay

                  Danke-Das funzt jetzt

                  on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
                    const d = new Date();
                    // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
                    console.info([' d.toLocale... ', d.toLocaleString("DE-de")].join(''));
                    console.info([' d raw ', d.valueOf()].join(''));
                    
                    const e = new Date(obj.state.ts);
                    console.info([' obj to loc ', e.toLocaleString("DE-de")].join(''));
                  });
                  

                  Logging

                  javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: d.toLocale... 13.3.2025, 20:49:24
                  javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: d raw 1741895364830
                  javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: obj to loc 13.3.2025, 20:49:24
                  

                  Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                  Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                  Linux pve 6.8.12-16-pve
                  6 GByte RAM für den Container
                  Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                  Remote-Access über Wireguard der Fritzbox

                  MartinPM 1 Antwort Letzte Antwort
                  0
                  • MartinPM MartinP

                    @paul53 Okay

                    Danke-Das funzt jetzt

                    on({ id: [].concat(['0_userdata.0.Puls-Test']), change: 'ne' }, async (obj) => {
                      const d = new Date();
                      // console.info(([' Timestamp ',(obj.state ? obj.state.ts.toLocaleString() : '')].join('')));
                      console.info([' d.toLocale... ', d.toLocaleString("DE-de")].join(''));
                      console.info([' d raw ', d.valueOf()].join(''));
                      
                      const e = new Date(obj.state.ts);
                      console.info([' obj to loc ', e.toLocaleString("DE-de")].join(''));
                    });
                    

                    Logging

                    javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: d.toLocale... 13.3.2025, 20:49:24
                    javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: d raw 1741895364830
                    javascript.0	20:49:24.830	info	script.js.Spielwiese.TestJs: obj to loc 13.3.2025, 20:49:24
                    
                    MartinPM Online
                    MartinPM Online
                    MartinP
                    schrieb am zuletzt editiert von MartinP
                    #9

                    Ich habe den automatisch generierten Code aus Blockly noch ein wenig aufgeräumt...

                    on({ id: [].concat(['mqtt.0.thermostat.logmsg']), change: 'ne' }, async (obj) => {
                      if (!obj.state) return;
                      const e = new Date(obj.state.ts);
                      console.info(([ obj.state.val,' ',e.toLocaleString()].join('')));
                    });
                    

                    Ist nur der erste Schritt - im Logging des iobroker ist der Timestamp ja eigentlich doppelt.

                    Ich will aber einen Vis View machen der mir die letzten X Ausfälle der DS18B20 Fühler auf dem Smartphone zeigt ...

                    Wahrscheinlich muss man da aber schon selber basteln.
                    Bei Vis wird es kein Ausgabefenster-Widget geben, das den Inhalt eines Datenpunktes als Zeilen-Eingabe für das Ausgabefenster interpretiert..

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                    Linux pve 6.8.12-16-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • MartinPM MartinP

                      Ich habe den automatisch generierten Code aus Blockly noch ein wenig aufgeräumt...

                      on({ id: [].concat(['mqtt.0.thermostat.logmsg']), change: 'ne' }, async (obj) => {
                        if (!obj.state) return;
                        const e = new Date(obj.state.ts);
                        console.info(([ obj.state.val,' ',e.toLocaleString()].join('')));
                      });
                      

                      Ist nur der erste Schritt - im Logging des iobroker ist der Timestamp ja eigentlich doppelt.

                      Ich will aber einen Vis View machen der mir die letzten X Ausfälle der DS18B20 Fühler auf dem Smartphone zeigt ...

                      Wahrscheinlich muss man da aber schon selber basteln.
                      Bei Vis wird es kein Ausgabefenster-Widget geben, das den Inhalt eines Datenpunktes als Zeilen-Eingabe für das Ausgabefenster interpretiert..

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @martinp sagte: ein wenig aufgeräumt...

                      Die Zeile 2 ist unnötig, da ein DP ohne state nicht triggern kann.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      MartinPM 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @martinp sagte: ein wenig aufgeräumt...

                        Die Zeile 2 ist unnötig, da ein DP ohne state nicht triggern kann.

                        MartinPM Online
                        MartinPM Online
                        MartinP
                        schrieb am zuletzt editiert von
                        #11

                        @paul53 sagte in [gelöst] timestamp eines DP als String ausgeben:

                        @martinp sagte: ein wenig aufgeräumt...

                        Die Zeile 2 ist unnötig, da ein DP ohne state nicht triggern kann.
                        Ist Einleuchtend.

                        Dann machst Du besseren Code, als Blockly. Dort wird im umgewandelten Code sogar zweimal über den ternary Operator ?: die Abfrage gemacht...

                        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                        Linux pve 6.8.12-16-pve
                        6 GByte RAM für den Container
                        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                        Remote-Access über Wireguard der Fritzbox

                        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

                        843

                        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