Aller au contenu

971jmd

Membres confirmés
  • Compteur de contenus

    3 525
  • Inscription

  • Dernière visite

Messages posté(e)s par 971jmd


  1. local lightID = id["PLAFONIER_CH"] -- ID de votre lumière
    local blinkTimes = 10 -- Nombre de fois que la lumière doit clignoter
    
    -- Fonction pour allumer la lumière
    local function turnOnLight()
        fibaro.call(lightID, "turnOn")
    end
    
    -- Fonction pour éteindre la lumière
    local function turnOffLight()
        fibaro.call(lightID, "turnOff")
    end
    
    -- Gestionnaire d'événement pour le bouton
    GEA.add({"CentralSceneEvent", id["TELECO_CH_PARENT"], 2, "Pressed"}, -1, "Clignotement démarré", { 
        -- Allumer la lumière immédiatement
        {"Call", lightID, "turnOn"},
    
        -- Boucle pour créer un effet de clignotement
        function()
            for i = 1, blinkTimes do
                GEA.add({}, i, "", {"Sleep", 1, {"Call", lightID, "turnOff"}}) -- Éteindre après 1 seconde
                GEA.add({}, i + 1, "", {"Sleep", 1, {"Call", lightID, "turnOn"}}) -- Allumer après 2 secondes
            end
        end
    })

     

    Salut à tous 

     

     

    J'essaye de faire clignoter, avec GEA et pour le moment ça ne fonctionne pas. Avez-vous une idée du problème ?

     

    Quand je clique sur l'interrupteur, je reçois bien la notification " clignotement démarré" mais pas de clignotement 

     

    merci d'avance 

     

     

     

     


  2. Bonjour à tous 

     

    Aujourd'hui c'est un jour férié  en Guadeloupe (mercredi des cendres) 

     

    j'ai tester comme ça (48 jour apres paque )

     

           josdJourFerieTab[os.date("%m-%d", epochPaques-(24*60*60)*48)] = true;  --  mercredi des cendre  - 48 jour apres paque 
     
    ça ne fonctionne pas 
     
     
    avez-vous une idée du problème 
     
    merci d'avance 
     
     
     

  3. salut tout le monde

     

    avez-vous quelque exemple enfin que je comprenne le code ci-dessous 

     

    merci d'avance 

     

    GEA.add({"Scenetest", "1", "2", "3", "4", "Result"}, 30, "Result is: #value#")
    
    Different scene?
    					local param1 = GEAPlugin.param1
    					local param2 = GEAPlugin.param2		
    					local param3 = GEAPlugin.param3
    					local param4 = GEAPlugin.param4
    local Result = param1 + param2 + param3 + param4
    
    					GEAPlugin.retour("Result")

  4. local autooffZ1 =  GEA.add(true, 5*60 , "", {{"turnOff", id["ECL_ZONE1"] }})
    
    GEA.add({"value", id["ZONE_1"] , true} , -1, "", { {"RestartTask", autooffZ1}  , {"TurnOn", id["ECL_ZONE1"]} })

    j'ai fait le test suivant qui fonctionne maintenant 

     

    Chaque fois que j'active le détecteur zone_1,  il relance la ligne de commande AUTOOFFZ1

     

    Mais il y a quelque chose que je n'aime pas trop, ou que je ne comprends pas. Quand je lance GEA il exécute la ligne de commande AUTOOFFZ1

     

     

     

     


  5. ---------- ZONE 1   -------------
    ---- Detecteur mouvement -------- 
    local autooffz1 = GEA.add(true, 60 , "", {{"turnOff", id["ECL_ZONE1"] } }) 
    
    GEA.add({"value", id["ZONE_1"] , true} , -1, "", {
    
    		 {"turnOn", id["ECL_ZONE1"] },{"RestartTask", autooffZ1}
             })

    Bonjour à tous 

     

    J'ai une question concernant le code si-dessus 

     

    Est-ce qu'à chaque fois qu'on passe devant le détecteur de la zone numéro un, est-ce que l'autooffz1 ce réinitialise et redémarre au début

     

    je ne suis pas sûr 

     

     

     

     

     


  6. Salut

     

    ok la version avec variables globales :

    JourChome

    JourChome

    QA_-_Jour_FerieVG.fqa

     

     

    autre chose, il y a quatre jours fériée que je souhaite rajouter pour la Guadeloupe

     

    ou placer le code ?

    ----GUADELOUPE
    		josdJourFerieTab[os.date("%m-%d", epochPaques-(24*60*60)*2)] = true;  -- Vendredi-saint = Pâques - 2 jour
            josdJourFerieTab[os.date("%m-%d", epochPaques-(24*60*60)*47)] = true;  -- Mardi gras = Pâques - 47 jour
    
            josdJourFerieTab["27-05"] = true; -- Abolition
            josdJourFerieTab["21-07"] = true; -- Victor Schoelcher

     

     

     


  7. Pourrais-tu précis, je souhaite faire de gestion horaire de l'éclairage, portai, climatisation..

     

    Exemple pour le portail :

     

    horaire d'ouverture 7:30 sauf le samedi et dimanche et jour férié (Le lundi de Pâques, Le jeudi de l’Ascension, Le jour de l’an etc..)

    horaire fermeture 12h:30 sauf le samedi et dimanche et jour férié  (Le lundi de Pâques, Le jeudi de l’Ascension, Le jour de l’an etc..)

     

    horaire d'ouverture 14:30 sauf le samedi et dimanche et jour férié  (Le lundi de Pâques, Le jeudi de l’Ascension, Le jour de l’an etc..)

    etc

     

     

     

     

     


  8. Il y a 1 heure, mprinfo a dit :

    Il suffit de chercher sur le forum emoji12.png

    Envoyé de mon BLA-L29 en utilisant Tapatalk
     

     

    je comprends, mais j'ai cherché par mot clé sur google .... 

     

    donne-moi un mot clé, un indice 


  9. Le 26/06/2014 à 17:05, HANSOLO a dit :

    V2 du 27/06/2014 grandement amélioré par STEVEN

     

    Nouveautés de la V2:

    - Calcul si le jour en cours et jour +1 est chômé ou pas

    - Choix des jours fériés France ou Suisse

    - Ce qui change par rapport à  la V1: ajout d'un label dans le module virtuel et ajout d'une variable globale JourChomeJ1, pour lancer le calcul depuis GEA ou SCHEDULER bouton 3 au lieu de 2 pour la version précédente.

     

    Objectif: calculer si le jour en cours est chômé (WE ou férié) ou pas et stocker le résultat dans une variable globale, le tout sans dépendre d'un agenda externe à  la HC2 et de script intermédiaire.

     

    Il s'agit d'une légère adaptation du code pour la VERA LITE de josDBlog

    http://gurau-audibert.hd.free.fr/josdblog/2014/01/lua-vacances-jours-chomes-et-jours-feries/

     

    1er étape, dans le panneau des variables, créer deux variables globale prédéfinie JourChome JourChomeJ1 avec les valeurs prédéfinies OUI NON.

    med_gallery_192_116_15019.jpg

     

    2 iém étape, créer un module virtuel avec deux labels et un bouton:

     

    sml_gallery_192_116_17107.jpg

    Le détail:

    gallery_192_116_53021.jpg

     

    Et ci-dessous la code à  coller dans le bouton du module virtuel:

    
    
     
    
    -- Retourne OUI si le jour courant et J+1 est un jour chômé (WE ou férié)
    -- Adapté de http://gurau-audibert.hd.free.fr/josdblog/2014/01/lua-vacances-jours-chomes-et-jours-feries/
    -- Pour la HC2 par Hansolo
    -- V1 26/06/2014 Initié par HANSOLO
    -- V2 27/06/2014 Amélioré par STEVEN, gestion des JS SUISSE et calcul J et J+1
     
    local france = true
    local suisse = false
    local geneve = false
     
    -- Retourne le jour de la semaine en clair
    function josdGetJourSemaine(jour)
    	--fibaro:debug ("jour: ")
    	josdGetJourSemaineTab={[0]="dimanche",[1]="lundi",[2]="mardi",[3]="mercredi",[4]="jeudi",[5]="vendredi",[6]="samedi"}
    	return josdGetJourSemaineTab[tonumber(jour)]
    end
     
    -- Retourne le jour de Pâques au format epoch
    -- annee : année (Integer) dont on désire connaître le jour de Pâques (ex : 2014)
    function josdGetJourPaques(annee)
    	local a=math.floor(annee/100);
    	local b=math.fmod(annee,100);
    	local c=math.floor((3*(a+25))/4);
    	local d=math.fmod((3*(a+25)),4);
    	local e=math.floor((8*(a+11))/25);
    	local f=math.fmod((5*a+,19);
    	local g=math.fmod((19*f+c-e),30);
    	local h=math.floor((f+11*g)/319);
    	local j=math.floor((60*(5-d)+b)/4);
    	local k=math.fmod((60*(5-d)+,4);
    	local m=math.fmod((2*j-k-g+h),7);
    	local n=math.floor((g-h+m+114)/31);
    	local p=math.fmod((g-h+m+114),31);
    	local jour=p+1;
    	local mois=n;
    	josdGetJourPaquesAnnee=annee;
    	josdGetJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0};
    	return josdGetJourPaquesEpochPaque;
    end
     
    -- Retourne true si le jour courant est un jour férié
    function josdJourFerie(time)
    	local today=os.date("%m-%d", time);
    	local annee=tonumber(os.date("%Y", time));
    	-- Dates fixes
    	josdJourFerieTab = {}
    	local epochPaques=josdGetJourPaques(annee);
    	if (france) then
    		josdJourFerieTab["01-01"] = true; -- 1er janvier
    		josdJourFerieTab["05-01"] = true; -- Fête du travail
    		josdJourFerieTab["05-08"] = true; -- Victoire des alliés
    		josdJourFerieTab["07-14"] = true; -- Fête nationale
    		josdJourFerieTab["08-15"] = true; -- Assomption
    		josdJourFerieTab["11-01"] = true; -- Toussaint
    		josdJourFerieTab["11-11"] = true; -- Armistice
    		josdJourFerieTab["12-25"] = true; -- Noà«l
    		-- Dates variables
    		josdJourFerieTab[os.date("%m-%d",epochPaques)] = true;             -- Pâques
    		josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60)] = true;    -- Lundi de Pâques = Pâques + 1 jour
    		josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*39)] = true;  -- Ascension = Pâques + 39 jours
    		josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*50)] = true; -- Pentecôte = Ascension + 50 jours
    	end
    	if (suisse) then 
    		josdJourFerieTab["01-01"] = true; -- 1er janvier
    		josdJourFerieTab["08-01"] = true; -- Fête national
    		josdJourFerieTab["12-25"] = true; -- Noà«l
    		-- Dates variables
    		if (geneve) then 
    			josdJourFerieTab[jeuneGenevois(time)] = true;             -- jeunes genevois
    		else
    			josdJourFerieTab[jeuneFederal(time)] = true;             -- jeunes genevois
    		end
    		josdJourFerieTab[os.date("%m-%d", epochPaques)] = true;             -- Pâques
    		josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60)] = true;    -- Lundi de Pâques = Pâques + 1 jour
    		josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60*39)] = true;  -- Ascension = Pâques + 39 jours
    		josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60*50)] = true; -- Pentecôte = Ascension + 50 jours
    		josdJourFerieTab[os.date("%m-%d", epochPaques-48*60*60)] = true;  -- Vendredi-saint = Pâques - 2 jour
    	end
    	return josdJourFerieTab[today]; -- (nldr : Both nil and false make a condition false)
    end
     
     -- Calcul le jeudi qui suit le 1er dimanche de septembre
    function jeuneGenevois(time)
      	local jour = 1
    	local annee = tonumber(os.date("%Y", time))
    	while (os.date("%A", os.time{year=annee, month=9, day=jour}) ~= "Sunday") do
    		jour = jour + 1
    	end
    	return os.date("%m-%d", os.time{year=annee, month=9, day=(jour+4)})
    end
     
    -- Calcul le lundi qui suit le 3ème dimanche de septembre
    function jeuneFederal(time)
      	local jour = 1
    	local annee = tonumber(os.date("%Y", time))
    	while (os.date("%A", os.time{year=annee, month=9, day=jour}) ~= "Sunday") do
    		jour = jour + 1
    	end
    	return os.date("%m-%d", os.time{year=annee, month=9, day=(jour+15)})
    end
     
     -- Affiche le résultat
    function display(jour, result, label, variable, time)
    	selfId = fibaro:getSelfId()
    	fibaro:debug ("Jour chomé: " .. result)
    	-- Mise à  jour de la variable globale
    	if (variable) then fibaro:setGlobal(variable, result) end
    	-- Mise à  jour du label du module virtuel
    	fibaro:call(selfId,"setProperty","ui."..label..".value", jour .. " " .. os.date("%d.%m.%Y ",time).." Jour chomé: ".. result) 
    end
     
     -- Lancement du calcul
    function doCalculate(time, label, variable)
    	local jour = josdGetJourSemaine(os.date("%w", time))
    	josdJourChomeReturn = (jour=="samedi" or jour=="dimanche" or josdJourFerie(time))
    	if josdJourChomeReturn then
    		display(jour, "OUI", label, variable, time)
    	else
    		display(jour, "NON", label, variable, time)
    	end
    end
     
    doCalculate(os.time(), "Label1", "JourChome")
    doCalculate(os.time()+24*60*60, "Label2", "JourChomeJ1")

    J’exécute le code tous les jours à  00H15 depuis le Scheduler (90 étant l'ID de mon module virtuel et 3 la position du bouton) ce qui évite d'utiliser le main loop du module virtuelle et d'éventuels problèmes.

    
    luaDaySchedule:add("00:15","90", 3 , "pressButton",{"All"},true)

    La même chose depuis GEA.

    
    GEA.add({"Global", "", ""}, 30, "", {{"VirtualDevice", 90, 3},{"Time", "00:00", "00:01"}})

    Pour choisir les jours fériés France ou Suisse (au début du code)

    
    local france = oui
    local suisse = non
    local geneve = non

    Merci à  STEVEN pour les améliorations.

     

    Voilà  un truc tout simple que j'utilise pour gérer mes volets 

     

    Correction du 13/07/2014, utiliser true ou false pour la sélection des calendriers des jours fériés

    local france = true

    local suisse = false

    local geneve = false 

     

    Correction du 14/04/2015, calcul du jeudi de l’ascension erroné

     

    Correction du 03/05/2015, calcul du jeudi de l'ascension dans la partie Suisse

     

    Correction du 25/05/2015, calcul du lundi de pentcôte

     

     

    Salut

     

    Est-ce qu'on peut trouver ce plug-in pour la gestion des jours fériés sur la HC3 ?

     

     

     

     

     

×