Aller au contenu

Recommended Posts

Ne doit aller dans l'entête que ce qui va avec une durée de -1 alors que tu as 1*60. Soit tu en élève ton 507 value de l'entête, soit tu mets -1. 

Partager ce message


Lien à poster
Partager sur d’autres sites

a oui   merci @Steven

mai 

GEA.add({"value", 507, 1}, -1 , "", {{"turnOn", 244}, {"Sleep", 70, {"turnOff", 244}}})

comme ça fonctionne à la détection d'un mouvement 

 

mai est ce que la commande RestartTask  et StopTask peut stoppé un ligne de instantané (-1) ?

 

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

si non,comment stoppé un ligne -1 autrement avec une condition ?

GEA.add({{"value", 507, 1}, {condition 2 }, -1 , "", {...

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 19 minutes, 971jmd a dit :

a oui   merci @Steven

mai 


GEA.add({"value", 507, 1}, -1 , "", {{"turnOn", 244}, {"Sleep", 70, {"turnOff", 244}}})

comme ça fonctionne à la détection d'un mouvement 

 

mai est ce que la commande RestartTask  et StopTask peut stoppé un ligne de instantané (-1) ?

 

 

 

 

 

Oui, cela fonctionne 

Partager ce message


Lien à poster
Partager sur d’autres sites

J’ai tester mai ça fonctionne pas

 

local coco=  GEA.add({"value", 507, 1}, -1 , .....

 

 

GEA.add({condition }, -1 , "", {{"StopTask", "coco"}....

Partager ce message


Lien à poster
Partager sur d’autres sites

coco ne doit pas être mis entre guillemets 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui c’Est une erreur de frappe 

 

GEA.add({condition }, -1 , "", {{"StopTask", coco}....

 

ça ne stop pas la ligne de commande 

Partager ce message


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

Cherche des exemple avec "StopTask" 

 

Ex :

 

local presence = GEA.add(...) -- extinction sur présence 

GEA.add(...,...,..., {"StopTask", presence}) -- humidité 1 heure. 

 

 

 

Voilà le résultat...qu'en penses-tu?

 

local id = {
 
	Presence_sdb_RDC = xx, -- Détection présence salle de bain rez-de-chaussée
	TxHumid_sdb_rdc = xx, -- Taux d'humidité salle de bain RDC
	CDE_VMC_RDC = xx, -- Commande extracteur d'air SDB RDC
    
}


--Gestion VMC SdB Rez-de-chaussée

  local PresenceSdbRDC = GEA.add( {id["Presence_sdb_RDC"]}, -1, "", {"turnOn", id["CDE_VMC_RDC"], 10*60}) -- Mise en marche sur présence pendant 10 minutes
		GEA.add( {"Value+", id["TxHumid_sdb_rdc"], 40}, 30, "", {{"turnOn", id["CDE_VMC_RDC"], 60*60}, {"StopTask", PresenceSdbRDC}}) -- Mise en marche sur taux humidité >40% pendant 60 minutes
 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@minaetdave Cela me semble bien


@971jmd & @minaetdave Ce qu'il faut bien comprendre sur le StopTask c'est qu'il met TOUTE la ligne en pause. Il n'est pas possible de stopper une exécution qui a déjà démarré. Le StopTask ne va pas stopper une action déjà démarrée comme un {"Sleep", ...} ou un {"TurnOn", ..., 10*60}.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

donc impossible pour StopTask  de fonctionné avec une ligne instantanée (-1) 

 

donc il nous reste une condition comme une variable global  pour bloquée un ligne de commande 

 

Exemple si je prend exemple sur le scénario de @minaetdave 

 

-----si detection mouvement aprés 2mm et variable HUMIDITE = 0  alors ON extrateur pendant 15 mm(900sec)
GEA.add({{"value", id["Presence_sdb_RDC"], "1"},  {"Global", "HUMIDITE", "0"}}, 2*60 , "", {
{"turnOn", id["CDE_VMC_RDC"]}, 
{"Sleep", 900, {"turnOff", id["CDE_VMC_RDC"]}} })


-----si detection DETEC_HUMIDIT à + de 39%  
GEA.add({"value+", id["TxHumid_sdb_rdc"], "39"},   -1 , "", {  -----si detection DETEC_HUMIDIT à + de 39%
{"turnOff", id["CDE_VMC_RDC"]},                              -----OFF extracteur
{"Global", "HUMIDITE", "1"},                                 -----Passage de la variable à 1
{"Sleep", 2, {"turnOn", id["CDE_VMC_RDC"]},                  -----ON extracteur
{"Sleep", 3600, {"turnOff", id["CDE_VMC_RDC"]}},              -----OFF extracteur aprés 3600sec 
{"Sleep", 3600, {"Global", "HUMIDITE", "0"}}  })              -----Passage de la variable à 0        
                                 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour tout le monde ;)

 

Je fais (encore) appel à vous car j'ai une question à vous poser...

 

Comment faire pour créer une variable printemps/été/automne/hiver et donc un module avec 4 boutons svp ?

 

Merci d'avance pour votre aide ;):74:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Heuuu..t es dans le support GEA la, tu n auras pas VD :-)

Envoyé de mon BND-L21 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 39 minutes, pepite a dit :

Bonjour,

Heuuu..t es dans le support GEA la, tu n auras pas VD :-)

Envoyé de mon BND-L21 en utilisant Tapatalk
 

Oui pardon, je vais poster dans la bonne section ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

question Function, Si on appelle plusieurs Function ("Function") doivent elles être déclinées sous différent nom?

ci dessous, extrait GEA, j'ai plusieurs cycles,  seulement la pompe filtration s'allume bien, puis s’arrête, puis redémarre,  exemple en début de cycle1 et après 1 à 2 min elle s’arrête puis 1 à 2 min après redémarre... et fera ça pendant tout le cycle1

 

--Eté Cycle 1

local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"}

-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleB()
	local from = fibaro:getGlobalValue('Etecycle1debut')  -- or "4:00"
	local to = fibaro:getGlobalValue ('Etecycle1fin')  -- or "7:00
	local now = os.date("%H:%M")
 
	local inplagecycleB = false
	if (to < from) then
		inplagecycleB = (now >= from) or (now <= to)
	else
		inplagecycleB = (now >= from) and (now <= to)
	end
 
	return inplagecycleB
end
 
--AUTO--  
 -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleB() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})
-- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD ,  depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleB() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})
------------------------------------------------------------------------------
--Eté Cycle 2

local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"}

-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleC()
	local from = fibaro:getGlobalValue('Etecycle2debut')  -- or "11:00"
	local to = fibaro:getGlobalValue ('Etecycle2fin')  -- or "12:00
	local now = os.date("%H:%M")
 
	local inplagecycleC = false
	if (to < from) then
		inplagecycleC = (now >= from) or (now <= to)
	else
		inplagecycleC = (now >= from) and (now <= to)
	end
 
	return inplagecycleC
end
 
--AUTO--  
 -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleC() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})
-- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD ,  depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleC() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})
  
