NEWS
[gelöst] Differenz von 2 timestamps berechnen
-
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 -
Leerleer
-
Ich lasse mir das immer in Minuten seit Tagesanbruch ausgeben und berechne daraus die Differenz
-
@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 ); } } });
-
@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