Page 1 sur 6

Scripts pour fête & Anniversaire du jour

Publié : 14 avr. 2016, 23:19
par Chris54220
bonjour a tout je me suis crée un script pour toute les fêtes et anniversaire tout marche bien sauf que je voudrai ajouter

- fête des pères
- fête des mères
etc......

mais vu que sa change de date toutes les années je peux me basé que sur le premier ou deuxième ...... dimanche du mois

donc je demande votre aide SVP


PS: voila mon scripts pour ceux qui veulent et si ça vous aide

Code : Tout sélectionner

-- /home/pi/domoticz/scripts/lua
-- Christopher JOLLY - 2016
commandArray = {}
--------------------------------
------ Variables à éditer ------
--------------------------------
local Anniversaire_text_idx = 31			-- idx du capteur texte
local debug	= 'oui'							-- oui ou non pour avoir des valeurs dans le log
local Anni	= ' '
local Fete	= ' '
--------------------------------
-- Fin des variables à éditer --
--------------------------------

hour	= tonumber(os.date("%H"));
min		= tonumber(os.date("%M"));
day		= tonumber(os.date("%d"));
moth	= tonumber(os.date("%m"));

-- Liste des Fête
if (day == 01 and moth == 01) then Fete = 'Bonne Année' end	
if (day == 25 and moth == 12) then Fete = 'Joyeux Noël' end	
-- Liste Anniversaire
if (day == 10 and moth == 01) then Anni = 'Anniversaire de Bruce toto Cyndel toto' end	
if (day == 27 and moth == 01) then Anni = 'Anniversaire de Valérie toto' end	
if (day == 08 and moth == 02) then Anni = 'Anniversaire de Cedric toto' end	
if (day == 30 and moth == 03) then Anni = 'Anniversaire de Elisa toto' end	
if (day == 06 and moth == 04) then Anni = 'Anniversaire de Dommie toto' end
if (day == 03 and moth == 06) then Anni = 'Anniversaire de Florian toto' end
if (day == 27 and moth == 06) then Anni = 'Anniversaire de Christopher toto' end	
if (day == 12 and moth == 08) then Anni = 'Anniversaire de Julie toto' end
if (day == 02 and moth == 09) then Anni = 'Anniversaire de Jean-Michel toto' end
if (day == 01 and moth == 10) then Anni = 'Anniversaire de Cyril toto' end
if (day == 16 and moth == 11) then Anni = 'Anniversaire de Charlène toto' end
if (day == 01 and moth == 12) then Anni = 'Anniversaire de Halfa' end
if (day == 07 and moth == 12) then Anni = 'Anniversaire de Virginie toto' end
if (day == 12 and moth == 12) then Anni = 'Anniversaire de Bruno toto' end

-- Mise à jour device Info du jour
if (hour == 00 and min == 10)
	then
		if (Anni ==' ' and Fete ==' ')
			then commandArray['UpdateDevice'] = Anniversaire_text_idx .. '|0| '
			else
				if (Anni ==' ') then
					else commandArray['UpdateDevice'] = Anniversaire_text_idx .. ' ' .. Anni end
				if (Fete ==' ') then
					else commandArray['UpdateDevice'] = Anniversaire_text_idx .. '|0| ' .. Fete end
		end
end

return commandArray

Re: Petit quetion pour crée une condition if

Publié : 15 avr. 2016, 00:40
par vil1driver
salut,

tu peux aller voir ce site tous les 3 ans :D
http://www.joursferies.fr/fetes_des_meres.php

la fête des mères est fixée au dernier dimanche de mai sauf si cette date coïncide avec celle de la Pentecôte
auquel cas elle a lieu le premier dimanche de juin.

la fête des pères est fixée au 3e dimanche de juin.

Pentecôte = Pâques + 49 jours

Code : Tout sélectionner

--[[


name: script_time_feteDesMeresPeres.lua

calcule du jour de la fête de mères

la fête des mères est fixée au dernier dimanche de mai sauf si cette date coïncide avec celle de la Pentecôte
auquel cas elle a lieu le premier dimanche de juin.

la fête des pères est fixée au 3e dimanche de juin.

Pentecôte = Pâques + 49 jours

--]]

function getJourPaques(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
    getJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}
	return getJourPaquesEpochPaque
end

commandArray = {}

local annee = os.date("%Y")
--local annee = "2017"
local epochPaques=getJourPaques(annee)


local paques = os.date("%d:%m",epochPaques)         			-- Pâques
local pentecote = os.date("%d:%m",epochPaques+24*60*60*49)		-- Pentecôte = Pâques + 49 jours

local derJourMai = tonumber(os.date("%w",os.time{year=annee,month=5,day=31}))		-- dernier jour de Mai

local derDimMai = 31-derJourMai..":05"
local premDimJuin = 7-derJourMai..":06"
local troisDimJuin = 21-derJourMai..":06"


--print('************************************')

--print("pâques: "..paques)
--print("Pentecôte: "..pentecote)
	
--print("dernier jour de Mai: "..derJourMai)

--print("dernier dimanche de Mai: "..derDimMai)
--print("premier dimanche de Juin: "..premDimJuin)
--print("troisième dimanche de Juin: "..troisDimJuin)

print('************************************')

if derDimMai == pentecote then
	meres = premDimJuin
else
	meres = derDimMai
end

print('fête des mères: '..meres..":"..annee)
print('fête des pères: '..troisDimJuin..":"..annee)

print('************************************')
return commandArray

Code : Tout sélectionner

2016-04-15 02:06:03.227 LUA: ************************************
2016-04-15 02:06:03.227 LUA: fête des mères: 29:05:2016
2016-04-15 02:06:03.227 LUA: fête des pères: 19:06:2016
2016-04-15 02:06:03.227 LUA: ************************************ 

Re: Scripts pour fête & Anniversaire du jour

Publié : 15 avr. 2016, 12:03
par papoo
pour ma part j'ai intégré les anniversaires à l'affichage des saints du jour via l'api domogeek (qui fourni les infos des fetes)
j'aurais préféré la gestion des fêtes et anniversaires via un tableau (local anniversaire = {};) mais je ne sais pas récupérer l'info
il me reste à trouver comment afficher dans les saints du lendemain l’anniversaire prévu ... le lendemain

Code : Tout sélectionner

[code]
--[[
name : script_time_fete_du_jour.lua
auteur : papoo
MAJ : 16/03/2019
date : 28/05/2016
Principe : Ce script a pour but d'afficher dans un device texte l'évenement (anniversaire, jour férié ou fête) du jour et du lendemain
http://pon.fr/fete-du-jour-et-du-lendemain-en-lua/
https://easydomoticz.com/forum/viewtopic.php?f=10&t=1878
]]--
--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 