------------------------------------------------------------------------------

 

Modifié par flamalex
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

je me reponds, en fait il faut décliner les " Function" sur la même ligne, ici l'extinction

 

--extinction de la filtration si filtration allumée dans en dehors (des) plage(s) horaire du VD ,  depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleA() end},{"Function", function() return not timecycleB() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})

 

Modifié par flamalex
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

salut à tous

 

j'ai un petit question, est-il possible d'envoyer la valeur une variable global par mail ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 19/04/2020 à 03:07, flamalex a dit :

Hello,

question Function, Si on appelle plusieurs Function ("Function") doivent elles être déclinées sous différent nom?

ci dessous, extrait GEA, j'ai plusieurs cycles,  seulement la pompe filtration s'allume bien, puis s’arrête, puis redémarre,  exemple en début de cycle1 et après 1 à 2 min elle s’arrête puis 1 à 2 min après redémarre... et fera ça pendant tout le cycle1

 


--Eté Cycle 1

local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"}

-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleB()
	local from = fibaro:getGlobalValue('Etecycle1debut')  -- or "4:00"
	local to = fibaro:getGlobalValue ('Etecycle1fin')  -- or "7:00
	local now = os.date("%H:%M")
 
	local inplagecycleB = false
	if (to < from) then
		inplagecycleB = (now >= from) or (now <= to)
	else
		inplagecycleB = (now >= from) and (now <= to)
	end
 
	return inplagecycleB
end
 
--AUTO--  
 -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleB() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})
-- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD ,  depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleB() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})
------------------------------------------------------------------------------
--Eté Cycle 2

local PISCINEAUTO = {"Global","Mode_Piscine","AUTO"}

-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleC()
	local from = fibaro:getGlobalValue('Etecycle2debut')  -- or "11:00"
	local to = fibaro:getGlobalValue ('Etecycle2fin')  -- or "12:00
	local now = os.date("%H:%M")
 
	local inplagecycleC = false
	if (to < from) then
		inplagecycleC = (now >= from) or (now <= to)
	else
		inplagecycleC = (now >= from) and (now <= to)
	end
 
	return inplagecycleC
