Aller au contenu

Messages recommandés

Posté(e)

@MAM78

Je n'ai pas encore testé, mais juste en lisant, je me dis que ceci est redondant puisque déjà prévu dans GEA. 

L'intérêt des "#.....#" est justement de ne pas avoir à les mettre dans les conditions, donc ceci pour moi :

 

GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", "fr-FR", "40"}, "Annonce de la météo")

 

Doit s'utiliser soit comme ceci avec ce qui est déjà prévu dans GEA

GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #value[1]# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #value[1]# #tempsext# degrer et le temps est #value[2]#", "fr-FR", "40"}, "Annonce de la météo")

Soit comme ceci avec le #tempsext# si @Steven accepte de le rajouter dans le coeur de GEA, c'est une bonne idée, pourquoi pas. 

GEA.add ({"WeatherLocal!",""}, 0, "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[1]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[1]#", "fr-FR", "40"}, "Annonce de la météo")

 

Pour SONOSTTS, j'aurais fait cela pour éviter de mettre le volume si pas besoin et la langue.

 

sonostts = {name = "Sonos TTS",
                    action = function(vd_id, button_id, message, volume)
                      local message = GEA.getMessage(message)
                      if GEA.language == "fr" then langue = "fr-FR" else langue = "en-US" end
                      if (not volume) then volume = 30 end
                      local _f = fibaro
                      local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
                      _x:set(tostring(vd_id), { tts = {message=message, duration='auto', language=langue, volume=volume} })
                      _f:call(vd_id, "pressButton", button_id)
                    end
                }
 

@Sakkhho

essaie avec Value- ;-)

Posté(e)
il y a 8 minutes, kioneoranga a dit :

c'est moins réactif.

tu parles des déclenchements instantanés ? 

 

@Sakkhho ta ligne est ok pourtant. tu as quelquechose dans le début ? "Validation, démarrage, action" ?

Posté(e) (modifié)
il y a 5 minutes, pepite a dit :

tu parles des déclenchements instantanés ? 

 

@Sakkhho ta ligne est ok pourtant. tu as quelquechose dans le début ? "Validation, démarrage, action" ?

Oui je parle "des déclenchements instantanés" par exemple

La même ligne en V5 sur l'ouverture du garage lance un MP3 sur une enceinte SONOS.

La lecture du MP3 est quasi instantanée

Sous V6, de temps en temps c'est immédiat et de temps en temps il faut plusieurs secondes (10 à 15s) après l'ouverture ou fermeture.

Je n'explique pas.

 

===============================

Info complémentaire

J'ai conservé 2 instances de GEA tout comme en V5

Pour traiter dans une que les alertes génériques à l'ensemble de la maison et les noeuds mort

 

La seconde instance, est dédiée précisément au traitement de chaque événements par pieces.

 

Au debut de la migration en V6, j'avais essayé de tout regrouper dans une seule instance, à la lecture des optimisations de code, mais j'ai vite fait marche arrière.

J'avais vraiment de gros ralentissement lors d’événement instantané.

Modifié par kioneoranga
Posté(e)
il y a 1 minute, kioneoranga a dit :

Oui je parle "des déclenchements instantanés" par exemple

la je ne peux rien faire ;-), voir avec @Steven car la c'est le coeur de GEA ;-)

Ne pas oublier que La V6 est plus complète que la V5 avec de nombreuses nouveautés, le temps de débogguer et d'optimiser au maximum

Posté(e)
à l’instant, pepite a dit :

la je ne peux rien faire ;-), voir avec @Steven car la c'est le coeur de GEA ;-)

Ne pas oublier que La V6 est plus complète que la V5 avec de nombreuses nouveautés, le temps de débogguer et d'optimiser au maximum

J'ai bien vu depuis 1 mois maintenant que cette nouvelle version est plus complète avec l'ensemble de ses tests et d'optimisation au chargement du code.

Je ne fais que remonter un constat au quotidien.

J'ai appris avec et ma femme ne cri pas trop donc ça va   :-)

 

  • Like 1
Posté(e) (modifié)

moi l'appuie sur la sonnette est bref, et j'ai l'impression que GEA 6 ne réagit pas assez vite, donc il le laisse passer. il ne le traite pas du tout.

GEA 5.4 le voit sans problème.

donc c'est pas tant un problème de gestion des instantanées car les autres fonctionnes sans problèmes mais plutôt l'interception des actions rapides de la HC2 ?

 

comme je suis sur un FGBS en modifiant le paramètre 1 et en mettant 1 ou 2s ca devrait le prendre

je vais tenter plus tard, j'ai remis GEA 5.40 là

Modifié par Sakkhho
Posté(e)
Il y a 6 heures, Kristiano a dit :

Is the Weatherlocal bug mentioned above also solved in this version?

Yes it is solved also

  • Like 1
Posté(e)

