Aller au contenu

Support Gea


Steven

Messages recommandés

 

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?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

@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;

 

 

Lien vers le commentaire
Partager sur d’autres sites

  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.

Lien vers le commentaire
Partager sur d’autres sites

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

 

:D  :P  ;)  ;)  :P  :D

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

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 ??? :(

Lien vers le commentaire
Partager sur d’autres sites

 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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

@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.

Lien vers le commentaire
Partager sur d’autres sites

@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)
  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

 

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é.

Lien vers le commentaire
Partager sur d’autres sites

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}})
Lien vers le commentaire
Partager sur d’autres sites

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....

Lien vers le commentaire
Partager sur d’autres sites

 

@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

@ +

Lien vers le commentaire
Partager sur d’autres sites

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é par PITP2
Lien vers le commentaire
Partager sur d’autres sites

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 ;-)

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...