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 -
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 -
Ich lasse mir das immer in Minuten seit Tagesanbruch ausgeben und berechne daraus die Differenz
-
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@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
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