je me décide enfin à vous proposer ma version d’un script lua pour la gestion et de l’affichage des anniversaires des saints des jours feriés du jour et du lendemain dans domoticz.
je n’ai rien inventé, juste mis bout à bout des idées et des extraits de scripts vu sur le forum d’easydomoticz
Pourquoi le faire maintenant alors qu’il a été créé en mai 2016? à cause d’un article de deennoo sur l’activation du planning dans domoticz
Après avoir lu cet article, j’ai décidé de modifier une nouvelle fois mon script pour lui ajouter la gestion d’un switch jour férié afin de pouvoir utiliser le planning vacances de domoticz.
ce script vous permettra d’afficher dans des devices text et/ou dans des variables, le saint du jour et du lendemain sauf si il y a un anniversaire à fêter (en priorité) ou un jour férié.
il mettra aussi à jour un switch jour férié pour l’activation du planning. bien sûr il vous faudra renseigner les anniversaires qui vous importent avec leur date au format JJ:MM dans les champs anniversaire[« JJ:MM »].
l’éphéméride est déjà rempli mais vous pouvez bien sur le personnaliser avec les saints que vous préférez voir afficher.
Les jours fériés (uniquement ceux chaumés pour activer le planning vacances) se décomposent en deux groupes :
Le premier comprend les jours à date fixe (jour de l’an, noel…)
le deuxième, ceux dont il faut calculer la date.
un mode debbugging vous permet d’afficher dans la console le déroulement du script. Une fois le débogage réalisé pensez à mettre la variable debugging à false afin de ne pas surcharger vos log
ce script s’exécute trois fois par jour
--[[ name : script_time_fete_du_jour.lua auteur : papoo MAJ : 26/05/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 lendemainFête du jour (et du lendemain) en luahttps://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 = 1996 -- 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.70" -- 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 \xE2\x9D\x84" saint_jour["12:05"]="les Achille \xE2\x9D\x84" saint_jour["13:05"]="les Rolande \xE2\x9D\x84" saint_jour["14:05"]="les Matthias \xE2\x9D\x84" saint_jour["15:05"]="les Denise \xE2\x9D\x84" 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
pour l’activation du planning
il vous suffira ensuite de renseigner dans les champs :
Action On : http://192.168.100.240:8080/json.htm?type=command¶m=setactivetimerplan&ActiveTimerPlan=1
et
Action Off : http://192.168.100.240:8080/json.htm?type=command¶m=setactivetimerplan&ActiveTimerPlan=0
en personnalisant bien sur l’ip et le port de votre domoticz
Nouvelle version 1.70
ajout d’un icone « flocon de neige » pour identifier les 5 saints de glace les 11, 12, 13, 14 et 15 mai
jour de la fête des grand-mères aujourd’hui, je viens d’ajouter le calcul et l’affichage de cette fête, de celle des grand-pères
ainsi que l’affichage du jour de la semaine dans un sélecteur