Aller au contenu
Steven

Gestionnaire d'Evénements Automatique (GEA) – version 6.13

Recommended Posts

Bonjour, j'avais un peu customisé mon GEA afin d'améliorer l'affichage dans la console (oui, c'est du lourd, pour puristes uniquement!!), et en passant à la version 6.11 j'en ai profité pour documenter mes ajouts au cas ou ça soit jugé digne d'être inclus dans une future version.

 

1) Option GEA.verbose et ajout séparateur à la fin des actions instantanées

J'ai ajouté une option pour supprimer les messages "vérifications en cours" chaque 30s, afin d'alléger l'affichage en console. Je trouve que les messages "GEA fonctionne" chaque 5 minutes sont suffisants. Attention il faut adapter WatchDog en conséquence si vous l'utilisez (test sur "GEA fonctionne" toutes les 5 minutes).

En complément j'ai ajouté un message de séparation à la fin des actions instantanées. Ça donne ça:

 

 image.png.0d39d980c637e07cf0b457e4e72ecce2.png

 

2) Correction message affichage création variables globales

Les messages "Création de la variable GEA.Tasks" sont affichés à chaque démarrage, que la variable existe déjà ou pas, et que la création échoue ou non. J'ai regroupé la création de variable, la vérification et le message, dans une fonction commune aux 3 variables (GEA_Tasks, GEA_History et GEA_Plugins). Oui, je sais c'est un peu perfectionniste pour une création qui ne se fera qu'une fois, mais comme indiqué dans le fil support, ça m'aurait fait gagner du temps pour identifier un bug de création de VG chez moi. Ça donne ça:

 

image.png.d36bd319e6195d1fd3027c65c63fc7d2.pngimage.png.8efa17baa5a710b5f0f3025c4246d8b7.png

 

Je joins mon code au cas où (faire recherche sur "Felig" pour identifier mes propositions). J'ai un peu amélioré certaines traductions également.

 

 

GEA 6.11F.lua

 

Modifié par Felig
  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

salut bravo et merci

je viens de passer a cette version (6.11f)

et depuis mon GEA ne bos plus !

svp help

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Proposition  d'une fonction supplémentaire (section config) pour la commande de thermostats nécessitant l'application simultanée de modes et de températures (Remotec IR). Pour les tests, fonctionne chez moi, les modes de chauffage [1], de refroidissement[2], commutées automatiquement[10], les modes possibles sont visibles dans le thermostat par l'interface www ou mobile.

 

  -- Pour changer le mode de thermostat (ex TKB Home TZ10.xx, Remotec RM120 ou 600) 
-- 0	Off
-- 1	Heat
-- 2	Cool
-- 3	Auto
-- 4	Aux Heat
-- 5	Resume
-- 6	Fan Only
-- 7	Furnace
-- 8	Dry Air
-- 9	Moist Air
-- 10	Auto Changeover
-- 11	Heat Economy
-- 12	Cool Economy
-- 13	Away
-- 15	Full Power
-- 31	Manufacturer Specific
--[[
ThermostatMode: {"ThermostatMode", <id_thermostat>, <"state" or "mode>"}
	CONDITIONS : 
		GEA.add( {"thermostatMode", 72, "state", ""}, 30, "State: #value#", {ACTIONS} ) -- return state of thermostat
		GEA.add( {"thermostatMode", 72, "mode", ""}, 30, "Mode: #value#", {ACTIONS} )	-- return mode of termostat
	ACTIONS : 
		GEA.add( {CONDITIONS}, 30, "", {"thernmostatMode", 73, "Heat 26"} )	-- set mode and temperature (type device: ThermostatSetPoint)
		GEA.add( {CONDITIONS}, 30, "", {"thernmostatMode", 74, "Off"} )	-- set mode (type device: com.Fibaro.operatingMode)
	TODO:
		com.Fibaro.fanMode
--]]
  GEA.options.thermostatmode = {name="thermostatMode", math=true, -- "state" or "mode"
    getValue=function(id, stmd) 
		md={"Off", "Heat", "Cool", "Auto", "AuxHeat", "Resume", "FanOnly", "Furnace", "DryAir", "MoistAir", "AutoMode", "HeatEco", "CoolEco", "Away", "FullPower"}
		md[32] = "Manufacturer"
		if md[stmd] == nil then md[stmd]="NoDef" end
			if stmd=="mode" then 
			return md[fibaro:getValue(id, "mode")+1]
			elseif smmd=="state" then 
			return md[fibaro:getValue(id, "state")+1]
--			else
--			return "error"
     		end
		end,
    	action=function(id, value)
		md={"Off", "Heat", "Cool", "Auto", "AuxHeat", "Resume", "FanOnly", "Furnace", "DryAir", "MoistAir", "AutoMode", "HeatEco", "CoolEco", "Away", "FullPower"}
      		function mdr(n)
				for k,v in pairs(md) do 
				if v == n then return k-1 end
				end
			end
            if (type(id) ~= "table") then id = {id} end for i=1, #id do
            value=tools.split(value, " ")
              if #value == 1 then
                      fibaro:call(id[i], "setMode", tostring(mdr(value[1])))
              else
                      fibaro:call(id[i], "setThermostatSetpoint", tostring(mdr(value[1])), value[2]);
              end
       		end  
		 end,
		}

 

