Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Differenz von 2 timestamps berechnen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Differenz von 2 timestamps berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PrinzEisenherz1 last edited by 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

      OliverIO paul53 2 Replies Last reply Reply Quote 0
      • OliverIO
        OliverIO @PrinzEisenherz1 last edited by OliverIO

        Leerleer

        1 Reply Last reply Reply Quote 0
        • B
          backfisch88 last edited by

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

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @PrinzEisenherz1 last edited by paul53

            @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 );
                        }
                }
            });
            
            1 Reply Last reply Reply Quote 0
            • P
              PrinzEisenherz1 last edited by

              @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

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              833
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              javascript
              4
              5
              573
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo