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. Rechnen mit Timestamps und Datenpunkten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    845

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Rechnen mit Timestamps und Datenpunkten

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 352 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.
  • W Offline
    W Offline
    warhammer73
    schrieb am zuletzt editiert von
    #1

    Hallo, ich möchte einen Timestamp in einen Datenpunkt schreiben und später die Differenz zum aktuellen Datum ermitteln.
    Eigentlich sollte das kein Problem sein, aber irgendwie habe ich ein Problem.

    Anlegen Datenpunkt:

    createState(folderNameScripte + '.' + Room + ".Lastvalue_changed","15",{name: "Lastvalue_changed",  type: 'string', role: 'date'}, function () {});
    

    Schreiben des aktuellen Datums in den Timestamp

    setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date(), true);
    

    ... dabei bekomme ich aber eine Fehlermeldung:

    You are assigning a object to the state "0_userdata.0.scripte.Wohnzimmer_1.Lastvalue_changed" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.
    

    An der Stelle habe ich jetzt ein Problem. Ich habe nicht gefunden das ich einen Datenpunkt als "Datum Element" anlegen könnte. Damit bleibt nur die Ablage als String.

    Deswegen habe ich den setstate geändert:

    setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date().toLocaleTimeString(), true); 
    

    Soweit funktioniert das ganze jetzt ohne Fehlermeldung.

    Allerdings liefert mir ein

    new Date() - getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val
    

    NaN als Ergebnis anstatt einer Zeitdifferenz.

    Was kann ich tun?

    paul53P 1 Antwort Letzte Antwort
    0
    • W warhammer73

      Hallo, ich möchte einen Timestamp in einen Datenpunkt schreiben und später die Differenz zum aktuellen Datum ermitteln.
      Eigentlich sollte das kein Problem sein, aber irgendwie habe ich ein Problem.

      Anlegen Datenpunkt:

      createState(folderNameScripte + '.' + Room + ".Lastvalue_changed","15",{name: "Lastvalue_changed",  type: 'string', role: 'date'}, function () {});
      

      Schreiben des aktuellen Datums in den Timestamp

      setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date(), true);
      

      ... dabei bekomme ich aber eine Fehlermeldung:

      You are assigning a object to the state "0_userdata.0.scripte.Wohnzimmer_1.Lastvalue_changed" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.
      

      An der Stelle habe ich jetzt ein Problem. Ich habe nicht gefunden das ich einen Datenpunkt als "Datum Element" anlegen könnte. Damit bleibt nur die Ablage als String.

      Deswegen habe ich den setstate geändert:

      setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date().toLocaleTimeString(), true); 
      

      Soweit funktioniert das ganze jetzt ohne Fehlermeldung.

      Allerdings liefert mir ein

      new Date() - getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val
      

      NaN als Ergebnis anstatt einer Zeitdifferenz.

      Was kann ich tun?

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

      @warhammer73 sagte: NaN als Ergebnis anstatt einer Zeitdifferenz.

      Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime(); // Differenz in ms
      

      Anmerkung: new Date() liefert ein Objekt, getState(id).val einen String. Mit beidem kann man nicht rechnen.

      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

      W 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @warhammer73 sagte: NaN als Ergebnis anstatt einer Zeitdifferenz.

        Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime(); // Differenz in ms
        

        Anmerkung: new Date() liefert ein Objekt, getState(id).val einen String. Mit beidem kann man nicht rechnen.

        W Offline
        W Offline
        warhammer73
        schrieb am zuletzt editiert von warhammer73
        #3

        @paul53 said in Rechnen mit Timestamps und Datenpunkten:

        Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();

        Das ändert am NaN als Ergebnis aber leider nichts. :(
        Schon

        new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();
        

        liefert NaN

        Vielleicht auch nicht verwunderlich, denn ein:

        getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val
        

        liefert nur die Uhrzeit (10:12:10) als Ergebnis. Problem scheint also das setState erstmal zu sein.

        paul53P 1 Antwort Letzte Antwort
        0
        • W warhammer73

          @paul53 said in Rechnen mit Timestamps und Datenpunkten:

          Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();

          Das ändert am NaN als Ergebnis aber leider nichts. :(
          Schon

          new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();
          

          liefert NaN

          Vielleicht auch nicht verwunderlich, denn ein:

          getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val
          

          liefert nur die Uhrzeit (10:12:10) als Ergebnis. Problem scheint also das setState erstmal zu sein.

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

          @warhammer73 sagte: liefert nur die Uhrzeit

          Dann nimm bei setState()

          new Date().toString()
          

          oder

          formatDate(new Date(), 'YYYY-MM-DD hh:mm:ss')
          

          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
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          538

          Online

          32.6k

          Benutzer

          82.1k

          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