Modifié par drboss
ajoute separation setMode et setTherm...
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 11 heures, drboss a dit :

Proposition  d'une fonction supplémentaire (section config) pour la commande de thermostats nécessitant l'application simultanée de modes et de températures (Remotec IR). Pour les tests, fonctionne chez moi, les modes de chauffage [1], de refroidissement[2], commutées automatiquement[10], les modes possibles sont visibles dans le thermostat par l'interface www ou mobile.

 


  -- Pour changer le mode de thermostat (ex TKB Home TZ10.xx, Remotec RM120 ou 600) 
-- 0	Off
-- 1	Heat
-- 2	Cool
-- 3	Auto
-- 4	Aux Heat
-- 5	Resume
-- 6	Fan Only
-- 7	Furnace
-- 8	Dry Air
-- 9	Moist Air
-- 10	Auto Changeover
-- 11	Heat Economy
-- 12	Cool Economy
-- 13	Away
-- 15	Full Power
-- 31	Manufacturer Specific
--[[
ThermostatMode: {"ThermostatMode", <id_thermostat>, <"state" or "mode>"}
	CONDITIONS : 
		GEA.add( {"thermostatMode", 72, "state", ""}, 30, "State: #value#", {ACTIONS} ) -- return state of thermostat
		GEA.add( {"thermostatMode", 72, "mode", ""}, 30, "Mode: #value#", {ACTIONS} )	-- return mode of termostat
	ACTIONS : 
		GEA.add( {CONDITIONS}, 30, "", {"thernmostatMode", 73, "Heat 26"} )	-- set mode and temperature (type device: ThermostatSetPoint)
		GEA.add( {CONDITIONS}, 30, "", {"thernmostatMode", 74, "Off"} )	-- set mode (type device: com.Fibaro.operatingMode)
	TODO:
		com.Fibaro.fanMode
--]]
  GEA.options.thermostatmode = {name="thermostatMode", math=true, -- "state" or "mode"
    getValue=function(id, stmd) 
		md={"Off", "Heat", "Cool", "Auto", "AuxHeat", "Resume", "FanOnly", "Furnace", "DryAir", "MoistAir", "AutoMode", "HeatEco", "CollEco", "Away", "FullPower"}
		md[32] = "Manufacturer"
		if md[stmd] == nil then md[stmd]="NoDef" end
			if stmd=="mode" then 
			return md[fibaro:getValue(id, "mode")+1]
			elseif smmd=="state" then 
			return md[fibaro:getValue(id, "state")+1]
--			else
--			return "error"
     		end
		end,
    	action=function(id, value)
		md={"Off", "Heat", "Cool", "Auto", "AuxHeat", "Resume", "FanOnly", "Furnace", "DryAir", "MoistAir", "AutoMode", "HeatEco", "CollEco", "Away", "FullPower"}
      		function mdr(n)
				for k,v in pairs(md) do 
				if v == n then return k-1 end
				end
			end
            if (type(id) ~= "table") then id = {id} end for i=1, #id do
            value=tools.split(value, " ")
              if #value == 1 then
                      fibaro:call(id[i], "setMode", tostring(mdr(value[1])))
              else
                      fibaro:call(id[i], "setThermostatSetpoint", tostring(mdr(value[1])), value[2]);
              end
       		end  
		 end,
		}

 

