Bonjour,
Dans une condition d’un scénario j’utilise ce test:
#[Appartement 1003][The Cube][Appuis]# == 1002 || #[Appartement 1003][The Cube][Appuis]# == 1003 || #[Appartement 1003][The Cube][Appuis]# == 1004 || #[Appartement 1003][The Cube][Appuis]# == 1005 || #[Appartement 1003][The Cube][Appuis]# == 2001 || #[Appartement 1003][The Cube][Appuis]# == 2003 || #[Appartement 1003][The Cube][Appuis]# == 2004 || #[Appartement 1003][The Cube][Appuis]# == 2006 || #[Appartement 1003][The Cube][Appuis]# == 3001 || #[Appartement 1003][The Cube][Appuis]# == 3002 || #[Appartement 1003][The Cube][Appuis]# == 3005 || #[Appartement 1003][The Cube][Appuis]# == 3006 || #[Appartement 1003][The Cube][Appuis]# == 4001 || #[Appartement 1003][The Cube][Appuis]# == 4002 || #[Appartement 1003][The Cube][Appuis]# == 4005 || #[Appartement 1003][The Cube][Appuis]# == 4006 || #[Appartement 1003][The Cube][Appuis]# == 5001 || #[Appartement 1003][The Cube][Appuis]# == 5003 || #[Appartement 1003][The Cube][Appuis]# == 5004 || #[Appartement 1003][The Cube][Appuis]# == 5006 || #[Appartement 1003][The Cube][Appuis]# == 6002 || #[Appartement 1003][The Cube][Appuis]# == 6003 || #[Appartement 1003][The Cube][Appuis]# == 6004 || #[Appartement 1003][The Cube][Appuis]# == 6005
Est-ce qu’il existe une façon plus courte d’écrire la chose?
Genre:
#[Appartement 1003][The Cube][Appuis]# IN (1002,1003,1004,etc)
(Ici c’est pour détecter la rotation du cube Xiaomi)
Bonne journée
Vive Jeedom
1 « J'aime »
Je ne sais si le « matches » fonctionne pour le numérique
Si oui, ça simplifierait grandement l’écriture.
Tu pourrais faire ce que tu as écrit avec le « IN » en le remplaçant pas "matches* et séparer les valeurs par des /
bonjour via la fonction code des scénarios ? (language natif de programmation php)
J’ai pensé aux expressions régulières mais j’ai l’impression que ça fait les prendre à l’envers
tu mes en variable php l’exec
1003 == id 56;
1004== id 3;
cmd == Appartement 1003][The Cube][Appuis]# récup valeur
action valeur (qui est la variable php)
tu n’as plus d’evaluation.
j’essaierai un truc comme ça.« genre variable dynamiques »
https://www.php.net/manual/fr/language.variables.variable.php#116632
HS
si tu veux savoir en Xémé le temps dans ton scenario code
commence et fini par
$d = date('d-m-Y H:i:s'.substr((string)microtime(), 1, 8).' e');
$scenario->setLog($d);
exemple poussé 30 lignes de code donnent
[2020-10-30 21:38:02][SCENARIO] 30-10-2020 21:38:02.8177510 Europe/Brussels
[2020-10-30 21:38:02][SCENARIO] sonde : [Salle a manger] température : [19.9] consigne : [20] temp_difftime : [47]
[2020-10-30 21:38:02][SCENARIO] sonde : [Cuisine] température : [20.3] consigne : [20] temp_difftime : [1451]
[2020-10-30 21:38:02][SCENARIO] sonde : [Chambre Ami] température : [15.8] consigne : [12] temp_difftime : [1531]
[2020-10-30 21:38:02][SCENARIO] chaudiere : 0
[2020-10-30 21:38:02][SCENARIO] 30-10-2020 21:38:02.9792180 Europe/Brussels
Mips
Octobre 31, 2020, 5:32
6
Tu peux réduire le nombre de test en faisant >= 1002 et <=1005 et aussi de suite pour les autre range (2000,…) avec chaque range entre () séparé par ou bien sûr.
Bonjour,
A tester :
(#[Appartement 1003][The Cube][Appuis]# in ("1002","1003","1004"])
Cela fonctionne chez moi.
Cela fonctionne aussi sous cette forme :
#[Appartement 1003][The Cube][Appuis]# in ['1002', '1003']