Plusieurs Scheduler sur les mêmes entités

Mon problème

Pour piloter mon chauffage, j’utilise les Scheduler. Ce composant est super pratique.
Mais, pour j’aurai besoin d’avoir plusieurs Scheduler (ou de Scheduler) différemment une même entité en fonction de la valeur d’une autre. Typiquement, je voudrais que les jours EDF Tempo rouge, la planification du chauffe-eau soit différente de celle des jours BLEU ou BLANC.

J’ai bien une option qui permet d’ajouter une condition à un Schedule mais ne fait qu’activer ou désactiver le Schedule. Ca ne me permet pas de choisir entre 2 Schedule sur la même entité.

Quand j’essaye de créer un autre Schedule sur une même entité, ça récupère l’existant mais ça n’en créé par une autre.

Bref si quelqu’un a réussi à contourner cette limitation je prends.

Je suis en Scheduler Card 2.3.9 (la dernière en date) et Scheduler Component 3.2.12.

Je te confirme que c’est possible, je m’en sert pour pouvoir facilement changer la programmation entre 5-6 usuels

Ca serait pas l’option discover_existing: false , qu’il te manque ?

Merci pour la réponse @roumano . J’ai essayé l’option mais ça ne fait pas ce que je veux.
J’ai créé un nouveau Scheduler Card, j’ai tapé ça :

type: custom:scheduler-card
discover_existing: false
include:
  - climate.thermostat_bureau
  - climate.thermostat_entree
  - climate.thermostat_mezzanine
  - climate.thermostat_sam1
  - climate.thermostat_sam2
  - climate.thermostat_sam3
  - sensor.rte_tempo_jour
exclude: []
title: Planificateur Thermostat Tempo ROUGE

et voici ce que j’obtiens :

Les 2 Scheduler entourés en rouge sont liés. Je ne peux pas desactiver un sans desactiver l’autre par exemple.

il faut leur changer la configuration de tes deux scheduleurs :
c’est soit la balises soit la conditions qu’il te faut ( je sais plus trop, j’ai fait ça il y a longtemps)

J’ai essayé les conditions mais elles sont recopiées des 2 cotés. Je vais essayer les balises même si j’ai pas compris à quoi ca servait. Je tente ça (la doc est là pour ceux que ça intéresse: GitHub - nielsfaber/scheduler-card: HA Lovelace card for control of scheduler entities)

Merci @roumano ca marche avec les tags (balises en Français).
Le principe est le suivant :

  • créez une deuxième Scheduler Cards :
    • décochez l’option « Show all schedules »,
    • mettez lui une balise (tag) : « tempo_rouge » par exemple dans mon cas,
  • choisissez les entités à utiliser et les éventuels sensor ou binary_sensor qui vont servir aux conditions

Ensuite lorsqu’on ajoute une planification sur cette card, elle va prendre automatiquement le tag de la card (ou positionner le tag manuellement si la planification a déjà été créée).
Mettez lui une condition (inverse que celle sur la 1ère Scheduler card dans mon cas) :

Et voilà, 2 Scheduler Cards différentes sur les mêmes entités chacune s’activant en fonction des conditions.

Complexe la première fois mais puissant et finalement assez logique.

1 « J'aime »

Salut @roumano

Je viens de tomber sur ton poste et je suis exactement sur cette problématique mais j’ai du mal à appréhender la logique en fonction du jour et de son type pour activer tel ou tel scheduler.
L’idée c’est en fonction des jours : présent, home office, absent, etc… cela déclenche un certain scheduler.

Tu saurais m’en dire plus sur la solution que tu as mise en place ?
Merci de ton aide

Salut,

Ca se fait en plusieurs etapes :