salut

question :

ca marche pour Remotec zxt-120

?

merci

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, ca marche avec zxt-120,

Device kind:com.fibaro.setPoint (ce module où vous réglez la température) mode confirme): "Heat NN", "Cool NN", "DryAir NN", "AutoMode NN" NN - temperature,

Device kind:com.fibaro.operatingMode (ce module, où vous vous arrêtez, allume le mode précédent) mode confirme sans temperature chez moi: "Off" "Resume" "FanOnly", "Heat", "Cool".

 

ps. J'ai utilisé la fonction tools.split dans le plugin car dans GEA, parce que elle est utilisée par l'auteur dans GEA et pour la compatibilité si quelqu'un a une ancienne version du firmware HC2. Mais depuis quelque temps, la même fonction de système est disponible (avec même syntaxe)    

 

Modifié par drboss
correction coll -> cool
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

hello, est il possible de récupérer l'ID d'un portable qui déclenche une commande : appuie sur un bouton d'un module virtuel ?

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans firmware 4.550 GEA ne crée pas de variables et ne génère pas d'erreur (

 

 

[DEBUG] 13:38:03: Creation of TMP_Plugins global variable, la même pour _History et _Tasks

Partager ce message


Lien à poster
Partager sur d’autres sites

Un autre plugin interne. Exécuter des commandes récurrentes aux heures indiquées:

	GEA.options.times = {name = "Times", optimize = true,
		getValue=function(times)
          
      
		if (type(times) == "table") and #times == 3 then 
 	     if (tostring(times[3]):sub(-1)) == "m" then-- frequency call minutes
     	 time_to_sec = function(to_sec)
                       local pattern = "(%d+)/(%d+)/(%d+) (%d+):(%d+):(%d+)"
                       local to_sec = os.date("%d/%m/%Y ")..to_sec..":00"
                       local day, month, year, hour, min, sec = to_sec:match(pattern)
                       return os.time({year = year, month = month, day = day, hour = hour, min = min, sec = sec})
                       end
			if ( ((tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", split(times[1],":")[1], split(times[1],":")[2])) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", split(times[2],":")[1], split(times[2],":")[2])) )) and (math.floor(os.time()/60)-math.floor(time_to_sec(times[1])/60))%times[3]:match("%d+") == 0 )
			then
			return true
			end  
 	   	 end
       	 return false 
		end
  
		if (type(times) == "table") and times[2]:sub(-1) == "h" then -- frequency call
			j_end = times[2]:match("%d+")
			if tonumber(j_end) == 0 or j_end == nil then j_end = 24 end
			j_end=math.ceil(24/j_end) 
			if #times == 3 and tonumber(times[3]) <= j_end then j_end = tonumber(times[3]) end
			if tonumber(split(times[1],':')[1])>24 then times[1]="24:00" end
			tNext={times[1]}
			for j=2, j_end do
				hNext = tonumber(split(times[1],':')[1]) + tonumber(times[2]:match("%d+"))*(j-1)
				if hNext >= 24 then hNext = hNext - 24 end
				if (hNext < 10) then tNext[j] = "0" .. tostring(hNext) .. ':' .. split(times[1],':')[2] else tNext[j] = tostring(hNext) .. ':' .. split(times[1],':')[2] end
			end
			times = tNext
		end
		if (type(times) ~= "table") then times = {times} end -- call by list of time
        for i=1, #times do 
          if GEA.checkTime(times[i], times[i]) then return GEA.checkTime(times[i], times[i]) end
		end  
		return os.date(GEA.trad.hour_format, GEA.runAt)
    end,
  }

Horloge cyclique - "Times" : 

    CONDITIONS : 
