Sebbrunie1 Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 Vous confondez tous Time ET Time n'aurait aucun sens, comment pourrait-il être 11:30 ET 12:30 ... c'est bien un OU, d'ailleurs {Time, ...} n'est pas dans les conditions mes les actions/paramêtres. GEA.add(<CONDITION>, <TIME>, <MESSAGE>, <ACTIONS/PARAMETRES>) @Nico Je n'utilise plus le {Global, "", ""}, je n'ai donc pas vu qu'il ne passait plus en 4.x désolé. J'ai pris note dans la prochiane version de remplacer à la volée cette instruction par "true" @forumAD et @sebbrunie1 Vous êtes sous quel version de GEA Si vous êtes en 4.21 pour seb cela donne GEA.add({estTravail, {"Global", "Saison", "0"}}, 30, "", {{"Time", "06:00", "06:02"}, {"turnOn", 68}}) Plus besoin de vérifier si le 68 est allumé ou pas. Si tu demande un turnOn, GEA va vérfier et n'allume plus un module déjà allumé. @forumAD On avait oublié les {"Inverse"} .. mais pour ne pas s'embêter, faisons ainsi : GEA.add({estTravail}, 30, "", {{"Time", "09:30", "09:31"},{"Days", "Monday, Wednesday, Friday"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "22:30", "22:31"},{"Days", "Monday, Wednesday, Friday"},{"turnOff",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "18:00", "18:01"},{"Days", "Tuesday, Thursday"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "23:00", "23:01"},{"Days", "Tuesday, Thursday"},{"turnOff",id["MULTIMEDIA"]}}) GEA.add({estChome}, 30, "", {{"Time", "09:00", "09:01"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estChome}, 30, "", {{"Time", "23:00", "23:01"},{"turnOff",id["MULTIMEDIA"]}}) @Steven tu n'as pas dis que Global ne marchait plus?
Sebbrunie1 Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 Par contre j'ai le message d'erreur: [ERROR] 21:06:52: line 473: attempt to compare number with nil qui correspond: if (GEA.source["type"] == "autostart" and tonumber(entry[GEA.keys["SECONDES"]]) >= 0) then est ce grave docteur ? Seb if (GEA.source["type"] == "autostart" and tonumber(entry[GEA.keys["SECONDES"]]) >= 0) then
Sebbrunie1 Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 GEA.add(true, 30, "", {{"Global", "Pluie", 0}, {"Time", "00:00", "00:01"}}) @Steven, ma variable pluie ne se met pas à 0 à minuit..... j'ai merdouillé?
forumAD Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 @Steven, J'ai installé le GEA 4.30 et insérer les codes; il ne se passe rien. Au niveau de de Muiltimédia, j'ai fait divers tests mais le wall-plug ne se coupe pas. Pour le ventillateur, théoriquement si j'appuie manuellement l'interrupteur, le ventillo devrait fonctionner pendant 3 mn selon le code et s'arrêter. Ce cas ne marche plus. Et quand l'humidité est supérieur à la consigne de 60%, rien ne s'est passé Dans mon code GEA, Juste la partie allumage des lampes fonctionne correctement. Qu'est ce que je ne fais pas juste dans l'histoire? Voici tout mon code: --[[ %% autostart %% properties 7 value 4 value 36 value 13 value 25 value %% globals --]] -- v 4.30 -- Conditions : -- Actions : -- {"Switch", } -- Fix : -- #value[1]# -- turnOn/turnOff sur module RGB -- inc+ / dec+ <value> -- ================================================== -- GEA : Gestionnaire d'Evénements Automatique -- ================================================== -- [FR] Scénario permettant de contrôler si une périphérique est -- activé depuis trop longtemps ou lancer un push d'avertissement -- Ce scénario permet une annotation plus simple que le code LUA -- il nécessite néanmoins quelques connaissances -- -- [EN] This scene allow you to check every X second the status -- of a module and send actions if the module is activated since too long. -- This scene allow you a more simple annotation than LUA -- it requires some knowledge -- -- Auteur : Steven P. with modification of Hansolo and Shyrka973 -- Version : 4.1 -- Special Thanks to : -- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee, -- JossAlf, Did, jompa98 and all other guy from Domotique-fibaro.fr -- ------------------------------------------------------------ -- Historique / History -- ------------------------------------------------------------ -- L'historique complet est diponible ici : -- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428 function yourcode() -- ================================================== -- [FR] A VOUS DE JOUER -- [EN] YOUR TIME TO PLAY -- ================================================== GEA.isVersionFour = false --- On est en version 4.017 Beta ou suppérieur -- [FR] Votre langue : FR (default) -- [EN] Your language : EN GEA.language = "FR"; -- [FR] On vérifie toutes les X secondes (default : 30) -- [EN] Check every X seconds GEA.checkEvery = 30 -- [FR] Liste des portables devant recevoir une notification {70, 71} -- [EN] Smarphones you want to be notified {XX, XX} for more than one GEA.portables = { } -- [FR] Affichage des traces dans la console (default : false) -- [EN] Show trace in the debug window GEA.debug = false -- [FR] Tableau d'identifiant (facultatif) -- [EN] ID table (optional) local id = { DETECTEUR_REZ = 7, TEMP_REZ = 8, LUX_REZ= 9, DETECTEUR_ETAGE = 4, TEMP_ETAGE = 5, LUX_ETAGE= 6, LAMPE_ESCALIER = 43, LAMPE_ENTREE_REZ = 39, LAMPE_CH_PARENT = 35, TEMP_REZ = 20, PORTE_REZ = 18, MULTIMEDIA = 25, BUREAU = 24, SMOKE_SENSOR = 28, TEMP_BUREAU = 33, DETECTEUR_HUM = 13, TEMP_HUM = 12, HELIOS_BAIN=36, VD_AGENDA = 110 } -- ------------------------------------------------------------ -- [FR] Variable Globale optionnel pour autorisé GEA de s'exécuté -- [FR] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value pour autoriser l'execution>"} -- [EN] Optional Global Variable to allow GEA to run -- [EN] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value for activation>"} -- ------------------------------------------------------------ --GEA.getGlobalForActivation = {"SuspendreGEA", "non"} -- ---------------------------------------------------------------- -- [FR] A partir d'ici vous trouverez ma propre configuration -- [FR] vous permettant ainsi d'avoir une série d'exemple -- [EN] From here are ma own configuration -- [EN] just to allow you to see some examples -- ---------------------------------------------------------------- -- Exemple de condition IF // IF Sample condition local estChome = {"Global", "JourChome", "OUI"} local estTravail = {"Global", "JourChome", "NON"} --local estTravail = {"Global", "JourChome", "NON"}, {"Sensor-", id["TV"], 1}, {"Value-", id["DETECTEUR_GARAGE"], 1} local estSafe = {"Global", "Intrusion", "NON"} local estTravailEtSafe = estTravail, estSafe -- local estFerme = {"Value-", id["PORTE_ENTREE"], 1}, {"Global", "GEA_Garage", "ON"} -- local estVac = {"Global", "Chauffage", "VACANCES"} -- local co2Correct = {"If", {{"Global-", "CO2", 900}}} -- local garageAvertissement = {"Global", "GEA_Garage", "ON"} local lampeEscalierEteinte = {"Value-", id["LAMPE_ESCALIER"], 1} local lampeEscalierAllumee = {"Value+", id["LAMPE_ESCALIER"], 0} local lampeEntreeRezEteinte = {"Value-", id["LAMPE_ENTREE_REZ"], 1} local lampeEntreeRezAllumee = {"Value+", id["LAMPE_ENTREE_REZ"], 0} -- === LAMPE ENTREE REZ === -- local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}}) -- Allume la lampe et redémarre le timer des 5 minutes GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} }) -- === LAMPE ENTREE ETAGE === -- local autoOff = GEA.add(43, 3*60, "", {{"turnOff"}}) -- Allume la lampe et redémarre le timer des 5 minutes GEA.add(4, -1, "", {{"turnOn", 43}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} }) -- === CONTROL VENTILLO SALLE DE BAIN === -- -- Si allumé, on éteint le ventillateur après 2 minutes --local autoVentilo = GEA.add(id["HELIOS_BAIN"], 2*60, "Ventillo en attente de la consigne", {{"turnOff"}}) -- Si l'humidité > 60 pendant 8 minutes, on démarre le ventillateur --GEA.add({"Value+", id["DETECTEUR_HUM"], 60}, 8*60, "Humidité supérieure à 60% - (#value#)% ", {{"turnOn", id["HELIOS_BAIN"]}, {"RestartTask", autoVentilo}, {"Repeat"}}) GEA.add( { id["HELIOS_BAIN"], {"Value-", id["DETECTEUR_HUM"], 60} }, 3*60, "Ventillo en attente de la consigne (humidité:#value[2]#)", {{"turnOff"}}) -- Chaque fois que ton détecteur envoi une info, si cette dernière est supérieur à 60% on allume le ventilateur si ce n'est pas déjà fait. -- Et si le ventilateur est allumé et que l'humidité est inférieure à 60% pendant 3 minutes, il s'arrêtera. GEA.add({"Value+", id["DETECTEUR_HUM"], 60}, -1, "Humidité supérieure à 60% - (#value#)% ", {{"turnOn", id["HELIOS_BAIN"]}}) -- === CONTROL MULTIMEDIA === -- GEA.add({estTravail}, 30, "", {{"Time", "09:30", "09:31"},{"Days", "Monday, Wednesday, Friday"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "22:30", "22:31"},{"Days", "Monday, Wednesday, Friday"},{"turnOff",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "18:00", "18:01"},{"Days", "Tuesday, Thursday"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estTravail}, 30, "", {{"Time", "21:00", "21:01"},{"Days", "Tuesday, Thursday"},{"turnOff",id["MULTIMEDIA"]}}) GEA.add({estChome}, 30, "", {{"Time", "09:00", "09:01"},{"turnOn",id["MULTIMEDIA"]}}) GEA.add({estChome}, 30, "", {{"Time", "23:00", "23:01"},{"turnOff",id["MULTIMEDIA"]}}) -- === MONITORING POWER === -- -- SUIVI ENERGIE BUREAU -- GEA.add({"Sensor+", id["BUREAU"], 425}, 1*60, "Consommation excessive des ordinateurs #value# (#date# #time#)") -- SUIVI ENERGIE MULTIMEDIA -- GEA.add({"Sensor+", id["MULTIMEDIA"], 175}, 1*60, "Consommation excessive des appareils Multimedia #value# (#date# #time#)") -- SUIVI ENERGIE VENTILATEUR SALLE DE BAIN -- GEA.add({"Sensor+", id["HELIOS_BAIN"], 25}, 1*60, "Consommation excessive de la ventilation #value# (#date# #time#)") et le debug: [DEBUG] 21:24:15: [ 39 | simple-switch39 ] Add Autostart : ajout de la tache pour 300 secondes (ID:1) [turnOff] [DEBUG] 21:24:15: [ 43 | dimmer43 ] Add Autostart : ajout de la tache pour 180 secondes (ID:3) [turnOff] [DEBUG] 21:24:15: [ 36 | simple-switch36 ] Add Autostart : ajout de la tache pour 180 secondes (ID:5) [turnOff] [If..] [DEBUG] 21:24:15: [ JourChome=NON ] Add Autostart : ajout de la tache pour 30 secondes (ID:7) [Time,09:30,09:31] [Days,Monday, Wednesday, Friday] [turnOn,25] [If..] [DEBUG] 21:24:15: [ JourChome=NON ] Add Autostart : ajout de la tache pour 30 secondes (ID:8) [Time,22:30,22:31] [Days,Monday, Wednesday, Friday] [turnOff,25] [If..] [DEBUG] 21:24:15: [ JourChome=NON ] Add Autostart : ajout de la tache pour 30 secondes (ID:9) [Time,18:00,18:01] [Days,Tuesday, Thursday] [turnOn,25] [If..] [DEBUG] 21:24:15: [ JourChome=NON ] Add Autostart : ajout de la tache pour 30 secondes (ID:10) [Time,21:00,21:01] [Days,Tuesday, Thursday] [turnOff,25] [If..] [DEBUG] 21:24:15: [ JourChome=OUI ] Add Autostart : ajout de la tache pour 30 secondes (ID:11) [Time,09:00,09:01] [turnOn,25] [If..] [DEBUG] 21:24:15: [ JourChome=OUI ] Add Autostart : ajout de la tache pour 30 secondes (ID:12) [Time,23:00,23:01] [turnOff,25] [If..] [DEBUG] 21:24:15: [ Sensor [24|Energie Bureau] > 425 ] Add Autostart : ajout de la tache pour 60 secondes (ID:13) [DEBUG] 21:24:15: [ Sensor [25|Multimedia] > 175 ] Add Autostart : ajout de la tache pour 60 secondes (ID:14) [DEBUG] 21:24:15: [ Sensor [36|simple-switch36] > 25 ] Add Autostart : ajout de la tache pour 60 secondes (ID:15) [DEBUG] 21:24:15: GEA Version 4.30 : en exécution... Merci bien du support;
971jmd Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 bonsoir a tous un truc tout simple je n'y arrive pas allumer un lampe a une heur bien précise GEA.add( true , 1, "", {{"turnOff", id["lp_salon"]}, {"Time", "19:09", "19:09"}})
Did Posté(e) le 4 décembre 2014 Signaler Posté(e) le 4 décembre 2014 Merci Steven, Je suis en 4.021 sur GEA et le HC2 est en 3.590 et la variable GEA.isVersionFor est bien à false. J'ai ajouter la ligne que tu m'as demandé au dessus des miennes et voici le résultat (j'ai encore abaissé le temps à cinq minutes): [DEBUG] 23:31:25: [ Sensor [246|Congélateur] < 40 ] Add Autostart : ajout de la tache pour 300 secondes (ID:16) [DEBUG] 23:31:25: GEA Version 4.021 : en exécution... [DEBUG] 23:36:25: [ Sensor [246|Congélateur] < 40 ] sendActions : traitement des actions (ID:16) [ERROR] 23:36:25: line 940: bad argument #1 to 'gsub' (string expected, got table) Je t'ajoute la partie de mon GEA pour que tu te repères à ma ligne 940: -- --------------------------------------------------------------------------- -- Permet de définir / spécifier un message précis qui sera envoyé -- par la méthode sendWarning -- --------------------------------------------------------------------------- GEA.getMessage = function(entry, message) local msg = "" if (entry[GEA.keys["MESSAGE"]]) then msg = entry[GEA.keys["MESSAGE"]] end if (message and message ~= "") then msg = message end if (entry[GEA.keys["VALUE"]][1]) then 940 msg = string.gsub(msg, "#value#", entry[GEA.keys["VALUE"]][1]) msg = string.gsub(msg, "#value[1]#", entry[GEA.keys["VALUE"]][1]) end if (entry[GEA.keys["VALUE"]][2]) then msg = string.gsub(msg, "#value[2]#", entry[GEA.keys["VALUE"]][2]) end if (entry[GEA.keys["VALUE"]][3]) then msg = string.gsub(msg, "#value[3]#", entry[GEA.keys["VALUE"]][3]) end if (entry[GEA.keys["VALUE"]][4]) then msg = string.gsub(msg, "#value[4]#", entry[GEA.keys["VALUE"]][4]) end if (entry[GEA.keys["VALUE"]][5]) then msg = string.gsub(msg, "#value[5]#", entry[GEA.keys["VALUE"]][5]) end if (entry[GEA.keys["VALUE"]][6]) then msg = string.gsub(msg, "#value[6]#", entry[GEA.keys["VALUE"]][6]) end if (entry[GEA.keys["VALUE"]][7]) then msg = string.gsub(msg, "#value[7]#", entry[GEA.keys["VALUE"]][7]) end if (entry[GEA.keys["VALUE"]][8]) then msg = string.gsub(msg, "#value[8]#", entry[GEA.keys["VALUE"]][8]) end if (entry[GEA.keys["VALUE"]][9]) then msg = string.gsub(msg, "#value[9]#", entry[GEA.keys["VALUE"]][9]) end msg = string.gsub(msg, "#time#", os.date("%X")) msg = string.gsub(msg, "#date#", os.date("%x")) if (entry[GEA.keys["NAME"]][1]) then msg = string.gsub(msg, "#name#", entry[GEA.keys["NAME"]][1]) msg = string.gsub(msg, "#name[1]#", entry[GEA.keys["NAME"]][1]) end if (entry[GEA.keys["NAME"]][2]) then msg = string.gsub(msg, "#name[2]#", entry[GEA.keys["NAME"]][2]) end if (entry[GEA.keys["NAME"]][3]) then msg = string.gsub(msg, "#name[3]#", entry[GEA.keys["NAME"]][3]) end if (entry[GEA.keys["NAME"]][4]) then msg = string.gsub(msg, "#name[4]#", entry[GEA.keys["NAME"]][4]) end if (entry[GEA.keys["NAME"]][5]) then msg = string.gsub(msg, "#name[5]#", entry[GEA.keys["NAME"]][5]) end if (entry[GEA.keys["NAME"]][6]) then msg = string.gsub(msg, "#name[6]#", entry[GEA.keys["NAME"]][6]) end if (entry[GEA.keys["NAME"]][7]) then msg = string.gsub(msg, "#name[7]#", entry[GEA.keys["NAME"]][7]) end if (entry[GEA.keys["NAME"]][8]) then msg = string.gsub(msg, "#name[8]#", entry[GEA.keys["NAME"]][8]) end if (entry[GEA.keys["NAME"]][9]) then msg = string.gsub(msg, "#name[9]#", entry[GEA.keys["NAME"]][9]) end if (entry[GEA.keys["ROOM"]][1]) then msg = string.gsub(msg, "#room#", entry[GEA.keys["ROOM"]][1]) msg = string.gsub(msg, "#room[1]#", entry[GEA.keys["ROOM"]][1]) end if (entry[GEA.keys["ROOM"]][2]) then msg = string.gsub(msg, "#room[2]#", entry[GEA.keys["ROOM"]][2]) end if (entry[GEA.keys["ROOM"]][3]) then msg = string.gsub(msg, "#room[3]#", entry[GEA.keys["ROOM"]][3]) end if (entry[GEA.keys["ROOM"]][4]) then msg = string.gsub(msg, "#room[4]#", entry[GEA.keys["ROOM"]][4]) end if (entry[GEA.keys["ROOM"]][5]) then msg = string.gsub(msg, "#room[5]#", entry[GEA.keys["ROOM"]][5]) end if (entry[GEA.keys["ROOM"]][6]) then msg = string.gsub(msg, "#room[6]#", entry[GEA.keys["ROOM"]][6]) end if (entry[GEA.keys["ROOM"]][7]) then msg = string.gsub(msg, "#room[7]#", entry[GEA.keys["ROOM"]][7]) end if (entry[GEA.keys["ROOM"]][8]) then msg = string.gsub(msg, "#room[8]#", entry[GEA.keys["ROOM"]][8]) end if (entry[GEA.keys["ROOM"]][9]) then msg = string.gsub(msg, "#room[9]#", entry[GEA.keys["ROOM"]][9]) end msg = string.gsub(msg, "#seconds#", entry[GEA.keys["SECONDES"]]) local durees = GEA.getDureeInString( entry[GEA.keys["TOTALRUNS"]] * GEA.checkEvery) msg = string.gsub(msg, "#duration#", durees[1]) msg = string.gsub(msg, "#durationfull#", durees[2]) msg = string.gsub(msg, "#runs#", entry[GEA.keys["TOTALRUNS"]] ) return msg end -- --------------------------------------------------------------------------- -- Converti une durée en chaîne de caratères -- --------------------------------------------------------------------------- GEA.getDureeInString = function(duree) J'espère que cela va t'aider. Merci.
Steven Posté(e) le 5 décembre 2014 Auteur Signaler Posté(e) le 5 décembre 2014 Par contre j'ai le message d'erreur: [ERROR] 21:06:52: line 473: attempt to compare number with nil Montre moi ce que tu as sur local estTravail = ....... Pour Pluie, essaye de mettre le 0 entre parenthèse "0". Mais le code me semblait bon. @forumAD Pour le multimédia, es-tu sà»r que ta variable JourChome était sur OUI pendant ton test ? Pour le ventillation. Oui si tu allumes manuellement, il doit se couper après environ 3mn pour autant que l'humidité soit inférieur à 60. !! Je penses soudainement, as-tu créé la variable GEA_Tasks ? Hummm, je sens que c'est un non Sinon, tu utilise GEA 4.30 mais je sais pas si tu es sur le firmware 3.590 ou 4.x ? @971jml Essaie de mettre turnOn (allumer) au lieu de turnOff (éteindre), je pense que ta lampe va mieux s'allumer @Did Je l'avais pas vu venir celle-là GEA.add(condition, durée, MESSAGE, options) Manque le message soit "" dans ton cas : GEA.add({"Sensor-", 246, 40}, 20*60, "", {{"VirtualDevice", 90, 5},{"CurrentIcon", 249, 1111}}) -- Surveillance de la conso congélateur 1
Sebbrunie1 Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 Voila ce que j'ai fait: Local estChome = {"Global", "JourChome", "OUI"}, {"Global", "Vacances_Text", "Oui"}local estTravail = {"Global", "JourChome", "NON"}, {"Global", "Vacances_Text", "Non"} -- Iphone Present: GEA.add(32,2*60,"IphoneSeb present depuis plus de 2 min",{{"Repeat"}}) -- A minuit on remet tout à zéroGEA. GEA.add(true, 30, "", {{"Global", "nbPluie", 0}, {"Time", "00:00", "00:01"}}) GEA.add(true, 30, "", {{"Global", "Pluie_Text", 0}, {"Time", "00:00", "00:01"}}) GEA.add(true, 30, "", {{"Global", "Pluie", 0}, {"Time", "00:00", "00:01"}}) -- chaque fois que le détecteur s'active, on incrémente le compteur. GEA.add(87, 30, "", {{"Global", "nbPluie", "inc+"}}) -- === Sà‹che-serviettes === -- -- Saison hiver -- -- Allumage ‡ 6h les jours de semaines // Switch on the radiator at 7 am on working day GEA.add({estTravail}, {"Global", "Saison", "0"}, 30, "", {{"Time", "06:00", "06:02"}, {"turnOn", 68}}) -- Allumage ‡ 18h les jours de semaines // Switch on the radiator at 7 am on working day GEA.add({estTravail}, {"Global", "Saison", "0"}, 30, "", {{"Inverse"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) -- Allumage ‡ 08h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, {"Global", "Saison", "0"}, 30, "", {{"Inverse"},{"Time", "08:00", "08:02"}, {"turnOn", 68}}) -- Allumage ‡ 18h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, {"Global", "Saison", "0"}, 30, "", {{"Inverse"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) -- Eteindre aprà‹s 2 heures / Switch it off after 2 hours GEA.add({"Global", "Saison", "0"}, 2*60*60, "", {{"turnOff", 68}}) -- Saison été -- -- Allumage ‡ 6h les jours de semaines // Switch on the radiator at 7 am on working day GEA.add({estTravail}, {"Global", "Saison", "1"}, 30, "", {{"Inverse"},{"Time", "06:00", "06:02"}, {"turnOn", 68}}) -- Allumage ‡ 18h les jours de semaines // Switch on the radiator at 7 am on working day GEA.add({estTravail}, {"Global", "Saison", "1"}, 30, "", {{"Inverse"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) -- Allumage ‡ 08h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, {"Global", "Saison", "1"}, 30, "", {{"Inverse"},{"Time", "08:00", "08:02"}, {"turnOn", 68}}) -- Allumage ‡ 18h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, {"Global", "Saison", "1"}, 30, "", {{"Inverse"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) -- Eteindre aprà‹s 1 heures / Switch it off after 2 hours GEA.add({"Global", "Saison", "1"}, 1*60*60, "", {{"turnOff", 68}}) -- Avertir s'il fait froid dans le salon // Cold in the living room ? GEA.add({"Sensor-", 60, 18}, 30*60, "Il fait froid au salon #value# ‡ #time#") -- Vàˆrification des piles une fois par jour // Checking batteries once a day GEA.add({"Batteries", 60}, 24*60*60, "Batterie faible", {{"Repeat"}}) Par contre moi la version qui est noté en haut c'est 4.11 --[[%% autostart %% properties 32 value 87 value 98 value %% globals --]] -- v 4.11 -- Conditions : -- {"Weather", <valeur} -- {"Property", <id module>, <property>, <value>) -- {"Property!", <id module>, <property>, <value>) Ils ont trouvé la v4.30 ???? je suis jeueu ou pas ???
Did Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 Bon testé et presque approuvé. J'étais partit sur une notification avec un message entre les guillemets puis j'ai finalement créer une notif sur Pushingbox (module virtuel), comme un con, j'ai supprimé le message avec les guillemets. La notif est bien arrivée mais l'icône n'a pas changé dans le module virtuel. Merci Steven
pepite Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 Bonjour à tous, Bon mes débuts avec mon seul module le WP avec lequel je teste hihi. Voila ce que je viens d'écrire, comprenez vous comme moi ? quelqu'un peut-il m'éclairer sur le "true" dans la condition pour l'allumage du wallplug svp . -- Allumer le WP Halogene le VENDREDI à 16h09 GEA.add(true , 1, "", {{"turnOn", id["WP_HALOGENE"]}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) --Message WP-Halogne allumée toutes les 2 mins (le repeat ?") GEA.add(id["WP_HALOGENE"],2*60, "Halogène salon allumée depuis 2 mns à #time#", {{"Repeat"}}) -- Exctinction WP après 8 mins allumage avec envoi message "push" GEA.add(id["WP_HALOGENE"],8*60, "Extinction #name# après 8 mins à #time#", {{"turnOff"}} Pour l'allumage, ce code la est-il faux ? dou la question au dessus avec le TRUE ;-) GEA.add(id["WP_HALOGENE"], 1, "", {{"turnOn"}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) Merci ca va vous paraitre simple comme code a cote de ce que vous ecrivez hihihi
Steven Posté(e) le 5 décembre 2014 Auteur Signaler Posté(e) le 5 décembre 2014 @Sebbrunie Voici comment j'aurais mis en place ton code : local estChome = {"Global", "JourChome", "OUI"}, {"Global", "Vacances_Text", "Oui"} local estTravail = {"Global", "JourChome", "NON"}, {"Global", "Vacances_Text", "Non"} -- Iphone Present: GEA.add(32, 2*60, "IphoneSeb present depuis plus de 2 min", {{"Repeat"}}) -- A minuit on remet tout àzéroGEA. GEA.add(true, 30, "", { {"Global", "nbPluie", 0}, {"Global", "Pluie_Text", 0}, {"Global", "Pluie", 0}, {"Time", "00:00", "00:01"}}) -- chaque fois que le détecteur s'active, on incrémente le compteur. GEA.add(87, 30, "", {{"Global", "nbPluie", "inc+"}}) -- Allumage à6h et 18h00 les jours de semaines // Switch on the radiator at 7 am on working day GEA.add({estTravail}, 30, "", {{"Time", "06:00", "06:02"},{"Time", "18:00", "18:02"},{"turnOn", 68}}) -- Allumage à08h00 et 18h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, 30, "", {{"Inverse"},{"Time", "08:00", "08:02"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) -- en hiver Eteindre après 2 heures / Switch it off after 2 hours GEA.add({68, {"Global", "Saison", "0"}}, 2*60*60, "", {{"turnOff", 68}}) -- en été Eteindre après 1 heures / Switch it off after 2 hours GEA.add({68, {"Global", "Saison", "1"}}, 1*60*60, "", {{"turnOff", 68}}) -- Avertir s'il fait froid dans le salon // Cold in the living room ? GEA.add({"Sensor-", 60, 18}, 30*60, "Il fait froid au salon #value# ‡ #time#") -- VÈrification des piles une fois par jour // Checking batteries once a day GEA.add({"Batteries", 60}, 24*60*60, "Batterie faible", {{"Repeat"}}) Tu peux déjàle tester, une nouvelle version arrive ce weekend mais elle ne changera rien àtout cela.
Sebbrunie1 Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 Cool merci j'essaye... C'est simple finalement... hihi
Sebbrunie1 Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 j'ai ce message [ERROR] 16:37:07: line 1517: attempt to concatenate local 'name' (a nil value) pour cette ligne: msg = msg .. "[ ".. entry[GEA.keys["ID"]] .. " | ".. name .." ] " grrr
Steven Posté(e) le 5 décembre 2014 Auteur Signaler Posté(e) le 5 décembre 2014 @pepite Je vais essayer d'expliquer au mieux Avant de commence, il manque un ) à ta ligne no 9 Numérotons tes lignes : -- Allumer le WP Halogene le VENDREDI à 16h09 1. GEA.add(true , 30, "", {{"turnOn", id["WP_HALOGENE"]}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) 2. GEA.add(id["WP_HALOGENE"], 30, "", {{"turnOn"}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) --Message WP-Halogne allumée toutes les 2 mins (le repeat ?") 3. GEA.add(id["WP_HALOGENE"],2*60, "Halogène salon allumée depuis 2 mns à #time#", {{"Repeat"}}) -- Exctinction WP après 8 mins allumage avec envoi message "push" 4. GEA.add(id["WP_HALOGENE"],8*60, "Extinction #name# après 8 mins à #time#", {{"turnOff"}}) 1.true siginifie "tout le temps", donc tout les temps entre 16h09 et 16h09 les vendredi on va allumer l'halogène. 2. C'est presque juste Cette ligne signifie, SI l'halogène est allumé entre .. et ... alors je l'allume ... hummmm 2.b tu aurais du mettre : GEA.add(id["WP_HALOGENE"], 30, "", {{"Inverse"}, {"turnOn"}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) {"Inverse"} pour inverser le test. 3. Repeat : Si une condition est correcte (halogène allumé pendant 2mn ou plus), tu vas recevoir une notification puis le cette ligne sera "endormie". Avec le {"Repeat"}, tu seras notifié toutes les 2 minutes. Perso, j'aime bien utiliser cette manière d'écrire les GEA.add(true, 30, "", {{"Time", "16:09", "16:10"}, {"turnOn", id["WP_HALOGENE"]} }) Ainsi je peux facilement rajouter quelque chose à la même heure. GEA.add(true, 30, "", {{"Time", "16:09", "16:10"}, {"turnOn", id["WP_HALOGENE"]}, {"turnOn", id["WP_CUISINE"]} }) Par contre, attention, GEA n'utilise pas des heures précises, mais à plus ou moins 30 secondes puisque GEA exécute toutes tes instructions puis "dort" pendant 30 secondes (par défaut). Si tu as besoin de lancer quelque chose à une heure précise, il existe le Scheduler qui est un scénario très puissant et qui lui est 100% basé sur la date/heure de la box. Je dirais que dans l'ensemble : - Scheduler : exécute des traitement à des heures précises et optimisée - GEA : exécute des traitement basé sur l'état d'un/de périphérique(s) 2
Steven Posté(e) le 5 décembre 2014 Auteur Signaler Posté(e) le 5 décembre 2014 j'ai ce message [ERROR] 16:37:07: line 1517: attempt to concatenate local 'name' (a nil value) pour cette ligne: msg = msg .. "[ ".. entry[GEA.keys["ID"]] .. " | ".. name .." ] " Ok, c'est pas grand chose, est-ce que tu es certain des ID 32, 87, 68 et 60 car c'est parce que GEA n'arrive pas trouver un nom à donner à une ligne et en règle générale cela est basé sur le nom du module lié à l'ID indiqué.
Steven Posté(e) le 5 décembre 2014 Auteur Signaler Posté(e) le 5 décembre 2014 J'ai répéré une erreur dans la ligne : -- Allumage à 08h00 et 18h00 les jours de weekend // Switch on the radiator at 8:30am am on sleeping day GEA.add({estChome}, 30, "", {{"Inverse"},{"Time", "08:00", "08:02"},{"Time", "18:00", "18:02"}, {"turnOn", 68}}) Il faut enlever le {"Inverse"} mais cela ne devrait pas corrigé ton précédent soucis. Sinon essaye de supprime temporairement ces lignes pour voir si c'est la source du problème : GEA.add({68, {"Global", "Saison", "0"}}, 2*60*60, "", {{"turnOff", 68}}) -- en été Eteindre après 1 heures / Switch it off after 2 hours GEA.add({68, {"Global", "Saison", "1"}}, 1*60*60, "", {{"turnOff", 68}})
Sebbrunie1 Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 le 87 est mort pour le moment..... Si je retire les deux lignes que tu m'as indiqué, rien ne change j'ai le même message. Si je retire la ligne du 87, le message n'est plus mais j'en ai un autre.... [ERROR] 17:24:18: line 1555: attempt to concatenate field '?' (a nil value) pour la ligne else msg = msg .. entry[GEA.keys["PARAMS"]][i][j] .. "," c'est le else en 1555....
Sebbrunie1 Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 le 60, c'est la temperature de l'oeil.. C'est comme sensor ou Value..?
Did Posté(e) le 5 décembre 2014 Signaler Posté(e) le 5 décembre 2014 @Steven, sais-tu pourquoi l'icône 1111 ne s'affiche pas en remplacement de la 1110 dans mon module virtuel 249?
pepite Posté(e) le 6 décembre 2014 Signaler Posté(e) le 6 décembre 2014 @pepite Je vais essayer d'expliquer au mieux Avant de commence, il manque un ) à ta ligne no 9 Numérotons tes lignes : -- Allumer le WP Halogene le VENDREDI à 16h09 1. GEA.add(true , 30, "", {{"turnOn", id["WP_HALOGENE"]}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) 2. GEA.add(id["WP_HALOGENE"], 30, "", {{"turnOn"}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) --Message WP-Halogne allumée toutes les 2 mins (le repeat ?") 3. GEA.add(id["WP_HALOGENE"],2*60, "Halogène salon allumée depuis 2 mns à #time#", {{"Repeat"}}) -- Exctinction WP après 8 mins allumage avec envoi message "push" 4. GEA.add(id["WP_HALOGENE"],8*60, "Extinction #name# après 8 mins à #time#", {{"turnOff"}}) 1.true siginifie "tout le temps", donc tout les temps entre 16h09 et 16h09 les vendredi on va allumer l'halogène. 2. C'est presque juste Cette ligne signifie, SI l'halogène est allumé entre .. et ... alors je l'allume ... hummmm 2.b tu aurais du mettre : GEA.add(id["WP_HALOGENE"], 30, "", {{"Inverse"}, {"turnOn"}, {"Days", "Friday"}, {"Time", "16:09", "16:09"}}) {"Inverse"} pour inverser le test. 3. Repeat : Si une condition est correcte (halogène allumé pendant 2mn ou plus), tu vas recevoir une notification puis le cette ligne sera "endormie". Avec le {"Repeat"}, tu seras notifié toutes les 2 minutes. Perso, j'aime bien utiliser cette manière d'écrire les GEA.add(true, 30, "", {{"Time", "16:09", "16:10"}, {"turnOn", id["WP_HALOGENE"]} }) Ainsi je peux facilement rajouter quelque chose à la même heure. GEA.add(true, 30, "", {{"Time", "16:09", "16:10"}, {"turnOn", id["WP_HALOGENE"]}, {"turnOn", id["WP_CUISINE"]} }) Par contre, attention, GEA n'utilise pas des heures précises, mais à plus ou moins 30 secondes puisque GEA exécute toutes tes instructions puis "dort" pendant 30 secondes (par défaut). Si tu as besoin de lancer quelque chose à une heure précise, il existe le Scheduler qui est un scénario très puissant et qui lui est 100% basé sur la date/heure de la box. Je dirais que dans l'ensemble : - Scheduler : exécute des traitement à des heures précises et optimisée - GEA : exécute des traitement basé sur l'état d'un/de périphérique(s) Bonjour @Steven et merci pour la réponse !! Je pense avoir a peu près compris (pour ces 3 petites lignes hihiihi..), encore beaucoup de choses a comprendre ;-) mais vous n'etes pas pret de ne plus me voir sur le forum ;-) L'ideal, pour écrire est donc de toujours terminer par l'ACTION, c'est cela ? Ca me parait aussi plus clair dans ce sens la, les conditions et enfin l'Action, je vais copier ;-) Pour le scheduler et GEA, oui cela j'avais compris, enfin je crois. C'est toutes les 30 secs moins la duree de traitement du code GEA. Cela me convient, pour l'instant je n'ai qu'1 wP et maintenir qu'une seule scene me parait plus simple pour l'instant à mon niveau, je fais mes armes avec et peut-etre plus tard pour les heures precises. Je vias aussi voler ton systeme de 2 GEA, 1 en prod et 1 en test, mais petite question, en teste le "scene active" n'est pas coché ? je l'execute pour chaque ligne que je veux tester uniquement ? Question subsidiare : j'abuse ;-) Sachant que je n'ai ni detecteur, ni telecommande, ni interrupteur encore pour l'instant, comment faire pour que l'halogene reste allumée et ne s'eteigne pas au bout d'un certain temps ? Sans mettre une duree GEA enorme ;-) Je pense a un "restart task" mais à partir de quoi ? Puisque je n'ai aucun evenement sur lequel m'appuyer ? Si vous avez des idées ;-) merci @ +
PITP2 Posté(e) le 6 décembre 2014 Signaler Posté(e) le 6 décembre 2014 (modifié) Bonjour, Passage en V4.21 et j'ai un ptit probleme avec l'activation des actions avec mes telecommandes Je suis en GEA 4.11 Je ne sais pas si cela vient de la nouvelle version 4.21 car avant je gérais mes teleocmmandes via des scenes classiques que j'avais désactivé mais il semble que le reboot les aient remise en route toute seule ... donc je ne passe peut etre plus par GEA depuis un ptit moment sans le savoir .... J'ai regardé au niveau de la syntaxe du sceneactivation mais je pense que c'est bon .... --[[ %% autostart %% properties 191 sceneActivation 285 sceneActivation %% globals --]] local id = { TELCO_ENTREE = 285 } -- === Garage === -- -- Appui court sur le bouton 1 de la telco ouvre la pporte de garage GEA.add({"SceneActivation", id["TELCO_ENTREE"], 1}, -1, "", {"Scenario", 84}) [ERROR] 11:15:01: line 315: attempt to index field '?' (a number value) [ERROR] 11:16:29: line 315: attempt to index field '?' (a number value) [ERROR] 11:20:17: line 315: attempt to index field '?' (a number value) [ERROR] 11:20:38: line 315: attempt to index field '?' (a number value) [ERROR] 11:20:39: line 315: attempt to index field '?' (a number value) La ligne 315 est celle ci if (arg[i][1] == "Repeat") then repeating = true end Je me réponds => j'avais oublié des {} Modifié le 7 décembre 2014 par PITP2
pepite Posté(e) le 6 décembre 2014 Signaler Posté(e) le 6 décembre 2014 Bonjour, Ce code : GEA.add(true, 30, "", {{"Days", "Saturday"},{"Time", "15:35", "15:36"}, {"turnOn", id["WP_HALOGENE"]},{"VirtualDevice", id["VD_SMSFREE"], 1}}) Debug : [ Toujours ] Add Autostart : ajout de la tache pour 30 secondes (ID:1) [Days,Saturday] [Time,15:35,15:36] [turnOn] [VirtualDevice,16,1] mais evidemment, la lampe ne s'allume pas, le Virtual device est pour pushingbox ;-) je recois bien le sms Ou est ce que je me trompe ? je dois faire 2 lignes ? merci PS : je ne recois meme pas le sms finalement ;-)
HANSOLO Posté(e) le 6 décembre 2014 Signaler Posté(e) le 6 décembre 2014 L'ID de WP_HALOGENE est bien déclaré? Logiquement dans la ligne du débug l'ID en chiffre devrais apparaître après le turnOn
pepite Posté(e) le 7 décembre 2014 Signaler Posté(e) le 7 décembre 2014 Bonjour, @hansolo Merci c'etait ca, le boulet que je suis a declare en minuscule et appelle dans le code en majuscule, malencontreux copier-coller . Allez je me raccroche au standard en majuscules ;-)
Messages recommandés