Salut à tous
J’essaie d’optimiser mon dashboard afin de n’afficher que certaine fonction suivant des valeurs sur mon aspirateur.
En clair je veux que la fonction reset des capteurs ne s’affiche qu’a un certain moment.
Ca c’est bon j’ai reussi à le faire avec un bloc code.
code
// Récupérer la valeur de la commande
$temps = cmd::byString(« #[Robots][Alfred 2][Nettoyage des capteurs]# »)->execCmd();
// Récupérer la commande avec l’ID de la commande de reset
$cmd = cmd::byId(26668);
// Initialisation des variables
$jours = 0; $heures = 0; $minutes = 0; $secondes = 0;
// Extraction des valeurs
if (preg_match(‹ /(\d+)j/ ›, $temps, $matches)) $jours = $matches[1];
if (preg_match(‹ /(\d+)h/ ›, $temps, $matches)) $heures = $matches[1];
if (preg_match(‹ /(\d+)m/ ›, $temps, $matches)) $minutes = $matches[1];
if (preg_match(‹ /(\d+)s/ ›, $temps, $matches)) $secondes = $matches[1];
// Conversion en secondes
$totalSecondes = ($jours * 86400) + ($heures * 3600) + ($minutes * 60) + $secondes;
// Enregistrer la valeur dans une variable Jeedom
$scenario->setData(« temps_capteurs_secondes », $totalSecondes);
// Affichage dans les logs
$scenario->setLog(« Durée convertie : " . $totalSecondes . " secondes »);
// Récupérer la valeur de la variable Jeedom
$temps_capteurs_secondes = $scenario->getData(« temps_capteurs_secondes »);
// Vérifier si la variable existe et est bien définie
if ($temps_capteurs_secondes !== false) {
if ($cmd) {
// Si la valeur est inférieure à 36000, rendre la commande visible
if ($temps_capteurs_secondes < 36000) {
$cmd->setIsVisible(1);
} else {
$cmd->setIsVisible(0);
}
// Sauvegarder les changements
$cmd->save();
} else {
$scenario->setLog("Erreur : Commande ".$cmdID." introuvable.");
}
} else {
$scenario->setLog(« Erreur : Variable temps_capteurs_secondes non définie. »);
}
J’aimerais savoir si je peux faire un deuxième bloc code dans le même scenario avec un autre capteur ou si je dois faire un scenario par capteur
Merci de vos retour