1/ cree plusieurs template binary_sensor : ( un par choix que tu veut utiliser )

    - name: Condition Schedule Absent
      state: >
        {% set sensor_names = [ 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche' ] %}
        {% set today_name = sensor_names[now().weekday()] %}
        {% set entity_id = 'input_select.climate_agenda_'+today_name %}
        {% if states(entity_id) == "Absent" %}
          on
        {% else %}
          off
        {% endif %}

2 / Cree un input_select par jour, avec la liste des possbilitees :

  climate_agenda_lundi:
    name: Lundi
    options:
      - Absent
      - Confort
      - Semaine
      - Télé-Travail
      - Present
      - Special
  climate_agenda_mardi:
    name: Mardi
    options:
      - Absent
      - Confort
      - Semaine
      - Télé-Travail
      - Present
      - Special
...

3 / Cree un dashboard avec la iste de choix par jour :

Code choix par jour
grid-template-columns: auto auto auto
grid-template-rows: auto
grid-template-areas: |
  "footer1 footer2 footer3 footer4 footer5 footer6 footer7"
mediaquery:
  "(max-width: 600px)":
    grid-template-columns: 100%
    grid-template-areas: |
      "footer1"
      "footer2"
      "footer3"
      "footer4"
      "footer5"
      "footer6"
      "footer7"
  "(max-width: 1065px)":
    grid-template-columns: auto auto
    grid-template-areas: |
      "footer1 footer2"
      "footer3 footer4"
      "footer5 footer6"
      "footer7 footer8"
  "(max-width: 1550px)":
    grid-template-columns: auto auto auto auto
    grid-template-areas: |
      "footer1 footer2 footer3 footer4"
      "footer5 footer6 footer7 footer8"

4/ cree autant de scheduler que de ces input_select :

Code scheduler card
type: custom:stack-in-card
mode: horizontal
cards:
  - type: custom:layout-card
    layout_type: custom:grid-layout
    layout:
      grid-template-columns: 50% 50%
      grid-template-rows: auto
      grid-template-areas: |
        "absent confort"
        "semaine teletravail"
        "present special"
        "mercredi ddd"
        "sdb chat"
      mediaquery:
        '(max-width: 700px)':
          grid-template-columns: 100%
          grid-template-areas: |
            "absent"
            "confort"
            "semaine"
            "teletravail"
            "present"
            "special"
            "mercredi"
            "chat"
            "sdb"
        '(max-width: 1550px)':
          grid-template-columns: 50% 50%
          grid-template-areas: |
            "absent confort"
            "semaine teletravail"
            "present special"
            "mercredi ddd"
            "sdb chat"
    cards:
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: absent
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Absent
        discover_existing: false
        time_step: 5
        tags:
          - absent
        customize:
          binary_sensor.condition_schedule_absent:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: confort
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Confort
        discover_existing: false
        time_step: 5
        tags:
          - confort
        customize:
          binary_sensor.condition_schedule_confort:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: semaine
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Semaine
        discover_existing: false
        time_step: 5
        tags:
          - semaine
        customize:
          binary_sensor.condition_schedule_semaine:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: teletravail
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Télé-Travail
        discover_existing: false
        time_step: 5
        tags:
          - teletravail
        customize:
          binary_sensor.condition_schedule_tele_travail:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: present
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Present
        discover_existing: false
        time_step: 5
        tags:
          - present
        customize:
          binary_sensor.condition_schedule_present:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: special
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Special
        discover_existing: false
        time_step: 5
        tags:
          - special
        customize:
          binary_sensor.condition_schedule_special:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: mercredi
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate
        title: Mercredi
        discover_existing: false
        time_step: 5
        tags:
          - mercredi
        customize:
          binary_sensor.condition_schedule_mercredi:
            states:
              - 'on'
              - 'off'
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: chat
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
          icon: mdi:cat
        include:
          - switch.fontaine_a_eau
        title: Fontaine d'eau
        discover_existing: false
        customize:
          switch.fontaine_a_eau:
            name: Chat
            icon: mdi:cat
        icon: mdi:cat
        time_step: 5
      - type: custom:scheduler-card
        style: |
          ha-card {
            border: 0px;
            background: none;
            box-shadow: none;
          }
          .card-actions {
            border-top: 0px
          }
        view_layout:
          grid-area: sdb
        show_header_toggle: false
        display_options:
          primary_info:
            - '{name}'
            - '{action}'
        include:
          - climate.thermostat_sdb
        title: SdB
        discover_existing: false
        time_step: 5

( Je suis en layout-card, permettant un placement differents suivant la taille de l’ecran , c’est pour ca le code specifique avec les layout et … )

ps : etant la sur un clavier US, desole pour les accents manquants

Merci super le partage détaillé!
Je regarde cela dans la semaine, j’aurais peut être quelques questions mais ca me semble très clair