Activation/Désactivation de plugin par bloc code de scénario et tags

Bonsoir tout le monde,
Je sèche sur un bug dans un bloc code de scénario.
Ce scénario est appelé par d’autres scénarios et devraient permettre d’activer ou désactiver un plugin.
Les tags passés sont « activ » qui indique s’il s’agit d’une activation ou d’une désactivation et « idplugin » qui fournit l’id du plugin sur lequel agir.
Apparemment pas d’erreur mais pas d’activation non plus.
Voyez-vous l’erreur, ça fait 1 heure que je sèche dessus?
Merci de votre aide.

$tags = $scenario->getTags();// récupération des tags du scénario appelant
$myactiv = $tags['#activ#'];// récupération du tag activ
$myidplugin = $tags['#idplugin#'];// récupération du tag idplugin

$myPlugin=plugin::byId($myidplugin);
if ($activ == 1) {
    $myPlugin->setIsEnable(true);
}
else {
    $myPlugin->setIsEnable(false);
}

Et le log

Salut

Moi j’avais ça dans un coin

blea::deamon_stop();
phone_detection::deamon_stop();
config::save('active',0,'blea');
config::save('active',0,'phone_detection');

Et ça fonctionne très bien
1 pour l’inverse :grin:

1 « J'aime »

Salut,

if ($activ == 1){

ne devrait pas plutot etre

if ($myactiv == 1){

2 « J'aime »

Punaise, 1 heure d’aveuglement.
Passer une certaine heure, il faut admettre ne plus avoir les idées claires.
Merci de ton aide

Bonne journée à tous.

1 « J'aime »

Merci pour ton code qui doit surement fonctionner mais mon but est de désactiver les plugins Netatmo qui, en été, si on les laisse actifs, envoient des erreurs cron même si l’appareil est en Off.
Donc pas besoin d’arrêter le démon, juste activer le plugin d’hiver et le désactiver en été.
Finalement, mon code fonctionne… une fois l’erreur corrigée.
Bonne journée

As-tu essayé directement :

$myPlugin->setIsEnable($myactiv);

Plus besoin de if.

Pas bête, j’essaierais ça ce soir et je te tiens au courant

Edit : ça marche nickel.

1 « J'aime »

Au final, pour ceux que ça pourrait intéresser, voici le bloc code définitif du scénario

$tags = $scenario->getTags();		// récupération des tag du scénario
$myactiv = $tags['#activ#'];		// récupération du tag activ
$myidplugin = $tags['#idplugin#'];	// récupération du tag idplugin

$myPlugin=plugin::byId($myidplugin);
$myPlugin->setIsEnable($myactiv);	// Action sur le plugin

Ce scénario a 2 tags, activ qui est égal à 1 ou 0 et qui indique s’il s’agit d’une activation ou d’une désactivation, et idplugin qui est le id du plugin sur lequel agir.

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.