Merci pour vos retours!
Cela confirme que mon bout de code ne va rien « casser » (j’utilise maintenant la méthode batteryStatus ).
Voici le code que j’ai ajouté dans un de mes scenarios de monitoring.
La condition pour que celui-ci marche: il faut que l’objet est une commande nommée « battery »
$batterie = "battery";
$eqLogics = eqLogic::all();
foreach($eqLogics as $eqLogic)
{
if ($eqLogic->getEqType_name() == 'MQTT') {
$scenario->setLog( '-- Equipement ' . $eqLogic->getHumanName() . ', type: ' . $eqLogic->getEqType_name() . '. Mise à jour du niveau de la batterie...');
try{
if (isset($batterie)){
// si la commande n'existe pas, une exception est levée
$cmd = cmd::byString('#' . $eqLogic->getHumanName() . '['. $batterie .']#');
}
$batteryPercent = $cmd->execCmd();
$batteryDateTimeValue = $cmd->getCollectDate();
//$eqLogic->setStatus('battery', $batteryValue);
//$eqLogic->setStatus('batteryDatetime', $batteryDateTimeValue);
$eqLogic->batteryStatus($batteryPercent,$batteryDateTimeValue);
} catch (Exception $e) {
// pas de commande
$scenario->setLog( 'Exception!');
}
} else {
$scenario->setLog('-- Equipement ' . $eqLogic->getHumanName() . ' ignoré');
}
}