Steven Posté(e) le 14 janvier 2018 Auteur Signaler Posté(e) le 14 janvier 2018 Alors il y a 2 choses qui me dérange dans ta programmation. La première est "Weekday" .. il y a plusieurs jours donc c'est "WeekdayS" avec un "s" à la fin. Mais la plus important est la conjonction de ceci : {"Time", "04:30", "04:30"}, 60 Il n'est pas possible d'être 04:30 pendant 60 secondes , il faut mettre 30 à la place de 60* ... idem pour 08h00. D'ailleurs, tu peux mettre {"Time", "04:30"} plus besoin de mettre 2x "04:30", c'est ainsi plus simple à lire. Tu n'es pas le 1er à faire ce genre de petite erreur. La prochaine version de GEA corrigera donc automatiquement cela. * Au 1er passage, s'il est 04:30 GEA va stocker comme quoi la condition est rempli mais comme tu as mis 60s, il va attendre le passage suivant. Il sera sûrement 04:30 à ce moment là car cela ne fera que 30s plus tard. Par contre, 60s plus tard il sera 04:31 donc ... la condition ne sera jamais rempli.
Jacquominot Posté(e) le 14 janvier 2018 Signaler Posté(e) le 14 janvier 2018 (modifié) il y a 4 minutes, Steven a dit : Alors il y a 2 choses qui me dérange dans ta programmation. La première est "Weekday" .. il y a plusieurs jours donc c'est "WeekdayS" avec un "s" à la fin. Mais la plus important est la conjonction de ceci : {"Time", "04:30", "04:30"}, 60 Il n'est pas possible d'être 04:30 pendant 60 secondes , il faut mettre 30 à la place de 60* ... idem pour 08h00. D'ailleurs, tu peux mettre {"Time", "04:30"} plus besoin de mettre 2x "04:30", c'est ainsi plus simple à lire. * Au 1er passage, s'il est 04:30 GEA va stocker comme quoi la condition est rempli mais comme tu as mis 60s, il va attendre le passage suivant. Il sera sûrement 04:30 à ce moment là car cela ne fera que 30s plus tard. Par contre, 60s plus tard il sera 04:31 donc ... la condition ne sera jamais rempli. Super je modifie en conséquence. Pour weekday, j'ai recopié la syntaxe - Days : {"Days", <jours>} CONDITIONS : GEA.add( {"Days", "Monday"}, 30, "", {ACTIONS} ) - Ne vérifie QUE si nous sommes LUNDI \\Check only if the DAY is Monday GEA.add( {"Days", "Monday, Friday"},30 ,"" , {ACTIONS} ) - Ne vérifie QUE si nous sommes LUNDI ET VENDREDI \\Check only if the DAY is Monday and Friday GEA.add( {"Days", "WeekDay"},30 ,"" , {ACTIONS} ) - Ne vérifie QUE pendant les jours de la semaine \\Check only during the days of a the week GEA.add( {"Days", "WeekEnd"},30 ,"" , {ACTIONS} ) - Ne vérifie QUE le WeekEnd \\Chek Only during WeekEnd (Saturday, Sunday) Steven, je viens de regarder et tu autorise les 2 syntaxes : jours = jours:gsub("weekday", "monday,tuesday,wednesday,thursday,friday"):gsub("weekdays", "monday,tuesday,wednesday,thursday,friday"):gsub("weekend", "saturday,sunday") Modifié le 14 janvier 2018 par Jacquominot
Steven Posté(e) le 14 janvier 2018 Auteur Signaler Posté(e) le 14 janvier 2018 il y a 1 minute, Jacquominot a dit : Pour weekday, j'ai recopié la syntaxe Je viens de vérifier dans le code. Tu peux mettre avec ou sans le "s". Il y a fort longtemps, j'avais fait une boulette et j'avais codé sans le "s". Pour corrigé sans impacter le code des utilisateurs, j'ai fais en sorte d'accepter les 2. Donc la syntaxe de @pepite est correcte même si, pour plus de cohérence, je vais lui demander de changer
Steven Posté(e) le 14 janvier 2018 Auteur Signaler Posté(e) le 14 janvier 2018 Et continue à nous embêter si tu as des questions, cela aide aussi à réfléchir aux améliorations possible de GEA. Tu vois dans ton cas, cela m'a permis de faire en sorte que GEA va corriger automatiquement ce genre de problème pour la future version.
Jacquominot Posté(e) le 14 janvier 2018 Signaler Posté(e) le 14 janvier 2018 (modifié) Bon, je laisse tourner comme ça cette nuit. on verra la température demain matin je continuerais de vous embêter tant que ce qu'il y a dans ma tête ne marche pas. après, il faudra sans doute plus souvent corriger ma tête que ton script LOL Modifié le 14 janvier 2018 par Jacquominot
dvine Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Avec le nouveau GEA, je le teste encore, mais je n'ai pas toute la journée pour garder un œil sur les loggies et les actions. Maintenant, le VD GEA aide avec les 5 dernières actions, cependant, il me manque encore beaucoup de moments que je veux vraiment vérifier. En outre, la règle sur mon mobile ne peut pas être lue complètement J'utilise Presence Detector de Lambik où vous avez 3 boutons pour enregistrer le début / la fin avec send. Dans le code, vous dites par télégramme ou par courrier. Après cela, vous obtenez un certain nombre de règles à déterminer avec les loggings Peut-être une idée pour ajouter cela dans le VD GEA?https://forum.fibaro.com/index.php?/topic/20852-virtual-device-presence-detector/ 2ème question Est-il également possible d'utiliser le code json avec GEA comme par exemple ci-dessous? local wT = json.decode(fibaro:getGlobalValue("WeatherState")); local stationNo = 1 local wind_speed_level = 56 if wT.netatmo[stationNo].wind.speed >= wind_speed_level or wT.netatmo[stationNo].wind.gust >= wind_speed_level then fibaro:debug('Wind snelheid boven 56 km/h'); if fibaro:getValue(270, "value") > "0" then fibaro:call(270, "close"); fibaro:debug('Zonnescherm naar binnen!'); --fibaro:setGlobal("Telegram", "Zonnescherm naar binnen wind boven 54 km/h") --fibaro:setGlobal("Telegram2", "Zonnescherm naar binnen wind boven 54 km/h") end end
pepite Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Il y a 14 heures, Jacquominot a dit : Pour weekday, j'ai recopié la syntaxe C'est ma faute ;-) désolé ;-) C'est corrigé ;-) Il y a 2 heures, dvine a dit : 'utilise Presence Detector de Lambik où vous avez 3 boutons pour enregistrer le début Hi @dvine, I dont know teh VD of @lambik, but i read and all the informations are stored in global variable. GEA can read this global variables. Otherwise, with GEa you can push on the buuton of the VD second answer : You can do someting like this i think local wT = json.decode(fibaro:getGlobalValue("WeatherState")); local stationNo = 1 GEA.ad( { {"Or", {"Value+", wT.netatmo[stationNo].wind.speed, 56}, {"Value+", wT.netatmo[stationNo].wind.gust, 56}}, {"Value+", 270, 0} }, 30, "", {"Function", function() fibaro:call(270, "close") end} ) But certainly possible to write another line in fonction of type of the device 270. 1
Sakkhho Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Hello. Vous pouvez me dire si le multiple user IDs marche chez vous pour la fonction Picture ? Cf ma question plus haut.
pepite Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 (modifié) Salut @Sakkhho desole, je n'avais pas vu ;-). Dans ta version de GEA, peux tu chercher picture et nous dire si tu as ceci ? picture = {name="Picture", action=function(id, destinataire) if (type(id) ~= "table") then id = {id} end if (type(destinataire) ~= "table") then destinataire = {destinataire} end for i=1, #id do for j =1, #destinataire do fibaro:call(id, "sendPhotoToUser", destinataire[j]) end end end }, Modifié le 15 janvier 2018 par pepite
Sakkhho Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 j'ai ca oui donc je comprends pas pourquoi 0 picture étaient envoyées et quand j'ai mis 1 user, c'etait ok la je tourne avec 3 fonction pictures, et à chaque fois 1 ID par picture - mais j'ai pas testé hier. picture = {name="Picture", action=function(id, destinataire) if (type(id) ~= "table") then id = {id} end if (type(destinataire) ~= "table") then destinataire = {destinataire} end for i=1, #id do for j =1, #destinataire do fibaro:call(id[i], "sendPhotoToUser", destinataire[j]) end end end },
Lorenzo Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Hello, J'ai mis une journée entiere à faire fonctionner une simple ligne de code. Enfin! Dès que je mettais une action, cela ne marchait plus. Finalement, cela semble fonctionner si: - 1) j'installe la version 6.04 - 2) je mets 1 et pas -1 dans la durée pour une ligne qui test si porte ouverte et armé alors allumer lumière... Je ne comprends pas encore pourquoi -1 ne fonctionnait pas dans mon cas Suis fatigue de chercher je l'avoue :-) Par contre , est il possible de simuler l'appui sur un bouton d'un VD depuis la zone action?: A) Est ce que je dois mettre ceci dans la zone action par exemple : ? {"Function", function() fibaro:call(122, "2") end}. ou 2 est le deuxième bouton? Comment changer la valeur d'une variable globale ? J'ia trouvé pour obtenir la valeur mais pas encore cherché, je l'avoue comment changer la valeur d'une variable globale?
pepite Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 (modifié) @Sakkhho je n'ai pas testé "Picture" pour plusieurs IDs, je vais tacher de le faire et te tiens au courant dès que possible. @Lorenzo Les déclenchements instantanés ne fonctionnent QUE SI et SEULEMENT SI tu as mis dans l'entete de GEA : iddumodule propriété, par exemple. --[[ %% autostart %% properties 25 value 25 power %% globals Presence %% events 415 CentralSceneEvent --]] Oui avec GEA l'appui sur le bouton d'un VD est en NATIF, de même pour modifier la valeur d'une globale. Encore une fois, je ne saurais trop te conseiller de récupérer le fichier Syntaxe du sujet Gestionnaire d'evenements Automatique 6.04, tout y est, avec des coquilles mais au moins tu auras toutes les syntaxes, c'est-à-dire tout ce que sait faire GEA en natif. Je te comprends, chercher tout ce qu'est possible avec GEA est laborieux si on a pas la source de l'info ;-) Modifié le 15 janvier 2018 par pepite 1
Jacquominot Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Le 14/01/2018 à 20:24, Steven a dit : Je viens de vérifier dans le code. Tu peux mettre avec ou sans le "s". Il y a fort longtemps, j'avais fait une boulette et j'avais codé sans le "s". Pour corrigé sans impacter le code des utilisateurs, j'ai fais en sorte d'accepter les 2. Donc la syntaxe de @pepite est correcte même si, pour plus de cohérence, je vais lui demander de changer Steven, J'ai toujours un soucis. On dirait qu'il ne se passe rien. Ma consigne de température reste à 21 degrés toute la journée et toute la nuit. Je ne comprends pas pourtant les déclencheurs ont l'air corrects.
Steven Posté(e) le 15 janvier 2018 Auteur Signaler Posté(e) le 15 janvier 2018 Tu peux me renvoyer tes lignes qui change la consigne, je vais les tester ce soir.
Jacquominot Posté(e) le 15 janvier 2018 Signaler Posté(e) le 15 janvier 2018 Merci pour ton aide : -- === CHAUFFAGE === -- -- Gestion de la programmation du thermostat --on met la consigne chauffage à 21degrés en semaine à 4h30 GEA.add({{"Days", "WeekDays"},{"Time", "04:30"}},30,"",{"Slider", 88, "slider_0_0", 21}) --on met la consigne chauffage à 19degrés en semaine à 8h sauf le mardi ou on ne coupe rien GEA.add({{"Days", "Monday,Wednesday,Thursday,Friday"},{"Time", "08:00"}},30,"",{"Slider", 88, "slider_0_0", 19}) --on met la consigne chauffage à 21degrés le mercredi 11h30 GEA.add({{"Days", "Wednesday"},{"Time", "11:30"}},30,"",{"Slider", 88, "slider_0_0", 21}) --on met la consigne chauffage à 21 degré les autres jours de la semaine à 16h30 GEA.add({{"Days", "Monday,Thursday,Friday"},{"Time", "16:30",}},30,"",{"Slider", 88, "slider_0_0", 21}) --on met la consigne chauffage à 19degrés à 21h45 en semaine GEA.add({{"Days", "WeekDays"},{"Time", "21:45"}},30,"",{"Slider", 88, "slider_0_0", 19}) --on met la consigne chauffage à 21degrés à 06h30 le week-end GEA.add({{"Days", "WeekEnd"},{"Time", "06:30"}},30,"",{"Slider", 88, "slider_0_0", 21}) --on met la consigne chauffage à 19degrés à 21h45 le week-end GEA.add({{"Days", "WeekEnd"},{"Time", "21:45"}},30,"",{"Slider", 88, "slider_0_0", 19}) -- Mise à jour du thermostat à partir du Device 88 GEA.add( {"Global!", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}}, 30, "", {"Global", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}} ) -- === Chauffage Bureau JK === -- --GEA.add({"Function",function() return Chauffage(id["TEMP_BUREAU_JK"],'egalplus') end}, 1*60, "", { {"turnOff",id["CHAUFFE_BUREAU_JK"]},{"Repeat"}} ) --GEA.add({"Function",function() return Chauffage(id["TEMP_BUREAU_JK"],'moins') end}, 1*60, "", { {"turnOn",id["CHAUFFE_BUREAU_JK"]},{"Repeat"}} ) GEA.add({"Global+", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} ) GEA.add({"Global", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} ) GEA.add({"Global-", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOn",id["CHAUFFE_BUREAU_JK"]} )
Steven Posté(e) le 15 janvier 2018 Auteur Signaler Posté(e) le 15 janvier 2018 Alors mes tests sont concluant ... mais il y a un bug dans "Slider". Si dans tout ton code tu n'utilises pas "Label", il va se planter après quelques exécutions (je l'avais pas vu venir celle là). Je te conseil donc, d'utiliser {"Label", ... } à la place de {"Slider", ...} Ensuite pour plus de réactivité utilise le 0 à la place du 30 pour cette ligne ci : -- Mise à jour du thermostat à partir du Device 88 GEA.add( {"Global!", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}}, 0, "", {"Global", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}} ) Ainsi elle sera traité immédiatement après celles qui changent la consigne et non pas 30 secondes après. Voilà, si cela ne fonctionne toujours pas, envoi moi ton script entier à steven.piccand@gmail.com je regarderais avec plaisir,
Steven Posté(e) le 15 janvier 2018 Auteur Signaler Posté(e) le 15 janvier 2018 @pepite @Sakkhho J'ai effectué un scénario simple et très basique pour vérifier le sendPhotoToUser et sendPhotoToEmail. Dans mon cas, rien ne fonctionne. Par contre si je clique sur l'appareil photo dans l'écran d'une de mes caméra, cela fonctionne correctement. Donc je ne peux pas aider sur ce coup là 1
Jacquominot Posté(e) le 16 janvier 2018 Signaler Posté(e) le 16 janvier 2018 Steven, Je n'utilise effectivement pas Label dans mon script. J'avais l'impression que ça marchait 1 ou 2 fois et j'ai aussi remarqué que mon volet n'était pas descendu avant-hier donc si ca se trouve c'était le plantage que tu évoques qui arrêtait tout d'où mon impression que ca marche et ca marche plus. Je modifie en Label et je te redis. Merci beaucoup
daivy9kens Posté(e) le 16 janvier 2018 Signaler Posté(e) le 16 janvier 2018 J'utilise un interrupteur un DIMMER 2 comme interrupteur de scène uniquement. Mon but est d'un seul et unique interrupteur suivant le nombre de clics effectués, soit ouvrir les volets, allumer/éteindre la lampe, etc... Ainsi, pour allumer/éteindre une lampe : GEA.add({{"SceneActivation", 27, 26},{"Sensor", 27, 0}}, -1, "", {{"turnOn", 27}}) GEA.add({{"SceneActivation", 27, 26},{"Sensor!", 27, 0}}, -1, "", {{"turnOff", 27}}) Quand je mets ces ligne dans un GEA vierge avec rien que cela dedans cela fonctionne parfaitement. Par contre quand je le mets dans mon GEA dans lequel j'ai toutes mes autres lignes, le fonctionnement est erratique. On dirait qu'il a tendance à ne pas récupérer à temps le statut du sensor et donc la lampe s'allume et s'éteint plusieurs fois d'affilée. (27 value est bien mis tout au dessus) Avez-vous une explication ?
Steven Posté(e) le 16 janvier 2018 Auteur Signaler Posté(e) le 16 janvier 2018 Heuuu, c'est quoi ce sensor ? Si c'est la consommation électrique de ta lampe, en effet, c'est mal parti :-) Allez, soyons simpliste : GEA.add({"SceneActivation", 27, 26}, -1, "", {{"Switch", 27}}) Et voilà si la lampe est allumée elle va s'éteindre et inversement 1
daivy9kens Posté(e) le 16 janvier 2018 Signaler Posté(e) le 16 janvier 2018 Sensor j'ai pris cela pour la luminosité du dimmer (0 = éteint), différent de 0 = allumé merci pour la simplification
Steven Posté(e) le 16 janvier 2018 Auteur Signaler Posté(e) le 16 janvier 2018 Oups, alors attention, "Sensor" (équivalent de "Power") est utilisé pour la consommation électrique d'un module. Pour un dimmer c'est "Value" qui varie donc de 0 à 100. Pour savoir si un dimmer est allumé, tu as plein d'option, la plus simple étant de mettre simplement son ID : GEA.add(ID, ......) GEA.add({"Value+", ID, 0}, ....) GEA.add({"TurnOn", ID}, ...) Dans ton cas d'utilisation, la ligne simplifiée que je t'ai envoyé est parfaite car "Switch" vérifie l'état d'un module, s'il est allumé, il l'éteint et inversement.
Steven Posté(e) le 16 janvier 2018 Auteur Signaler Posté(e) le 16 janvier 2018 J'oubliais .. tu peux enlever le 27 value de l'entête, il ne sera à rien pour ce cas de figure et moins il y a de déclencheur, mieux c'est
Sakkhho Posté(e) le 16 janvier 2018 Signaler Posté(e) le 16 janvier 2018 Le facteur a testé pour moi. Ça fonctionne très bien avec 3 IDs user séparés. Donc le problème est dans le nouveau format « Picture, ID cam, (id user 1, user 2, user 3) »
Messages recommandés