Bonjour à tous,
Je cherche à faire un « duration » sur la valeur d’une commande (1) sur les dernières 24h. Facile via les scenarios classiques, mais mais je ne trouve pas la commande correspondante en bloc code.
Dnas la classe history, j’ai bien les methodes :
stateDuration()
lastStateDuration()
lastChangeStateDuration()
Mais aucune ne permet de spécifier la période
Aide bienvenue
Merci
Norbert
Salut Norbert,
C’est ça que tu cherches ?
$_startDate = func_get_arg(1);
$_endDate = func_get_arg(2);
$_value = null;
}
$_startTime = date('Y-m-d H:i:s',(int) strtotime(self::setTags($_startDate)));
$_endTime = date('Y-m-d H:i:s',(int) strtotime(self::setTags($_endDate)));
return history::stateChanges($cmd_id, $_value, $_startTime, $_endTime);
}
public static function duration($_cmd_id, $_value, $_period = '1 hour', $_unit = 60, $_operator = '=') {
$cmd_id = str_replace('#', '', $_cmd_id);
if (!is_numeric($cmd_id)) {
$cmd = cmd::byId(str_replace('#', '', cmd::humanReadableToCmd($_cmd_id)));
} else {
$cmd = cmd::byId($cmd_id);
}
if (!is_object($cmd) || $cmd->getIsHistorized() == 0) {
return '';
}
$cmd_id = $cmd->getId();
Je pense, mais je peux l’utiliser dans un bloc code ? ca n’es pas dans la doc phpDoc
$dureeFiltration24h = duration($eqRelaisPompeId;1;'24 hours') ;
ou
$dureeFiltration24h = cmd::byId($eqRelaisPompeId)->duration(1;'24 hours') ;
Oui avec
scenarioExpression::duration($_cmd_id, $_value, $_period = '1 hour', $_unit = 60, $_operator = '=')
2 « J'aime »
toutes les commandes dispos dans les scenarios sont utilisable avec scenarioExpression::XXXXX ?
Toutes les public static function
de la classe scenarioExpression
oui.
CLASS::PUBLIC_STATIC_FUNCTION(ARGUMENTS);
3 « J'aime »
Grand merci pour l’aide rapide !!
system
A fermé ce sujet ()
Juin 20, 2025, 9:37
8
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.