Aller au contenu

Messages recommandés

Posté(e)

Bonjour la Team,

 

Je débute sur la HC3 et surtout en LUA, c'est pourquoi j'ai besoin de vos conseils, de vos lumières ;)

 

Je viens de créer un seul script LUA pour gérer les lumières depuis les interrupteurs Walli pour l'ensemble de mes pièces.

Pour cela j'ai ajouté dans la section "Déclencheurs" l'ensemble des interrupteurs, puis dans la section "Action", j'ai créé un script qui actionne les lumières de la pièce identique à celle du trigger déclencheur (interrupteur).

 

 

Question 1 :

Lorsque le script est appelé par plusieurs interrupteurs, les précédents s'arrêtent. Y a t il un moyen de pouvoir exécuter plusieurs fois le script ?

J'ai testé l'option "Autoriser le redémarrage du scénario en cours d'exécution" et aucun changement.

 

Question 2 :

Est-il possible de faire un "include" dans les scripts afin de ne pas répéter un code ?

 

Question 3 :

Est-il possible de faire des tableaux/array à plusieurs dimensions ?

 

Question 4 :

Est-il possible de connaitre le dernier trigger appelé dans un script ? pas forcément celui qui vient d'actionner le script ...

 

En espérant avoir été clair dans mes explications car dans ma tête ca semble simple, mais à l'écrit c'est une autre histoire :)

 

Merci par avance pour votre aide,

Candy

Posté(e)

Q1 :

Sur HC3, contrairement à la HC2, les scènes sont limitées à 1 instance.

La case à cocher "Autoriser le redémarrage du scénario en cours d'exécution" fait ce qu'elle dit. Elle redémarrer la scène. Sous entendu si une instance précédente est encore en cours d'exécution, elle est arrêtée de force.

 

Q2 :

Seulement dans les QuickApps (gestion des fichiers)

 

Q3 :

Oui, c'est du LUA standard

 

Q4 :

Tu veux dire le trigger de l'instance précédente ? Dans ce cas non, car en vertu de Q1, une scène tuée... est morte... donc on efface tout et on recommence

 

 

Sur HC3, contrairement à la HC2, les scènes sont réduites à des usages assez simples et basiques.

Un trigger => une action.

Faut pas chercher à faire beaucoup plus.

 

C'est pas pour rien que GEA qui était une scène sur HC2, est devenu un QuickApp sur HC3, car Fibaro a complètement inversé les possibilités de l'un par rapport à l'autre. Changement de philosophie :

- Scène = programme simple

- QuickApp = programme plus ou moins complexe

 

Souci, les QuickApps ne permettent pas les triggers.

Il faut faire comme GEA, utiliser l'API refreshStates... pas simple... Mais j'ai partagé un bout de code qui fonctionne :

 

  • Thanks 1
  • 2 ans après...
Posté(e)

Pour ne pas créer un nouveau post je pose ma question ici : c'est pour hc3 et Lua comme prévu dans le titre

 

Quelle différence entre  fibaro.setTimeout() et setTimeout() à part les paramètres fonction et time inversés. 

On en a peut être parlé mais je ne retrouve pas.

 

On trouve les 2 utilisations dans les Qa et les exemples.

Mais si les paramètres sont inversés il y a peut être une vrai raison. 

Posté(e)
Il y a 11 heures, henri-allauch a dit :

To avoid creating a new post I ask my question here: it is for hc3 and Lua as expected in the title

 

What is the difference between  fibaro.setTimeout() and setTimeout() apart from the function and time parameters being reversed. 

We may have talked about it but I can't find it.

 

We find the 2 uses in the Qa and the examples.

But if the settings are reversed there may be a real reason. 

No there is no reason. Except maybe a wish to bring all functionality in under fibaro.* - but they can't remove setTimeout due to old QAs/Scenes.

function fibaro.setTimeout(time,fun) return setTimeout(fun,time) end

Like the rebranding of fibaro.* to hub.* - but also here, to be backward compatible with QAs/Scenes they can never remove fibaro.*...

 

Another mystery is that Fibaro maintains 2 implementations for the fibaro.* functions.

One for Scenes and one for QAs - and they are not always in sync...

My thinking has been that it is 2 different consultant companies that do the Scene engine vs the QA framework... :-) 

  • Like 1
  • Thanks 2
×
×
  • Créer...