jjacques68 Posté(e) le 24 avril 2020 Signaler Posté(e) le 24 avril 2020 (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é le 24 avril 2020 par jjacques68
jang Posté(e) le 24 avril 2020 Signaler Posté(e) le 24 avril 2020 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 ...
jjacques68 Posté(e) le 24 avril 2020 Auteur Signaler Posté(e) le 24 avril 2020 (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é le 24 avril 2020 par jjacques68
mprinfo Posté(e) le 24 avril 2020 Signaler Posté(e) le 24 avril 2020 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
jjacques68 Posté(e) le 24 avril 2020 Auteur Signaler Posté(e) le 24 avril 2020 dans laquelle tu vas lire la valeur des device ? pas bête, mais si y a beaucoup de device ! ça va prendre trop de temps et de ressources...
Krikroff Posté(e) le 25 avril 2020 Signaler Posté(e) le 25 avril 2020 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...
jjacques68 Posté(e) le 26 avril 2020 Auteur Signaler Posté(e) le 26 avril 2020 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...
pepite Posté(e) le 27 avril 2020 Signaler Posté(e) le 27 avril 2020 Hop hop.interessant cela...sinon pas de GEA sur HC3 ...Envoyé de mon BND-L21 en utilisant Tapatalk 2
jjacques68 Posté(e) le 29 avril 2020 Auteur Signaler Posté(e) le 29 avril 2020 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 ?
Krikroff Posté(e) le 29 avril 2020 Signaler Posté(e) le 29 avril 2020 Tu saurais reproduire le problème ?Envoyé de mon iPhone en utilisant Tapatalk
jjacques68 Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 (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é le 30 avril 2020 par jjacques68
Krikroff Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 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
jjacques68 Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 suis d'accord, sur la HC2, c'était 10, ce qui est largement suffisent... je pense ...
jjacques68 Posté(e) le 16 mai 2020 Auteur Signaler Posté(e) le 16 mai 2020 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 ] } 1
mprinfo Posté(e) le 16 mai 2020 Signaler Posté(e) le 16 mai 2020 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
Messages recommandés