Historisation de plusieurs valeurs d'une commande info dans la même seconde

Finalement en faisant un scénario, « Multi-lancement », « Synchrone », « Provoqué » avec comme déclencheur la commande info, je récupère bien mes douze valeurs.
Dans les logs du scénario, tout est à la même seconde.

Pas besoin de la table history.

@domotruc, @Loic et @naboleo, merci pour votre écoute et votre patience.

Bonsoir @Jeandhom,
Pas bien compris ta solution. Ton besoin n’était pas d’historiser toutes les valeurs? En quoi passer par un scénario te permet de remplir le besoin?

Non, le besoin était de récupérer les douze valeurs de la même commande info pour ajouter un message dans le Centre de message lorsqu’un nouveau firmware est disponible.
Je pensais y arriver en passant par la table history.
Je partage le code, ce sera peut être plus clair.
Il ne faut pas oublier que le déclencheur du scénario change douze fois dans la même seconde.
Je fini par l’affichage d’un json dans un virtuel.

$trigger = cmd::cmdToHumanReadable($scenario->getRealTrigger());
$scenario->setLog('Trigger : ' . $trigger);
$cmd = cmd::byString($trigger);
$value = $cmd->execCmd();
$scenario->setLog('Valeur : ' . $value);
$shelly = json_decode($value,true);
$id = $shelly[id];
$scenario->setLog('ID : ' . $id);
$mac = $shelly[mac];
$scenario->setLog('MAC : ' . $mac);
$ip = $shelly[ip];
$scenario->setLog('IP : ' . $ip);
$fw_ver = $shelly[fw_ver];
$scenario->setLog('FW_VER : ' . $fw_ver);
$new_fw = $shelly[new_fw];
$source = 'Scénario ' . $scenario->getHumanName() . ' ' . $id;
if ($new_fw) {
  $new_fw_txt = 'true';
  // Ajout d'un message dans le Centre de Message
  message::add($source,$fw_ver,'Nouveau firmware disponible - Mettre à jour le firmware');
} else {
  $new_fw_txt = 'false';
  // Retrait d'un message dans le Centre de Message
  message::removeAll($source);
}
$scenario->setLog('NEW_FW : ' . $new_fw_txt);
$maVar = $scenario->getData('a_shelliesAnnonce');
$maVar[$mac] = $new_fw_txt;
$scenario->setData('a_shelliesAnnonce', $maVar);
$maVar = $scenario->getData('a_shelliesAnnonce');
$maVar = json_encode($maVar,true);
cmd::byString('#[Shellies Administration][Shellies Firmware][Retour Annonce]#')->event($maVar);
1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.