Forum Francophone Home Assistant

Jours fériés et vacances scolaire

bonjour,

je viens vous présenter une utilisation du google calendar.
je souhaite éteindre/allumer la tv des enfants a heures différentes si demain/aujourd’hui est férié, travaillé ou vacances.
pour les jours travaillés pas de soucis: HA connait monday, …,sunday.
pour les jours fériés et les vacances on vas utilisé google calendar intégrant le calendrier des fériés Français et des vacances scolaire par zone (ici zone B).
je rappel que j’utilise un fichier pour mes sensor: sensor.yaml.
dans sensor.yaml je crée 4 sensors :

férié ou vacances aujourd’hui.

- platform: template
  sensors:
    template_fca:
      friendly_name: ferier ou congé aujourd'hui
      value_template: >-
        {{ (states.calendar.jours_feries_en_france.state == 'on') or (states.calendar.calendrier_scolaire_zone_b.state == 'on') }}

ferié demain

{% set demain = (as_timestamp(now()) + (48*3600)) | timestamp_custom('%Y-%m-%d', True) %}
          {% if demain <  states.calendar.jours_feries_en_france.attributes.start_time or demain > states.calendar.jours_feries_en_france.attributes.end_time %} 
          non
          {% else %} 
          toui
          {% endif %}

vacances demain

{% set demain = (as_timestamp(now()) + (48*3600)) | timestamp_custom('%Y-%m-%d', True) %}
          {% if demain <  states.calendar.calendrier_scolaire_zone_b.attributes.start_time or demain > states.calendar.calendrier_scolaire_zone_b.attributes.end_time %} 
          non
          {% else %} 
          toui
          {% endif %}

férié ou congé demain:

- platform: template
  sensors:
    template_fcd:
      friendly_name: ferier ou congé demain
      value_template: >-
        {{ (states.sensor.template_vd.state == 'oui') or (states.sensor.template_fd.state == 'oui') }}

voila a type d’exemples

rajout:

les calendrier des jours ferié proviennent de google: ca change pas d’une année sur l’autres.
https://calendar.google.com/calendar/embed?src=fr.french.official%23holiday%40group.v.calendar.google.com&ctz=Europe%2FParis
pour les vacances la provenance et du site gouvernement.fr ca change au grandes vacances.
2021/2022 https://fr.ftp.opendatasoft.com/openscol/fr-en-calendrier-scolaire/Zone-B.ics

3 J'aimes

Super ça, merci pour le partage :grinning: :ok_hand:

Autre option, utiliser l’intégration workday:

Super merci :wink:

Ah ben je me rends compte que je faisais différemment avec un sensor qui parse le fichier xml d’education.gouv.fr
Ce n’est pas de moi bien sur lol

Excellent, je n’avais jamais pensé à ajouter cela depuis le calendrier google.
Merci

@Canaletto
Comment fais tu pour conjuguer workday et vacances scolaires de ton côté stp ?
C’est interessant
Avec workday, pour moi ca t’oblige a rajouter « add_holidays » manuellement non ?

Oui, pour les vacances scolaires workday: ça obligerai un ajout manuel une fois par an et en plus ça va créer une confusion entre les jours fériés et les vacances scolaires. Possible mais pas idéal. Au temps pour moi, j’ai donc répondu trop rapidement en pensant à autre chose.

J’ai utilisé plein de calendriers Google et Outlook/365, si le second permet facilement la remontée de notifs de HA vers Outlook/365, Google me parait le plus fiable si on part de zéro.

Pour intégrer les calendriers on peut les récupérer ici : https://www.data.gouv.fr/fr/datasets/le-calendrier-scolaire-format-ical/

C’était pour ma culture si tu avais fait différemment, pour ajouter une corde à notre arc HA, aucunement une critique hein ? :wink:

Le Calendrier Google parait etre la meilleure alternative pour une planification, tant que HA n’aura pas de calendrier en natif.

Merci pour le lien.

bonjour,
merci d’avoir pris le temps de me lire.
j’en profite pour te remercier car c’est ton site qui m’a fait découvrir HA.
bravo a toi,
je n’été pas satisfait de workday,( implémentation manuel des févriers et des vacances) par contre le mercredi était facilement intégrable et je n’ai pas choisi la méthode proposé par un autre membre car j’ai choisi la méthode des !includes. et n’est pas encore saisi la finalité des customize:.

Il y a ce dev en cours qui est très prometteur : https://community.home-assistant.io/t/scheduler-card-custom-component/217458/864

Content que ça ait pu t’aider :slight_smile:

1 J'aime

Bonjour,

Merci pour la correction :wink:

Peux-tu prendre l’habitude de mettre le code dans les balises <code> stp, pour améliorer la lisibilité et ca garde l’indentation :wink:
plutôt utile avec le yaml :wink:

mise à jours de férié demain et congé demain suite à une erreur dans la formule.
maintenant opérationnel à 100%.
:slight_smile:

2 J'aimes