Les déclenchements instantanés sont probablement moins réactif qu'avec la 5.40 pour plusieurs raisons. La première : GEA 6 a été réécrit dans quasiment sa totalité avec beaucoup plus de possibilité et de contrôle. La 2ème et la plus importante est sa jeunesse. GEA 5.4 est l'évolution de plusieurs années alors que la 6 n'a qu'un mois. 

 

Ma petite configuration ne me permet pas de voir de différence, mais à la lecture de mon propre code, je peux déjà voir des chemins d'amélioration que je mettrais en place dès que possible. Par contre ma priorité est la correction de bugs. Je préfère un système plus lent qui fonctionne bien qu'un système rapide qui ne fait pas son travail.

 

Mais promis, je vais y travailler dès que j'aurais plus de temps.

  • Like 1
Posté(e)

Pour info et au vu des soucis de @kioneoranga j'ai l'impression qu'il y a un bug dans GEA, lorsque une action immédiate tente de stopper une action automatique. Je ne trouve pas encore la raison mais si vous avez le même soucis contacter moi. Dans son cas, elle stoppe une autre action qui n'est pas la bonne.

 

La bonne nouvelle pour vous c'est que le bug se trouve probablement dans la fonction GEA.add et que c'est dans cette même fonction que l'optimisation des actions immédiates doit être optimisée .. Donc Steven ... au boulot dès ce soir si j'y arrive.

  • Like 1
Posté(e)

Salutation tout le monde et bonne année a tous ;)

 

J'ai une question HS, mais je ne sais pas trop où la poser et ça concerne la prog donc je me dis que vous pourrez peut-être m'aider ;)

 

Voilà je cherche a créée une scène qui ne ferra qu'une chose c'est couper ou allumer une autre scène ( je passe déjà par GEA pour 1 truc similaire, mais ça ne regain pas comme je veux comme s’il ne prenait pas en compte le déclencheur :( ) je voudrais donc simplement séparer certaines choses pour quand les inviter vienne je coupe la gestion automatique et leur laisse la main avec la télécommande qui s'occuperait de couper ou allumer la gestion automatique des lumières suivant leur besoin .

 

J'ai testé de recopier mon CODE GEA, mais bien sûr ça ne veux pas LoL

 

Merci à vous ;)

Posté(e) (modifié)
Il y a 4 heures, pepite a dit :

Doit s'utiliser soit comme ceci avec ce qui est déjà prévu dans GEA


GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #value[1]# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #value[1]# #tempsext# degrer et le temps est #value[2]#", "fr-FR", "40"}, "Annonce de la météo")

 

Hello @pepite,

 

Le problème avec ta proposition ci-dessus c'est que la valeur restituée est en décimales et donc pas très agréable à entendre.

 

L'idéal serait de pourvoir intégrer des fonctions de mise en forme des valeurs comme par exemple une fonction arrondi : string.format("%.0f", #value[1]#) )

 

Je n'ai pas trouvé comment intégrer cela dans GEA lorsqu'il s'agit de l'appliquer sur une valeur de substitution de type #value[1]#, #time#, ...

 

Modifié par MAM78
Posté(e)
Il y a 4 heures, pepite a dit :

GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", "fr-FR", "40"}, "Annonce de la météo")

 

@pepite

 

Concernant le fait que je renseigné {"Weather!", "Temperature" ,""} dans la condition c'était volontaire puisque pour un message push, la précision des décimales est intéressante alors que pour le message TTS ce n'est pas pertinent.

Posté(e)
Il y a 4 heures, pepite a dit :

Pour SONOSTTS, j'aurais fait cela pour éviter de mettre le volume si pas besoin et la langue.

 


sonostts = {name = "Sonos TTS",
                    action = function(vd_id, button_id, message, volume)
                      local message = GEA.getMessage(message)
                      if GEA.language == "fr" then langue = "fr-FR" else langue = "en-US" end
                      if (not volume) then volume = 30 end
                      local _f = fibaro
                      local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
                      _x:set(tostring(vd_id), { tts = {message=message, duration='auto', language=langue, volume=volume} })
                      _f:call(vd_id, "pressButton", button_id)
                    end
                }

Concernant ta proposition, ci-dessus elle me convient bien. Du coup, cela pourrait être également fait pour la variable volume dans le cas d'un message MP3.

Posté(e)
Il y a 4 heures, Sakkhho a dit :

moi l'appuie sur la sonnette est bref, et j'ai l'impression que GEA 6 ne réagit pas assez vite, donc il le laisse passer. il ne le traite pas du tout.

GEA 5.4 le voit sans problème.

donc c'est pas tant un problème de gestion des instantanées car les autres fonctionnes sans problèmes mais plutôt l'interception des actions rapides de la HC2 ?

 

comme je suis sur un FGBS en modifiant le paramètre 1 et en mettant 1 ou 2s ca devrait le prendre

je vais tenter plus tard, j'ai remis GEA 5.40 là

 

bon je confirme que c'était bien un passage de FGBS trop rapide non intercepté par GEA; du coup j'ai rajouté un temps sur l'entrée et ca marche

 

 

