Domodial Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 il y a 19 minutes, Steven a dit : C'est que tu n'as pas de condition sur ton NetAtmo_temp_ext avec -1. J'ai mis volontairement ce message pour éviter les déclenchements inutiles de GEA. Le NotStart fonctionne bien, je l'ai testé celui là. Il va dans les actions, ainsi : GEA.add(....., 30, "", {"NotStart"}) Le NotStart fonctionne VS NotStarted Par contre pour mes lignes quand tu dis -1, les miennes ne ressemble pas à ça, du coup je ne sais pas ce qui ne plait pas à GEA. -- -------------------------------------------------------- -- NOTIFICATIONS METEO NETATMO -- -------------------------------------------------------- --- GEA.add({"Value+", id["NetAtmo_temp_int"],26.10}, 10*60, "Température intérieure à #value#°C...Il faut aérer !", {{"Portable", MobileId["PHONE_BERNARD"]}}) --- GEA.add({"Value-", id["NetAtmo_temp_int"],18.10}, 10*60, "Température intérieure à #value#°C", {{"Portable", MobileId["PHONE_BERNARD"]}}) GEA.add({"Value-", id["NetAtmo_temp_ext"],0.10}, 10*60, "Température extérieure à #value#°C, risque de gel", {{"Time","05:00", "08:00"},{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}}) GEA.add({"Value-", id["NetAtmo_temp_ext"],(-3.90)}, 10*60, "Température extérieure à #value#°C, grand froid", {{"Time","05:00", "08:00"},{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}}) GEA.add({"Value-", id["NetAtmo_pression"],1000}, 30*60, "Pression athmosphérique à #value# Hpa...dépression en approche !", {{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}}) GEA.add({"Value+", id["NetAtmo_co2"],800}, 120*60, "Niveau de CO2 élevé ! : #value# Il faut aérer le salon !", {{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}}) GEA.add({"Value-", id["NetAtmo_humidite_Int"],40}, 30*60, "Niveau d'humidité trop faible ! : #value# ...Il faut humidifier la piece !", {{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}}) GEA.add({"Value+", id["NetAtmo_humidite_Int"],60}, 30*60, "Niveau d'humidité trop haut ! : #value# ...Il faut aérer la piece!", {{"Portable", MobileId["PHONE_BERNARD"]}, {"Portable", MobileId["PHONE_NATHALIE"]}})
Steven Posté(e) le 30 janvier 2018 Auteur Signaler Posté(e) le 30 janvier 2018 Une durée a -1 correspond à un déclenchement immédiat provoqué par le changement d'une valeur d'un module déclaré dans l'entête. Dans l'entête de GEA, tu as du mettre %% properties ... 417 value ... Donc a chaque changement de valeur de ton module Netatmo, ta HC2 va lancer GEA pour traiter ce module. Hors tu n'en a pas besoin car toutes tes lignes concernant ton Netatmo on une durée supérieure à -1. Et les lignes qui ont une durée supérieur à -1 sont automatiquement traitée par une instance de GEA qui tourne en permanence. Donc tu lances, à chaque changement de valeur Netatmo, une instance de GEA qui ne sert à rien. Cela ne dérange absolument pas le fonctionnement mais coûte en mémoire et durée de traitement de ta box pour rien. Il te suffit juste d'enlever le 471 value de l'entête de GEA pour éviter se genre de traitement inutile. Voilà ... j'espère que c'est clair car j'ai parfois du mal a me comprendre moi-même. 2 1
Domodial Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 Ben non au contraire, maintenant j'ai parfaitement compris Merci Steven.
mateli31 Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 @pepite Merci pour tes réponses. J'avais mis une condition sur la température (qui ne servait à rien), car je n'arrivais pas ouvrir ou fermer mes volets en 6.04. J'avais trouvé un post sur ce topic ou il étais noté que le close ou l'open avais besoin de value pour fonctionner. Je prends en compte ta recommendation de mettre une condition sur le statut du volet avant une action - Si je ferme mon volet, il faut je vérifie que mon volet n'est pas déjà fermer donc {"Value!", id["VOLET_SALON"], 0} - Si j'ouvre mon volet, il faut je vérifie que mon volet n'est pas déjà ouvert donc {"Value!", id["VOLET_SALON"], 100} La conséquence de cette condition est que quand j'ouvrai les deux volets en une seule ligne je doit maintenant le faire en deux lignes. Donc avant GEA.add( {{"Time", "20:25", "20:26"},{"Value!", id["TEMPERATURE_LOLA"], 0}}, 30, "GEA as fermé les volets des enfants", {"close", {id["VOLET_LOLA"],id["VOLET_LUCAS"]}}) se transforme en GEA.add( {{"Time", "20:25"},{"Value!", id["FENETRE_LOLA"], 0}} , 30, "GEA as fermé le volets de Lola", {"close", id["VOLET_LOLA"]}) GEA.add( {{"Time", "20:25"},{"Value!", id["FENETRE_LUCAS"], 0}} , 30, "GEA as fermé le volets de Lola", {"close", id["VOLET_LUCAS"]}) Le nombre de ligne ne m'importe peu mais est ce un problème pour GEA d'avoir plusieurs actions à la même heure sur des lignes différentes ? Merci
Steven Posté(e) le 30 janvier 2018 Auteur Signaler Posté(e) le 30 janvier 2018 Je ne suis pas d'accord avec ce genre de chose. Pour moi, cela ne sert à rien de contrôler qu'une lampe soit allumée pour l'éteindre. Ceci pour 2 raisons : La box le fait pour nous ... elle n'envoi pas l'ordre d'extinction sur un module déjà éteint (je met une réserve sur un volet, je ne connais pas) Dans 99% des cas, vérifier avant de faire quelque chose est plus coûteux en temps * * Je m'explique : contrôler qu'un volet est fermé coûte plus de temps que de juste envoyé l'ordre de fermeture. Donc s'il s'agit d'un événement ponctuel, il n'y a aucun intérêt à vérifier sa fermeture ou ouverture. Donc dans ton cas, il n'y a aucun intérêt a vérifier cela. Donc : GEA.add( {"Time", "20:25"}, 30, "GEA a fermé les volets de Lola et Lucas", {"close", {id["VOLET_LOLA"], id["VOLET_LUCAS"]}}) est parfait pour moi. Je m'exprime par directement pour toi, mateli31, mais pour tout le monde, il faut arrêter de faire des contrôles inutiles. Quand je veux allumer une lumière, je ne me pose jamais la question : est-elle éteinte ? Nos yeux le voit et nous agissons en conséquence mais notre but initial n'est pas d'allumer la lumière si elle est éteinte mais juste de l'allumer. Et dans le pire des cas, si la box envoi une demande inutile (allumer une lumière déjà allumée), à 20h25, ton réseau ZWave va envoyé une trame de quelques millièmes de secondes inutile. De mon point de vue, il ne devrait pas y avoir trop d'impact :-) Après cela peux se justifier. Prenons un autre cas : "S'il fait jour et que les enfants allument une lumière, je dois l'éteindre". Dans ce cas, mon désir est d'éteindre une lumière qui s'allume ... donc ... j'ai besoin de connaître son état. Bref, soyons "simple" ... "basique" comme dis une certaine chanson.
Steven Posté(e) le 30 janvier 2018 Auteur Signaler Posté(e) le 30 janvier 2018 il y a 19 minutes, mateli31 a dit : Le nombre de ligne ne m'importe peu mais est ce un problème pour GEA d'avoir plusieurs actions à la même heure sur des lignes différentes ? Merci En version 6.05, tu peux envoyé autant de ligne que tu veux avec la même heure, il n'y a plus aucun impact, elles seront toutes traitées. D'ailleurs le bug sur l'heure date de la version 1.00 de GEA Sauf qu'avant on était obligé de mettre {"Time", début, fin} et on mettais par habitude 1mn de décalage. Il y a aussi que la V.3.x de nos HC2 était beaucoup plus véloce que notre chère v.4.x. 1
pepite Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 il y a 3 minutes, Steven a dit : (je met une réserve sur un volet, je ne connais pas) justement j'ai l'impression que la box ne le fait pas pour les volets et que le moteur du volet réagit tout de même. C'est embetant pour le moteur ;-) Je me pose aussi la question sur les dimmers, je en sais pas si la trame zwave est envoyée ou non. ;-) 1
Steven Posté(e) le 30 janvier 2018 Auteur Signaler Posté(e) le 30 janvier 2018 Moi je m'en fiche, j'ai du "Somfy" ... c'est comme les emmerdeurs, c'est increvable Je plaisante, oui, il faut économiser les moteurs, mais n'est pas un problème de configuration des modules ? 1
pepite Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 On est bien d'accord avec la qualite de Somfy ;-) Peut-etre, je n'en sais pas plus, faudrait que je rejette un gros oeil à la configuration du module.
Steven Posté(e) le 30 janvier 2018 Auteur Signaler Posté(e) le 30 janvier 2018 Fais-toi plaisir , jette un gros oeil. 1
mateli31 Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 Mon commentaire auras au moins eu le mérite de soulever des questions ! Je vais chercher si je peut avoir plus d'informations sur les modules volets roulants. Je vais tout de même rajouter les conditions sur les valeurs des volets, mes moteurs ne sont pas des "Somfi" . 1
Kristiano Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 (modifié) I thought that in the message translation section were you substring eg. #time#, #datefull# etc that there Would be a custom exit to function customtranslation(message) and I could in this function write my own custom code for translations eg #weekday# today I need to enter your could to do my own translations and this requires some work upon upgrades. So I clean custom exit in “preferred” areas would be nice. @pepite @Steven Modifié le 30 janvier 2018 par Kristiano
Sakkhho Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 (modifié) Il y a 11 heures, Steven a dit : J'ai peur d'avoir introduit un bug ... peux-tu me confirmer que tu as bien une instruction du style {"Function", ...} ? Oui. Pour le slider. @Steven voici 1 ligne en exemple GEA.add({"Power-", id["PRISE_TELE"], 20}, 30, "Sonos à 10%", {{"Global", "Tele", "Off"},{"Function", function() fibaro:call(id["SONOS_REMOTE"], "setSlider",15, 10) end }}) -- On repasse le son de la PlayBar à 10% Modifié le 30 janvier 2018 par Sakkhho
Lazer Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 Il y a 6 heures, pepite a dit : justement j'ai l'impression que la box ne le fait pas pour les volets et que le moteur du volet réagit tout de même. C'est embetant pour le moteur ;-) Mon moteur Somfy à butées électroniques ne réagit pas, car il "sait" qu'il est déjà en buée, donc il n'essaie même pas de forcer inutilement. Aucun risque de l'user, la seule chose qu'on use c'est le relai du module FGR, pas méchant. Mes volets Velux sont plus bêtes, ils essayent quand même.... et s'arrêtent au bout de 1 ou 2s. 1
Johhny Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 Il y a 11 heures, Steven a dit : @Johhny Ouch, you are right, this is not possible with GEA 6.x but if possible just remove "TimeOfDay" from the header. (If not used as a trigger for an other line). I will have work on this :-( @Steven Im happly waiting for that feature Take your time. I can live without it for a time. Sadly I cant remove it from the header. Using it for other stuff.
Dragoniacs Posté(e) le 30 janvier 2018 Signaler Posté(e) le 30 janvier 2018 V6.05 installée ! Rdv à 18h15 pour voir si les volets se sont fermés Ça marche !!!!Merci les pro du GEA Envoyé de mon SM-A520F en utilisant Tapatalk 2
pepite Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 @Sakkhho ta ligne aura eu le mérite de detecter un bug, mais en 6.05 tu peux utiliser "Slider" directement sans passer par le "function" maintenant ;-) @kristiano, ok i think i understand what you need. You would like to put your own translation in message like #time# and other.. I will see with @Steven if he is OK for adding this and if this has doesnt consequence on performance. I think it's a good idea if really undersatnd what you want ;-) PS : on s'est croise Steven ;-) gea_6_06.lua
Steven Posté(e) le 31 janvier 2018 Auteur Signaler Posté(e) le 31 janvier 2018 @Sakkhho Pourrais-tu tester ce bug fix s'il te plait. C'est la future version mais pas encore officiel. @Johhny Can you please test this version too (not an official). To ignore an option as trigger, you can now put it between brackets like this : GEA.add ({{"Global", "JohhnyHome", "1"}, {"(Global)", "TimeOfDay", "Night"}}, -1, "", {"VirtualDevice", VD["TTS"], "1"}) So in this case, only the JohhnyHome will trigger this line. @Kristiano You can have your own code anywhere in the message by writting your own function and add it in the message. Here is a simple exemple In config() you can write your own options .. this one will called "mycode" GEA.options.mycode = { getValue=function() return "This is MY code" end } In setEvents() GEA.add(true, 0, "My message : {MyCode}") So {MyCode} will call the GEA.options.mycode.getValue() et replace {MyCode} by the return value The push message will be : "My message : This is MY code" Now if you want to have the week of days you can add this line in your config() GEA.options.weekofday = { getValue=function() return os.date("%A") end } And use it like this GEA.add(true, 0, "We are {WeekOfDay}") I hope this is what you are asking about ? gea_6_06.lua
Kristiano Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 Il y a 2 heures, Steven a dit : @Sakkhho Could you test this fix bug please. This is the future version but not yet official. @Johhny Can you please test this version too (not an official). To ignore an option as trigger, you can put it between brackets like this: GEA.add ({{"Global", "JohhnyHome", "1"}, {" ( Global ) ", "TimeOfDay", "Night"}}, -1, "", {"VirtualDevice", VD [" TTS "]," 1 "}) So in this case, only the JohhnyHome will trigger this line. @Kristiano You can have your own code in the message by writting your own function and add it in the message. Here is a simple example In config () you can write your own options .. this one will be called "mycode" In setEvents () So {MyCode} will call the GEA.options.mycode.getValue () and replace {MyCode} by the return value The push message will be: "My message: This is MY code" Now, if you want to add this line in your config () And use it like this I hope this is what you are asking about? gea_6_06.lua Thanks! This would def. work. But maybe its also possible to create a more generic function for all translation of substrings? eg. message = message:gsub("#date#", GEA.options.date.getValue()) message = message:gsub("#datefull#", GEA.options.datefull.getValue()) message = message:gsub("#trigger#", GEA.options.trigger.getValue()) message:gsub("#translate%(.-%)", function(c) local key, word = c:match("%((.-),(.-)%)") c = c:gsub("%[","%%%1"):gsub("%]","%%%1"):gsub("%(","%%%1"):gsub("%)","%%%1") message = message:gsub(c.."#", GEA.options.translate.getValue(key, word)) end) end -- Customer exit custom_exit_translation(message) return message function custome_exit_translation (message) message = message = message:gsub("#weekday#"), os.date("%A") end Becuse then i could store all custom translation in one generic custom exit and add multiple lines.
pepite Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 il y a 24 minutes, Kristiano a dit : add multiple lines I understand why not, but for me, it's the same than add lines in config() no ? My opinion with a custom exit fonction, you have to add code it the heart of GEA. The idea of GEA V6 is that users can add their own code in config() without touch the heart of GEA and with different versions of GEA, config() won't be change. Maybe @Steven will have an idea to add this type of function in config().
Steven Posté(e) le 31 janvier 2018 Auteur Signaler Posté(e) le 31 janvier 2018 In LUA you can redefine all existing functions of GEA. GEA use GEA.getMessage(message, forAnalyse) to convert any ## values. So in your config() you can do this : local oldFunction = GEA.getMessage GEA.getMessage = function(message, forAnalyse) message = oldFunction(message, forAnalyse) message = message .. " Thats it." -- or anything you need return message end Otherwise, there is the existing custom exit function GEA.ouptut that you can use. Instead of pushing the message to your smartphone it call this function and pass it the message. So you can simply do what you want on the message, then pushing it. GEA.ouptut = function(message) -- what you want to do here GEA.options.portable.action(GEA.portables, message) -- pushing the message end 1
pepite Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 @Steven hihi look at your mail ;-), synchronization ;-)
Kristiano Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 Sweet! This worked and was exactly what I was looking for. Talking about functions, I currently created my own external REST call function. I created it outside of config() and setEvents() functions. correct? The GEA function and line like this. Is this correct? -- Custom functions function httpRequest(url) local selfhttp = net.HTTPClient() selfhttp:request(url, { options={ headers = selfhttp.controlHeaders, method = 'PUT', timeout = 5000 }, success = function(status) fibaro:debug("STATUS: "..status.status) fibaro:debug("DATA: "..status.data) end, error = function(err) fibaro:debug("ERROR: "..err) end }) end GEA.add({"Doorlock", id["UTILITY_DOOR"], 1}, -1, "", {{"Function", function() return httpRequest("https://10.0.1.1:80/start.php") end}})
pepite Posté(e) le 31 janvier 2018 Signaler Posté(e) le 31 janvier 2018 @Kristiano No, you can create your own function INSIDE config(), @Steven means this function config() for personal user's configuration like you need with message. In config() you shoud do something like that GEA.options.httpRequest = { name="HttpRequest", action==function(url) local selfhttp = net.HTTPClient() selfhttp:request(url, { options={ headers = selfhttp.controlHeaders, method = 'PUT', timeout = 5000 }, success = function(status) fibaro:debug("STATUS: "..status.status) fibaro:debug("DATA: "..status.data) end, error = function(err) fibaro:debug("ERROR: "..err) end }) end } and use it as : GEA.add({"Doorlock", id["UTILITY_DOOR"], 1}, -1, "", {"HttpRequest", "https://10.0.1.1:80/start.php"})
Messages recommandés