Remonté de l'information des batteries avec le plugin MQTT

Merci pour vos retours!

Cela confirme que mon bout de code ne va rien « casser » (j’utilise maintenant la méthode batteryStatus :slight_smile:).

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é');
  }
}
2 « J'aime »