Utiliser un équipement lorsqu'il est sous forme de variable

Bonjour,

J’ai des têtes thermostatique qui ne répondent pas toujours du premier coup à mes demande. Je cherche donc à relancer 2 fois de suite ma demande avec un interval de temps défini à chaque fois.

J’ai donc créer ce scénario qui me permet de passer des tags pour choisir sur quel radiateur je veux agir:

(taille originale Screenshot-2019-11-13-at-23-32-25 hosted at ImgBB — ImgBB)

Le problème est que #variable(newradiatormode)# me donne « #[cuisine][radiateur][Eco]# » par exemple, mais n’exécute pas la commande. Le retour est le bon, mais il n’y a aucune exécution lorsque c’est sous forme de variable.

Je n’ai rien trouvé dans la doc me permettant de forcer cela. Quelqu’un a t’il une idée ?

Merci

Bonjour,
Selon la doc :

value(cmd) : Renvoie la valeur d’une commande si elle n’est pas donnée automatiquement par Jeedom (cas lors du stockage du nom de la commande dans une variable)

Ce n’est pas ça qu’il te faudrait utiliser ? (jamais testé perso)

Salut,

Je ne suis pas certain de la syntaxe de certaines parties de ton scénario. Un peu trop de # à mon avis.

As-tu déjà essayé la fonction event qui te permet de forcer une valeur sur un commande plutôt que de passer via une variable?

Qu’as-tu comme vanne thermostatique?

Personnellement j’utilise du Code PHP

Non je n’ai pas essayé la fonction évent, je vais regarder merci. Mes vannes thermostatiques sont des Eurotronics spirit, elles répondent bien 90% du temps mais des fois ya des petits loupés.

Je suis a 2 doigts aussi d’utiliser du PHP, mais j’essaye vraiment d’éviter (challenge avec des potes a qui j’ai dit qu’on pouvait tout faire dans jeedom sans avoir à coder lol).

On peut pratiquement tout faire sans code :slight_smile:

Mais je pense vraiment que ton scénario peut être écrit autrement. Je ne vois pas de test de l’état de ta vanne.

Il serait bien aussi de voir ton déclencheur ( premier onglet du scénario) afin d’avoir une vue complète de ton scénario.

1 « J'aime »

bonjour
Event n’est pas une action

pour tes potes

créé un scénario pour une tête (1)
sans déclencheur

dans 1mn
si état != variable (2)
action slider valeur variable
stop

dans la config avancés de ton action slider
écrit scénario
tu lances le scénario

te voilà avec une boucle répétitive reconductible si non egal

(1) pour tes autre radiateur dans le même scénario
soit via tag soit triggler en plus du si

(2) si état = variable
pour perte de remonté

au lieu de le lancé via action
tu le le lance via l’info (si > 100 // 0mn)
et dans le scénario tu lui mets une fonction boucles de 3
dedans un sleep et ton action

désactive la répétition de valeur de l’info sinon tu auras une boucle eternel

Effectivement @rombautsdidier je ne teste pas les états. Pour l’instant j’en suis à la phase d’expérimentation :slight_smile:

@ajja17orange j’ai du mal à tout comprendre, tu pourrais détailler un peu plus stp ?

la seul chose à comprendre
c’est cette fonction caché

écrit variable ou scénario et clic à côté

le reste tu le trouveras en suivant les pointillés

ou tu l’inventeras
genre
info inférieure à 100 plus de 0 mn
sleep (à ecrire) 60 sec
ton action en valeur ton équipement info
re sleep
re action
re sleep
re action

= 3 action espacé de 60 secondes sans scenario

cette fonction caché tu peux le faire dans l’action Avant/Après

Ah ouiiiiiiii pas mal du tout ça merci effectivement j’avais jamais encore trop cherché là dedans !

Bon, je galère toujours, en relisant les conversations, on est parti dans des complexités interstellaires alors que mon problème est vraiment simple (c’est ma faute j’aurais dû le simplifier avant de le montrer).

J’ai un scénario qui a une action de ce type:
value(radiateur_mode)

J’essaye de le lancer comme ça:
`radiateur_mode="#[Salon][Radiateur jardin][Eco]#"

Voilà, simplement ça, ça ne fonctionne pas. Comment mettre en action, une variable ?

J’ai également essayé:
value(variable(radiateur_mode)), #radiateur_mode#, variable(radiateur_mode),
et #variable(radiateur_mode)#

Mais rien à faire, je n’arrive pas à changer exécuter une commande passée en tag.

Merci

Voici ce que je fait :

  • je récupère les tags dans des variables et j’ai le code suivant ou commandea#ction contient une action sur un équipement [objet][équipement][action]#

$commandeetat = $scenario->getData(commandeetat);
$cmd = cmd::byString("#".$commandeetat."#");
$value = $cmd->execCmd();
$valeur = 0;

$valeuretat = $scenario->getData(valeuretat);

if ($value==$valeuretat)
{
$valeur = 1;
$etat = $scenario->getData(commandeaction);
$cmd = cmd::byString($etat);
$value = $cmd->execCmd();
}

$tags[’#msg#’] = $valeur;
$scenario->setTags($tags);