# Fonctions et scripts

**URL:** <https://community.homey.app/t/fonctions-et-scripts/83456>\
**Category:** Questions & Aide\
**Created:** [June 28, 2023, 3:40pm UTC](https://community.homey.app/t/fonctions-et-scripts/83456 "2023-06-28T15:40:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![GD91](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gd91/32/78099_2.png) [@GD91](https://community.homey.app/u/GD91)\
**Post date:** [June 28, 2023, 3:40pm UTC](https://community.homey.app/t/fonctions-et-scripts/83456/1 "2023-06-28T15:40:28Z")

</div>

Bonjour,

Je cherche à comprendre si on peut faire des scripts qui se comporteraient comme des fonctions, ou des sous programmes, avec passage d’arguments.  
Lesquels arguments seraient alimentés par des valeurs issues de capteurs (par exemple des températures).  
Donc, à priori à partir de flows puisqu’il semblerait qu’on n’aie pas accès aux données des capteurs à l’intérieur des scripts.

Merci pour votre aide.

Cordialement

---

<div class="post-metadata">

**Author:** ![sebyldino](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sebyldino/32/20067_2.png) [@sebyldino](https://community.homey.app/u/sebyldino)\
**Post date:** [June 28, 2023, 5:53pm UTC](https://community.homey.app/t/fonctions-et-scripts/83456/2 "2023-06-28T17:53:42Z")

</div>

Si tu peux récupérer les valeurs de capteurs dans un script.  
Et tu peux aussi lancer un script avec un argument.

---

<div class="post-metadata">

**Author:** ![GD91](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gd91/32/78099_2.png) [@GD91](https://community.homey.app/u/GD91)\
**Post date:** [June 28, 2023, 9:26pm UTC](https://community.homey.app/t/fonctions-et-scripts/83456/3 "2023-06-28T21:26:08Z")

</div>

Mais, comment ?

La doc est assez pauvre et j’avais lu le contraire !

Si tu peux m’éclairer, j’en serais enchanté !

Cordialement

---

<div class="post-metadata">

**Author:** ![sebyldino](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sebyldino/32/20067_2.png) [@sebyldino](https://community.homey.app/u/sebyldino)\
**Post date:** [June 29, 2023, 5:13am UTC](https://community.homey.app/t/fonctions-et-scripts/83456/4 "2023-06-29T05:13:27Z")

</div>

Tu peux récupérer la valeur d’un appareil comme ceci par exemple:  
Il s’agit ici de ma sonde Aqara du séjour.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/8/e8d2aae4717450a1a465f6766be84d34ba5f8538.png)

Tu peux créer un tag de cette valeur en ajoutant la ligne

```auto
await tag('valeurSondeSéjour', Number(actualTemperature)); 

```

Et l’utiliser dans un flow:  
 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/b/7bf73c4d62491a489a3ef1631fc7f4f7e1a6a599.png)

Tu peux envoyer un argument dans un script comme ceci. (Température est le tag de ma sonde de séjour)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/3/f/3f32a3c57d03dc71526189faeb1c7eb195a5738f.png)

Avec par exemple ici un script tout simple qui renvoie vrai ou faux si la température du séjour est supérieur ou égale à 30. Étant donné que j’ai 22.6°C dans le séjour la carte renvoie bien “false”.

```auto
let myArgs = JSON.parse(args[0]);

if (myArgs >= 30){
  return true;
}
else return false;

```

---

<div class="post-metadata">

**Author:** ![GD91](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gd91/32/78099_2.png) [@GD91](https://community.homey.app/u/GD91)\
**Post date:** [June 29, 2023, 10:20am UTC](https://community.homey.app/t/fonctions-et-scripts/83456/5 "2023-06-29T10:20:01Z")

</div>

Salut,

Merci beaucoup …

J’y vois beaucoup plus clair maintenant !

Je découvre un peu la notion de tag … c’est quoi, en fait ? Une espèce de pointeur ?

Cordialement

---

<div class="post-metadata">

**Author:** ![sebyldino](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sebyldino/32/20067_2.png) [@sebyldino](https://community.homey.app/u/sebyldino)\
**Post date:** [June 29, 2023, 2:35pm UTC](https://community.homey.app/t/fonctions-et-scripts/83456/6 "2023-06-29T14:35:04Z")

</div>

Un tag est une variable de type Boolean, String ou Number.

Pour le capteur de température que j’ai cité ci dessus la température est un tag de type Number avec la variable qu’est la température.

Pour la météo tu trouvera des tags type String pour la description météo. “Ciel dégagé” par exemple.

Pour un capteur d’ouverture tu as un tag de type Boolean qui ne sera que “Vrai” ou “Faux” suivant l’état de la porte par exemple.

Tu peux avoir plusieurs tag et de type différent pour chaque appareil. Pour le capteur d’ouverture tu as le Boolean pour ouvert/fermé, mais aussi un tag Number avec le pourcentage de batterie du capteur.
