Tu peux mettre ça en scène de cette manière :
/*
Détermine pour une commande info historisée si elle est en front montant ou en front descendant
Le tag #FRONT# retourné prend les valeurs suivantes
0 : Front Descendant
1 : Front Montant
2 : Pas de Front
3 : Commande info non historisée
4 : Commande inexistante
*/
$cmdName = '#[Ma][Commande Info][Historisée]#';
$front = 4;
try {
$cmd = cmd::byString($cmdName);
$front = 3;
$scenario->setLog('bdd ' . $cmd->getId() . ' : ' . $cmd->getHumanName());
$debut = date("Y-m-d H:i:s", strtotime("2 months ago"));
$fin = date("Y-m-d H:i:s", strtotime("now"));
$all = history::all($cmd->getId(), $debut, $fin);
$valCmdAct = count($all) ? $all[count($all) - 1]->getValue() : null;
$valCmdPre = count($all) >=2 ? $all[count($all) - 2]->getValue() : null;
if (($valCmdAct <> null) and ($valCmdPre <> null)) {
$front = 2;
$scenario->setLog('Valeur Précédente : ' . $valCmdPre);
$scenario->setLog('Valeur Actuelle : ' . $valCmdAct);
if ($valCmdAct > $valCmdPre) {
$front = 1;
}
if ($valCmdAct < $valCmdPre) {
$front = 0;
}
}
} catch(Exception $e) {
message::add('Scénario ' . $scenario->getHumanName(),$e->getMessage(),'Détermination d\'un Front');
}
$scenario->setLog('Front : ' . $front);
$tags['#FRONT#'] = $front;
$scenario->setTags($tags);