Schedule State Card – Visualisation avancée des plannings (nécessite schedule_state)

Peznse à corriger l’indentation qui n’est pas bonne

- platform: schedule_state
  name: "test chauf"
  default_state: "eco"
  events:
    - start: "08:00"
      end: "10:00"
      state: "confort"
      condition:
        - condition: time
          weekday: [mon, tue, wed, thu, fri]
    - start: "18:00"
      end: "23:00"
      state: "boost

@FREDERIC_DURAND ça fonctionne au final ?

oui merci cela fonctionne reste plus qu’a faire mes planning correct

avec ce sensor :

- platform: schedule_state
  name: "test chauf"
  default_state: "eco"
  events:
    - start: "08:00"
      end: "10:00"
      state: "confort"
      condition:
        - condition: time
          weekday: [mon, tue, wed, thu, fri]
    - start: "18:00"
      end: "23:00"
      state: "boost"

voici ce que j’obtient

et le log

2025-12-15 17:30:21.590001 WARNING schedule_parser: Error loading global YAML (likely due to !include/secrets or indentation): automations.yaml is not a valid yaml file. Attempting extraction of sensor section...
2025-12-15 17:30:21.653323 ERROR schedule_parser: Skipping invalid sensor block #1: sensor block is not a mapping
2025-12-15 17:30:21.656626 ERROR schedule_parser: Skipping invalid sensor block #2: sensor block is not a mapping
2025-12-15 17:30:21.660143 ERROR schedule_parser: Skipping invalid sensor block #3: sensor block is not a mapping
2025-12-15 17:30:22.058625 INFO schedule_parser: Sensor 'sensor.schedule_tarif_actuel_ttc': 7 events - Unit: ''
2025-12-15 17:30:22.131507 INFO schedule_parser: Sensor 'sensor.schedule_test_chauf': 7 events - Unit: ''
2025-12-15 17:30:22.505247 INFO schedule_parser: Sensor 'sensor.schedule_chauffage_du_salon': 7 events - Unit: ''
2025-12-15 17:30:22.508271 INFO schedule_parser: Parsing completed: 3/3 sensors processed successfully
2025-12-15 17:30:22.508271 INFO schedule_parser: Parsing completed: 3/3 sensors processed successfully

Bonsoir;

Pour info, j’ai directement intégré l’équivalent du code AppDaemon dans une version modifiée de schedule_state :

Si tout fonctionne correctement (je suis en train de tester, aucun souci pour l’instant), je ferai une PR sur le dépôt d’origine.

Du coup, les sensor.schedule_* disparaissent : il faudra utiliser directement les sensor.*.
Ça permet aussi de simplifier l’installation et de se passer complètement d’AppDaemon.

@FREDERIC_DURAND et @bemo47 si vous avez le courage de basculer et de me faire une retour, je suis preneur

Je veux bien tenter la bascule. Si tu me dis ce qu’il faut faire pour basculer pas de soucis de mon côté.

  • Désinstalle schedules_state depuis HACS.

  • Ajoute le dépôt mentionné ci-dessus dans HACS, puis installe la version spécifique qu’il propose (attention bien prendre le nouveau dépot)

  • Redémarre HA.

  • Vérifie, via les outils de développement, que le capteur sensor.test_chauf contient bien les nouvelles informations dans les attributs.

  • Remets directement l’entité sensor.test_chauf dans la carte à la place de sensor.schedule_test_chauf .

  • Vérifie que ça affiche pareil qu’avant.

  • Désactive la partie schedule_parser dans AppDaemon.

je viens de faire la désinstalaltion de mon dépot actuel schedule_state de HACS, mais quand je veur réinstaller on dirait que je retombe sur le même, quoique il y a marqué version 0.19.5, est-ce bien le bon ?


C’est pas la bonne,


J’ai fait les changement minimaux dans le repo, pour me simplifier la vie avec le futur PR, mais du coup, c’est moins facile à distinguer coté HACS

ah j’ai pas compris comment la trouver alors

filtre sur le nom schedule s => 0 étoiles, activité récente


Evidement il faut avoir ajouté le repo avant

oui c’est le repo que je trouve pas, j’ai cliqué sur le lien que tu as mis dans le 1er message mais je tombe sur le mauvais

  1. Accéder aux dépôts personnalisés

    • Ouvre Home Assistant
    • Va dans HACS
    • En haut à droite, clique sur le menu
    • Sélectionne Dépôts personnalisés
  2. Ajouter le dépôt

    • Dans le champ URL du dépôt, colle :
      https://github.com/Pulpyyyy/schedule_state
      
    • Dans Catégorie, choisis :
      Integration
      
    • Clique sur Ajouter
  3. Ferme et relance la recherche

ahh là ça va mieux :sweat_smile:

