Bonjour,
j’utilise un plugin qui me permet de piloter ma pompe piscine en fonction de la température.
Je voudrais tracer l’évolution de cet temps dans un graphe qui serait intégré dans une de mes vue. hors cette variable n’est pas accessible via vue / Graphique
J’ai donc fait ceci
j’ai créé un un scénario qui affecte la valeur du plugin à une variable d’un widget virtuel qui centralise toutes les infos de ma piscine. Je pourrais activer l’historique et ainsi tracer ma courbe.
Dans mon virtuel que crée une variable Temps_Filtration de type numérique / info
dans mon scénario qui se déclenchée toute les heures je fait une seule ligne de commande
Action
Event
la valeur passe mais ce n’est pas le bon format
quand je fais un test j’ai:
du pluging #[Piscine][Filtrage piscine][Temps filtration]# = 03:30
dans mon virtuel : #[Piscine][Pompe piscine][Temps_Filtration]# = 3
Je n’ai plus le format des heures, juste la valeur 3.
j’ai essayer de formater en utilisant formatTime(#[Piscine][Filtrage piscine][Temps filtration]#)
j’ai le même résultat le perd le format
J’espère avoir été suffisamment clair et merci d’avance
Avec le :, 03:30 n’est pas un nombre. Dans le virtuel, il faut mettre le format Autre mais alors pas de graphique.
Sinon passer le temps de filtration en minutes et utiliser le format numérique partout.
Ou convertir la valeur dans l’event en minutes. (Cette valeur n’existe-t-elle pas dans le plugin ?)
valeur:
@jpty merci pour ceci ça m’a beaucoup aidé.
Effectivement je bloquais le un format date et je ne m’en sortais pas.
j’ai ajouté un bout de code dans le scénario en reformatant la valeur en format « string » en float.
donc 03:30 devient 3.3 et ça marche je peux tracer une courbe avec ceco afin de voir les évolutions du temps de pompage de la piscine. Et en plus ça m’a donne l’occasion de refaire un peu de PhP
bricolage mais ça marche
// je récupère la valeur en format string du widget piscine
$cmd = cmd::byString("#[Piscine][Filtrage piscine][Temps filtration]#");
$value = $cmd->execCmd();
// je cree une variable de type sting qui a la structure d’un nombre float
$value = $value[0].$value[1].".".$value[3].$value[4];
// je converti en float
$value = floatval($value)
// j’update mon virtuel avec la nouvelle valeur
$cmd = cmd::byString("#[Piscine][Pompe piscine][Temps_Filtration]#")->event($value);
Il suffisait de remplacer le : par un . pour faire cette bidouille.
$value = str_replace(':','.',$value);
Si vous ne voulez pas en minutes, il faut au moins passer en heures décimales.
Sinon il va y avoir des escaliers dans la courbe de l’historique ( passage de 3.59 à 4 )