Bonjour
Dans un code plus général, je désactive un scénario dont voici le code…mais qui ne fonctionne pas!! Merci de votre aide.
// Désactiver le scénario d'alarme avec l'ID 7
$scenario = scenario::byId(7);
if (!is_object($scenario)) {
log::add('Mois en cours', 'error', 'Scénario non trouvé');
} else {
$scenario->setEnable(0); // Mettre à 0 pour désactiver le scénario
log::add('Mois en cours', 'info', 'Scénario désactivé avec succès');
}
Merci, mais peut-être je ne comprends pas. J’ai rajouté cette ligne à la fin de mon code résultat. Quand je passe par un scénario natif j’ai bien l’information de la liaison des scenario dans le scénario alarme et Mois en cours, mais rien dans le scénario fonctionnant avec le code.
// Désactiver le scénario d'alarme avec l'ID 7
$scenario = scenario::byId(7);
if (!is_object($scenario)) {
log::add('Mois en cours', 'error', 'Scénario non trouvé');
} else {
$scenario->setEnable(0); // Mettre à 0 pour désactiver le scénario
log::add('Mois en cours', 'info', 'Scénario désactivé avec succès');
$scenario->save();
}
Attention tout de même à l’usage de blocs code sans maitrise du code du core car une erreur peut potentiellement casser ton Jeedom.
D’autant plus que la grande majorité des fonctions sont directement accessibles depuis l’interface des scénarios sans avoir à écrire de code. Tu pourrais programmer ton scénario chaque 1er du mois par exemple.
Je pense que tu as raison et c’est ce que je vais faire et c’est plus simple. j’ai pas assez réfléchi!!! En réalité c’était un entrainement de code partiel. J’ai un cumul infini de différents paramètres d’une production photovoltaïque. J’ai donc des virtuels, quotidien, mois en cours, année en cours et cumul infini. A la fin de chaque mois en cours je souhaite récupérer les valeurs pour les mettre dans un tableau et réinitialiser les données du mois en cours pour repartir sur le mois suivant. Idem pour l’année en cours. Je pensais dans mon code: arrêter le scénario mois en cours, puis extraire les données vers le tableau, puis réinitialiser le virtuel mois en cours et enfin réactiver le scenario mois en cours. Dans un code général ce n’est peut être pas obligatoire car les actions s’enchainent, et dans une succession de scénarios on peut jouer sur le moment de leur déclenchement.
Après dans un scénario on peut très bien mixer les blocs actions et les blocs code par exemple. C’est souvent plus simple de laisser le code aux choses complexes non faisables via l’interface de jeedom et de rester sur le standard sur ce que tu peux faire de cette façon la.
Moi aussi j’avais commencé à faire pas mal de choses via du code et j’y suis revenu Je mixe les deux quand c’est nécessaire