Calcul durée depuis dernier statut
Calcul durée depuis dernier statut
Salut à tous je souhaite faire un calcul qui je pense est basic pour beaucoup d'entre vous.
Je voudrez calculer le durée en heure et minute une valuedate d'une commande.
En gros c'est un virtuel de présence je souhaiterai ajouter l'info, absent depuis HH:MM grace au calcul.
Quelqu'un peu me guider svp
Envoyé de mon ONEPLUS A5010 en utilisant Tapatalk
Je voudrez calculer le durée en heure et minute une valuedate d'une commande.
En gros c'est un virtuel de présence je souhaiterai ajouter l'info, absent depuis HH:MM grace au calcul.
Quelqu'un peu me guider svp
Envoyé de mon ONEPLUS A5010 en utilisant Tapatalk
Re: Calcul durée depuis dernier statut
bonjour
tu as plein de possibilités
1 jeedom le fait tous seul via ses widget "core" ex: timePresence si tu historises
2 regarde la doc scenario et si tu mets
tu as le temps en secondes que tu peux convertir en hh:mm avec les fonctions php
http://www.timestamp.fr/?
ou
http://www.timestamp-tool.fr/
là tu as 99.9% des utilisations
pour 0.01%
3 enregistrements du timestamp à partir du départ
et ton widget calcul seul le temps (les secondes defilent)
pour ça utilisation d'un curseur info/action
quand tu part tu mets en valeur action #timestamp# via scenario ou parametre avancés
ou tu crées un bouton en valeur #timestamp#
et un autre en valeur 0 pour arrêt
pour exemple un autre 15/12/2018 en valeur timestamp et dans le widget info
tu mets une modif brut reprise de countdown (qui est un compte à rebours) et là evidement c'est le contraire
tu as plein de possibilités
1 jeedom le fait tous seul via ses widget "core" ex: timePresence si tu historises
2 regarde la doc scenario et si tu mets
Code : Tout sélectionner
#timestamp# - valueDate(#[Entrée][Lampes Entrée][Etat]#, U)
Code : Tout sélectionner
gmdate("H:i",#timestamp#-valueDate(#[Entrée][Lampes Entrée][Etat]#,U)
ou
http://www.timestamp-tool.fr/
là tu as 99.9% des utilisations
pour 0.01%
3 enregistrements du timestamp à partir du départ
et ton widget calcul seul le temps (les secondes defilent)
pour ça utilisation d'un curseur info/action
quand tu part tu mets en valeur action #timestamp# via scenario ou parametre avancés
ou tu crées un bouton en valeur #timestamp#
et un autre en valeur 0 pour arrêt
pour exemple un autre 15/12/2018 en valeur timestamp et dans le widget info
tu mets une modif brut reprise de countdown (qui est un compte à rebours) et là evidement c'est le contraire
Code : Tout sélectionner
<!-- WIDGET SPECIFIQUE adapté du widget standard "countdown"
Modifications :
- Remplacement de style="display: block;" par style="min-width:90px;min-height:62px;margin-right: 5px;margin-left: 5px;padding:0px !important;"
- Remplacement de title="#collectDate#" par title="Valeur du #valueDate#, collectée le #collectDate#"
- Mutualisation de #countdown_#id#_#state#_h, #countdown_#id#_#state#_m, et #countdown_#id#_#state#_s en #countdown_#id#_#state#_decompte
- Suppression de class='label label-default'
- Ajout calcul de #countdown_#id#_#state#_decompte affichant si nécessaire les heures
- Remplacement de la valeur par défaut par --
Mise à jour :
- Le 2016/11/19 : Correction d'une erreur d'écriture
- Le 2016/04/11 : Création
-->
<div style="min-width:90px;min-height:62px;margin-right: 5px;margin-left: 5px;padding:0px !important;" class="tooltips cmd cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="Valeur du #valueDate#, collectée le #collectDate#">
<center>
<span style="font-weight: bold;font-size : 12px;" class="cmdName">#name_display#</span><br/>
<span style="font-size: 1.5em;font-weight: bold;" id="countdown_#id#_#state#_decompte">--</span>
</center>
<script>
if ('#background-color#' !== '#'+'background-color'+'#') {
$('#cmd#id# .label').css({'background-color':'#background-color#'});
}
$(function () {
if ('#state#' > 0) {
var intervalId = setInterval(function () {
var now = (new Date()).getTime(); // On déclare la date d'aujourd'hui.
var tps_restant = now - '#state#'*1000; // Temps restant en millisecondes '#state#'*1000 - now
// console.log("interval("+intervalId+")");
if (!$('#countdown_#id#_#state#_decompte').length || '#state#' < 0 || tps_restant < 0) {
// if (!$('#countdown_#id#_#state#_decompte').length || '#state#' <= 0 ) {
// console.log("clearInterval("+intervalId+")");
clearInterval(intervalId);
$('#countdown_#id#_#state#_decompte').text('--');
} else {
//============ CONVERSIONS
var s_restantes = tps_restant / 1000; // Secondes restantes
var i_restantes = s_restantes / 60; // Minutes restantes
var H_restantes = i_restantes / 60; // Heures restantes
s_restantes = Math.floor(s_restantes % 60); // Secondes restantes
i_restantes = Math.floor(i_restantes % 60); // Minutes restantes
H_restantes = Math.floor(H_restantes); // Heures restantes
//==================
//============ FORMATTAGE
s_restantes = s_restantes < 10 ? "0"+ s_restantes : s_restantes;
i_restantes = i_restantes < 10 ? "0"+ i_restantes : i_restantes;
H_restantes = H_restantes < 10 ? "0"+ H_restantes : H_restantes;
//==================
if (H_restantes > 0) {
$('#countdown_#id#_#state#_decompte').text(H_restantes + ":" + i_restantes + ":" +s_restantes);
} else {
$('#countdown_#id#_#state#_decompte').text(i_restantes + ":" +s_restantes);
}
}
}, 1000);
}
});
</script>
</div>
Re: Calcul durée depuis dernier statut
Super merci beaucoup pour toutes ces explications j'ai finalement créer un scénario pour récupéré date heure et minute dans une variable.
Envoyé de mon ONEPLUS A5010 en utilisant Tapatalk
Envoyé de mon ONEPLUS A5010 en utilisant Tapatalk
Re: Calcul durée depuis dernier statut
Bonjour,
Je me permet de reprendre ce sujet.
Je ne trouve pas de widget Countdown sur le market.
Exist il toujours?
Merci
Phil
Je me permet de reprendre ce sujet.
Je ne trouve pas de widget Countdown sur le market.
Exist il toujours?
Merci
Phil
Re: Calcul durée depuis dernier statut
l'orginal
la modification que j'ai faite pour le contraire se joue ligne 27
Code : Tout sélectionner
<!-- WIDGET SPECIFIQUE adapté du widget standard "countdown"
Modifications :
- Remplacement de style="display: block;" par style="min-width:90px;min-height:62px;margin-right: 5px;margin-left: 5px;padding:0px !important;"
- Remplacement de title="#collectDate#" par title="Valeur du #valueDate#, collectée le #collectDate#"
- Mutualisation de #countdown_#id#_#state#_h, #countdown_#id#_#state#_m, et #countdown_#id#_#state#_s en #countdown_#id#_#state#_decompte
- Suppression de class='label label-default'
- Ajout calcul de #countdown_#id#_#state#_decompte affichant si nécessaire les heures
- Remplacement de la valeur par défaut par --
Mise à jour :
- Le 2016/11/19 : Correction d'une erreur d'écriture
- Le 2016/04/11 : Création
-->
<div style="min-width:90px;min-height:62px;margin-right: 5px;margin-left: 5px;padding:0px !important;" class="tooltips cmd cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="Valeur du #valueDate#, collectée le #collectDate#">
<center>
<span style="font-weight: bold;font-size : 12px;" class="cmdName">#name_display#</span><br/>
<span style="font-size: 2em;font-weight: bold;" id="countdown_#id#_#state#_decompte">--</span>
</center>
<script>
if ('#background-color#' !== '#'+'background-color'+'#') {
$('#cmd#id# .label').css({'background-color':'#background-color#'});
}
$(function () {
if ('#state#' > 0) {
var intervalId = setInterval(function () {
var now = (new Date()).getTime(); // On déclare la date d'aujourd'hui.
var tps_restant = '#state#'*1000 - now; // Temps restant en millisecondes
// console.log("interval("+intervalId+")");
if (!$('#countdown_#id#_#state#_decompte').length || '#state#' < 0 || tps_restant < 0) {
// console.log("clearInterval("+intervalId+")");
clearInterval(intervalId);
$('#countdown_#id#_#state#_decompte').text('--');
} else {
//============ CONVERSIONS
var s_restantes = tps_restant / 1000; // Secondes restantes
var i_restantes = s_restantes / 60; // Minutes restantes
var H_restantes = i_restantes / 60; // Heures restantes
s_restantes = Math.floor(s_restantes % 60); // Secondes restantes
i_restantes = Math.floor(i_restantes % 60); // Minutes restantes
H_restantes = Math.floor(H_restantes); // Heures restantes
//==================
//============ FORMATTAGE
s_restantes = s_restantes < 10 ? "0"+ s_restantes : s_restantes;
i_restantes = i_restantes < 10 ? "0"+ i_restantes : i_restantes;
H_restantes = H_restantes < 10 ? "0"+ H_restantes : H_restantes;
//==================
if (H_restantes > 0) {
$('#countdown_#id#_#state#_decompte').text(H_restantes + ":" + i_restantes + ":" +s_restantes);
} else {
$('#countdown_#id#_#state#_decompte').text(i_restantes + ":" +s_restantes);
}
}
}, 1000);
}
});
</script>
</div>
Re: Calcul durée depuis dernier statut
Bonjour,
Merci
Phil
Merci
Phil
Re: Calcul durée depuis dernier statut
pour info
quand c'est désactivé (ou echu)
on a en valeur "- -"
sur le forum il y a un membre qui avait mis une modif pour avoir une autre info
quand c'est désactivé (ou echu)
on a en valeur "- -"
sur le forum il y a un membre qui avait mis une modif pour avoir une autre info
Re: Calcul durée depuis dernier statut
Bonjour à tous
J'ai créé un virtuel info nommé "compteur" qui calcul la différence de temps entre la dernière ouverture de fenêtre et la date du jour:
(#timestamp# - collectdate(#[Chambre de Simon][Fenêtre ][Etat]#,U))/3600
Et dans les déclencheurs d'un scénario, je demande de surveiller lorsque ce virtuel est supérieur à 72:
#[Chambre de Simon][Ventilation ][Compteur ]# >= 72
Mais il semble que le virtuel ne se mette pas à jour en temps réel, uniquement quand je clique sur sauvegarder dans mon virtuel..
Du coup mon scénario n'est pas déclenché.. Je fais quelque chose de travers? Il me manque quelque chose ?
Merci de votre aide
J'ai créé un virtuel info nommé "compteur" qui calcul la différence de temps entre la dernière ouverture de fenêtre et la date du jour:
(#timestamp# - collectdate(#[Chambre de Simon][Fenêtre ][Etat]#,U))/3600
Et dans les déclencheurs d'un scénario, je demande de surveiller lorsque ce virtuel est supérieur à 72:
#[Chambre de Simon][Ventilation ][Compteur ]# >= 72
Mais il semble que le virtuel ne se mette pas à jour en temps réel, uniquement quand je clique sur sauvegarder dans mon virtuel..
Du coup mon scénario n'est pas déclenché.. Je fais quelque chose de travers? Il me manque quelque chose ?
Merci de votre aide
Re: Calcul durée depuis dernier statut
remplacé collecdate
par valuedate pour commencer
mais ça ne sera pas optimum
timestamp est une date pour affichage
ou évaluation (Si)
non actualisé (c'est des secondes)
sauf si le code du widget l'intègre mais c'est pas le core jeedom qui taf à la seconde par optimisation
pour preuve un widget #timestamp#
en déclenchement d'un scénario se lancerai toutes les secondes
toi tu t'en sert pour déclenchement
un déclenchement c'est un équipement ou cron
pour ta question remplace ton declencheur par cron (toutes les minutes)
et SI
(#timestamp# - collectdate(#[Chambre de Simon][Fenêtre ][Etat]#,U))/3600 > 72
faire / sinon
ou dans ton virtuel y mettre un cron qui reviens au même "Auto-actualisation (cron)" en moin simple
par valuedate pour commencer
mais ça ne sera pas optimum
timestamp est une date pour affichage
ou évaluation (Si)
non actualisé (c'est des secondes)
sauf si le code du widget l'intègre mais c'est pas le core jeedom qui taf à la seconde par optimisation
pour preuve un widget #timestamp#
en déclenchement d'un scénario se lancerai toutes les secondes
toi tu t'en sert pour déclenchement
un déclenchement c'est un équipement ou cron
pour ta question remplace ton declencheur par cron (toutes les minutes)
et SI
(#timestamp# - collectdate(#[Chambre de Simon][Fenêtre ][Etat]#,U))/3600 > 72
faire / sinon
ou dans ton virtuel y mettre un cron qui reviens au même "Auto-actualisation (cron)" en moin simple
Re: Calcul durée depuis dernier statut
Le coup du Cron dans le virtuel je n'y avais pas pensé !!! Merci !!!!!
Re: Calcul durée depuis dernier statut
Bonjour
j'ai repris votre widget Countdown
que j'ai appliqué sur une info dans j'ai également défini le paramètre state
quand je clique sur run il m'affiche une valeur importante du genre 1561458158 et
rien ne bouge
je veux lancer un décompte de ex: 120s et afficher le temps restant
pouvez vous m'aider
cordialement
pierre
j'ai repris votre widget Countdown
que j'ai appliqué sur une info dans j'ai également défini le paramètre state
quand je clique sur run il m'affiche une valeur importante du genre 1561458158 et
rien ne bouge
je veux lancer un décompte de ex: 120s et afficher le temps restant
pouvez vous m'aider
cordialement
pierre
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 15 invités