Tu peux fixer des alertes batteries dans config/logs de ton jeedom.
Tu peux aussi gérer les alertes individuellement dans chaque équipement sur les commandes batterie.
Un peu hors sujet, mais qui peut intéresser :
J’avais récupéré un code de je ne sais plus trop qui, pour ajouter un contrôle de communication des modules à piles. Ce code alerte quand un module ne communique plus depuis un certain temps et donc potentiellement avec un pb de pile !
Je le lance toutes les 2h
$maxTime = 43200; // temps en secondes - 12h maximum
$scenario->setLog("Temps : " . $maxTime);
$batterie = "Batterie"; // Nom de la commande à rechercher
$excludeEq = array("[Xiaomi][Aspirateur]" => 1, "[Xiaomi][Bouton Alarme]" => 1); // Liste des équipements à ignorer (qui contiennent la commande "$batterie")
$errEqLogics = array();
$_format = '%Y-%m-%d %H:%M:%S';
$eqLogics = eqLogic::all();
$scenario->setLog('Début monitoring');
$scenario->setData('monitor', '');
foreach($eqLogics as $eqLogic)
{
if ($excludeEq[$eqLogic->getHumanName()] == 1){
$scenario->setLog( '-- Equipement ' . $eqLogic->getHumanName() . ' ignoré');
continue;
}
try{
if (isset($batterie)){
// si la commande n'existe pas, une exception est levée
$cmd = cmd::byString('#' . $eqLogic->getHumanName() . '['. $batterie .']#');
}
$scenario->setLog( '-- Equipement ' . $eqLogic->getHumanName());
$allCmds = $eqLogic->getCmd('Info');
$maxDate = date($_format, "1970-1-1 00:00:00");
if (count($allCmds) > 0)
{
foreach($allCmds as $cmd)
{
$cmd->execCmd();
$collectDate = $cmd->getCollectDate();
$scenario->setLog( 'Commande ' . $cmd->getHumanName() . ' - ' . $collectDate);
$maxDate = max($maxDate, strtotime($collectDate));
}
$scenario->setLog( 'Date max ' . date('c', $maxDate));
$elapsedTime = time() - $maxDate;
if ($elapsedTime > $maxTime){
// -- /!\alert
$errEqLogics[] = $eqLogic->getHumanName(). '=> '. date('c', $maxDate);
$scenario->setLog('ALERTE');
}
}
}catch (Exception $e)
{
// pas de commande
}
}
$scenario->setData('monitor', implode(",", $errEqLogics));
// log fin de traitement
$scenario->setLog( 'fin monitoring');
ensuite tu fais un si variable(monitor)!="" alors : et là tu mais ta commande d’alerte.