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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 |
--[[ 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 = 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