C’est bon, pour moi tous a l’air fonctionnel

merci

C’est ce nom de dépot que je ne voyait pas dans les messages, je ne sais ou il était…
Sinon après redémarrage mon sensor.chauffage_du_salon a récupéré tous ça, je vérifie la suite :

states: boost, frost, comfort, eco
next_state: frost
start: 00:00:00
end: 23:59:59.999999
friendly_start: 00:00:00
friendly_end: midnight
errors: 
layers: 
mon:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
tue:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
wed:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
thu:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
fri:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
sat:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true
sun:
  - condition_key: default
    condition_text: ''
    blocks:
      - event_idx: 0
        start: '00:00'
        end: '01:30'
        original_start: '00:00'
        original_end: '01:30'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 1
        start: '01:30'
        end: '11:00'
        original_start: '01:30'
        original_end: '11:00'
        wraps_start: false
        wraps_end: false
        state_value: eco
        raw_state_template: eco
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 2
        start: '11:00'
        end: '19:00'
        original_start: '11:00'
        original_end: '19:00'
        wraps_start: false
        wraps_end: false
        state_value: comfort
        raw_state_template: comfort
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
      - event_idx: 3
        start: '19:00'
        end: '23:59'
        original_start: '19:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: boost
        raw_state_template: boost
        unit: ''
        raw_conditions: []
        condition_text: ''
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - binary_sensor.f_salon_g_contact
          match: all
          state: 'on'
    condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
    blocks:
      - event_idx: 4
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - binary_sensor.f_salon_g_contact
            state: 'on'
            match: all
        condition_text: '[''binary_sensor.f_salon_g_contact''] = on'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: |
      - !!python/object/new:annotatedyaml.objects.NodeDictClass
        dictitems:
          condition: state
          entity_id:
          - input_boolean.presence
          match: all
          state: 'off'
    condition_text: '[''input_boolean.presence''] = off'
    blocks:
      - event_idx: 5
        start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions:
          - condition: state
            entity_id:
              - input_boolean.presence
            state: 'off'
            match: all
        condition_text: '[''input_boolean.presence''] = off'
        tooltip: ''
        description: ''
        icon: mdi:calendar
        is_default_bg: false
        z_index: 2
        is_dynamic_color: false
    is_default_layer: false
  - condition_key: default
    condition_text: default
    blocks:
      - start: '00:00'
        end: '23:59'
        original_start: '00:00'
        original_end: '23:59'
        wraps_start: false
        wraps_end: false
        state_value: frost
        raw_state_template: frost
        unit: ''
        raw_conditions: []
        condition_text: default
        tooltip: Default state
        description: ''
        icon: mdi:calendar-check
        is_default_bg: true
        z_index: 1
        is_dynamic_color: false
    is_default_layer: true

events: 
- start: '00:00:00'
  end: '01:30:00'
  state: boost
- start: '01:30:00'
  end: '11:00:00'
  state: eco
- start: '11:00:00'
  end: '19:00:00'
  state: comfort
- start: '19:00:00'
  end: '23:59:00'
  state: boost
- state: frost
  condition:
    - condition: state
      entity_id:
        - binary_sensor.f_salon_g_contact
      state: 'on'
      match: all
- state: frost
  condition:
    - condition: state
      entity_id:
        - input_boolean.presence
      state: 'off'
      match: all

total_events: 28
last_update: 2025-12-16T11:55:58.594616+01:00
default_state: frost
icon: mdi:calendar-check
friendly_name: Chauffage du Salon

mais ma carte fonctionne toujours pareil sans aucune modification, je n’ai pas changé le sensor, est-ce normal ?

oui, si appdaemon tourne encore et/ou que les entités sensors.schedule_* sont toujours là …

mais donc il me faut désactiver schedule_parser maintenant ? ça se fait comment ?

Désinstallation de l’app AppDaemon ScheduleParser

1. Supprimer la configuration AppDaemon

Ouvre le fichier /config/apps/apps.yaml

Supprime ou commente le bloc suivant :

schedule_parser:
  module: schedule_parser
  class: ScheduleParser
  config_file: /homeassistant/configuration.yaml
  secrets_file: /homeassistant/secrets.yaml

2. Efface le fichier et répertoire

/config/apps/schedule_parser/schedule_parser.py

3. Redémarrer AppDaemon

Add-on Home Assistant : Paramètres → Add-ons → AppDaemon → Redémarrer

uhh c’est bon

j’avais pas vu la nuance entre sensor.schedule_chauffage… et sensor.chauffage_…
Donc je l’ai changé dans la carte
Schedule_parser.py supprimé, apps.yaml mis à jour, appdaemon redémarré, et ça fonctionne toujours donc c’est ok :sweat_smile:

Mais le appdaemon, il faut le garder pour le schedule_state je suppose ?