local debugging = false                             -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local fete_text_idx = nil                           -- idx du capteur texte saint du jour, nil si inutilisé
local fete_demain_text_idx = nil                    -- idx du capteur texte saint du lendemain, nil si inutilisé
local anniversaire_text_idx = nil                   -- idx du capteur texte anniversaire du jour pour afficher les anniversaires dans un device séparé, nil si inutilisé
local anniversaire_demain_text_idx = nil            -- idx du capteur texte anniversaire du lendemain pour afficher les anniversaires dans un device séparé, nil si inutilisé
local jour_ferie_switch = "Jour Ferie"              -- nom du capteur switch jour férié, nil si inutilisé
local jour_ferie_scene = "Jour Férié"               -- nom du scénario jour férié entre, nil si inutilisé
local variable_jour = "Saint_Jour"                  -- nom de la variable jour, nil si inutilisé
local variable_lendemain = "Saint_Lendemain"        -- nom de la variable lendemain, nil si inutilisé
local variable_jour_ferie = "Jour_ferie"            -- nom de la variable
local Scene_Semaine_Paire = "Semaine Paire"         -- nom du scénario semaine paire, nil si inutilisé
local Scene_Semaine_Impaire = "Semaine Impaire"     -- nom du scénario semaine impaire, nil si inutilisé
local Scene_Week_End = "Week-End"                   -- nom du scénario Week-End, nil si inutilisé
local date_mariage = 1999                           -- année de votre date de mariage
local jour_semaine_switch = "Jour de la semaine"    -- nom du capteur switch jour de la semaine, nil si inutilisé
local ferie_vendredi_saint = false                  -- true si le vendredi saint est un jour férié (Moselle (57), Bas-Rhin (67) et Haut-Rhin (68), sinon false
local ferie_lendemain_noel = false                  -- true si le lendemain de noel est un jour férié (Moselle (57), Bas-Rhin (67) et Haut-Rhin (68), sinon false
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Fete du jour et du lendemain'
local version = "1.69"							-- version du script
local fete_jour = ''
local fete_demain = ''
local ferie =  ''
local anniversaire = {}	
local saint_jour = {}
local jour_ferie = {}
--------------------------------------------
---------------- Fonctions -----------------
-------------------------------------------- 
package.path = package.path..";/home/pi/domoticz/scripts/lua/fonctions/?.lua"   -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script
require('fonctions_perso')                                                      -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script

-- ci-dessous les lignes à décommenter en cas d'utilisation des fonctions directement dans ce script( supprimer --[[ et --]])
--[[function voir_les_logs (s, debugging) -- nécessite la variable local debugging
    if (debugging) then 
		if s ~= nil then
        print (s)
		else
		print ("aucune valeur affichable")
		end
    end
end	-- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--------------------------------------------
function year_difference(s)
    return tostring(os.date("%Y")) - tostring(s)
end
function date_en_francais(str)
    if (str) then
	str = string.gsub(str, "January", "Janvier");
	str = string.gsub(str, "February",	"Février")
	str = string.gsub(str, "March",	"Mars")
	str = string.gsub(str, "April",	"Avril")
	str = string.gsub(str, "May",	"Mai")
	str = string.gsub(str, "June",	"Juin")
	str = string.gsub(str, "July",	"Juillet")
	str = string.gsub(str, "August",	"Août")
	str = string.gsub(str, "september",	"Septembre")
	str = string.gsub(str, "October",	"Octobre")
	str = string.gsub(str, "November",	"Novembre")
	str = string.gsub(str, "December",	"Décembre")
	str = string.gsub(str, "Monday",	"Lundi")
	str = string.gsub(str, "Tuesday",	"Mardi")
	str = string.gsub(str, "Wednesday",	"Mercredi")
	str = string.gsub(str, "Thursday", "Jeudi")
    str = string.gsub(str, "Friday", "Vendredi")
    str = string.gsub(str, "Saturday", "Samedi")
    str = string.gsub(str, "Sunday", "Dimanche")

     end
    return (str)
end
--]]
--------------------------------------------
------------- Fin Fonctions ----------------
-------------------------------------------- 
commandArray = {}
time = os.date("*t")
-- Trigger at 00:20 
--[[time = os.date("*t")]] --

--if time.hour % 2 == 0 then -- toutes les deux heures
if (time.hour%2 == 0 and time.min == 10) then  --Toutes les 2 heures et 10 minutes
--if time.min % 1 == 0 then 

voir_les_logs("=========== Fete du jour (v".. version ..") ===========",debugging)
local today=tostring(os.date("%d:%m"))
voir_les_logs("--- --- --- Date du jour : ".. today,debugging) 
local tomorrow=tostring(os.date("%d:%m",os.time()+24*60*60))
voir_les_logs("--- --- --- Date de demain : ".. tomorrow,debugging) 
local annee_mariage = tostring(os.date("%Y")) - tostring(date_mariage)
local annee_mariage = year_difference(date_mariage)
local jour = tonumber(os.date("%w"))
if (jour == 0) or (jour == 6) then
	voir_les_logs("--- --- --- jour ".. jour .." c\'est le week-end ",debugging)    
        if Scene_Week_End ~= nil then
            commandArray['Scene:'..Scene_Week_End] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  ".. Scene_Week_End .." => On",debugging)            
        end   
else
    voir_les_logs("--- --- --- jour ".. jour .." c\'est la semaine",debugging)
        if Scene_Week_End ~= nil then
            commandArray['Scene:'..Scene_Week_End] = 'Off'        
			voir_les_logs("--- --- --- Mise à jour scénario  ".. Scene_Week_End .." => Off",debugging)        
        end
end
anniversaire["28:05"]="l\'anniversaire de Pierre"
anniversaire["29:05"]="l\'anniversaire de Paul"
anniversaire["30:05"]="l\'anniversaire de Jacques"
anniversaire["01:06"]="nos ".. annee_mariage .." ans de mariage"
--===========================================================
saint_jour["01:01"]="le jour de l\'An"
saint_jour["02:01"]="les Basile"
saint_jour["03:01"]="les Geneviève"
saint_jour["04:01"]="les Odilon"
saint_jour["05:01"]="les Édouard"
saint_jour["06:01"]="les André"
saint_jour["07:01"]="les Raymond"
saint_jour["08:01"]="les Lucien"
saint_jour["09:01"]="les Alix de Ch."
saint_jour["10:01"]="les Guillaume"
saint_jour["11:01"]="les Paulin d Aquilee"
saint_jour["12:01"]="les Tatiana"
saint_jour["13:01"]="les Yvette"
saint_jour["14:01"]="les Nina"
saint_jour["15:01"]="les Rémi"
saint_jour["16:01"]="les Marcel"
saint_jour["17:01"]="les Roseline"
saint_jour["18:01"]="les Prisca"
saint_jour["19:01"]="les Marius"
saint_jour["20:01"]="les Sébastien"
saint_jour["21:01"]="les Agnès"
saint_jour["22:01"]="les Vincent"
saint_jour["23:01"]="les Barnard"
saint_jour["24:01"]="les François"
saint_jour["25:01"]="la Conversion de Paul"
saint_jour["26:01"]="les Paule"
saint_jour["27:01"]="les Angèle"
saint_jour["28:01"]="les Thomas"
saint_jour["29:01"]="les Gildas"
saint_jour["30:01"]="les Martine"
saint_jour["31:01"]="les Marcelle"
saint_jour["01:02"]="les Ella"
saint_jour["02:02"]="les Theophane"
saint_jour["03:02"]="les Blaise"
saint_jour["04:02"]="les Véronique"
saint_jour["05:02"]="les Agathe"
saint_jour["06:02"]="les Gaston"
saint_jour["07:02"]="les Eugénie"
saint_jour["08:02"]="les Jacqueline"
saint_jour["09:02"]="les Apolline"
saint_jour["10:02"]="les Arnaud"
saint_jour["11:02"]="les Severin"
saint_jour["12:02"]="les Felix"
saint_jour["13:02"]="les Beatrice"
saint_jour["14:02"]="les Valentin"
saint_jour["15:02"]="les Claude"
saint_jour["16:02"]="les Julienne"
saint_jour["17:02"]="les Alexis"
saint_jour["18:02"]="les Bernadette"
saint_jour["19:02"]="les Gabin"
saint_jour["20:02"]="les Aimee"
saint_jour["21:02"]="les Damien"
saint_jour["22:02"]="les Isabelle"
saint_jour["23:02"]="les Lazare"
saint_jour["24:02"]="les Modeste"
saint_jour["25:02"]="les Romeo"
saint_jour["26:02"]="les Nestor"
saint_jour["27:02"]="les Honorine"
saint_jour["28:02"]="les Romain"
saint_jour["29:02"]="les Augula"
saint_jour["01:03"]="les Aubin"
saint_jour["02:03"]="les Charles"
saint_jour["03:03"]="les Gwenole"
saint_jour["04:03"]="les Casimir"
saint_jour["05:03"]="les Olive"
saint_jour["06:03"]="les Colette"
saint_jour["07:03"]="les Félicité"
saint_jour["08:03"]="les Jean"
saint_jour["09:03"]="les Françoise"
saint_jour["10:03"]="les Vivien"
saint_jour["11:03"]="les Rosine"
saint_jour["12:03"]="les Justine"
saint_jour["13:03"]="les Rodrigue"
saint_jour["14:03"]="les Maud"
saint_jour["15:03"]="les Louise"
saint_jour["16:03"]="les Benedicte"
saint_jour["17:03"]="les Patrick"
saint_jour["18:03"]="les Cyrille"
saint_jour["19:03"]="les Joseph"
saint_jour["20:03"]="les Herbert"
saint_jour["21:03"]="les Clemence"
saint_jour["22:03"]="les Lea"
saint_jour["23:03"]="les Victorien"
saint_jour["24:03"]="les Catherine"
saint_jour["25:03"]="les Humbert"
saint_jour["26:03"]="les Larissa"
saint_jour["27:03"]="les Habib"
saint_jour["28:03"]="les Gontran"
saint_jour["29:03"]="les Gwladys"
saint_jour["30:03"]="les Amedee"
saint_jour["31:03"]="les Benjamin"
saint_jour["01:04"]="les Hugues"
saint_jour["02:04"]="les Sandrine"
saint_jour["03:04"]="les Richard"
saint_jour["04:04"]="les Isidore"
saint_jour["05:04"]="les Irene"
saint_jour["06:04"]="les Marcellin"
saint_jour["07:04"]="les Jean-Baptiste"
saint_jour["08:04"]="les Julie"
saint_jour["09:04"]="les Gautier"
saint_jour["10:04"]="les Fulbert"
saint_jour["11:04"]="les Stanislas"
saint_jour["12:04"]="les Jules 1er"
saint_jour["13:04"]="les Ida"
saint_jour["14:04"]="les Maxime"
saint_jour["15:04"]="les Paterne"
saint_jour["16:04"]="les Benoît"
saint_jour["17:04"]="les Étienne"
saint_jour["18:04"]="les Parfait"
saint_jour["19:04"]="les Emma"
saint_jour["20:04"]="les Odette"
saint_jour["21:04"]="les Anselme"
saint_jour["22:04"]="les Alexandre"
saint_jour["23:04"]="les Georges"
saint_jour["24:04"]="les Fidèle"
saint_jour["25:04"]="les Marc"
saint_jour["26:04"]="les Alida"
saint_jour["27:04"]="les Zita"
saint_jour["28:04"]="les Valérie"
saint_jour["29:04"]="les Catherine"
saint_jour["30:04"]="les Robert"
saint_jour["01:05"]="les Joseph"
saint_jour["02:05"]="les Boris"
saint_jour["03:05"]="les Philippe"
saint_jour["04:05"]="les Sylvain"
saint_jour["05:05"]="les Judith"
saint_jour["06:05"]="les Prudence"
saint_jour["07:05"]="les Gisèle"
saint_jour["08:05"]="les Desire"
saint_jour["09:05"]="les Pacôme"
saint_jour["10:05"]="les Solange"
saint_jour["11:05"]="les Estelle"
saint_jour["12:05"]="les Achille"
saint_jour["13:05"]="les Rolande"
saint_jour["14:05"]="les Matthias"
saint_jour["15:05"]="les Denise"
saint_jour["16:05"]="les Honore"
saint_jour["17:05"]="les Pascal"
saint_jour["18:05"]="les Éric"
saint_jour["19:05"]="les Yves"
saint_jour["20:05"]="les Bernardin"
saint_jour["21:05"]="les Constantin"
saint_jour["22:05"]="les Émile"
saint_jour["23:05"]="les Didier"
saint_jour["24:05"]="les Donatien"
saint_jour["25:05"]="les Sophie"
saint_jour["26:05"]="les Bérenger"
saint_jour["27:05"]="les Augula"
saint_jour["28:05"]="les Germain"
saint_jour["29:05"]="les Aymard"
saint_jour["30:05"]="les Ferdinand"
saint_jour["31:05"]="les Perrine"
saint_jour["01:06"]="les Justin"
saint_jour["02:06"]="les Blandine"
saint_jour["03:06"]="les Charles"
saint_jour["04:06"]="les Clotilde"
saint_jour["05:06"]="les Igor"
saint_jour["06:06"]="les Norbert"
saint_jour["07:06"]="les Gilbert"
saint_jour["08:06"]="les Médard"
saint_jour["09:06"]="les Diane"
saint_jour["10:06"]="les Landry"
saint_jour["11:06"]="les Barnabé"
saint_jour["12:06"]="les Guy"
saint_jour["13:06"]="les Antoine"
saint_jour["14:06"]="les Élisée"
saint_jour["15:06"]="les Germaine"
saint_jour["16:06"]="les Jean-François"
saint_jour["17:06"]="les Hervé"
saint_jour["18:06"]="les Leonce"
saint_jour["19:06"]="les Romuald"
saint_jour["20:06"]="les Silvère"
saint_jour["21:06"]="les Rodolphe"
saint_jour["22:06"]="les Alban"
saint_jour["23:06"]="les Audrey"
saint_jour["24:06"]="les Jean-Baptiste"
saint_jour["25:06"]="les Prosper"
saint_jour["26:06"]="les Anthelme"
saint_jour["27:06"]="les Fernand"
saint_jour["28:06"]="les Irénée"
saint_jour["29:06"]="les Pierre et Paul"
saint_jour["30:06"]="les Martial"
saint_jour["01:07"]="les Thierry"
saint_jour["02:07"]="les Martinien"
saint_jour["03:07"]="les Thomas"
saint_jour["04:07"]="les Florent"
saint_jour["05:07"]="les Antoine"
saint_jour["06:07"]="les Mariette"
saint_jour["07:07"]="les Raoul"
saint_jour["08:07"]="les Thibaud"
saint_jour["09:07"]="les Amandine"
saint_jour["10:07"]="les Ulric"
saint_jour["11:07"]="les Benoit"
saint_jour["12:07"]="les Olivier"
saint_jour["13:07"]="les Joëlle"
saint_jour["14:07"]="les Camille"
saint_jour["15:07"]="les Donald"
saint_jour["16:07"]="les Elvire"
saint_jour["17:07"]="les Charlotte"
saint_jour["18:07"]="les Frédéric"
saint_jour["19:07"]="les Arsène"
saint_jour["20:07"]="les Marina"
saint_jour["21:07"]="les Victor"
saint_jour["22:07"]="les Marie-Madeleine"
saint_jour["23:07"]="les Brigitte"
saint_jour["24:07"]="les Christine"
saint_jour["25:07"]="les Jacques"
saint_jour["26:07"]="les Anne"
saint_jour["27:07"]="les Nathalie"
saint_jour["28:07"]="les Samson"
saint_jour["29:07"]="les Marthe"
saint_jour["30:07"]="les Juliette"
saint_jour["31:07"]="les Ignace"
saint_jour["01:08"]="les Alphonse"
saint_jour["02:08"]="les Julien"
saint_jour["03:08"]="les Lydie"
saint_jour["04:08"]="les Jean-Marie"
saint_jour["05:08"]="les Abel"
saint_jour["06:08"]="les Octavien"
saint_jour["07:08"]="les Gaetan"
saint_jour["08:08"]="les Dominique"
saint_jour["09:08"]="les Amour"
saint_jour["10:08"]="les Laurent"
saint_jour["11:08"]="les Claire"
saint_jour["12:08"]="les Clarisse"
saint_jour["13:08"]="les Hippolyte"
saint_jour["14:08"]="les Evrard"
saint_jour["15:08"]="les Marie"
saint_jour["16:08"]="les Armel"
saint_jour["17:08"]="les Hyacinthe"
saint_jour["18:08"]="les Hélène"
saint_jour["19:08"]="les Eudes"
saint_jour["20:08"]="les Bernard"
saint_jour["21:08"]="les Christophe"
saint_jour["22:08"]="les Fabrice"
saint_jour["23:08"]="les Rose"
saint_jour["24:08"]="les Barthélemy"
saint_jour["25:08"]="les Louis"
saint_jour["26:08"]="les Natacha"
saint_jour["27:08"]="les Monique"
saint_jour["28:08"]="les Augustin"
saint_jour["29:08"]="les Sabine"
saint_jour["30:08"]="les Fiacre"
saint_jour["31:08"]="les Aristide"
saint_jour["01:09"]="les Gilles"
saint_jour["02:09"]="les Ingrid"
saint_jour["03:09"]="les Grégoire"
saint_jour["04:09"]="les Rosalie"
saint_jour["05:09"]="les Raïssa"
saint_jour["06:09"]="les Bertrand"
saint_jour["07:09"]="les Reine"
saint_jour["08:09"]="les Adrien"
saint_jour["09:09"]="les Alain"
saint_jour["10:09"]="les Inès"
saint_jour["11:09"]="les Adelphe"
saint_jour["12:09"]="les Apollinaire"
saint_jour["13:09"]="les Aime"
saint_jour["14:09"]="les Lubin"
saint_jour["15:09"]="les Roland"
saint_jour["16:09"]="les Édith"
saint_jour["17:09"]="les Renaud"
saint_jour["18:09"]="les Nadège"
saint_jour["19:09"]="les Émilie"
saint_jour["20:09"]="les Davy"
saint_jour["21:09"]="les Matthieu"
saint_jour["22:09"]="les Maurice"
saint_jour["23:09"]="les Constant"
saint_jour["24:09"]="les Thecle"
saint_jour["25:09"]="les Hermann"
saint_jour["26:09"]="les Damien"
saint_jour["27:09"]="les Vincent"
saint_jour["28:09"]="les Venceslas"
saint_jour["29:09"]="les Michel"
saint_jour["30:09"]="les Jérôme"
saint_jour["01:10"]="les Thérèse"
saint_jour["02:10"]="les Léger"
saint_jour["03:10"]="les Gérard"
saint_jour["04:10"]="les François"
saint_jour["05:10"]="les Fleur"
saint_jour["06:10"]="les Bruno"
saint_jour["07:10"]="les Serge"
saint_jour["08:10"]="les Pélagie"
saint_jour["09:10"]="les Denis"
saint_jour["10:10"]="les Ghislain"
saint_jour["11:10"]="les Firmin"
saint_jour["12:10"]="les Wilfrid"
saint_jour["13:10"]="les Géraud"
saint_jour["14:10"]="les Juste"
saint_jour["15:10"]="les Thérèse"
saint_jour["16:10"]="les Edwige"
saint_jour["17:10"]="les Baudouin"
saint_jour["18:10"]="les Luc"
saint_jour["19:10"]="les René Goupil"
saint_jour["20:10"]="les Lina"
saint_jour["21:10"]="les Céline"
saint_jour["22:10"]="les Elodie"
saint_jour["23:10"]="les Jean"
saint_jour["24:10"]="les Florentin"
saint_jour["25:10"]="les Crépin"
saint_jour["26:10"]="les Dimitri"
saint_jour["27:10"]="les Émeline"
saint_jour["28:10"]="les Simon"
saint_jour["29:10"]="les Narcisse"
saint_jour["30:10"]="les Bienvenue"
saint_jour["31:10"]="les Quentin"
saint_jour["01:11"]="la Toussaint"
saint_jour["02:11"]="les defunts"
saint_jour["03:11"]="les Hubert"
saint_jour["04:11"]="les Charles"
saint_jour["05:11"]="les Sylvie"
saint_jour["06:11"]="les Bertille"
saint_jour["07:11"]="les Carine"
saint_jour["08:11"]="les Geoffroy"
saint_jour["09:11"]="les Theodore"
saint_jour["10:11"]="les Leon"
saint_jour["11:11"]="les Martin"
saint_jour["12:11"]="les Christian"
saint_jour["13:11"]="les Brice"
saint_jour["14:11"]="les Sidoine"
saint_jour["15:11"]="les Albert"
saint_jour["16:11"]="les Marguerite"
saint_jour["17:11"]="les Élisabeth"
saint_jour["18:11"]="les Aude"
saint_jour["19:11"]="les Tanguy"
saint_jour["20:11"]="les Edmond"
saint_jour["21:11"]="les Albert"
saint_jour["22:11"]="les Cécile"
saint_jour["23:11"]="les Clement"
saint_jour["24:11"]="les Flora"
saint_jour["25:11"]="les Catherine"
saint_jour["26:11"]="les Delphine"
saint_jour["27:11"]="les Severin"
saint_jour["28:11"]="les Jacques"
saint_jour["29:11"]="les Saturnin"
saint_jour["30:11"]="les Andre"
saint_jour["01:12"]="les Florence"
saint_jour["02:12"]="les Viviane"
saint_jour["03:12"]="les Xavier"
saint_jour["04:12"]="les Barbara"
saint_jour["05:12"]="les Gerald"
saint_jour["06:12"]="les Nicolas"
saint_jour["07:12"]="les Ambroise"
saint_jour["08:12"]="les Elfie"
saint_jour["09:12"]="les Pierre"
saint_jour["10:12"]="les Romaric"
saint_jour["11:12"]="les Daniel"
saint_jour["12:12"]="les Chantal"
saint_jour["13:12"]="les Lucie"
saint_jour["14:12"]="les Odile"
saint_jour["15:12"]="les Ninon"
saint_jour["16:12"]="les Alice"
saint_jour["17:12"]="les Gael"
saint_jour["18:12"]="les Gatien"
saint_jour["19:12"]="les Urbain"
saint_jour["20:12"]="les Theophile"
saint_jour["21:12"]="les Pierre"
saint_jour["22:12"]="les Xaviere"
saint_jour["23:12"]="les Armand"
saint_jour["24:12"]="les Adele"
saint_jour["25:12"]="Noel"
saint_jour["26:12"]="les Etienne"
saint_jour["27:12"]="les Jean"
saint_jour["28:12"]="les Innocents"
saint_jour["29:12"]="les David"
saint_jour["30:12"]="les Roger"
saint_jour["31:12"]="les Sylvestre"
--===========================================================
jour_ferie["01:01"] = "Le 1er janvier"
jour_ferie["01:05"] = "La Fête du travail"
jour_ferie["08:05"] = "La Victoire des alliés"
jour_ferie["14:07"] = "La Fête nationale"
jour_ferie["15:08"] = "L'Assomption"
jour_ferie["01:11"] = "La Toussaint"
jour_ferie["11:11"] = "L'Armistice"
jour_ferie["25:12"] = "Noël"
if ferie_lendemain_noel == true then jour_ferie["25:12"] = "Lendemain de Noël" end
--[[
calcule du jour de la fête de mères
la fête des mères est fixée au dernier dimanche de mai sauf si cette date coïncide avec celle de la Pentecôte
auquel cas elle a lieu le premier dimanche de juin.
la fête des pères est fixée au 3e dimanche de juin.
Pentecôte = Pâques + 49 jours
--]]

function getJourPaques(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
    getJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}
   return getJourPaquesEpochPaque
end

function deuxDigits(nombre)
    nombre = string.format("%02d",nombre)
    return nombre
end

function LeapYear(year)
	if ((((year % 4 ==0) and (year % 100~=0)) or (year % 400==0)))then
        joursFevrier = 29
	else
        joursFevrier = 28
    end
    return joursFevrier
end

local annee = os.date("%Y")
--local annee = "2017"
voir_les_logs("--- --- --- nombre de jours en février : ".. LeapYear(annee),debugging)
local derJourDecembre = deuxDigits(tonumber(os.date("%w",os.time{year=(annee-1),month=12,day=31})))      -- dernier jour de Décembre annee-1
voir_les_logs("--- --- --- Dernier Jour de Décembre : ".. derJourDecembre,debugging)
local premDimJanvier = deuxDigits(7-derJourDecembre)
voir_les_logs("--- --- --- premier Dimanche de Janvier : ".. premDimJanvier,debugging)
if premDimJanvier == 01 then epiphanie = "08:01"  else epiphanie = premDimJanvier..":01" end
local derJourFevrier = tonumber(os.date("%w",os.time{year=annee,month=2,day=LeapYear(annee)}))      -- dernier jour de Mars
local premDimMars  = deuxDigits(7-derJourFevrier)..":03"
voir_les_logs("--- --- --- premDimMars : ".. premDimMars,debugging)
local epochPaques=getJourPaques(annee)
local paques = os.date("%d:%m",epochPaques) 
voir_les_logs("--- --- --- Pâques : ".. paques,debugging)
local vendredi_saint = os.date("%d:%m",epochPaques-(24*60*60*2)) -- vendredi saint = Pâques - 2 jours
voir_les_logs("--- --- --- vendredi saint : ".. vendredi_saint,debugging)
local lundi_paques = os.date("%d:%m",epochPaques+24*60*60) -- Lundi de Pâques = Pâques + 1 jour
voir_les_logs("--- --- --- Lundi de Pâques : ".. lundi_paques,debugging)
local ascension = os.date("%d:%m",epochPaques+24*60*60*39) -- Ascension = Pâques + 39 jours
voir_les_logs("--- --- --- Ascension : ".. ascension,debugging)
local pentecote = os.date("%d:%m",epochPaques+24*60*60*49)      -- Pentecôte = Pâques + 49 jours
voir_les_logs("--- --- --- Pentecôte : ".. pentecote,debugging)
local lundi_pentecote = os.date("%d:%m",epochPaques+24*60*60*50)      -- Lundi Pentecôte = Pâques + 50 jours
voir_les_logs("--- --- --- Lundi de Pentecôte : ".. lundi_pentecote,debugging)
local derJourMai = tonumber(os.date("%w",os.time{year=annee,month=5,day=31}))      -- dernier jour de Mai
local derDimMai = 31-derJourMai..":05"
voir_les_logs("--- --- --- derDimMai : ".. derDimMai,debugging)
local premDimJuin = deuxDigits(7-derJourMai)..":06"
voir_les_logs("--- --- --- premier Dimanche de Juin : ".. premDimJuin,debugging)
local troisDimJuin = 21-derJourMai..":06"
voir_les_logs("--- --- --- troisième Dimanche de Juin : ".. troisDimJuin,debugging)
if derDimMai == pentecote then
   meres = premDimJuin
else
   meres = derDimMai
end
voir_les_logs("--- --- --- fête des mères : ".. meres,debugging)
voir_les_logs("--- --- --- fête des pères : ".. troisDimJuin,debugging)

local derJourSeptembre = tonumber(os.date("%w",os.time{year=annee,month=9,day=30}))      -- dernier jour de Mars
local premDimOctobre  = deuxDigits(7-derJourSeptembre)..":10"
voir_les_logs("--- --- --- premDimOctobre : ".. premDimOctobre,debugging)


--===========================================================
    if jour_ferie[today] ~= nil then ferie = true end --passage de la variable à true si jour ferié 
    if epiphanie == today then 
        fete_jour = "Epiphanie"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif premDimMars == today then 
        fete_jour = "les Grand-Mères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)		        
    elseif meres == today then 
        fete_jour = "la Fête des Mères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)		
    elseif troisDimJuin == today then 
        fete_jour = "les pères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
        
    elseif ferie_vendredi_saint == true and vendredi_saint == today then
        fete_jour = "vendredi saint"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif paques == today then 
        fete_jour = "Pâques"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)	
    elseif lundi_paques == today then 
        fete_jour = "Lundi de Pâques"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif ascension == today then 
        fete_jour = "Ascension"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif pentecote == today then 
        fete_jour = "la Pentecôte"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif lundi_pentecote == today then 
        fete_jour = "Lundi de Pentecôte"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif jour_ferie[today] ~= nil then 
        fete_jour = jour_ferie[today]
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
        elseif premDimOctobre == today then 
        fete_jour = "la Fête des Grand-Pères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    else fete_jour = saint_jour[today] 
        voir_les_logs("--- --- --- Fête du jour : ".. saint_jour[today],debugging)
    end
    
    if anniversaire[today] ~= nil then  -- on priorise l'affichage des anniversaires sur les jours fériés sur les saints du jour
        if anniversaire_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
            anniversaire_jour = anniversaire[today]
        else 
            fete_jour = anniversaire[today]
        end
        voir_les_logs("--- --- --- Anniversaire du jour : ".. anniversaire[today],debugging)
    end    
    if epiphanie == tomorrow then 
            fete_demain = "Epiphanie"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif meres == tomorrow then 
        fete_demain = "la Fête des Mères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif premDimMars == tomorrow then 
        fete_demain = "la Fête des Grand-Mères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif troisDimJuin == tomorrow then 
        fete_demain = "la Fête des pères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif ferie_vendredi_saint == true and vendredi_saint == tomorrow then
        fete_demain = "vendredi saint"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif paques == tomorrow then 
        fete_demain = "Pâques"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif pentecote == tomorrow then 
        fete_demain = "la Pentecôte"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif lundi_pentecote == tomorrow then 
        fete_demain = "Lundi de Pentecôte"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
        elseif premDimOctobre == tomorrow then 
        fete_demain = "la Fête des Grand-Pères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    else fete_demain = saint_jour[tomorrow]
        voir_les_logs("--- --- --- Fête de demain : ".. saint_jour[tomorrow],debugging)
    end 
    if anniversaire[tomorrow] ~= nil then
        if anniversaire_demain_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
            anniversaire_demain = anniversaire[tomorrow]
        else 
            fete_demain = anniversaire[tomorrow]
        end
        voir_les_logs("--- --- --- Anniversaire de demain : ".. anniversaire[tomorrow],debugging)
    end     
    
    
    if anniversaire_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
        if anniversaire[today] == nil then anniversaire_jour = "aucun anniversaire" end
        commandArray[#commandArray+1] = {['UpdateDevice'] = anniversaire_text_idx .. '|0|Aujourd'hui nous fêtons ' .. anniversaire_jour}
        voir_les_logs("--- --- --- Mise à jour device texte".. anniversaire_text_idx .." ".. anniversaire_jour,debugging)
    end
    if anniversaire_demain_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini 
        if anniversaire[tomorrow] == nil then anniversaire_demain = "aucun anniversaire" end    
        commandArray[#commandArray+1] = {['UpdateDevice'] = anniversaire_demain_text_idx .. '|0|Demain nous fêterons ' .. anniversaire_demain}
        voir_les_logs("--- --- --- Mise à jour device texte".. anniversaire_demain_text_idx .." ".. anniversaire_demain,debugging)
    end        
    
    if fete_text_idx ~= nil then
        commandArray[#commandArray+1] = {['UpdateDevice'] = fete_text_idx .. '|0|Aujourd'hui nous fêtons ' .. fete_jour}
        voir_les_logs("--- --- --- Mise à jour device texte".. fete_text_idx .." ".. fete_jour,debugging)
    end
    if fete_demain_text_idx ~= nil then 
        commandArray[#commandArray+1] = {['UpdateDevice'] = fete_demain_text_idx .. '|0|Demain nous fêterons ' .. fete_demain}
        voir_les_logs("--- --- --- Mise à jour device texte ".. fete_demain_text_idx .." ".. fete_demain,debugging)
    end
    
    
    
	if jour_ferie_switch ~= nil then 
		if ferie == true then
			commandArray[jour_ferie_switch] = 'On'
			voir_les_logs("--- --- --- Mise à jour device  "..jour_ferie_switch .." => On",debugging)
		else
			commandArray[jour_ferie_switch] = 'Off'
			voir_les_logs("--- --- --- Mise à jour device  "..jour_ferie_switch .. " => Off",debugging)
		end
	end
	if jour_ferie_scene ~= nil then 
		if ferie == true then
			commandArray['Scene:'..jour_ferie_scene] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  "..jour_ferie_scene .." => On",debugging)
		else
			commandArray['Scene:'..jour_ferie_scene] = 'Off'
			voir_les_logs("--- --- --- Mise à jour scénario  "..jour_ferie_scene .. " => Off",debugging)
		end
	end    
    
    
    
	if variable_jour ~= nil then	
	commandArray[#commandArray+1] = {['Variable:'.. variable_jour] = tostring('Aujourd'hui nous fêtons ' .. fete_jour)} -- écriture variable Saint du Jour
	
	voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour .." ".. fete_jour,debugging)
	end
	if variable_lendemain ~= nil then
	commandArray[#commandArray+1] = {['Variable:'.. variable_lendemain] = tostring('Demain nous fêterons ' .. fete_demain)} -- écriture variable	Saint du lendemain 
	
	voir_les_logs("--- --- --- Mise à jour variable ".. variable_lendemain .." ".. fete_demain,debugging)
	end
	if variable_jour_ferie ~= nil then
	
		if ferie == true then
			commandArray[#commandArray+1] = {['Variable:'.. variable_jour_ferie] = tostring('oui')} -- écriture variable	jour férié
			
			voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour_ferie .." => oui",debugging)
		else 
			commandArray[#commandArray+1] = {['Variable:'.. variable_jour_ferie] = tostring('non')} -- écriture variable	jour férié
			
			voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour_ferie .." => non",debugging)
		end
	end
    if os.date("%W")%2 == 0 then 	-- semaine paire et impaire
        voir_les_logs("--- --- --- semaine paire",debugging)
        if Scene_Semaine_Paire ~= nil and Scene_Semaine_Impaire ~= nil then
            commandArray['Scene:'..Scene_Semaine_Paire] = 'On'
            commandArray['Scene:'..Scene_Semaine_Impaire] = 'Off'
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Paire .." => On",debugging)
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Impaire .." => Off",debugging)            
        end
    else
        voir_les_logs("--- --- --- semaine impaire",debugging)
        if Scene_Semaine_Paire ~= nil and Scene_Semaine_Impaire ~= nil then
            commandArray['Scene:'..Scene_Semaine_Paire] = 'Off'
            commandArray['Scene:'..Scene_Semaine_Impaire] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Paire .." => Off",debugging)
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Impaire .." => On",debugging)            
        end        
    end
    voir_les_logs("--- --- --- jour de la semaine : ".. date_en_francais(os.date("%A")),debugging)
    voir_les_logs("--- --- --- jour de la semaine (nb) : ".. os.date("*t").wday,debugging)
    if jour_semaine_switch ~= nil then
    local select_day = os.date("*t").wday.."0"
    	commandArray[jour_semaine_switch] = 'Set Level: '.. select_day
		voir_les_logs("--- --- --- Mise à jour device  ".. jour_semaine_switch .." => "..select_day,debugging)
    end
    
voir_les_logs("=========== Fin Fete du jour (v".. version ..") =========",debugging)

end
return commandArray



Re: Scripts pour fête & Anniversaire du jour

Publié : 15 avr. 2016, 14:31
par papoo
j'ai fini par trouver comment mettre tout cela en tableau sans l'api domogeek
ce qui me permet de tester la présence d'une fête ou anniversaire du jour mais aussi pour le lendemain. (pratique pour ne pas aller acheter un cadeau le jour même :D )

Code : Tout sélectionner

--[[
name : script_time_fete_du_jour.lua
auteur : papoo
MAJ : 16/03/2019
date : 28/05/2016
Principe : Ce script a pour but d'afficher dans un device texte l'évenement (anniversaire, jour férié ou fête) du jour et du lendemain
http://pon.fr/fete-du-jour-et-du-lendemain-en-lua/
https://easydomoticz.com/forum/viewtopic.php?f=10&t=1878
]]--
--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 

local debugging = false                             -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local fete_text_idx = nil                           -- idx du capteur texte saint du jour, nil si inutilisé
local fete_demain_text_idx = nil                    -- idx du capteur texte saint du lendemain, nil si inutilisé
local anniversaire_text_idx = nil                   -- idx du capteur texte anniversaire du jour pour afficher les anniversaires dans un device séparé, nil si inutilisé
local anniversaire_demain_text_idx = nil            -- idx du capteur texte anniversaire du lendemain pour afficher les anniversaires dans un device séparé, nil si inutilisé
local jour_ferie_switch = "Jour Ferie"              -- nom du capteur switch jour férié, nil si inutilisé
local jour_ferie_scene = "Jour Férié"               -- nom du scénario jour férié entre, nil si inutilisé
local variable_jour = "Saint_Jour"                  -- nom de la variable jour, nil si inutilisé
local variable_lendemain = "Saint_Lendemain"        -- nom de la variable lendemain, nil si inutilisé
local variable_jour_ferie = "Jour_ferie"            -- nom de la variable
local Scene_Semaine_Paire = "Semaine Paire"         -- nom du scénario semaine paire, nil si inutilisé
local Scene_Semaine_Impaire = "Semaine Impaire"     -- nom du scénario semaine impaire, nil si inutilisé
local Scene_Week_End = "Week-End"                   -- nom du scénario Week-End, nil si inutilisé
local date_mariage = 1999                           -- année de votre date de mariage
local jour_semaine_switch = "Jour de la semaine"    -- nom du capteur switch jour de la semaine, nil si inutilisé
local ferie_vendredi_saint = false                  -- true si le vendredi saint est un jour férié (Moselle (57), Bas-Rhin (67) et Haut-Rhin (68), sinon false
local ferie_lendemain_noel = false                  -- true si le lendemain de noel est un jour férié (Moselle (57), Bas-Rhin (67) et Haut-Rhin (68), sinon false
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Fete du jour et du lendemain'
local version = "1.69"							-- version du script
local fete_jour = ''
local fete_demain = ''
local ferie =  ''
local anniversaire = {}	
local saint_jour = {}
local jour_ferie = {}
--------------------------------------------
---------------- Fonctions -----------------
-------------------------------------------- 
package.path = package.path..";/home/pi/domoticz/scripts/lua/fonctions/?.lua"   -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script
require('fonctions_perso')                                                      -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script

-- ci-dessous les lignes à décommenter en cas d'utilisation des fonctions directement dans ce script( supprimer --[[ et --]])
--[[function voir_les_logs (s, debugging) -- nécessite la variable local debugging
    if (debugging) then 
		if s ~= nil then
        print (s)
		else
		print ("aucune valeur affichable")
		end
    end
end	-- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--------------------------------------------
function year_difference(s)
    return tostring(os.date("%Y")) - tostring(s)
end
function date_en_francais(str)
    if (str) then
	str = string.gsub(str, "January", "Janvier");
	str = string.gsub(str, "February",	"Février")
	str = string.gsub(str, "March",	"Mars")
	str = string.gsub(str, "April",	"Avril")
	str = string.gsub(str, "May",	"Mai")
	str = string.gsub(str, "June",	"Juin")
	str = string.gsub(str, "July",	"Juillet")
	str = string.gsub(str, "August",	"Août")
	str = string.gsub(str, "september",	"Septembre")
	str = string.gsub(str, "October",	"Octobre")
	str = string.gsub(str, "November",	"Novembre")
	str = string.gsub(str, "December",	"Décembre")
	str = string.gsub(str, "Monday",	"Lundi")
	str = string.gsub(str, "Tuesday",	"Mardi")
	str = string.gsub(str, "Wednesday",	"Mercredi")
	str = string.gsub(str, "Thursday", "Jeudi")
    str = string.gsub(str, "Friday", "Vendredi")
    str = string.gsub(str, "Saturday", "Samedi")
    str = string.gsub(str, "Sunday", "Dimanche")

     end
    return (str)
end
--]]
--------------------------------------------
------------- Fin Fonctions ----------------
-------------------------------------------- 
commandArray = {}
time = os.date("*t")
-- Trigger at 00:20 
--[[time = os.date("*t")]] --

--if time.hour % 2 == 0 then -- toutes les deux heures
if (time.hour%2 == 0 and time.min == 10) then  --Toutes les 2 heures et 10 minutes
--if time.min % 1 == 0 then 

voir_les_logs("=========== Fete du jour (v".. version ..") ===========",debugging)
local today=tostring(os.date("%d:%m"))
voir_les_logs("--- --- --- Date du jour : ".. today,debugging) 
local tomorrow=tostring(os.date("%d:%m",os.time()+24*60*60))
voir_les_logs("--- --- --- Date de demain : ".. tomorrow,debugging) 
local annee_mariage = tostring(os.date("%Y")) - tostring(date_mariage)
local annee_mariage = year_difference(date_mariage)
local jour = tonumber(os.date("%w"))
if (jour == 0) or (jour == 6) then
	voir_les_logs("--- --- --- jour ".. jour .." c\'est le week-end ",debugging)    
        if Scene_Week_End ~= nil then
            commandArray['Scene:'..Scene_Week_End] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  ".. Scene_Week_End .." => On",debugging)            
        end   
else
    voir_les_logs("--- --- --- jour ".. jour .." c\'est la semaine",debugging)
        if Scene_Week_End ~= nil then
            commandArray['Scene:'..Scene_Week_End] = 'Off'        
			voir_les_logs("--- --- --- Mise à jour scénario  ".. Scene_Week_End .." => Off",debugging)        
        end
end
anniversaire["28:05"]="l\'anniversaire de Pierre"
anniversaire["29:05"]="l\'anniversaire de Paul"
anniversaire["30:05"]="l\'anniversaire de Jacques"
anniversaire["01:06"]="nos ".. annee_mariage .." ans de mariage"
--===========================================================
saint_jour["01:01"]="le jour de l\'An"
saint_jour["02:01"]="les Basile"
saint_jour["03:01"]="les Geneviève"
saint_jour["04:01"]="les Odilon"
saint_jour["05:01"]="les Édouard"
saint_jour["06:01"]="les André"
saint_jour["07:01"]="les Raymond"
saint_jour["08:01"]="les Lucien"
saint_jour["09:01"]="les Alix de Ch."
saint_jour["10:01"]="les Guillaume"
saint_jour["11:01"]="les Paulin d Aquilee"
saint_jour["12:01"]="les Tatiana"
saint_jour["13:01"]="les Yvette"
saint_jour["14:01"]="les Nina"
saint_jour["15:01"]="les Rémi"
saint_jour["16:01"]="les Marcel"
saint_jour["17:01"]="les Roseline"
saint_jour["18:01"]="les Prisca"
saint_jour["19:01"]="les Marius"
saint_jour["20:01"]="les Sébastien"
saint_jour["21:01"]="les Agnès"
saint_jour["22:01"]="les Vincent"
saint_jour["23:01"]="les Barnard"
saint_jour["24:01"]="les François"
saint_jour["25:01"]="la Conversion de Paul"
saint_jour["26:01"]="les Paule"
saint_jour["27:01"]="les Angèle"
saint_jour["28:01"]="les Thomas"
saint_jour["29:01"]="les Gildas"
saint_jour["30:01"]="les Martine"
saint_jour["31:01"]="les Marcelle"
saint_jour["01:02"]="les Ella"
saint_jour["02:02"]="les Theophane"
saint_jour["03:02"]="les Blaise"
saint_jour["04:02"]="les Véronique"
saint_jour["05:02"]="les Agathe"
saint_jour["06:02"]="les Gaston"
saint_jour["07:02"]="les Eugénie"
saint_jour["08:02"]="les Jacqueline"
saint_jour["09:02"]="les Apolline"
saint_jour["10:02"]="les Arnaud"
saint_jour["11:02"]="les Severin"
saint_jour["12:02"]="les Felix"
saint_jour["13:02"]="les Beatrice"
saint_jour["14:02"]="les Valentin"
saint_jour["15:02"]="les Claude"
saint_jour["16:02"]="les Julienne"
saint_jour["17:02"]="les Alexis"
saint_jour["18:02"]="les Bernadette"
saint_jour["19:02"]="les Gabin"
saint_jour["20:02"]="les Aimee"
saint_jour["21:02"]="les Damien"
saint_jour["22:02"]="les Isabelle"
saint_jour["23:02"]="les Lazare"
saint_jour["24:02"]="les Modeste"
saint_jour["25:02"]="les Romeo"
saint_jour["26:02"]="les Nestor"
saint_jour["27:02"]="les Honorine"
saint_jour["28:02"]="les Romain"
saint_jour["29:02"]="les Augula"
saint_jour["01:03"]="les Aubin"
saint_jour["02:03"]="les Charles"
saint_jour["03:03"]="les Gwenole"
saint_jour["04:03"]="les Casimir"
saint_jour["05:03"]="les Olive"
saint_jour["06:03"]="les Colette"
saint_jour["07:03"]="les Félicité"
saint_jour["08:03"]="les Jean"
saint_jour["09:03"]="les Françoise"
saint_jour["10:03"]="les Vivien"
saint_jour["11:03"]="les Rosine"
saint_jour["12:03"]="les Justine"
saint_jour["13:03"]="les Rodrigue"
saint_jour["14:03"]="les Maud"
saint_jour["15:03"]="les Louise"
saint_jour["16:03"]="les Benedicte"
saint_jour["17:03"]="les Patrick"
saint_jour["18:03"]="les Cyrille"
saint_jour["19:03"]="les Joseph"
saint_jour["20:03"]="les Herbert"
saint_jour["21:03"]="les Clemence"
saint_jour["22:03"]="les Lea"
saint_jour["23:03"]="les Victorien"
saint_jour["24:03"]="les Catherine"
saint_jour["25:03"]="les Humbert"
saint_jour["26:03"]="les Larissa"
saint_jour["27:03"]="les Habib"
saint_jour["28:03"]="les Gontran"
saint_jour["29:03"]="les Gwladys"
saint_jour["30:03"]="les Amedee"
saint_jour["31:03"]="les Benjamin"
saint_jour["01:04"]="les Hugues"
saint_jour["02:04"]="les Sandrine"
saint_jour["03:04"]="les Richard"
saint_jour["04:04"]="les Isidore"
saint_jour["05:04"]="les Irene"
saint_jour["06:04"]="les Marcellin"
saint_jour["07:04"]="les Jean-Baptiste"
saint_jour["08:04"]="les Julie"
saint_jour["09:04"]="les Gautier"
saint_jour["10:04"]="les Fulbert"
saint_jour["11:04"]="les Stanislas"
saint_jour["12:04"]="les Jules 1er"
saint_jour["13:04"]="les Ida"
saint_jour["14:04"]="les Maxime"
saint_jour["15:04"]="les Paterne"
saint_jour["16:04"]="les Benoît"
saint_jour["17:04"]="les Étienne"
saint_jour["18:04"]="les Parfait"
saint_jour["19:04"]="les Emma"
saint_jour["20:04"]="les Odette"
saint_jour["21:04"]="les Anselme"
saint_jour["22:04"]="les Alexandre"
saint_jour["23:04"]="les Georges"
saint_jour["24:04"]="les Fidèle"
saint_jour["25:04"]="les Marc"
saint_jour["26:04"]="les Alida"
saint_jour["27:04"]="les Zita"
saint_jour["28:04"]="les Valérie"
saint_jour["29:04"]="les Catherine"
saint_jour["30:04"]="les Robert"
saint_jour["01:05"]="les Joseph"
saint_jour["02:05"]="les Boris"
saint_jour["03:05"]="les Philippe"
saint_jour["04:05"]="les Sylvain"
saint_jour["05:05"]="les Judith"
saint_jour["06:05"]="les Prudence"
saint_jour["07:05"]="les Gisèle"
saint_jour["08:05"]="les Desire"
saint_jour["09:05"]="les Pacôme"
saint_jour["10:05"]="les Solange"
saint_jour["11:05"]="les Estelle"
saint_jour["12:05"]="les Achille"
saint_jour["13:05"]="les Rolande"
saint_jour["14:05"]="les Matthias"
saint_jour["15:05"]="les Denise"
saint_jour["16:05"]="les Honore"
saint_jour["17:05"]="les Pascal"
saint_jour["18:05"]="les Éric"
saint_jour["19:05"]="les Yves"
saint_jour["20:05"]="les Bernardin"
saint_jour["21:05"]="les Constantin"
saint_jour["22:05"]="les Émile"
saint_jour["23:05"]="les Didier"
saint_jour["24:05"]="les Donatien"
saint_jour["25:05"]="les Sophie"
saint_jour["26:05"]="les Bérenger"
saint_jour["27:05"]="les Augula"
saint_jour["28:05"]="les Germain"
saint_jour["29:05"]="les Aymard"
saint_jour["30:05"]="les Ferdinand"
saint_jour["31:05"]="les Perrine"
saint_jour["01:06"]="les Justin"
saint_jour["02:06"]="les Blandine"
saint_jour["03:06"]="les Charles"
saint_jour["04:06"]="les Clotilde"
saint_jour["05:06"]="les Igor"
saint_jour["06:06"]="les Norbert"
saint_jour["07:06"]="les Gilbert"
saint_jour["08:06"]="les Médard"
saint_jour["09:06"]="les Diane"
saint_jour["10:06"]="les Landry"
saint_jour["11:06"]="les Barnabé"
saint_jour["12:06"]="les Guy"
saint_jour["13:06"]="les Antoine"
saint_jour["14:06"]="les Élisée"
saint_jour["15:06"]="les Germaine"
saint_jour["16:06"]="les Jean-François"
saint_jour["17:06"]="les Hervé"
saint_jour["18:06"]="les Leonce"
saint_jour["19:06"]="les Romuald"
saint_jour["20:06"]="les Silvère"
saint_jour["21:06"]="les Rodolphe"
saint_jour["22:06"]="les Alban"
saint_jour["23:06"]="les Audrey"
saint_jour["24:06"]="les Jean-Baptiste"
saint_jour["25:06"]="les Prosper"
saint_jour["26:06"]="les Anthelme"
saint_jour["27:06"]="les Fernand"
saint_jour["28:06"]="les Irénée"
saint_jour["29:06"]="les Pierre et Paul"
saint_jour["30:06"]="les Martial"
saint_jour["01:07"]="les Thierry"
saint_jour["02:07"]="les Martinien"
saint_jour["03:07"]="les Thomas"
saint_jour["04:07"]="les Florent"
saint_jour["05:07"]="les Antoine"
saint_jour["06:07"]="les Mariette"
saint_jour["07:07"]="les Raoul"
saint_jour["08:07"]="les Thibaud"
saint_jour["09:07"]="les Amandine"
saint_jour["10:07"]="les Ulric"
saint_jour["11:07"]="les Benoit"
saint_jour["12:07"]="les Olivier"
saint_jour["13:07"]="les Joëlle"
saint_jour["14:07"]="les Camille"
saint_jour["15:07"]="les Donald"
saint_jour["16:07"]="les Elvire"
saint_jour["17:07"]="les Charlotte"
saint_jour["18:07"]="les Frédéric"
saint_jour["19:07"]="les Arsène"
saint_jour["20:07"]="les Marina"
saint_jour["21:07"]="les Victor"
saint_jour["22:07"]="les Marie-Madeleine"
saint_jour["23:07"]="les Brigitte"
saint_jour["24:07"]="les Christine"
saint_jour["25:07"]="les Jacques"
saint_jour["26:07"]="les Anne"
saint_jour["27:07"]="les Nathalie"
saint_jour["28:07"]="les Samson"
saint_jour["29:07"]="les Marthe"
saint_jour["30:07"]="les Juliette"
saint_jour["31:07"]="les Ignace"
saint_jour["01:08"]="les Alphonse"
saint_jour["02:08"]="les Julien"
saint_jour["03:08"]="les Lydie"
saint_jour["04:08"]="les Jean-Marie"
saint_jour["05:08"]="les Abel"
saint_jour["06:08"]="les Octavien"
saint_jour["07:08"]="les Gaetan"
saint_jour["08:08"]="les Dominique"
saint_jour["09:08"]="les Amour"
saint_jour["10:08"]="les Laurent"
saint_jour["11:08"]="les Claire"
saint_jour["12:08"]="les Clarisse"
saint_jour["13:08"]="les Hippolyte"
saint_jour["14:08"]="les Evrard"
saint_jour["15:08"]="les Marie"
saint_jour["16:08"]="les Armel"
saint_jour["17:08"]="les Hyacinthe"
saint_jour["18:08"]="les Hélène"
saint_jour["19:08"]="les Eudes"
saint_jour["20:08"]="les Bernard"
saint_jour["21:08"]="les Christophe"
saint_jour["22:08"]="les Fabrice"
saint_jour["23:08"]="les Rose"
saint_jour["24:08"]="les Barthélemy"
saint_jour["25:08"]="les Louis"
saint_jour["26:08"]="les Natacha"
saint_jour["27:08"]="les Monique"
saint_jour["28:08"]="les Augustin"
saint_jour["29:08"]="les Sabine"
saint_jour["30:08"]="les Fiacre"
saint_jour["31:08"]="les Aristide"
saint_jour["01:09"]="les Gilles"
saint_jour["02:09"]="les Ingrid"
saint_jour["03:09"]="les Grégoire"
saint_jour["04:09"]="les Rosalie"
saint_jour["05:09"]="les Raïssa"
saint_jour["06:09"]="les Bertrand"
saint_jour["07:09"]="les Reine"
saint_jour["08:09"]="les Adrien"
saint_jour["09:09"]="les Alain"
saint_jour["10:09"]="les Inès"
saint_jour["11:09"]="les Adelphe"
saint_jour["12:09"]="les Apollinaire"
saint_jour["13:09"]="les Aime"
saint_jour["14:09"]="les Lubin"
saint_jour["15:09"]="les Roland"
saint_jour["16:09"]="les Édith"
saint_jour["17:09"]="les Renaud"
saint_jour["18:09"]="les Nadège"
saint_jour["19:09"]="les Émilie"
saint_jour["20:09"]="les Davy"
saint_jour["21:09"]="les Matthieu"
saint_jour["22:09"]="les Maurice"
saint_jour["23:09"]="les Constant"
saint_jour["24:09"]="les Thecle"
saint_jour["25:09"]="les Hermann"
saint_jour["26:09"]="les Damien"
saint_jour["27:09"]="les Vincent"
saint_jour["28:09"]="les Venceslas"
saint_jour["29:09"]="les Michel"
saint_jour["30:09"]="les Jérôme"
saint_jour["01:10"]="les Thérèse"
saint_jour["02:10"]="les Léger"
saint_jour["03:10"]="les Gérard"
saint_jour["04:10"]="les François"
saint_jour["05:10"]="les Fleur"
saint_jour["06:10"]="les Bruno"
saint_jour["07:10"]="les Serge"
saint_jour["08:10"]="les Pélagie"
saint_jour["09:10"]="les Denis"
saint_jour["10:10"]="les Ghislain"
saint_jour["11:10"]="les Firmin"
saint_jour["12:10"]="les Wilfrid"
saint_jour["13:10"]="les Géraud"
saint_jour["14:10"]="les Juste"
saint_jour["15:10"]="les Thérèse"
saint_jour["16:10"]="les Edwige"
saint_jour["17:10"]="les Baudouin"
saint_jour["18:10"]="les Luc"
saint_jour["19:10"]="les René Goupil"
saint_jour["20:10"]="les Lina"
saint_jour["21:10"]="les Céline"
saint_jour["22:10"]="les Elodie"
saint_jour["23:10"]="les Jean"
saint_jour["24:10"]="les Florentin"
saint_jour["25:10"]="les Crépin"
saint_jour["26:10"]="les Dimitri"
saint_jour["27:10"]="les Émeline"
saint_jour["28:10"]="les Simon"
saint_jour["29:10"]="les Narcisse"
saint_jour["30:10"]="les Bienvenue"
saint_jour["31:10"]="les Quentin"
saint_jour["01:11"]="la Toussaint"
saint_jour["02:11"]="les defunts"
saint_jour["03:11"]="les Hubert"
saint_jour["04:11"]="les Charles"
saint_jour["05:11"]="les Sylvie"
saint_jour["06:11"]="les Bertille"
saint_jour["07:11"]="les Carine"
saint_jour["08:11"]="les Geoffroy"
saint_jour["09:11"]="les Theodore"
saint_jour["10:11"]="les Leon"
saint_jour["11:11"]="les Martin"
saint_jour["12:11"]="les Christian"
saint_jour["13:11"]="les Brice"
saint_jour["14:11"]="les Sidoine"
saint_jour["15:11"]="les Albert"
saint_jour["16:11"]="les Marguerite"
saint_jour["17:11"]="les Élisabeth"
saint_jour["18:11"]="les Aude"
saint_jour["19:11"]="les Tanguy"
saint_jour["20:11"]="les Edmond"
saint_jour["21:11"]="les Albert"
saint_jour["22:11"]="les Cécile"
saint_jour["23:11"]="les Clement"
saint_jour["24:11"]="les Flora"
saint_jour["25:11"]="les Catherine"
saint_jour["26:11"]="les Delphine"
saint_jour["27:11"]="les Severin"
saint_jour["28:11"]="les Jacques"
saint_jour["29:11"]="les Saturnin"
saint_jour["30:11"]="les Andre"
saint_jour["01:12"]="les Florence"
saint_jour["02:12"]="les Viviane"
saint_jour["03:12"]="les Xavier"
saint_jour["04:12"]="les Barbara"
saint_jour["05:12"]="les Gerald"
saint_jour["06:12"]="les Nicolas"
saint_jour["07:12"]="les Ambroise"
saint_jour["08:12"]="les Elfie"
saint_jour["09:12"]="les Pierre"
saint_jour["10:12"]="les Romaric"
saint_jour["11:12"]="les Daniel"
saint_jour["12:12"]="les Chantal"
saint_jour["13:12"]="les Lucie"
saint_jour["14:12"]="les Odile"
saint_jour["15:12"]="les Ninon"
saint_jour["16:12"]="les Alice"
saint_jour["17:12"]="les Gael"
saint_jour["18:12"]="les Gatien"
saint_jour["19:12"]="les Urbain"
saint_jour["20:12"]="les Theophile"
saint_jour["21:12"]="les Pierre"
saint_jour["22:12"]="les Xaviere"
saint_jour["23:12"]="les Armand"
saint_jour["24:12"]="les Adele"
saint_jour["25:12"]="Noel"
saint_jour["26:12"]="les Etienne"
saint_jour["27:12"]="les Jean"
saint_jour["28:12"]="les Innocents"
saint_jour["29:12"]="les David"
saint_jour["30:12"]="les Roger"
saint_jour["31:12"]="les Sylvestre"
--===========================================================
jour_ferie["01:01"] = "Le 1er janvier"
jour_ferie["01:05"] = "La Fête du travail"
jour_ferie["08:05"] = "La Victoire des alliés"
jour_ferie["14:07"] = "La Fête nationale"
jour_ferie["15:08"] = "L'Assomption"
jour_ferie["01:11"] = "La Toussaint"
jour_ferie["11:11"] = "L'Armistice"
jour_ferie["25:12"] = "Noël"
if ferie_lendemain_noel == true then jour_ferie["25:12"] = "Lendemain de Noël" end
--[[
calcule du jour de la fête de mères
la fête des mères est fixée au dernier dimanche de mai sauf si cette date coïncide avec celle de la Pentecôte
auquel cas elle a lieu le premier dimanche de juin.
la fête des pères est fixée au 3e dimanche de juin.
Pentecôte = Pâques + 49 jours
--]]

function getJourPaques(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
    getJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}
   return getJourPaquesEpochPaque
end

function deuxDigits(nombre)
    nombre = string.format("%02d",nombre)
    return nombre
end

function LeapYear(year)
	if ((((year % 4 ==0) and (year % 100~=0)) or (year % 400==0)))then
        joursFevrier = 29
	else
        joursFevrier = 28
    end
    return joursFevrier
end

local annee = os.date("%Y")
--local annee = "2017"
voir_les_logs("--- --- --- nombre de jours en février : ".. LeapYear(annee),debugging)
local derJourDecembre = deuxDigits(tonumber(os.date("%w",os.time{year=(annee-1),month=12,day=31})))      -- dernier jour de Décembre annee-1
voir_les_logs("--- --- --- Dernier Jour de Décembre : ".. derJourDecembre,debugging)
local premDimJanvier = deuxDigits(7-derJourDecembre)
voir_les_logs("--- --- --- premier Dimanche de Janvier : ".. premDimJanvier,debugging)
if premDimJanvier == 01 then epiphanie = "08:01"  else epiphanie = premDimJanvier..":01" end
local derJourFevrier = tonumber(os.date("%w",os.time{year=annee,month=2,day=LeapYear(annee)}))      -- dernier jour de Mars
local premDimMars  = deuxDigits(7-derJourFevrier)..":03"
voir_les_logs("--- --- --- premDimMars : ".. premDimMars,debugging)
local epochPaques=getJourPaques(annee)
local paques = os.date("%d:%m",epochPaques) 
voir_les_logs("--- --- --- Pâques : ".. paques,debugging)
local vendredi_saint = os.date("%d:%m",epochPaques-(24*60*60*2)) -- vendredi saint = Pâques - 2 jours
voir_les_logs("--- --- --- vendredi saint : ".. vendredi_saint,debugging)
local lundi_paques = os.date("%d:%m",epochPaques+24*60*60) -- Lundi de Pâques = Pâques + 1 jour
voir_les_logs("--- --- --- Lundi de Pâques : ".. lundi_paques,debugging)
local ascension = os.date("%d:%m",epochPaques+24*60*60*39) -- Ascension = Pâques + 39 jours
voir_les_logs("--- --- --- Ascension : ".. ascension,debugging)
local pentecote = os.date("%d:%m",epochPaques+24*60*60*49)      -- Pentecôte = Pâques + 49 jours
voir_les_logs("--- --- --- Pentecôte : ".. pentecote,debugging)
local lundi_pentecote = os.date("%d:%m",epochPaques+24*60*60*50)      -- Lundi Pentecôte = Pâques + 50 jours
voir_les_logs("--- --- --- Lundi de Pentecôte : ".. lundi_pentecote,debugging)
local derJourMai = tonumber(os.date("%w",os.time{year=annee,month=5,day=31}))      -- dernier jour de Mai
local derDimMai = 31-derJourMai..":05"
voir_les_logs("--- --- --- derDimMai : ".. derDimMai,debugging)
local premDimJuin = deuxDigits(7-derJourMai)..":06"
voir_les_logs("--- --- --- premier Dimanche de Juin : ".. premDimJuin,debugging)
local troisDimJuin = 21-derJourMai..":06"
voir_les_logs("--- --- --- troisième Dimanche de Juin : ".. troisDimJuin,debugging)
if derDimMai == pentecote then
   meres = premDimJuin
else
   meres = derDimMai
end
voir_les_logs("--- --- --- fête des mères : ".. meres,debugging)
voir_les_logs("--- --- --- fête des pères : ".. troisDimJuin,debugging)

local derJourSeptembre = tonumber(os.date("%w",os.time{year=annee,month=9,day=30}))      -- dernier jour de Mars
local premDimOctobre  = deuxDigits(7-derJourSeptembre)..":10"
voir_les_logs("--- --- --- premDimOctobre : ".. premDimOctobre,debugging)


--===========================================================
    if jour_ferie[today] ~= nil then ferie = true end --passage de la variable à true si jour ferié 
    if epiphanie == today then 
        fete_jour = "Epiphanie"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif premDimMars == today then 
        fete_jour = "les Grand-Mères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)		        
    elseif meres == today then 
        fete_jour = "la Fête des Mères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)		
    elseif troisDimJuin == today then 
        fete_jour = "les pères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
        
    elseif ferie_vendredi_saint == true and vendredi_saint == today then
        fete_jour = "vendredi saint"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif paques == today then 
        fete_jour = "Pâques"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)	
    elseif lundi_paques == today then 
        fete_jour = "Lundi de Pâques"
        ferie = true
            voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif ascension == today then 
        fete_jour = "Ascension"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif pentecote == today then 
        fete_jour = "la Pentecôte"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif lundi_pentecote == today then 
        fete_jour = "Lundi de Pentecôte"
        ferie = true
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    elseif jour_ferie[today] ~= nil then 
        fete_jour = jour_ferie[today]
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
        elseif premDimOctobre == today then 
        fete_jour = "la Fête des Grand-Pères"
        voir_les_logs("--- --- --- Aujourd'hui : ".. fete_jour,debugging)
    else fete_jour = saint_jour[today] 
        voir_les_logs("--- --- --- Fête du jour : ".. saint_jour[today],debugging)
    end
    
    if anniversaire[today] ~= nil then  -- on priorise l'affichage des anniversaires sur les jours fériés sur les saints du jour
        if anniversaire_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
            anniversaire_jour = anniversaire[today]
        else 
            fete_jour = anniversaire[today]
        end
        voir_les_logs("--- --- --- Anniversaire du jour : ".. anniversaire[today],debugging)
    end    
    if epiphanie == tomorrow then 
            fete_demain = "Epiphanie"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif meres == tomorrow then 
        fete_demain = "la Fête des Mères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif premDimMars == tomorrow then 
        fete_demain = "la Fête des Grand-Mères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif troisDimJuin == tomorrow then 
        fete_demain = "la Fête des pères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif ferie_vendredi_saint == true and vendredi_saint == tomorrow then
        fete_demain = "vendredi saint"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif paques == tomorrow then 
        fete_demain = "Pâques"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif pentecote == tomorrow then 
        fete_demain = "la Pentecôte"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    elseif lundi_pentecote == tomorrow then 
        fete_demain = "Lundi de Pentecôte"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
        elseif premDimOctobre == tomorrow then 
        fete_demain = "la Fête des Grand-Pères"
        voir_les_logs("--- --- --- Demain : ".. fete_demain,debugging)
    else fete_demain = saint_jour[tomorrow]
        voir_les_logs("--- --- --- Fête de demain : ".. saint_jour[tomorrow],debugging)
    end 
    if anniversaire[tomorrow] ~= nil then
        if anniversaire_demain_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
            anniversaire_demain = anniversaire[tomorrow]
        else 
            fete_demain = anniversaire[tomorrow]
        end
        voir_les_logs("--- --- --- Anniversaire de demain : ".. anniversaire[tomorrow],debugging)
    end     
    
    
    if anniversaire_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini
        if anniversaire[today] == nil then anniversaire_jour = "aucun anniversaire" end
        commandArray[#commandArray+1] = {['UpdateDevice'] = anniversaire_text_idx .. '|0|Aujourd'hui nous fêtons ' .. anniversaire_jour}
        voir_les_logs("--- --- --- Mise à jour device texte".. anniversaire_text_idx .." ".. anniversaire_jour,debugging)
    end
    if anniversaire_demain_text_idx ~= nil then -- on affiche les anniversaires dans un device séparé si un idx a été défini 
        if anniversaire[tomorrow] == nil then anniversaire_demain = "aucun anniversaire" end    
        commandArray[#commandArray+1] = {['UpdateDevice'] = anniversaire_demain_text_idx .. '|0|Demain nous fêterons ' .. anniversaire_demain}
        voir_les_logs("--- --- --- Mise à jour device texte".. anniversaire_demain_text_idx .." ".. anniversaire_demain,debugging)
    end        
    
    if fete_text_idx ~= nil then
        commandArray[#commandArray+1] = {['UpdateDevice'] = fete_text_idx .. '|0|Aujourd'hui nous fêtons ' .. fete_jour}
        voir_les_logs("--- --- --- Mise à jour device texte".. fete_text_idx .." ".. fete_jour,debugging)
    end
    if fete_demain_text_idx ~= nil then 
        commandArray[#commandArray+1] = {['UpdateDevice'] = fete_demain_text_idx .. '|0|Demain nous fêterons ' .. fete_demain}
        voir_les_logs("--- --- --- Mise à jour device texte ".. fete_demain_text_idx .." ".. fete_demain,debugging)
    end
    
    
    
	if jour_ferie_switch ~= nil then 
		if ferie == true then
			commandArray[jour_ferie_switch] = 'On'
			voir_les_logs("--- --- --- Mise à jour device  "..jour_ferie_switch .." => On",debugging)
		else
			commandArray[jour_ferie_switch] = 'Off'
			voir_les_logs("--- --- --- Mise à jour device  "..jour_ferie_switch .. " => Off",debugging)
		end
	end
	if jour_ferie_scene ~= nil then 
		if ferie == true then
			commandArray['Scene:'..jour_ferie_scene] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  "..jour_ferie_scene .." => On",debugging)
		else
			commandArray['Scene:'..jour_ferie_scene] = 'Off'
			voir_les_logs("--- --- --- Mise à jour scénario  "..jour_ferie_scene .. " => Off",debugging)
		end
	end    
    
    
    
	if variable_jour ~= nil then	
	commandArray[#commandArray+1] = {['Variable:'.. variable_jour] = tostring('Aujourd'hui nous fêtons ' .. fete_jour)} -- écriture variable Saint du Jour
	
	voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour .." ".. fete_jour,debugging)
	end
	if variable_lendemain ~= nil then
	commandArray[#commandArray+1] = {['Variable:'.. variable_lendemain] = tostring('Demain nous fêterons ' .. fete_demain)} -- écriture variable	Saint du lendemain 
	
	voir_les_logs("--- --- --- Mise à jour variable ".. variable_lendemain .." ".. fete_demain,debugging)
	end
	if variable_jour_ferie ~= nil then
	
		if ferie == true then
			commandArray[#commandArray+1] = {['Variable:'.. variable_jour_ferie] = tostring('oui')} -- écriture variable	jour férié
			
			voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour_ferie .." => oui",debugging)
		else 
			commandArray[#commandArray+1] = {['Variable:'.. variable_jour_ferie] = tostring('non')} -- écriture variable	jour férié
			
			voir_les_logs("--- --- --- Mise à jour variable ".. variable_jour_ferie .." => non",debugging)
		end
	end
    if os.date("%W")%2 == 0 then 	-- semaine paire et impaire
        voir_les_logs("--- --- --- semaine paire",debugging)
        if Scene_Semaine_Paire ~= nil and Scene_Semaine_Impaire ~= nil then
            commandArray['Scene:'..Scene_Semaine_Paire] = 'On'
            commandArray['Scene:'..Scene_Semaine_Impaire] = 'Off'
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Paire .." => On",debugging)
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Impaire .." => Off",debugging)            
        end
    else
        voir_les_logs("--- --- --- semaine impaire",debugging)
        if Scene_Semaine_Paire ~= nil and Scene_Semaine_Impaire ~= nil then
            commandArray['Scene:'..Scene_Semaine_Paire] = 'Off'
            commandArray['Scene:'..Scene_Semaine_Impaire] = 'On'
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Paire .." => Off",debugging)
			voir_les_logs("--- --- --- Mise à jour scénario  "..Scene_Semaine_Impaire .." => On",debugging)            
        end        
    end
    voir_les_logs("--- --- --- jour de la semaine : ".. date_en_francais(os.date("%A")),debugging)
    voir_les_logs("--- --- --- jour de la semaine (nb) : ".. os.date("*t").wday,debugging)
    if jour_semaine_switch ~= nil then
    local select_day = os.date("*t").wday.."0"
    	commandArray[jour_semaine_switch] = 'Set Level: '.. select_day
		voir_les_logs("--- --- --- Mise à jour device  ".. jour_semaine_switch .." => "..select_day,debugging)
    end
    
voir_les_logs("=========== Fin Fete du jour (v".. version ..") =========",debugging)

end
return commandArray

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 09:12
par pigloox
Salut Papoo et merci pour tes scripts toujours bien pensés.

Ca fait maintenant quelque jours que j'ai cette erreur avec ce script :

Code : Tout sélectionner

Error: SQL Query("UPDATE DeviceStatus SET nValue='0',sValue='Aujourd'hui nous fêtons les Pelagie',LastUpdate='2017-10-08 08:20:00' WHERE (ID = '330')") : near "hui nous fêtons les Pelagie": syntax error
Je ne comprend pas ou chercher, peux tu m'aider ?
Merci

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 09:23
par thier
Il n'aime pas l'encodage de l'apostrophe dans aujourd'hui.

Envoyé de mon SM-T533 en utilisant Tapatalk

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 09:55
par papoo
@pigloox : Ton script fonctionnait il "avant"? L'as tu modifié récemment? As tu mis à jour domoticz ou ton système ? l'encodage de ton script est il bien en UTF-8(sans BOM)?
essai de l’éditer en ligne de commande avec nano et verifie dans la ligne

Code : Tout sélectionner

	if fete_text_idx ~= nil then
	commandArray[#commandArray+1] = {['UpdateDevice'] = fete_text_idx .. '|0|Aujourd\'hui nous fêtons ' .. fete_jour}
qu'il y a bien un antislash (\) après Aujourd

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 10:46
par pigloox
Merci pour ta réponse,

Alors oui, le script fonctionnait bien avant, cette erreur était juste remontée 1 fois de temps en temps.

Domoticz et le RPI ont été mis à jour récemment mais je ne peut pas te dire à partir de quelle version j'ai rencontré ce problème car je me penche sur le sujet que d'aujourd'hui

Pour ce qui est de l'encodage, je ne peux te dire, le script est directement enregistré dans Domoticz et l'antislash est bien présent.

Par contre, les saints du lendemain sont eux bien mis à jour...

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 11:03
par papoo
tu édites tes scripts avec quel éditeur? sous windows ou linux?
en utilisant notepad++ sous windows (existe en version portable) tu pourras vérifier l'encodage de ton fichier actuel

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 oct. 2017, 11:25
par pigloox
J'édite ce script directement dans Domoticz :

Image