Problème avec tag

Bonjour,

J’ai un problème avec un scénario avec quelques tags.

Voici mon scénario :

Ce scénario est appelé par le plugin Agenda avec des tags.

L’erreur que j’obtiens : Expression non valide [#[Maison][tag(prenom)][#sjour#]# == 1] trouvée dans le scénario : [Aucun][Aucun][Chauffage Chambre KB], résultat : #[Maison][« prenom »][« Mardi »]# == 1

Le problème se trouve probablement dans les guillemets de prenom et Mardi mais je ne trouve pas comment les enlever, en continuant à utiliser les tags pour éviter des redondances de scénarios.

Est-ce que vous auriez une idée ?

Bonsoir,

Tu ne peux pas utiliser des tags ou autres variables (#sjour#, etc…) dans un nom de commande. Le nom de la commande doit être exempt de tout ça.

On peut s’en sortir en revanche dans un bloc code mais c’est plus compliqué forcément.

Je suis pas sur mon PC je peux pas trop te montrer d’exemples pour le moment.

Merci pour ta réponse.

Tu veux dire faire tout le scénario dans un bloc code ? Je n’ai encore jamais fait tout un scénario avec du code mais je me débrouille en PHP.

Quelle serait la marche à suivre pour faire un scénario qui pourrait fonctionner avec des tags/variables avec du code ?

Comme j’ai pas le pc c’est pas pratique alors je fais un hors sujet, désolé pour les modérateurs.

Je copie/colle le dernier post avec un bloc code que j’ai en tête, tu verras comment récupérer des tags dans un bloc code et comment concaténer des variables PHP dans une commande pour récupérer la valeur ou exécuter une action.

Le site qui aide à bien démarrer : Jeedom v4 Petits codes entre amis | Jeedom by KiboOst

Merci pour ton aide, j’ai réussi à faire ce que je voulais.

Bonnes fêtes à toi :slight_smile:

setlocale(LC_TIME, 'fr_FR.UTF8');
$tags = $scenario->getTags();
$prenom = $tags['#prenom#'];
$mode = $tags['#mode#'];

cmd::byString('#[Chambre '.$prenom.'][Thermostat Chambre '.$prenom.'][Hors-Gel]#')->execCmd();

$jour = ucfirst(strftime('%A'));
$condition = cmd::byString('#[Maison]['.$prenom.']['.$jour.']#')->execCmd();
if ($condition == 1) {
  cmd::byString('#[Chambre '.$prenom.'][Thermostat Chambre '.$prenom.']['.$mode.']#')->execCmd();
}
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.