Aller au contenu

Jour Chômé


HANSOLO

Messages recommandés

  • 10 mois après...

Attention les gars, avec le VD de @Steven sur les vacances utilisant l'url d'index-education ça ne fonctionne plus depuis le 31 août 2019. Le fichier n'est plus mis à jour et d'après l'entreprise ne le sera plus.

Reste à voir si on peut obtenir les dates d'une autre façon de manière automatique...par exemple grâce à l'opendata ici : https://www.data.gouv.fr/fr/datasets/le-calendrier-scolaire/ (j'arrive pas à récupérer le json dans l'url, juste à le dl).

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
Le 26/06/2014 à 23:05, HANSOLO a dit :

La même chose depuis GEA.


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

Hello,

 

Je viens d'installer ce VD qui m'intéresse beaucoup, merci beaucoup @HANSOLO de l'avoir partagé, j'ai donc réussi à crée les variables et le  VD

 

J'ai rentré la ligne dans le GEA.

 

Deux questions : 

  • Comment connaitre l'ID de mon VD (le tiens est 90) je ne vois pas ou trouver cette information
  • ET est ce qu'il faut déclarer quelque chose en début de code dans le GEA sous :

 

 local id =
    {
    DetecteurMVT    = 74,
    LampeExterieur  = 67,
    DetecteurMVT_cellier    = 94,
    Lampe_cellier  = 44
     }

 

et en dessous de %% properties

 

Car mon Debug n'ai pas content :police:

 

1496934406_Capturedecran2019-09-11a23_36_36.png.73d8d59a8aeaf1ec6c57f9d56d88db07.png

 

Merci d'avance de vos retours :P

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @mipa,

 

D'abord, lis ceci ca peut t'aider

https://www.domotique-fibaro.fr/forum/83-la-home-center-pour-les-nuls/

 

Alors la ligne GEA n'est plus valide en version 6.11 actuelle.

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

 

Rien à mettre sous %%properties, c'est uniquement pour les declenchements instantanés.

 

Pour connaitre l'id de ton VD, une des methodes simples est de positionner la souris sur la clé à molette de ton VD SANS CLIQUER et en bas à gauche à la fin de l'url tu vas voir un chiffre/nombre, c'est celui la ;-)

Lien vers le commentaire
Partager sur d’autres sites

Le 12/09/2019 à 09:03, pepite a dit :

Dit donc @pepite 

 

J'ai parcouru tous les sujets dédié aux nuls (te remercie du cadeau....) et ....

 

pas une seule page sur le GEA !

 

Que ce que ça veux dire ?? C'est pas pour les nuls le GEA ? :1:

 

A quand un onglet GEA dans la section "débutant" :D ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...
Le 12/09/2019 à 09:03, pepite a dit :

...

 

Alors la ligne GEA n'est plus valide en version 6.11 actuelle.


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

 

...

Salut,

 

J'ai installé GEA ainsi que le VD jour chomé ...du coups on utilise quoi si la ligne GEA n'est plus valide?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Bonjour à tous,

Merci pour ce module très interressant, mais j'ai un petit soucis sur le fonctionnement pour le calcul du jour de pâques, je ne comprends pas la série de calcul et je n'arrives donc pas à corriger.

Il semble manquer des arguments pour le calcul de f et k (pas de valeur après les opérateurs + avant la virgule). j'ai essayé de tâtonner mais je n'y arrives pas et je préférerais comprendre.

	local f=math.fmod((5*a+,19);
	local k=math.fmod((60*(5-d)+,4);

quelqu'un peu m'aider stp ?

Lien vers le commentaire
Partager sur d’autres sites

Le 28/03/2020 à 19:00, minaetdave a dit :

Salut,

 

J'ai installé GEA ainsi que le VD jour chomé ...du coups on utilise quoi si la ligne GEA n'est plus valide?

 

Merci

Moi via GEA j'utilise la ligne de commande 

GEA.add({"Time", "00:30"}, 30, "", {{"VirtualDevice", id["VD_JOUR_CHOME"], 3}})

et cela fonctionne correctement

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 33 minutes, Laurent2a a dit :

Bonjour à tous,

Merci pour ce module très interressant, mais j'ai un petit soucis sur le fonctionnement pour le calcul du jour de pâques, je ne comprends pas la série de calcul et je n'arrives donc pas à corriger.

Il semble manquer des arguments pour le calcul de f et k (pas de valeur après les opérateurs + avant la virgule). j'ai essayé de tâtonner mais je n'y arrives pas et je préférerais comprendre.


	local f=math.fmod((5*a+,19);
	local k=math.fmod((60*(5-d)+,4);

quelqu'un peu m'aider stp ?

Voici ce que j'ai

il te manque bien une variable dans le calcul de f et de k

 

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+b),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)+b),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

 

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

  • 1 an après...
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 ?

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...