Aller au contenu

Messages recommandés

Posté(e) (modifié)

hello !

on en a déjà parlé, il me semble.

 

sur le HC3 il n'y a plus la notion d'instance de scène.

On peut grâce aux options de la scène, définir si la prochaine exécution annule et remplace la précédente, ou pas.

EDIT : dans ce dernier cas, la prochaine exécution sera tout simplement ignorée.

 

je rencontre certain cas bien précis où j'aurai bien aimé avoir la possibilité d'avoir plusieurs instances simultanément...

n'y a - t - il pas un moyen de pouvoir le faire ?

ou peut être d'une autre façon ?

Une autre approche ?

 

bien à vous !

Modifié par jjacques68
Posté(e)
il y a 4 minutes, jjacques68 a dit :

je rencontre certain cas bien précis où j'aurai bien aimé avoir la possibilité d'avoir plusieurs instances simultanément...

Ça dépend. Vous devez décrire ces cas très spécifiques ...

Posté(e) (modifié)

et bien par exemple, j'ai une scène qui est déclenchée lors du passage à TRUE de tous mes FGMS;(j'ai tous les FGMS dans les conditions)

 

Si par exemple 2 FGMS passent à TRUE "simultanément", selon l'option de la scène  :

 

- soit la première instance n'aura pas le temps de se terminer, et la deuxième instance se déroulera correctement.

- soit la première instance se termine, mais la deuxième ne sera pas exécutée

Modifié par jjacques68
Posté(e)

Une solution basic mais pas vraiment top c'est de faire une boucle infinie mais cela consomme de la ressource

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

Ton exemple est intéressant,

 

Il y a des solutions: multiplication des scènes, lecture de tous les devices (de préférence avec polling et pas de boucle sans fin, mais l'idée est la.), technique du refreshState, ... Elles font toutes le job mais aucunes acceptables pour moi (spof)

 

Ou comme pour sceneId attendre que fibaro réintègre cela ;), il y a des échanges sur le sujet...

 

Posté(e)

bon ok j'attends...

 

J'ai pas envie de multiplier les scènes !

je l'ai fait pour les PIR et l'éclairage, j'avais une scène pour tous les PIR qui le gérait l'éclairage.

ça marche du tonnerre, sauf que si par mal chance 2 personnes passent devant un PIR, y en aura un qui aura pas de lumière :) 

 

du coup j'ai séparée les scènes triggées par le TRUE / FALSE au lieu du "anyValue" d'origine, mais ça a rien changé... pour l'exemple que je viens de citer.

sauf que si une lumière doit s'allumer en même qu'une autre doit s'éteindre, là ça marche maintenant...

 

 

 

Posté(e)

dans le même sujet,je remarque, 

  • lorsque certaines scènes sont triggées
  • alors qu'une instance est déjà en cours
  • ET que l'option "Allow to restart a running scene" est sur YES,

qu'il y a de temps en temps des erreurs qui apparaissent dans les log.

Mais pas de précisions !

j'ai juste "error" avec le numéro de la scène et rien d'autres !

 

ça parle a qqun ?

 

Posté(e)

Tu saurais reproduire le problème ?


Envoyé de mon iPhone en utilisant Tapatalk

Posté(e) (modifié)

j'en avais parlé dans un autre sujet, le seul moyen rapide que j'avais trouvé pour le reproduire c'était avec ça

print("start")
fibaro.sleep(10000)
print("end")

et de relancer la scène avant la fin des 10 secondes.

ça fera le même effet !

 

Mais dans les scènes où ça arrive, je n'ai pas de tempo... leurs seules particularités, sont des éventuelles appels à l'API...

 

Elles sont très rapide (une fraction de secondes) mais si y a plusieurs déclenchement ("simultanés")... ça bug.

Je m'en rend compte, vu que je stocke en base de données, l'historique du debug ET le status des device.

Je me rends compte que plusieurs device trigger de ces scènes ont changé de status (valeur) au même moment (timecode) où l'erreur apparaît.

La scène est donc être relancée pour chaque device. (option YES)

Le problème disparaît si je mets l'option sur OFF.

 

Mais ça tourne en rond :) , sur OFF, je perds potentiellement des instances de scènes, sur ON ça bug

(bon dans tous les cas je perds de toutes façon des instances)

 

s'ils pouvaient remettre les multi instance, ça réglerait tous les problèmes...

 

Modifié par jjacques68
Posté(e)

Je comprends mieux en effet... je pense qu’ils n’ont pas implémenté de mechanisms d’annulation de taches usuelles de le monde asynchrone

Le problème avec le multi instance d’une scène c’est qu’il y aura toujours une limite...


Envoyé de mon iPhone en utilisant Tapatalk

  • 3 semaines après...
Posté(e)

je relance le sujet, je viens de me rendre compte que dans l'API de scènes, il y a une propriété "maxRunningInstances" qui visiblement par défaut est à 2.

 

J'ai réussi à la mettre à plus, ici 10, mais je ne constate aucun changement de comportement...

 

bien dommage ça !

{
  "id": 6545,
  "name": "__essai",
  "type": "lua",
  "mode": "automatic",
  "maxRunningInstances": 10,
  "icon": "scene_lua",
  "hidden": false,
  "protectedByPin": false,
  "stopOnAlarm": false,
  "restart": false,
  "enabled": true,
  "content": "{\"conditions\":\"{}\",\"actions\":\"fibaro.warning(\\\"essai\\\",\\\"start\\\")\\nfibaro.setTimeout(10*1000, function() fibaro.warning(\\\"essai\\\",\\\"end\\\") end)\"}",
  "created": 1589226657,
  "updated": 1589610840,
  "categories": [
    1
  ]
}

 

  • Like 1
Posté(e)
suis d'accord, sur la HC2, c'était 10, ce qui est largement suffisent... je pense ...
À la belle époque c'était illimité mais ça n'a pas duré longtemps

Envoyé de mon BLA-L29 en utilisant Tapatalk

×
×
  • Créer...