Bonjour,
J’ai actuellement 45 compteurs d’eau sur mon site et bientôt encore d’autres donc plutôt que de faire plein de scénarios. Je me demandais si je ne pouvais pas faire un scénario global qui utiliserai le générique type fuite d’eau. L’idée est d’interroger tout les compteurs et que si il y a une fuite sur le compteur d’eau en fuite ou les compteurs en fuites il me fais une notif pour me dire lequel ou lesquelles sont en fuite et pourquoi pas le stocker dans une variable pour l’utiliser ailleurs par exemple.
Je n’y connais rien en code. J’ai fais un tour sur chat gpt qui m’a proposé cela mais j’obtiens rien…
En déclencheur de mon scénario je dois mettre la valeur de détection de tout mes compteurs ou bien il existe un déclencheur via le gen type ?
Merci d’avance de votre aide.
// Inclusion des classes de Jeedom
require_once dirname(__FILE__) . '/../../core/php/core.inc.php';
// Fonction pour obtenir les équipements avec une fuite d'eau
function trouverFuites() {
$resultat = array();
// Récupérer tous les équipements
$equipements = eqLogic::byType(WATER_LEAK); // Récupérer tous les équipements
// Parcourir chaque équipement
foreach ($equipements as $equipement) {
// Récupérer toutes les commandes info de l'équipement
$commandes = $equipement->getCmd('info');
foreach ($commandes as $commande) {
// Exécuter la commande pour obtenir sa valeur
$etat = $commande->execCmd();
if ($etat == 1) {
// Ajouter l'équipement à la liste si une fuite est détectée
$resultat[] = $equipement->getHumanName();
break; // Sortir de la boucle des commandes si une fuite est trouvée
}
}
}
return $resultat;
}
// Utilisation de la fonction pour trouver les fuites
$fuites = trouverFuites();
// Vérification des équipements avec une fuite d'eau et affichage du message
if (!empty($fuites)) {
$message = "Il y a une fuite sur les équipements suivants : " . implode(", ", $fuites);
echo $message;
// Stocker le message dans une variable de scénario pour une utilisation ultérieure
$scenario->setData('messageFuite', $message);
} else {
echo "Aucune fuite d'eau détectée dans les équipements.";
}