par contre je comprends tjs pas pourquoi cette ligne ne passe pas en 6.03

 

    GEA.add(id["ECL_CAVE"], 30, "", {{"Inverse"},{"turnOff",id["ECL_BUANDERIE"]}}) -- Eclairaige Buanderie éteint si on eteint Eclairage Cave  

 

Posté(e)

Si c'est bien déclaré dans l'entête, GEA capture tout ce qu'il reçoit. C'est juste le traitement qui est plus long qu'en 5.40 mais il ne peux louper aucun événement reçu.

Hormis si tu dépasse le quota d'instance autorisée .. dans les paramètres du scénario.

 

Pour la cave .. étrange .. question bête mais bon, faut bien la posé .. Tu es sûr des ID ?

Posté(e)

Ben je t assure qu il Loupait le passage du fgbs à ON
(Je le vois sur mon téléphone mais la sonette ne sonne pas)
En mettant une tempo sur l entrée ça sonne dans 100 % des cas.

Pour la cave les IDs sont bons car c est la même ligne en 5.40

Posté(e)

Tu as peut-être le même soucis que @kioneoranga, soit un StopTask qui te stop la mauvaise tache. Je sais que c'est compliqué mais dans le debug, tu n'as pas un "Stoppé" en trop.

  • Like 1
Posté(e) (modifié)

bon ca se confirme

 

je me garde que cette ligne (la dernière plus bas) et mets en commentaire toutes les autres, la ligne passe bien

 

 -- Eclairage Cave
    local Ecl_Cave1 = GEA.add({id["MOV_CAVE"], {"Value+", id["ECL_CAVE"], 0}}, 2*60,"Lumière OFF cave", {{"Inverse"}, {"turnOff", id["ECL_CAVE"]}, {"Repeat"}})
    local Ecl_Cave2 = GEA.add({id["MOV_CAVE"], {"Value+", id["ECL_BUANDERIE"], 0}}, 2*60,"Lumière OFF buanderie", {{"Inverse"}, {"turnOff", id["ECL_BUANDERIE"]}, {"Repeat"}})
    GEA.add(id["OUV_SDB_BAS"], 60,"", {"StopTask", {Ecl_Cave1, Ecl_Cave2}})
    GEA.add(id["OUV_SDB_BAS"], 60,"", {{"Inverse"},{"RestartTask", {Ecl_Cave1, Ecl_Cave2}}})
    GEA.add(id["ECL_CAVE"], 30, "", {{"Inverse"},{"turnOff",id["ECL_BUANDERIE"]}}) -- Eclairaige Buanderie éteint si on eteint Eclairage Cave  
 -- 

 

Modifié par Sakkhho
Posté(e)

j'ai des problèmes d'ouverture et fermeture des volets

ces lignes ne se sont pas exécutées en GEA 6

 

    GEA.add({Present,id["MOV_SALON"], {"Value-", id["VOLETS_CUISINE"], 90},{"Time", "07:00", "09:00"}}, 30, "#time# - Ouverture Volets", {{"Open",{id["VOLETS_SALON"],id["VOLETS_CUISINE"]},100},{"VirtualDevice", id["SURVEILLANCE_STATION"], 8},{"VirtualDevice", id["SURVEILLANCE_STATION"], 12}})

et celle ci

    GEA.add({{"Power-", id["PRISE_TELE"], 20},{"Global", "Tele", "On"},{"Time", "21:00", "23:00"}}, -1, "",{{"Value", id["ECL_CHAMBRE_PARENTS"], 35},{"Global", "Tele", "Off"},{"VirtualDevice", id["MODE_MAISON"], 1},{"Close",{id["VOLETS_SALON"],id["VOLETS_CUISINE"]},100},{"VirtualDevice", id["SURVEILLANCE_STATION"], 9},{"VirtualDevice", id["SURVEILLANCE_STATION"], 13},{"VirtualDevice", id["SURVEILLANCE_STATION"], 3}})

 

je suis sur que la ligne passe notamment la 2eme car la partie surveillance station  a été exécutée hier soir

 

donc j'en conclu que le {"Close",{id["VOLETS_SALON"],id["VOLETS_CUISINE"]},100} ne fonctionne pas

- je dois pouvoir le faire en {"Close",{id["VOLETS_SALON"],id["VOLETS_CUISINE"]}} mais c'est quand meme bizarre non?

 

 

une parenthèse en trop dans la syntaxe d'ailleurs

		GEA.add( {CONDITIONS}, 30, "", {"Open", {35, 36}}, 20} )		- Ouvre LES volets ID 35 ET 36 à 20 % \\Open blind 35 and 36 to 20%

 

bon dimanche

Posté(e)

Bonjour,

Non je dirais normal, le code pour les volets est different de la 5.40. mais tt de mm bizarre. Toujours est il, mais a verifier dans le fichier syntaxe, pour une ouverture totale îl ne devrait pas y avoir le 100 :-)
A tester :-) bien sur :-)

Merci pour l erreur d accolades :-)

Envoyé de mon Nexus 5X en utilisant Tapatalk

×
×
  • Créer...