sans réutilisation
un design de test
un html change l’id de ta sonde
<div class="cmd">Sur une periode de un an
le minimal est de <span class="mini"></span>
le maximal est de <span class="max"></span>
et il faisait <span class="lastyear"></span>
le <span class="lastyeardate"></span>
<script>
var stateTemp=825; // Id à définir
var date = new Date();
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
var hh = date.getHours();
var mn = date.getMinutes();
var ss = date.getSeconds();
var d_1 = (date.getDate()+1);
var y_1 = (date.getFullYear()-1);
var today = (y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh<=9 ? '0' + hh : hh)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var start = (y_1 + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh<=9 ? '0' + hh : hh)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var end = (y_1+'-'+(m<=9?'0'+m:m)+'-'+(d_1<=9?'0'+d_1:d_1)+' '+(hh<=9?'0'+hh:hh)+':'+(mn<=9?'0'+mn:mn)+':'+(ss<=9?'0'+ss:ss));
jeedom.history.get ({
cmd_id: stateTemp,
dateStart:this.start,
dateEnd:this.today,
/*
success: function(resulat) {
$('.mini').empty().text(resulat.minValue+" °C");
$('.max').empty().text(resulat.maxValue+" °C");
$('.lastyear').empty().text(resulat.data[0][1]+" °C");
var lastyeardate = new Date(resulat.data[0][0]);
lastyeardate=lastyeardate.toLocaleString();
$('.lastyeardate').empty().text(lastyeardate);
}
*/
})
</script>
</div>
A noter que l’on peut aussi se servir de ton code avec le nouveau #plugin-htmldisplay et retrouver le résultat aussi bien sur le dashboard qu’en mobile.
la 1er question c’est quand donc
j’ai cherché à aller plus loin
pour toi
<div class="cmd">Sur une periode de un an
le minimal est de <span class="mini">--</span> (<span class="minidate">--</span>)
le maximal est de <span class="max">--</span> (<span class="maxdate">--</span>)
et il faisait <span class="lastyear">--</span>
l'année derniére à <span class="lastyeardate">--</span>
<p id="demo"></p>
<script>
var stateTemp=825; // Id à définir
var date = new Date();
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
var hh = date.getHours();
var mn = date.getMinutes();
var ss = date.getSeconds();
var d_1 = (date.getDate()+1);
var y_1 = (date.getFullYear()-1);
var hh_1 = (date.getHours()-1);
var today = (y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh<=9 ? '0' + hh : hh)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var start = (y_1 + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh<=9 ? '0' + hh_1 : hh_1)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
jeedom.history.get ({
cmd_id: stateTemp,
dateStart:this.start,
dateEnd:this.today,
success: function(resulat) {
$('.mini').empty().text(resulat.minValue+" °C");
$('.max').empty().text(resulat.maxValue+" °C");
$('.lastyear').empty().text(resulat.data[0][1]+" °C");
var lastyeardate = new Date(resulat.data[0][0]);
lastyeardate=lastyeardate.toLocaleString("fr-FR",{hour:"2-digit"});
$('.lastyeardate').empty().text(lastyeardate);
$( resulat.data ).each(function( index ) {
var num = resulat.data[index][1];
if (num == resulat.maxValue) {
// console.log( $( this ).text(resulat.data[index][1]));
var maxdate = new Date(resulat.data[index][0]);
maxdate=maxdate.toLocaleDateString("fr-FR",{month: "long", day: "numeric"});
$('.maxdate').empty().text(maxdate);
}
if (num == resulat.minValue) {
// console.log( $( this ).text(resulat.data[index][1]));
var minidate = new Date(resulat.data[index][0]);
minidate=minidate.toLocaleDateString("fr-FR",{month: "long", day: "numeric"});
$('.minidate').empty().text(minidate);
}
});
}
})
</script>
</div>
Bonjour tout le monde et merci @ajja17orange pour ton aide. J’ai crashé ma Raspebrry ces derniers jours, je viens de revenir sur une installation stable !
Bonsoir,
Si par année courante tu veux dire du 1er janvier à aujourd’hui, alors il faut écrire:
maxBetween(#[Cellier][Raspberry-PI-2_Model-B][15_dht22]#,first day of this year 00:00, now)
Sinon sur les 12 derniers mois, j’écrirai plutot:
maxBetween(#[Cellier][Raspberry-PI-2_Model-B][15_dht22]#,12 months ago, now)
A noter:
today = aujourd’hui à 0h00
now = maintenant
C’est super classe comme taf !! Féliciations ! Comment puis je intégrer ça ?
Cela dit, je ne comprends pas pourquoi ma formule retourne toujours 12,7… et j’aimerai comprendre !
Bonjour ajja17, j’essaie d’utiliser ce morceau de code mais j’ai un souci que je n’arrive pas à régler, la date retournée pour la minimale est toujours « 06h30 »… Je n’arrive pas à isoler le problème…
<!-- source
https://codepen.io/pavelvaravko/pen/qjojOr/
-->
<body>
<div class="wrap">
<!--Select with pure css-->
<div class="select">
<select class="select-text" required>
<option value="elem_24h" selected>24 heures</option>
<option value="elem_1ans">1 ans</option>
<option value="elem_2ans">2 ans</option>
<option value="elem_3ans">3 ans</option>
</select>
<span class="select-highlight"></span>
<span class="select-bar"></span>
<label class="select-label">Mini/Maxi Temp. Ext. </label>
</div>
<div class="result">Pour cette periode <br/>
le minimal est de <span class="mini">--</span><br/>(<span class="minidate">--</span>) <br/>
le maximal est de <span class="max">--</span><br/>(<span class="maxdate">--</span>) <br/>
et il faisait <span class="lastyear">--</span><br/>
à <span class="lastyeardate">--</span>
</div>
<script>
var stateTemp=825; // Id à définir 825
var date = new Date();
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
var hh = date.getHours();
var mn = date.getMinutes();
var ss = date.getSeconds();
var d_1 = (date.getDate()-1);
var y_1 = (date.getFullYear()-1);
var y_2 = (date.getFullYear()-2);
var y_3 = (date.getFullYear()-3);
var hh_1 = (date.getHours()-1);
var now = (y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh<=9 ? '0' + hh : hh)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var oneyear = (y_1 + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh_1<=9 ? '0' + hh_1 : hh_1)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var lastday = (y + '-' + (m<=9 ? '0' + m : m) + '-' + (d_1 <= 9 ? '0' + d_1 : d_1)+' '+(hh<=9 ? '0' + hh : hh)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var twoyear = (y_2 + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh_1<=9 ? '0' + hh_1 : hh_1)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var treesyear = (y_3 + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d)+' '+(hh_1<=9 ? '0' + hh_1 : hh_1)+':'+(mn<=9 ? '0' + mn : mn)+':'+(ss<=9 ? '0' + ss : ss));
var options = {timeZone: "UTC",hour:"2-digit", minute:"2-digit"};
history(lastday,now);
$("select.select-text").on('change', function () {
var data =($(this).val());
if (data == "elem_24h") {
options = {timeZone: "UTC",hour:"2-digit", minute:"2-digit"};
history(lastday,now);
}
else if (data == "elem_1ans") {
options = {timeZone: "UTC",month: "long", day: "numeric"};
history(oneyear,now);
}
else if (data == "elem_2ans") {
options = {timeZone: "UTC",year:"numeric",month: "long", day: "numeric"};
history(twoyear,oneyear);
}
else if (data == "elem_3ans") {
options = {timeZone: "UTC",year:"numeric",month: "long", day: "numeric"};
history(treesyear,twoyear);
}
});
function history(start, end) {
jeedom.history.get ({
cmd_id: stateTemp,
// dateStart:this.lastday,
// dateEnd:this.now,
dateStart:start,
dateEnd:end,
success: function(resulat) {
$('.mini').empty().text(resulat.minValue+" °C");
$('.max').empty().text(resulat.maxValue+" °C");
$('.lastyear').empty().text(resulat.data[0][1]+" °C");
var lastyeardate = new Date(resulat.data[0][0]);
lastyeardate=lastyeardate.toLocaleString('fr-FR',{timeZone: "UTC",hour:"2-digit"});
$('.lastyeardate').empty().text(lastyeardate);
$( resulat.data ).each(function( index ) {
var num = resulat.data[index][1];
if (num == resulat.maxValue) {
// console.log( $( this ).text(resulat.data[index][1]));
var maxdate = new Date(resulat.data[index][0]);
maxdate=maxdate.toLocaleString('fr-FR',options);
$('.maxdate').empty().text(maxdate);
}
if (num == resulat.minValue) {
// console.log( $( this ).text(resulat.data[index][1]));
var minidate = new Date(resulat.data[index][0]);
minidate=minidate.toLocaleString('fr-FR',options);
$('.minidate').empty().text(minidate);
}
});
}
})
}
</script>
<style>
.result {
font-weight: 400;font-size: 12.5px;text-align: center;
}
.mini,.minidate,.max,.maxdate,.lastyear,.lastyeardate {
font-weight: 600;font-size: 15.5px;
}
.wrap {
font-size: 15.5px;
font-family:'Roboto','Helvetica','Arial',sans-serif;
font-weight: 400;
position: absolute;
right: 0;
top: 0%;
width: 100%;
left: 0;
margin: 0 auto;
}
/* select starting stylings ------------------------------*/
.select {
position: relative;
width: 100%;
}
.select-text {
position: relative;
font-family: inherit;
background-color: transparent;
width: 100%;
padding: 2px 2px 2px 0;
font-size: 15px;
border-radius: 0;
border: none;
border-bottom: 1px solid rgba(0,0,0, 0.12);
}
/* Remove focus */
.select-text:focus {
outline: none;
border-bottom: 1px solid rgba(0,0,0, 0);
}
/* Use custom arrow */
.select .select-text {
appearance: none;
-webkit-appearance:none
}
.select:after {
position: absolute;
top: 8px;
right: 10px;
/* Styling the down arrow */
width: 0;
height: 0;
padding: 0;
content: '';
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid rgba(0, 0, 0, 0.12);
pointer-events: none;
}
/* LABEL ======================================= */
.select-label {
color: rgba(0,0,0, 0.26);
font-size: 18px;
font-weight: normal;
position: absolute;
pointer-events: none;
left: 0;
top: 10px;
transition: 0.2s ease all;
}
/* active state */
.select-text:focus ~ .select-label, .select-text:valid ~ .select-label {
color: #2F80ED;
top: -20px;
transition: 0.2s ease all;
font-size: 14px;
}
/* BOTTOM BARS ================================= */
.select-bar {
position: relative;
display: block;
width: 100%;
}
.select-bar:before, .select-bar:after {
content: '';
height: 2px;
width: 0;
bottom: 1px;
position: absolute;
background: #2F80ED;
transition: 0.2s ease all;
}
.select-bar:before {
left: 50%;
}
.select-bar:after {
right: 50%;
}
/* active state */
.select-text:focus ~ .select-bar:before, .select-text:focus ~ .select-bar:after {
width: 50%;
}
/* HIGHLIGHTER ================================== */
.select-highlight {
position: absolute;
height: 60%;
width: 100px;
top: 25%;
left: 0;
pointer-events: none;
opacity: 0.5;
}
</style>
</div>
</body>
joue avec le retour console de ton navigateur pour voir se qu’il en retourne
un mini tuto
en suivant les liens tu trouveras 2 méthodes pour recherche date
@ajja17orange merci beaucoup pour ton retour, je vais regarder ça.
J’ai un peu creusé mon problème et j’ai trouvé un truc étrange, en fait la valeur minimale sur un an a été relevée le 05/12/19 à 06h30, c’était -1.8°C mais quand je regarde la courbe de température en historique, je n’ai pas de relevé à 06h30, juste à 06h puis à 07h. De plus la température relevée à 06h était de -1.65°C…
Donc la température de -1.8°C a été relevée et doit être stockée dans jeedom, mais elle n’apparait pas dans les courbes, le problème vient peut être de là…
test via scenario code (api php)
pour commencer
si ok avec l’html
ça peut être l’historique via highchart (courbe) si tu as paramètre moyen,min,max ou aucun des fois que
si non
cherche via console en déterminant le jour start et end
tu peux aussi avoir un soucis bdd
genre des , et des . ou des valeurs vides, voir des caractères bizarre
(sur 4 ans j’avais des erreurs)
des vieilles date dans la table history en double avec history.arch
si aussi ok
c’est mon html « script » qui cherche le mini mais la vu qu’il reprend la bdd ??
mais je ne suis pas sûr à 100% mais chez moi mini/max ok
je pourrais pas t’aider plus
a la suite de se html j’ai optimisé ma bdd pour accès plus rapide de cette valeur :
grand ménage via duplication avant différent test
demi-degrė est un changement de temperature, et une unité après virgule.
moyenne toutes les 20mn lors de l’archivage j-1 que je fais via scénario
avec la v4 il y a eu une optimisation archivage j-1 mais ça touche pas tes vieilles valeurs. bien qu’il y a une fonction nettoyage dans configuration jeedom
si l’historique bdd t’intéresse regarde les sujets sur l’installation d’admirer ou copie d’historique
Ok merci c’est très gentil de prendre le temps d’expliquer. Le temps c’est malheureusement ce qui me manque pour pouvoir étudier ça sérieusement, un jour peut être !
Bonjour,
Il me semble que je rencontre un peu le même problème…
J’ai 4 ans d’eedomus derrière mois et je dois avouer que ça me semblait moins « buggé ».
Je suis probablement coupable car je n’ai que 2 mois d’expérience sous Jeedom mais j’avoue que l’on passe son temps à remettre les choses en place
Pourriez vous me dire pourquoi la valeur retournée par Jeedom avec la formule : Minbetween est de 291 kWh (qui finalement correspond à la valeur mini du mois, sauf si l’année commence au 1er juin… )