Vanne Thermostatique Spiritz

Bonjour

Je dispose de plusieurs de ces têtes et j’en suis satisfait.
Voulant aller plus loin, j’ai mis en place un scénario actionné par bin virtuel pour pouvoir Booster à la demande le chauffage dans mon bureau

Ce que je souhaite faire :

  • Élément Sauvegarder dans une variable (Vanne_Bureau_Seb_Etat) l’état actuel de la vanne (pour le remettre à la fin du scénario

  • Élément Basculer en mode Boost pour ouvrir la vanne à fond (durant 5 min = 300 s)

  • Élément Basculer en mode chauffage avec une consigne de température à une variable Temp_boost
    cela durant (3300 sec, pour faire 1 heure au total)

  • Élément et enfin recalculer au mode initial sauvegardé dans la variable Vanne_Bureau_Seb_Etat

Tout fonctionne sauf cette dernière commande … je pense que c’est juste un problème de syntaxe mais j’ai beau avoir tout retourné/testé, je n’y arrive pas

Si je change et que j’écris en dur le mode souhaité, ici Eco, cela fonctionne
image

Alors que si je laisse avec la variable, cela ne marche pas. Ci dessous des screens du testeur d’expression

image
image

D’avance merci pour votre aide

Essaye juste avec des quotes autour de Eco pour ton test :

variable(Vanne_Bureau_Seb_Etat) == 'Eco'

Pour ta commande, inutile de passer par un bloc code, tu peux le faire via des actions classiques (event dans ton cas, ou évènement dans la sélection de la commande)

Si tu souhaites passer par un bloc code, il faut recupérer ta variable dans le bloc code. Tu trouveras toutes le sinfos necessaires :

Autre remarque, tu sembles utiliser une commande info pour pousser ta consigne Eco. C’est assez surprenant. Tu n’as pas une commande action pour ca ? une commande de type #[Bureau Seb][bureau Seb][Eco]# ?

Norbert

1 « J'aime »

Bonjour,

Cela n’a pas un rapport direct avec votre question mais n’utilisez pas le sleep pour des périodes supérieur à quelques minutes; 2 à 3 min grand max, plutôt en dessous de la minute.

Utilisez plutôt un bloc A ou DANS x minutes.

Si tout à fait, il faut utiliser la commande action, sinon la commande info aura la valeur voulue mais l’action sur la vanne n’aura pas été effectuée

image

Ok pour le testeur d’expression avec les quotes

Je n’avais pas conscience que le fait de modifier l’info n’aurait pas d’effet sur la vanne.

Alors ou ij;ai des commandes actions, mais le problème est que je ne sais pas laquelle utiliser. Eco, Chauffage, Boost ? Le mode en cours lors du lancement du scénario n’est jamais le même, c’est pour cela que je voulais le sauvegarder dans une variable en début de scénario pour pouvoir le remettre à la fin du scénario

Oui, j’avais bien compris.

Une idée un peu tirée par les cheveux est de « reconstruire » la commande à appeler avec le nom du mode dans la variable (dans un bloc code) et d’ensuite utiliser cette commande.

Il faut juste renommer les commandes actions pour que leur nom corresponde exactement au nom du mode (ce qui est le cas où presque par défaut avec ces vannes).

C’est ce que j’ai fait mais ne marche pas

Non ce n’est pas cela.

Il faut écrire quelque chose du genre:

[bureau][bureau][tag(vanne état)]->execmd();

Ps: je suis sur téléphone donc compliqué d’écrire exactement la bonne syntaxe mais c’est l’idée.

Si tu ne sais pas utiliser les blocs code, va au plus simple :
Tu indiques le mode actuel dans une variable comme tu l’as fait.
Et à la fin tu mets des si
Si variable(état) == ‹ eco ›
Alors commande eco
Si variable(état) == ‹ chauffage ›
Alors commande chauffage

( Fait nous un screenshot des commandes de ta vanne. Elles dépendent en effet du plugin que tu utilises)

1 « J'aime »

Alors j’avance mais cela ne fonctionne pas encore. Je m’explique

1/ Ai reconstruit les commandes :

2 / Ai modifier le scénario et surtout la partie code

et la commande n’a pu être trouvée …

J’ai aussi essayé avec en remplaçant tag par variable, cèle ne change rien

L’idée de @ngrataloup avec les si serait possible mais moins « dynamique »

D’avance merci pour votre aide

Si tu souhaites utiliser les tags ou variables dans ton bloc code, lit la doc déjà transmise plus haut.

Il faut que tu passes ton tag ou ta variable du scénario au bloc code avec gettags ou getdata

Norbert

J’ai fait sensiblement la même chose.
A savoir, j’enregistre le mode de la vanne dans une variable pour la réutilisé plus tard à la fin d’un scénario.

Voici mon bloc code si ça peut t’aider.

$Mod_Chauf_Var = $scenario->getData('ModeThermostat');
$cmd="#[Maison][Thermostat][".$Mod_Chauf_Var."]#";
cmd::byString($cmd)->execCmd();
1 « J'aime »

Le problème c’est que tag(montag) n’est pas la bonne méthode pour récupérer un tag dans un scénario; j’avais mis cela pour l’exemple.

Regardez la doc scénario ou les différents liens donnés ici; vous devez récupérer les tags de cette facon

$tags = $scenario->getTags();

et ensuite vous aurez dans $tags un tableau avec tous les tags.

$tags['montag']

Bonsoir

J’y suiis presque

Notez que le scénario a été simplifié pour les tests.

Ce scénario fonctionne bien. La vanne qui est en mode Eco passe bien au mode Chauffage puis revient au mode initial Eco


Le log :

Par contre, dans le futur scénario, je vais devoir scinder ce bloc code en 2 pour insérer entre 2 des actions "classiques et la ca ne fonctionne plus. Pour l’exemple j’ai mis un sleep

Si on regarde le log, message la commande n’a pas être trouvée, il semblerait que le probléme provient de la variable qui disparait, il manque en effet une partie, la commande aurait du être [Bureau Seb][Bureau Seb][Eco]#

Elle ne parvient pas à « sauter » d’un bloc à l’autre, alors qu’elle a bien été définie comme variable

J’y suis presque, merci pour votre aide

Bonsoir,
dans ton 2eme Bloc code il faut initier ta variable jeedom.
rajoute : $Vanne_Bureau_Seb_Etat = $scenario->getData('Vanne_Bureau_Seb_Etat'); avant la ligne
cmd::byString('#[objet][equipement]['.$Vanne_Bureau_Seb_Etat.']#')->execCmd();

1 « J'aime »

@Phpvarious ca marche !!! merci beaucoup

Merci à tous pour votre aide