Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. [gelöst] Differenz von 2 timestamps berechnen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    256

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    246

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    901

[gelöst] Differenz von 2 timestamps berechnen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
5 Beiträge 4 Kommentatoren 800 Aufrufe 4 Beobachtet
  • Ä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.
  • P Offline
    P Offline
    PrinzEisenherz1
    schrieb am zuletzt editiert von PrinzEisenherz1
    #1

    Hi zusammen, ich hab da mal wieder ein Problem und hoffe es kann mir von euch jemand helfen.
    und zwar möchte ich die Differenz des Timestamps zweier unterschiedlicher Objekte berechnen und da bekomme ich ein ganz anderes Ergebnis als wie wenn ich selbst rechne . Irgendwas stimmt da nicht in meinem Ansatz.

    Hier ein Ausschnitt meines Scriptes:

    var idStates = ["javascript.4.OpenSprinklerPi.Kreis1"];
    
    on({id: idStates, change: 'any'}, function(dp){
    // Erfassen Start-Stop-Zeiten Kreis-1
        if(dp.common.name === 'Gartenberegnung - Ventil 1'){
                if((dp.newState.val != dp.oldState.val)&&dp.newState.val === true){
                    var StartzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                    setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 );
                    log('Startzeit Beregnung Kreis-1 gesetzt'); 
                }else if((dp.newState.val != dp.oldState.val)&&dp.newState.val === false){
                    var StopzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                    var GesamtKreis1 = (getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start').val - getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop').val)/1000;
                    setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1);
                    setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 );
                    
                    log('Stopzeit Beregnung Kreis-1 gesetzt'); 
                    log('Gesamtzeit: ' + GesamtKreis1 );
                }
        }
    });
    

    Wenn Das Ergebnis eigentlich z.B. 20 sein müsste dann bekomme ich z.B 400

    Irgendwas mache ich da falsch.

    Weis jemand vielleicht rat?

    Gruß
    Johnny

    Intel-NUC mit ProxMox: ioBroker,SQL, logging Strom- Gas- u. Wasserzähler;10Zoll Tab im Flur für VIS; weiteres: Homematic CCU2, Homeduino, Kameras, selbstgebaute Wetterstation;

    OliverIOO paul53P 2 Antworten Letzte Antwort
    0
    • P PrinzEisenherz1

      Hi zusammen, ich hab da mal wieder ein Problem und hoffe es kann mir von euch jemand helfen.
      und zwar möchte ich die Differenz des Timestamps zweier unterschiedlicher Objekte berechnen und da bekomme ich ein ganz anderes Ergebnis als wie wenn ich selbst rechne . Irgendwas stimmt da nicht in meinem Ansatz.

      Hier ein Ausschnitt meines Scriptes:

      var idStates = ["javascript.4.OpenSprinklerPi.Kreis1"];
      
      on({id: idStates, change: 'any'}, function(dp){
      // Erfassen Start-Stop-Zeiten Kreis-1
          if(dp.common.name === 'Gartenberegnung - Ventil 1'){
                  if((dp.newState.val != dp.oldState.val)&&dp.newState.val === true){
                      var StartzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                      setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 );
                      log('Startzeit Beregnung Kreis-1 gesetzt'); 
                  }else if((dp.newState.val != dp.oldState.val)&&dp.newState.val === false){
                      var StopzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                      var GesamtKreis1 = (getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start').val - getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop').val)/1000;
                      setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1);
                      setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 );
                      
                      log('Stopzeit Beregnung Kreis-1 gesetzt'); 
                      log('Gesamtzeit: ' + GesamtKreis1 );
                  }
          }
      });
      

      Wenn Das Ergebnis eigentlich z.B. 20 sein müsste dann bekomme ich z.B 400

      Irgendwas mache ich da falsch.

      Weis jemand vielleicht rat?

      Gruß
      Johnny

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von OliverIO
      #2

      Leerleer

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        backfisch88
        schrieb am zuletzt editiert von
        #3

        Ich lasse mir das immer in Minuten seit Tagesanbruch ausgeben und berechne daraus die Differenz

        1 Antwort Letzte Antwort
        0
        • P PrinzEisenherz1

          Hi zusammen, ich hab da mal wieder ein Problem und hoffe es kann mir von euch jemand helfen.
          und zwar möchte ich die Differenz des Timestamps zweier unterschiedlicher Objekte berechnen und da bekomme ich ein ganz anderes Ergebnis als wie wenn ich selbst rechne . Irgendwas stimmt da nicht in meinem Ansatz.

          Hier ein Ausschnitt meines Scriptes:

          var idStates = ["javascript.4.OpenSprinklerPi.Kreis1"];
          
          on({id: idStates, change: 'any'}, function(dp){
          // Erfassen Start-Stop-Zeiten Kreis-1
              if(dp.common.name === 'Gartenberegnung - Ventil 1'){
                      if((dp.newState.val != dp.oldState.val)&&dp.newState.val === true){
                          var StartzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 );
                          log('Startzeit Beregnung Kreis-1 gesetzt'); 
                      }else if((dp.newState.val != dp.oldState.val)&&dp.newState.val === false){
                          var StopzeitKreis1 = getState('javascript.4.OpenSprinklerPi.Kreis1').lc;
                          var GesamtKreis1 = (getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start').val - getState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop').val)/1000;
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1);
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 );
                          
                          log('Stopzeit Beregnung Kreis-1 gesetzt'); 
                          log('Gesamtzeit: ' + GesamtKreis1 );
                      }
              }
          });
          

          Wenn Das Ergebnis eigentlich z.B. 20 sein müsste dann bekomme ich z.B 400

          Irgendwas mache ich da falsch.

          Weis jemand vielleicht rat?

          Gruß
          Johnny

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

          @PrinzEisenherz1 sagte:

          Irgendwas mache ich da falsch.

          Versuche es mal so:

          var idStates = ["javascript.4.OpenSprinklerPi.Kreis1"];
           
          on(idStates, function(dp){ // triggert bei Wertänderung
          // Erfassen Start-Stop-Zeiten Kreis-1
              if(dp.common.name === 'Gartenberegnung - Ventil 1'){
                      if(dp.state.val) {
                          var StartzeitKreis1 = dp.state.lc;
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 );
                          log('Startzeit Beregnung Kreis-1 gesetzt'); 
                      } else {
                          var StopzeitKreis1 = dp.state.lc;
                          var GesamtKreis1 = (StopzeitKreis1 - dp.oldState.lc) / 1000;
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1);
                          setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 );
                          
                          log('Stopzeit Beregnung Kreis-1 gesetzt'); 
                          log('Gesamtzeit: ' + GesamtKreis1 );
                      }
              }
          });
          

          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
          • P Offline
            P Offline
            PrinzEisenherz1
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in Differenz von 2 timestamps berechnen:

            // Erfassen Start-Stop-Zeiten Kreis-1 if(dp.common.name === 'Gartenberegnung - Ventil 1'){ if(dp.state.val) { var StartzeitKreis1 = dp.state.lc; setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-start', StartzeitKreis1 ); log('Startzeit Beregnung Kreis-1 gesetzt'); } else { var StopzeitKreis1 = dp.state.lc; var GesamtKreis1 = (StopzeitKreis1 - dp.oldState.lc) / 1000; setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-stop', StopzeitKreis1); setState('javascript.4.OpenSprinklerPi.VIS.Zeiterfassung.timestamp-Kreis1-gesamt', GesamtKreis1 ); log('Stopzeit Beregnung Kreis-1 gesetzt'); log('Gesamtzeit: ' + GesamtKreis1 ); } }

            Hi Paul, danke hat super geklappt.
            Gruß
            Johnny

            Intel-NUC mit ProxMox: ioBroker,SQL, logging Strom- Gas- u. Wasserzähler;10Zoll Tab im Flur für VIS; weiteres: Homematic CCU2, Homeduino, Kameras, selbstgebaute Wetterstation;

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            499

            Online

            32.8k

            Benutzer

            82.8k

            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