end
 
--AUTO--  
 -- allumage de la filtration si filtration eteinte, fonction Ete et dans la plage horaire du VD , depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleC() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})
-- extinction de la filtration si filtration allumée dans en dehors plage horaire du VD ,  depuis 1 min
GEA.add ({{"Value",id["FILTRATION_PISCINE"],1},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return not timecycleC() end}}, 1*60, "" , {"turnOff",id["FILTRATION_PISCINE"]})
  
------------------------------------------------------------------------------

 

Salut @flamalex

 

je début en LUA et j'ai vu ton code intégrée à GEA et je souhaite de l'aide si vous le souhaitée , pour comprendre comment fonctionne une FONCTION dans GEA

 

mai avant tout chose je souhaite  comprendre son fonctionnement dans un émulateur LUA, j'ai transformer les variable local from, to, now en nombre.

mai je ne sais pas comment placer un PRINT pour voir le résultat ou les résultats   

 

 

ce que je comprend est les variables local from, to, now sont les arguments

 

merci d'avance 

 

-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleC()
	local from = 100
	local to = 10
	local now = 1
  
 print("total2 = "..inplagecycleC)
  
	local inplagecycleC = false
	if (to < from) then
		inplagecycleC = (now >= from) or (now <= to)
	else
		inplagecycleC = (now >= from) and (now <= to)
	
  
  end
 
	return inplagecycleC
    
end

 

 

GEA.add ({{"Value",id["FILTRATION_PISCINE"],0},{"Global", "Fonction", "Eté"}, PISCINEAUTO,{"Function", function() return timecycleC() end}}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})

GEA.add (si value filtration_piscine =1 , si Global Fonction = Eté, si global PISCINEAUTO= auto ,si "Function" ???????? }}, 1*60, "" , {"turnOn",id["FILTRATION_PISCINE"]})

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @971jmd

je suis pire que débutant en LUA :D, tu ne pouvais pas tomber sur pire :1:

 la fonction est un bout de code LUA intergrer dans GEA, Steven me l'avait communiqué pour me sortir d'une impasse, je l'ai ensuite adapté à d'autres scéne, toujours dans GEA

quelqu'un te viendra en aide

par contre je pense qu'il faut que tu ouvres un sujet spécifique "FUNCTION LUA"

perso ça m'intéresse car bientôt je vais gérer des valeurs type PH et REDOX dans la fonction, à la place de timecycle, il me faudra alors voir l’évolution du code

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

:D

 

après des recherche sur le net 

 j'ai compris comment fonctionne le code :P 

 


--- value id33e  est  superieur à 50 et que la function est = true   alors .....
GEA.add ({{"Value+",33, 50}, {"Function", function() return timecycleB() end}}, -1, "" , {.....

 


-- fonction pour recup les heures de debut cycle  et fin cycle  du VD
  function timecycleB()
	local de = "14:00"  -- or "4:00"
	local a = "15:00"  -- or "7:00
	local heure_actuel = os.date("%H:%M")
 
	local inplagecycleB = false
    
    
	if (a > de) then   ----- si 15:00 est superieur à 14:00
      
		inplagecycleB = (heure_actuel >= de) or (heure_actuel <= a) ---heure_actuel >= 14:00 ou heure_actuel  <= 14:00
	---else
	----	inplagecycleB = (heure_actuel >= de) and (heure_actuel <= a)
	end
 
	return inplagecycleB
end
 

GEA.add ({{"Value+",33, 50}, {"Function", function() return timecycleB() end}}, -1, "" , {.....
      

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

je n'avais probablement pas compris ta question <_<, ça ne concernait pas l’insertion du "print" pour suivre l’évolution?

pcq la, je ne vois pas ou tu l’intègres

mais bon! le principe est que tu t'y retrouves :D

Partager ce message


Lien à poster
Partager sur d’autres sites

l’insertion du "print" été juste pour comprend le principe de fonctionnement du code.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, 

 

Cela fait 2 fois que je me retrouve avec mon GEA qui plante... Voici le message que j'avais ce jour

 

 

:(Screenshot_20200421_210127_com.android.chrome.thumb.jpg.9eb2b20a192c6196ed3188f2ad7ca81d.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

tu devais avoir un trigger sur la variable jour/nuit, que tu as supprimé du code,

as tu supprimé de l’entete? si oui, save, quittes et reboot la hc2 pour voir.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui il me semble avoir supprimé cette variable de l'entête suite à un essai que j'avais fait. 

 

Je fais un reboot de suite et je vais surveiller... 

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

×