Page 6 sur 6

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 17:52
par Keros
Hybris03 a écrit : 08 janv. 2021, 17:33 J'ai une erreur dans les logs et pas de notification (pourtant, je trouve bien une trace de la notif dans les logs) :
2021-01-08 17:29:00.423 Error: EventSystem: in script_time_fete_du_jour: [string "--[[ ..."]:705: attempt to concatenate a nil value (global 'anniversaire_demain')
Cette erreur indique que le script essaye d'utiliser la variable anniversaire_demain mais celle-ci est vide.

En fait, la partie de code concernée par l'erreur n'est pas celle que tu nous as donnée, mais celle où la variable anniversaire_demain est définie (si c'est bien le bon nom de variable à utiliser).

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 18:42
par Hybris03
Merci pour ton aide, tout fonctionne :)
Je ne récupérais pas la bonne donnée à renvoyer dans les notifications et il manquait un petit bout de code, c'est pour ça que le champs restait vide.
Pour ceux que ça intéresse, voici le code utilisé pour recevoir par notif les anniversaires du lendemain :

Code : Tout sélectionner

--[[
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 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 = 120                           -- idx du capteur texte saint du jour, nil si inutilisé
local fete_demain_text_idx = 123                    -- idx du capteur texte saint du lendemain, nil si inutilisé
local anniversaire_text_idx = 121                   -- idx du capteur texte anniversaire du jour pour afficher les anniversaires dans un device séparé, nil si inutilisé
local anniversaire_demain_text_idx = 122            -- 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["08:01"]={anniv="l\'anniversaire de TEST2", alerte=true}
anniversaire["09:01"]={anniv="l\'anniversaire de TEST5", alerte=true}
anniversaire["23:01"]={anniv="l\'anniversaire de Aurélie", alerte=true}
anniversaire["28:01"]={anniv="l\'anniversaire de Audrey", alerte=true}
anniversaire["01:02"]={anniv="l\'anniversaire de Juanita", alerte=true}
anniversaire["30:05"]={anniv="l\'anniversaire de Jacques", alerte=true}
anniversaire["01:06"]={anniv="nos ".. annee_mariage .." ans de mariage", alerte=true}
--===========================================================
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].anniv
        else
            fete_jour = anniversaire[today].anniv
        end
        voir_les_logs("--- --- --- Anniversaire du jour : ".. anniversaire[today].anniv,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].anniv ~= 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].anniv
                    if anniversaire[tomorrow].alerte == true then 
            commandArray['SendNotification']='Anniversaire de demain'..anniversaire_demain..'#0###FCM' 
        else
        fete_demain = anniversaire[tomorrow].anniv
                    end
            end
        voir_les_logs("--- --- --- Anniversaire de demain : ".. anniversaire[tomorrow].anniv, 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].anniv == 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 janv. 2021, 18:51
par Keros
Merci d'avoir mis le script complet, il pourra servir à d'autres ;)

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 19:03
par Hybris03
Keros a écrit : 08 janv. 2021, 18:51 Merci d'avoir mis le script complet, il pourra servir à d'autres ;)
C'est le but ;)
Dès que j'ai un moment j'essaierai de faire en sorte de recevoir la notification une seule fois et à heure fixe !

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 21:04
par denis_brasseur
Hybris03 a écrit : 08 janv. 2021, 19:03 Dès que j'ai un moment j'essaierai de faire en sorte de recevoir la notification une seule fois et à heure fixe !
Il te suffit d'exécuter le script à heure fixe et une seule fois par jour :
Exemple pour 00:20

Code : Tout sélectionner

if time.hour == 00 and time.min == 20 then

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 21:21
par Keros
Perso si je reçois un message pour mon anniv à 00:20, je sens que la journée risque de bien débuter :mrgreen:

Merci Denis ;)

Re: Scripts pour fête & Anniversaire du jour

Publié : 08 janv. 2021, 21:33
par Hybris03
Merci à tous les deux pour votre aide précieuse !
J'ai deux / trois petites modifs encore à apporter et je remettrai le script complet pour ceux que ça intéresse.
Bonne soirée 😉