Bonjour,
C’est un super script que je vois là !
Avec est il possible de désactiver l’ouverture des volets en fonction des jours fériers / vacance ?
Je viens de copier les différents codes dans mon fichier sensor.yaml mais après comment je dois faire ?
Je dois faire un include dans mon fichier configuration.yaml et si oui comment stp ?
J’ai testé : sensor: !include sensor.yaml mais je ne retrouve pas la possibilité de choisir dans mes automations si c’est un jour férier/vacance pour désactiver mes volets.
Désolé, je débute :upside_down_face:

bonjour.

oui tu peux activer tes volets en fonctions des jours feriers et vacances.
pour m’expliquer un peu plus.
ceci sont des sensor qui résultent de l’intégration de google calendar.

il faut déjà intégrer google calendar a HA

puis intègres les différents calendriers jours férié en France et vacances scolaire de la zone concerné a google calendar.
https://sites.google.com/a/csimple.org/comment/google-apps/google-agenda/ajout-d-un-calendrier-externe (a titre d’exemple)

puis dire a HA quels calendrier doivent être synchroniser.

À chaque redémarrage, tous les calendriers du compte Google configuré seront extraits et ajoutés au google_calendars.yaml et préconfigurés en tant qu’entité unique. En définissant la variable ‹ track › sur true le calendrier,

voila comment j’ai obtenu férié aujourd’hui et vacances aujourd’hui.
j’ai ensuite créer les sensor férié demain et/ou vacances demain.

voila en espérant avoir répondu a ta question
je te joint une automation sur l’extinction des tv des enfants en fonction des jours des vacances et des ferié. ce qui devrait ressembler a tes volets :wink:

prise tv enfants
alias: prise tv on/off
    description: ''
    trigger:
      - platform: time
        at: '07:00:00'
      - platform: time
        at: '22:35:00'
      - platform: time
        at: '01:00:00'
    condition: []
    action:
      - choose:
          - conditions:
              - condition: time
                after: '7:00:00'
                before: '22:00:00'
                weekday:
                  - mon
                  - tue
                  - wed
                  - thu
                  - fri
                  - sat
                  - sun
            sequence:
              - service: switch.turn_on
                data:
                  entity_id: group.prises_tv
          - conditions:
              - condition: time
                after: '22:30:00'
                before: '23:59:00'
                weekday:
                  - mon
                  - wed
                  - thu
                  - sun
              - condition: not
                conditions:
                  - condition: state
                    entity_id: sensor.template_fcd
                    state: 'True'
            sequence:
              - service: switch.turn_off
                data:
                  entity_id: group.prises_tv
          - conditions:
              - condition: time
                after: '1:00:00'
                before: '5:00:00'
            sequence:
              - service: switch.turn_off
                data:
                  entity_id: group.prises_tv
        default: []
    mode: single
1 J'aime

Merci @steffleur, je vais étudier tout ça pendant les vacances :wink:

1 J'aime

@steffleur désolé de te déranger encore une fois, mais je ne comprends pas une chose.
Aujourd’hui, nous sommes en vacances (été) et les deux lignes (aujourd’hui et demain) sont sur false, ça ne devrait pas être sur true ?
image

Bonjour, je pense que domogeek n’as pas encore mis à jour son calendrier
Moi je prend les jours congé sur le site du gouvernement
Qui vont ensuite sur mon Gmail
Il a fallu faire la mise à jours car l’année scolaire est maintenant 2021/2022
image

je te donne le liens du calendrier 21/22 du gouv
https://fr.ftp.opendatasoft.com/openscol/fr-en-calendrier-scolaire/Zone-B.ics
pour le s ferié en france c’est un calendrier google:
https://calendar.google.com/calendar/embed?src=fr.french.official%23holiday%40group.v.calendar.google.com&ctz=Europe%2FParis

J’ai du faire une boulette…
Voici mon code, j’ai remplacé l’url de base par celle du gouv: (désolé, je n’ai pas trouvé comme formater le texte en code)

  - platform: rest # https://www.home-assistant.io/integrations/rest
     scan_interval: '01:00:00'
     name: vacances_domogeek_aujourdhui
     resource_template: |-
     {% set zone = 'B' %} {# Zone must be 'A', 'B' or 'C' #}
      https://fr.ftp.opendatasoft.com/openscol/fr-en-calendrier-scolaire/Zone-B.ics

Du coup j’ai une belle ligne jaune au niveau du sensor :roll_eyes:
image

Pour ce qui concerne le binary_sensor ça à l’air de le faire (Actif), je n’ai pas touché à cette partie du code.

ok
je voie le souci
donc comme je te l’explique j’utilise google agendas
et j’ai donc créer des sensors en fonction de cette agendas.(c’est dans cette agendas qui je met les liens )

pour revenir a ton cas tu utilise domogeek
je te conseil cette article de HACF qui te fera exactement ce donc tu as besoin

et tu auras tes deux sensors: sensor.vacances_scolaires_domogeek_aujourdhui et sensor.vacances_scolaires_domogeek_demain
par contre domogeek ne propose pas a ma connaissance les jours ferié.

Malheureusement l’API Domogeek n’est plus maintenue, et les retours de l’API ne sont plus les bons (elle n’a pas bougé depuis 6-7 ans …) :frowning:

bon bhé tout est dit .
vas falloir utiliser scheduler/ ou google agenda /ou worday.

stefan