JAG
Juillet 6, 2024, 7:59
21
je viens justement de regarder avec Metar, et la commande n’a pas l’info sur répéter les valeurs identiques.
J’ai besoin de 3 valeurs pour faire le calcul
15min / 2H / 4H
Il faudrait que j’ajoute un contrôle que la valeur est bien historisé et que la valeur identique soit sur oui ? qu’en penses-tu ?
J’ai pas analysé tous le code mais je pense que si $h1 (15min) est vide, lors du calcul $h2 (2H) tu dis que $td2h = 0
JAG
Juillet 6, 2024, 8:06
23
j’ai carrément bloquer tous les calculs si $h1 est vide
A par rapport a ta version stable :
$endDate = $_date2->modify('-2 hour');
$endDate = $_date2->format('Y-m-d H:i:s');
$startDate = $_date1->modify('-2 hour');
$startDate = $_date1->format('Y-m-d H:i:s');
// mesure barométrique -2h
$h2 = $histo->lastBetween($pressureID, $startDate, $endDate);
// calculs de tendance 15min/2h
if ($h2 != null) {
$td2h = ($h1 - $h2) / 2;
$log_msg = 'Tendance -2h : ' . $td2h . ' hPa/h';
} else {
$td2h = 0;
$log_msg = 'Pression Atmosphérique -2h nulle (historique) : ' . $h2 . ' hPa';
}
log::add(__CLASS__, 'debug', '[INFO] Timestamp -2h : Start/End Date : ' . $startDate . '/' . $endDate . ' - Pression Atmosphérique : ' . $h2 . ' hPa - ' . $log_msg);
// calcul du timestamp - 4h
$endDate = $_date2->modify('-2 hour');
tu as simplement besoin de modifier en if ($h2 != null && $h1 != null) {
et idem pour if ($h4 != null) {
→ if ($h4 != null && $h1 != null) {
comme ca tu aura toujours tes valeurs par défaut dans les calculs.
JAG
Juillet 6, 2024, 8:15
25
j’ai fait un peu différent
$startDate = $_date1->modify('-15 minute');
$startDate = $_date1->format('Y-m-d H:i:s');
// Valeur nulle
$td_moy = 100;
$dPdT = number_format($td_moy, 3, '.', '');
$td_num = number_format(5);
$td = (__('Pression atmosphérique nulle (historique)', __FILE__));
// dernière mesure barométrique
$h1 = $histo->lastBetween($pressureID, $startDate, $endDate);
if ($h1 != '') {
log::add('rosee', 'debug', '| ───▶︎ Timestamp -15min : Start/End Date : ' . $startDate . '/' . $endDate . ' - Pression Atmosphérique : ' . $h1 . ' hPa');
// calcul du timestamp - 2h
$endDate = $_date2->modify('-2 hour');
$endDate = $_date2->format('Y-m-d H:i:s');
$startDate = $_date1->modify('-2 hour');
$startDate = $_date1->format('Y-m-d H:i:s');
// mesure barométrique -2h
$h2 = $histo->lastBetween($pressureID, $startDate, $endDate);
1 « J'aime »
JAG
Juillet 6, 2024, 8:20
26
Je me pose juste s’il faut ajouter un message dans le centre des messages pour avertir l’user
Tu peut avertir l’user en debug, mais je le ferait pas en error,
car en fonction du capteur, il pourrait par exemple mettre plus de 15mn pour envoyer une valeur différente…
1 « J'aime »
Tu peut en revanche ajouter une verif getIsHistorized() == 0
et lancer un message.
Ah oui bon point. Je verifie le réglage dès que possible.
JAG
Juillet 6, 2024, 10:48
30
Phpvarious:
getIsHistorized()
Je l’ai ajouté lors de la sauvegarde de l’équipement
system
A fermé ce sujet ()
Juillet 13, 2024, 4:45
31
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.