Je viens de trouver un autre petit bug sur le plugin gestion de la lumière en beta
Il se trouve que pour mon atelier je ne souhaite pas définir de capteur de luminosité
Je veux que systématiquement dès qu’une présence est détecté le système de gestion de lumière se déclenche
Or cela ne fonctionne jamais et dans les log en mode debug on voit que la condition de luminosité n’est pas respecté
A ok , si il est pensé ainsi why not , il faudrait imposer d’en declarer un alors !
Mais pourquoi ne pas valider la condition si aucun capteur de luminosité renseigné ?
Bref sinon je vais mettre une valeur bidon pour forcer à true
Merci du retour !
ci-dessous petite proposition d’evol (je regarde le nombre d’équipement activé de luminosité, si j’en ai 0 je retourne true
public function getLuminosityState() {
$luminositys = $this->getConfiguration('luminositys', '');
$nbrL=0;
if ($luminositys != '') {
foreach ($luminositys as $luminosity) {
if ($luminosity['enable'] != 1) {
continue;
}
$nbrL++;
if (!isset($luminosity['min_last_min']) || $luminosity['min_last_min'] == 0) {
$value = cmd::cmdToValue($luminosity['cmdLuminosity']);
} else {
$cmd = cmd::byId(str_replace('#', '', $luminosity['cmdLuminosity']));
if (!is_object($cmd)) {
continue;
}
if (!$cmd->getIsHistorized()) {
throw new Exception(__('Impossible de calculer la luminositée car la commande n\'est pas historisée', __FILE__) . ' : ' . $luminosity['cmdLuminosity']);
}
$stats = $cmd->getStatistique(date('Y-m-d H:i:s', strtotime('now -' . $luminosity['min_last_min'] . ' min')), date('Y-m-d H:i:s', strtotime('now')));
$value = $stats['min'];
if (!isset($stats['min']) || $value === null) {
$value = $cmd->execCmd();
}
}
log::add('lightmanager', 'debug', $this->getHumanName() . '[getLuminosityState] Luminosity ' . $value . ' threshold : ' . $luminosity['threshold']);
if ($value < $luminosity['threshold']) {
log::add('lightmanager', 'debug', $this->getHumanName() . '[getLuminosityState] Luminosity check => 1');
return true;
}
}
}
if($nbrL===0){
return true;
}
log::add('lightmanager', 'debug', $this->getHumanName() . '[getLuminosityState] Luminosity check => 0');
return false;
}
Merci faut je trouve le temps de regarder ton fix va planter chez certain c’est pas bon. La correction est surement très simple mais pour etre sur de rien planter chez personne c’est beaucoup plus compliqué et j’ai pas le temps de me lancer la dedans.