Ce sujet fait référence à l’une des étapes auxquelles je fais face dans ma migration d’Openzwave vers ZWaveJS mais c’est une question plutôt orientée Core Jeedom vu que cette propriété est commune à tous les équipements Jeedom.
Comme on peut le voir ici, j’ai quelques modules qui ont une belle vie sur piles :
Ici un module de détection de fumées dans un plugin (Openzwave), et le même module en cours de migration dans un autre plugin (ZWaveJS).
J’ai pris mon courage à demain et fais une batterie de test pour répliquer module par module les config. Mais je coince sur cette date de changement de piles qui depuis l’interface ne peut être éditée.
Vous l’aurez donc compris : j’aimerai répliquer la date de changement de piles de mon ancien module sur un autre.
Si quelqu’un connait un moyen/idée de faire cela, je prends
$eqLogic = eqLogic::byId(668); // id à modifier
$newDate = '2022-6-17 6:48:20'; // date à remplacer
if (is_object($eqLogic)){
$eqLogic->setConfiguration('batterytime', $newDate);
$eqLogic->save();
}
/* Ce qui suit permet de copier l'ancienne date d'un module cible dans un autre
*
* Si la variable '$newbatterytime' est remplie, le 'mode forcé' sera activé et le 'OLD_MODULE_ID ne sera pas pris en compte
* pour aller récupérer la date de changement pile à récupérer dans le module d'origine.
* Sinon laisser une chaine de caractère vide.
*
* Dans le cadre de ma migration OpenZwave vers Zwave JS,
* j'ai renommé à la main l'ensemble des noeuds Openzwave en "OZW-[id zwave] [nom du module zwave]" (exemple: OZW-21 Prise télé salon)
* et j'ai renommé les noeuds ZwaveJS en "[nom du module zwave]" (exemple: Prise télé salon)
*/
$TARGET_MODULE_ID = 46; // à remplir- C'est l'id eqLogic, voir le paramètre 'id' dans l'url du module. Ne pas prendre l'id zwave.
$OLD_MODULE_ID = 21; // à remplir- C'est l'id eqLogic, voir le paramètre 'id' dans l'url du module. Ne pas prendre l'id zwave.
$newbatterytime = '2019-12-22 17:20:38'; // Si remplie, le 'mode forcé' sera activé.
$target_name = ''; // ne rien mettre- initialisation
$old_name = ''; // ne rien mettre- initialisation
$OLD_eqLogic = eqLogic::byId($OLD_MODULE_ID);
if (is_object($OLD_eqLogic) || strlen($newbatterytime)>0){
if(strlen($newbatterytime)>0){
$scenario->setLog('Mode forcé');
}else{
$old_name = $OLD_eqLogic->getName();
$scenario->setLog('Old module name:' . $old_name . ' | BatteryTime:' . $OLD_eqLogic->getConfiguration('batterytime'));
$newbatterytime = $OLD_eqLogic->getConfiguration('batterytime');
}
$TARGET_eqLogic = eqLogic::byId($TARGET_MODULE_ID);
if (is_object($TARGET_eqLogic)){
$target_name = $TARGET_eqLogic->getName();
$scenario->setLog('Target module name:' . $target_name . ' | BatteryTime:' . $TARGET_eqLogic->getConfiguration('batterytime'));
// -- manip perso - start
$temp = str_replace('OZW-','',$old_name);
$temp2 = explode(' ', $temp, 2);
$old_name = $temp2[1];
// -- manip perso - end
if ($old_name == $target_name || strlen($newbatterytime)>0){
$TARGET_eqLogic->setConfiguration('batterytime', $newbatterytime);
$TARGET_eqLogic->save(true);
$TARGET_eqLogic = eqLogic::byId($TARGET_MODULE_ID);
$scenario->setLog('-> new BatteryTime changed ! >> Target module name:' . $target_name . ' | BatteryTime:' . $TARGET_eqLogic->getConfiguration('batterytime'));
}
}
}