1.        GEA.add( {"Times", {"heure1", "heure2", "heure3", ..., "heureN"}, 30, "", {ACTIONS} )        
        -- format de l'heure HH:MM, démarre action à time1, time2, etc )
        

2.       GEA.add( {"Times", {"heure", "<fréquence>"}, 30, "", {ACTIONS} )        
        -- format de l'heure HH:MM, format fréquence 1h, 2h,...,24h (à partir d'une heure donnée, au cours d'une journée donnée), démarre action à time et et cycliquement dans le temps <frequency>. 
        -- ex. {"Times", {"02:00", "8h"} démarre action à 02:00, 10:00 et 18:00
        
3.        GEA.add( {"Times", {"heure", "<fréquence>", <fois>}, 30, "", {ACTIONS} )        -- format de l'heure HH:MM, format fréquence 1h, 2h,...,24h (à partir d'une heure donnée, au cours d'une journée donnée), fois N numeric (s'il dépasse 24 heures, il est limité à 24 heures), démarre action à time et et cycliquement dans le temps <frequency> maximum N fois. 
        -- ex. {"Times", {"02:00", "8h", 2} démarre action à 02:00, 10:00
        -- ex. {"Times", {"02:00", "18h", 3} démarre action à 02:00, 18:00 --s'il dépasse 24 heures, il est limité à 24 heures

 

4.        GEA.add( {"Times", {<heure de début>", "<heure de fin>", "<fréquence>"}, 30, "", {ACTIONS} )        -- format de l'heure HH:MM, format fréquence 1m, 2m,...,55h (à partir d'une heure donnée jusqu'à la d'une heure de fin), toutes les N minutes (fréquence). 
        -- ex. {"Times", {"14:55", "15:05", "3m"} démarre action à 14:55, 14:58, 15:01, 15:04
 

 


        
        -- GEA.add("Times", {"14:10", "14:57"}}, 30, "Times test step")
        -- GEA.add("Times", {"14:15", "3h"}}, 30, "Times test every 3h")
        -- GEA.add("Times", {"14:20", "1h", 3}}, 30, "Times test 1h x 3")

        -- GEA.add("Times", {"14:55", "15:05", "3m"}, 30, "Times test every 3 minutes")

    ACTIONS : Ne peut-êre utilisé comme ACTIONS

Modifié par drboss
J'ai ajouté une quatrième option (exécuter des commandes à partir de toutes les minutes spécifiées)

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 01/10/2019 à 21:46, drboss a dit :

Un autre plugin interne

Hello @drboss pour ton info, j'avais lancé il y a déjà quelques temps une bibliothèque pour référencer les pugins pour GEA.

 

C'est ici que ça se passe :

 

 Si tu veux bien mettre en forme tes plugins comme indiqué, je les ajouterais à la liste :60:

 

Les autres contributeurs sont évidement le bienvenu à compter cette liste ;)

 

Modifié par MAM78
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@MAM78 Bien sûr, je préparerai dans le format spécifié.
L'année dernière, j'ai également écrit avec @Steven (quand la version 6 a été créée) sur priv qu'il est intéressant de créer une bibliothèque de "plugins". Malheureusement, j'ai été absent pendant 8 mois et après mon retour, je n'ai pas remarqué la nouvelle bibliothèque. Je suis content que ça marche maintenant. Je vais essayer de rejoindre certains de mes plugins.

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 01/10/2019 à 13:47, drboss a dit :

Dans firmware 4.550 GEA ne crée pas de variables et ne génère pas d'erreur (

Yes, it's due to the new version of the firmware.

NEw version of GEA with this bug corrected is in test at home.

 

Thanks a lot for all your plugins and the fork of {"Time"} ;-) would be useful ad give chocie for the users. I give the connection with '"Time" for explanation

 

Le 01/10/2019 à 21:46, drboss a dit :

GEA.add( {"Times", {"heure1", "heure2", "heure3", ..., "heureN"}, 30, "", {ACTIONS} )  

This is ever possible with {"Time"} of the core of GEA but like this syntax

{ {"Time", "04:00"}, {"Time", "06:00"}, {"Time", "22:00"} }
Le 01/10/2019 à 21:46, drboss a dit :

{"Times", {"02:00", "8h"}

Equal of this

{ {"Time", "02:00"}, {"Time", "10:00"}, {"Time", "18:00"} }

 

Le 01/10/2019 à 21:46, drboss a dit :

{"Times", {"02:00", "8h", 2}

Equal of this

{ {"Time", "02:00"}, {"Time", "10:00"}}

 

I love this syntax :

Le 01/10/2019 à 21:46, drboss a dit :

{"Times", {"14:55", "15:05", "3m"}

Ever possible with "Time" and "Sleep" like this

 

GEA.add( {"Time", "14:55"}, 30, "", { {"ACTION1"}, {"Sleep", 3*60, {"ACTION2}}, {"Sleep", 3*60, {"ACTION3}}, {"Sleep", 3*60, {"ACTION4}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite don't be too critical for me after 8 months of my absence :13:;)

Yes the Time is universal command and I use it, but I created Times because is for me easier, simplest to control, calculate. Ergonomic individual point of view ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

débutant en GEA, je suis passé de la 6.01 à 6.11

en passage a 6.11 j'ai une erreur que je n'arrive pas a corriger :

 

[DEBUG] 20:24:33: 2019-10-21 20:24:33.765776 [ fatal] Unknown exception: /opt/fibaro/scenes/8.lua:735: attempt to index field 'globalvalue' (a nil value)

 

j'ai cette global que j'avais mis que je comprend plus :

33 ui.labelEtat.value

c'est pas normalement 33 value en déclaration de globale

aucune idée pour m'aider ?

 

 

Modifié par ArTi69

Partager ce message


Lien à poster
Partager sur d’autres sites

Petite question pour les experts GEA.

 

Est-ce que GEA accepte les conditions du type :

 

And( Or (Cond1, Cond2),

       Or (Cond3, And(Cond4, Cond5))

     ),

    (Cond 6)

 

En d'autres termes imbriquer dans un Or l'équivalent d'un And

 

Sachant que la condition ci-dessous elle fonctionne :

And( Or (Cond1, Cond2),

       Or (Cond3, Cond4, Cond5))

     ),

    (Cond 6)

 

Mon code GEA ci-dessous ne fonctionne pas, il génère une erreur :

 

 

21:47:19: 2019-10-21 21:47:18.293320 [ fatal] Unknown exception: /opt/fibaro/scenes/111.lua:1933: bad argument #1 to 'lower' (string expected, got table)

 

sur le ligne contenant le code suivant :

 

sname = string.lower(object[1]):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
 

GEA.add({{"Or", id["DETECTEUR_PORTE_SALON_ESCA"], 
                id["DETECTEUR_PORTE_SALON_PISC"], 
                id["DETECTEUR_PORTE_SAM"],
                id["DETECTEUR_PORTE_ENTREE"],
                id["DETECTEUR_PORTE_GARAGE"]
         },  
         {"Or", {"Label",id["VD_HUE_MANAGER_TERRASSE"], "lblState", "Off"},
                {{"Label",id["VD_HUE_MANAGER_TERRASSE"], "lblState", "On"}, {"Label-", id["VD_HUE_MANAGER_TERRASSE"], "lblTimer", "01:00"}},
                {"Label",id["VD_HUE_MANAGER_JARDIN"],   "lblState", "Off"},
                {{"Label",id["VD_HUE_MANAGER_TERRASSE"], "lblState", "On"}, {"Label-", id["VD_HUE_MANAGER_JARDIN"], "lblTimer", "01:00"}},
                {"Label",id["VD_HUE_MANAGER_GARAGE"],   "lblState", "Off"},
                {{"Label",id["VD_HUE_MANAGER_TERRASSE"], "lblState", "On"}, {"Label-", id["VD_HUE_MANAGER_GARAGE"], "lblTimer", "01:00"}}
         },  
         {"Time", "Sunset-15", "Sunrise+5"}
        }, -1, "",
        {{"turnOn", id["LAMPE_ENTREE_GARAGE"]},
         {"Label", id["VD_HUE_MANAGER_TERRASSE"], "lblTimer", "01:00"}, {"VirtualDevice", id["VD_HUE_MANAGER_TERRASSE"], 12}, 
         {"Label", id["VD_HUE_MANAGER_JARDIN"],   "lblTimer", "01:00"}, {"VirtualDevice", id["VD_HUE_MANAGER_JARDIN"], 12},
         {"Label", id["VD_HUE_MANAGER_GARAGE"],   "lblTimer", "01:00"}, {"VirtualDevice", id["VD_HUE_MANAGER_GARAGE"], 12}
       }, "Ouverture d'une porte, activation des lumières exterieurs")

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Après un petit Debug de GEA, j'ai trouvé la correction à apporter :60:

 

J'ai modifié les lignes suivantes :

    if (tname == "table") then
      sname = string.lower(object[1]):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
      originalName = object[1]
    else
      sname = string.lower(tostring(object)):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
    end

 

Par celles ci-dessous. Cela a corrigé le problème est espérant que ça n'a pas cassé autre chose. Merci aux experts de confirmer.

Si ma correction est bonne, il conviendra de l'ajouter dans une future correction ;)

 

    if (tname == "table") then
      if (type(object[1]) == "table") then 
        sname = string.lower(object[1][1]):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
        originalName = object[1][1]
      else
        sname = string.lower(object[1]):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
        originalName = object[1]
      end
    else
      sname = string.lower(tostring(object)):gsub("!", ""):gsub("+", ""):gsub("-", ""):gsub("%(", ""):gsub("%)", "")
    end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello 

 

Nouveau avec la HC2, je souhaite commencer avec la programmation GEA.

Ou puis-je télécharger la version 6.

En attendant vos réponses. Merci 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Tu n'as pas cherché assez, tu y étais presque, c'est dans le premier message de ce topic.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Effectivement j'ai bien vu qu'il y a un fichier V6.11 mais après téléchargement je ne peux pas l'ouvrir pour l'insérer dans une programmation lua.

Donc comme je ne ne suis pas du tout dans le domaine de l'informatique je pensai qu'il y avait un endroit ou on pouvait faire un copié collé comme pour la version 5 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Phenix une fois le fichier téléchargé, il faut l'ouvrir avec un éditeur, genre CODA sur Mac ou un autre sur PC.
Puis tu suis les instructions qui sont mentionnées sous Installation dans le premier post Gestionnaire d'Evénements Automatique (GEA) – version 6.11

Ce sont de manipulations basiques pour pouvoir programmer en Lua et reprendre de bout de code édités dans un éditeur de code externe.
Si ces manipulations ne te sont pas familières, j'ai peur que la suite ne soit pas évidente.

 

Modifié par sumsum

Partager ce message


Lien à poster
Partager sur d’autres sites

hello

 

je débute en V6 et j'ai uniquement écrit ceci :

 

  -- ==========================================================
  -- LE CODE UTILISATEUR DOIT ALLER ICI
  -- ==========================================================

 local id = {
 Lampe = 05,
 }
  
GEA.add( 05, 30, "", {"turnOff"} )

 

et voici l'erreur qu'il me retourne, 

Qu'est ce qui est mal écrit

 

 

image.png.64b5425eb309473932128aa2c29ea7c7.png

Partager ce message


Lien à poster
Partager sur d’autres sites

je ne comprend pas pourquoi la déclarer dans les variables du panneau !!!!

 

Etant donné que je commence à peine, j'avais créé quelque routine en V5 qui fonctionnent.

Alors je me suis dis autant passer de suite en V6 MAIS c'est la ou je bloque avec l'unique routine.

Donc si qqun peut m'aider se serait sympa.

 

Merci d’avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui il y a des gens pour aiguiller, mais lorsqu'on te propose une idée tu contres avec des points d'exclamations, à toi de choisir, j'ai d'autre choses à faire...

Voir mon post précédent et mon lien.

 

Autre point qui ne provoque pas le problème.

Si tu déclares Lampe =... c'est pour éviter de répéter le numéro d'ID plusieurs fois dans le code et d'augmenter la lisibilité.
Donc ton code à insérer devrait plutôt ressembler à:

 -- ==========================================================
 -- LE CODE UTILISATEUR DOIT ALLER ICI
 -- ==========================================================
 local id = {
 	Lampe = 05,
 	Lampe_couloir = 99
 }
  
GEA.add(id[Lampe], 30, "", {"turnOff"}) -- Eteindre la Lampe si elle est allumée depuis 30 secondes
GEA.add(id[Lampe_couloir], 60, "", {"turnOff"}) -- Eteindre la Lampe du couloir si elle est allumée depuis 60 secondes

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×