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 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

                      865

                      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