Aller au contenu

Messages recommandés

Posté(e)

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. 

Posté(e)

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

 

 

 

 

 

Posté(e)

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

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

 

Posté(e)
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 

Posté(e)

J’ai tester mai ça fonctionne pas

 

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

 

 

GEA.add({condition }, -1 , "", {{"StopTask", "coco"}....
Posté(e)

Oui c’Est une erreur de frappe 

 

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

 

ça ne stop pas la ligne de commande 

Posté(e)
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
 

 

 

Posté(e)

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

 

Posté(e) (modifié)

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
Posté(e)

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:

Posté(e)
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 ;)

Posté(e) (modifié)

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
Posté(e) (modifié)

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
Posté(e) (modifié)
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
Posté(e)

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
Posté(e) (modifié)

: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
Posté(e)

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

Posté(e)

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.

Posté(e)

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

×
×
  • Créer...