Variable dans une commande (suite)

Bonjour,

Je fais appel à vos connaissances pour créer une commande d’après la valeur d’une variable.

J’utilise le plugin Mode pour gérer différents modes de chauffages dans la maison (j’en ai 7).

En cas de redémarrage de Jeedom (après plantage par exemple) je souhaite que le dernier mode de chauffage en cours soit restauré.

J’ai donc une variable MOD_Chauffage qui s’actualise à chaque changement de mode, elle est au format texte (Eco par exemple).

J’ai un scénario qui se déclenche 1 minute après le démarrage de Jeedom qui le notifie du bon démarrage et qui réinitialise plusieurs paramètres. Je je voudrais que ce soit ce scénario qui restaure le dernier mode de chauffage en cours.

Vu que c’est une période chargée pour mon Pi, je voudrais éviter un scénario à rallonge qui teste 7 fois la valeur de ma variable, je me suis donc dit qu’il était certainement possible de passer une commande directement avec la valeur de ma variable comme :

#[Maison][MOD_Chauffage][variable(MOD_Chauffage)]#

ou

#[Maison][MOD_Chauffage]["variable(MOD_Chauffage)"]#

Mais ça ne passe pas. J’ai cherché et j’ai trouvé dans ce topic le code suivant mais soit il n’est pas adapté à l’utilisation que j’en fait soit je ne sais pas l’adapter à mon cas :

// RECUPERATION DE LA VARIABLE
$MOD_chauf_var = $scenario->getData('MOD_Chauffage');
// FORMATAGE DE LA COMMANDE
$cmd="#[Maison][MOD_Chauffage][" . $MOD_chauf_var . "]#";
// EXECUTION DE LA COMMANDE
cmd::byString($cmd)->execCmd();

Y aurait-il une âme charitable capable de m’orienter ?

Merci.

Bonsoir,

As tu essayé avec le code tel que proposé ?

Ah, oui, pardon… Si je teste « à vide » (en modifiant la variable manuellement avec Jeedom fonctionnel), cela fonctionne mais en cas de reboot je n’ai aucune valeur qui s’initialise (aucun mode actif) malgré le fait que la variable soit bien existante.

Je me demande donc si je dois adapter le code, augmenter peut-être le délai pour que cette opération intervienne plus tard ou si ça ne fonctionnera pas pour une raison X ou Y.

Je préfères poser la question car je ne peux pas me permettre de rebooter 10 fois de suite pour essayer 10 méthodes différentes.

Merci.

Bonsoir, je sais pas si ca va t’aider mais j’ai testé le code sur reboot et celui-ci fonctionne bien dans mon cas :
V 4.1.22 sur RPI4
Scénario déclenché par #start#.

J’ai mis mon Mode en Eco et initié ma variable a OFF et mon mode a bien basculer sur OFF 1min après le reboot.

J’ai aussi lancer des évènements (notification) directement dans le scénario (sans tempo) et ceux-ci ne se sont pas exécutés, j’ai donc investi dans les log, et j’ai pu constaté que quand le scénario est lancé, les Démons ne sont pas encore tous OK. Donc oui en fonction de ta config (peut-être plus lourde que la mienne) il est possible que tu soit obligé d’augmenter cette tempo.

1 « J'aime »

Merci, je vais donc creuser dans ce sens. Je vais tenter de garder ma temporisation d’ 1 minute pour l’initialisation de mes variables (puisque ça fonctionne) et d’ajouter une temporisation supplémentaire pour ce bloc code.
Je tente ça demain. :+1:t2:
Merci.

Par-contre que le code initialise pas ton « Mode » est une chose mais si ton « Mode » ne reprend pas sa valeur après reboot en est une autre, car même sans utilisé ce code après un reboot mes « Mode » sont bien a l’état d’avant reboot ! a vérifier pour ton cas, il est possible que tu ais un problème de cache, il me sembe avoir vu des Post qu’il traite ce sujet, mais a creusé car la sa sort de mes compétences.

Bonjour, en augmentant le délai ça fonctionne.

Je vais regarder pour ce problème de reprise d’état après un crash (ça fonctionne après un arrêt en règle).
J’ai un autre souci qu’il faut que je règle, Jeedom plante systématiquement lorsqu’il fait la sauvegarde automatique la nuit, sur SSD.
Sur SD c’est bon, si je désactive la sauvegarde sur SSD c’est bon, si je fais une sauvegarde manuelle c’est bon (j’ai une sauvegarde Samba sur NAS).

Je vais creuser, si besoin j’ouvrirai un nouveau sujet.

Merci.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.