Page 1 sur 1

Smart script question de neuneu ...

Posté : 22 oct. 2015, 14:29
par rimram31
Une question bête a laquelle je ne trouve d'explication détaillée dans la doc: quand/comment sont appelés les "smart" scripts ????

Sur le wiki, on lit: "Device scripts will be run at every device change and time scripts will be run every minute.", ça veut dire que tous les scripts script_time_xxx et tous les scripts script_device_yyy seront appelés (resp) chaque minute, a chaque modification d'un etat ???

Si oui, dès qu'on fait un truc un peu compliqué, il faut vite y ajouter u peu plus de logique du genre "toute les 5/10/15mn", pour le device toto, tutu, titi ...

Re: Smart script question de neuneu ...

Posté : 22 oct. 2015, 14:34
par jackslayter
le script_time sera exécuté toutes les minutes
le script_device sera exécuté chaque fois que le device sera changé
le script_variable sera exécuté chaque fois que la variable sera changée

Re: Smart script question de neuneu ...

Posté : 22 oct. 2015, 15:23
par rimram31
jackslayter a écrit :le script_time sera exécuté toutes les minutes
le script_device sera exécuté chaque fois que le device sera changé
le script_variable sera exécuté chaque fois que la variable sera changée
Désolé d'insister mais:

le script_time, si j'en écrit 10 script_time_toto, script_time_tutu ... les 10 sont appelés a priori chaque minute.
le script_device, si j'en écrit 10 script_device_xz, script_device_abcd ... TOUS ces scripts seront appelés chaque fois qu'un seul device change ? (independamment de ce qui suit script_device ?)

Même question pour les scripts variables (merci, je ne savais pas que ce type de script existait)

Ce que je veux dire c'est qu'au dela du prefixe script_device/time/variable, dz ne fait aucun autre "calcul", dit autrement si j'ai deux switchs nommés switch_1 et switch_2, le script script_device_switch_1.lua sera appelé que ce soit switch_1 ou switch_2 qui change d'etat (ou tout autre device d'ailleurs ...).

Re: Smart script question de neuneu ...

Posté : 22 oct. 2015, 17:18
par vil1driver
Exactement,

Le nom du script (switch1 par ex) n'a aucune importance

Les scripts_time sont TOUS exécutés chaque minute
Idem pour les script_device, ils sont TOUS exécustés dès qu'un device quelconque est mis à jour.
À toi au tout début du script de définir si tu veux agir suivant la mise à jour de tel ou tel device.

If (deviceschanged['switch1']) then
....

Re: Smart script question de neuneu ...

Posté : 22 oct. 2015, 18:33
par Cissou
tu parles de calcul, mais honnêtement,

même une 100aine de script ça va pas écrouler le Pi, quelques calculs, des changements d'états,

les script ne vont certainement pas calculer par la méthode des éléments finis la déformation de la dernière voiture en choc contre un mur

Re: Smart script question de neuneu ...

Posté : 22 oct. 2015, 18:43
par rimram31
Merci a vous, plus clair dans ma tête, ma confusion venait de l'usage qui en est fait "usuellement" ou est parfois inclut le nom du device/fonction dans le nom du script. Logique mais perturbant pour moi.

@Cissou la question n'est pas là, elle est de savoir quand/pkoi/comment les scripts sont appelés afin de ne pas se louper sur la logique qu'on met derrière. Et quoiqu'il en soit, je suis sur pi et quand on fait de l'embarqué, on doit avoir le réflexe de s'économiser.