Template - Cover: migration - entity is no longer being provided by the template integration

I’ve been trying to update my config.yaml’s templates to the new version.
But I get the following error for all my covers, yet my lock and switches work.


What is wrong in my yaml?

template:
  - cover:
      - name: Garage Door Gauche
        device_class: garage
        unique_id: cover.garage_door_gauche
        open_cover:
          - action: script.open_garage_gauche
        close_cover:
          - action: script.close_garage_gauche
        default_entity_id: cover.garage_door_gauche
        state: "{{ is_state('binary_sensor.push_button_6_2', 'off') }}"
      ######## garage Droite
      - name: Garage Door Droite
        device_class: garage
        unique_id: cover.garage_door_droite
        open_cover:
          - action: script.open_garage_droite
        close_cover:
          - action: script.close_garage_droite
        default_entity_id: cover.garage_door_droite
        state: "{{ is_state('binary_sensor.push_button_5_2', 'off') }}"
      #### Portail ext bis
      - name: portail_exterieur_bis
        device_class: gate
        unique_id: cover.portail_exterieur_bis
        value_template: "{{ is_state('binary_sensor.shellyplus1_portail', 'on') }}"
        open_cover:
          - action: script.portail_open
        close_cover:
          - action: script.portail_close
      ##### rideau cinema
      - name: rideau cinema inverted
        device_class: curtain
        friendly_name: rideau cinema inverted
        unique_id: cover.rideau_cinema_inverted
        position_template: >
          {{100 - (state_attr('cover.rideau_cinema','current_position')|int)}}
        set_cover_position:
          service: cover.set_cover_position
          data_template:
            entity_id: cover.rideau_cinema
            position: >
              {{100 - position}}
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.rideau_cinema
      #### volet piscine
      - name: volet piscine inverted
        device_class: shutter
        friendly_name: volet piscine inverted
        unique_id: cover.volet_piscine_inverted
        position_template: >
          {{100 - (state_attr('cover.pool_curtain','current_position')|int)}}
        set_cover_position:
          service: cover.set_cover_position
          data_template:
            entity_id: cover.pool_curtain
            position: >
              {{100 - position}}
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.pool_curtain
  #####
  - lock:
      - name: Garage Gauche Template
        lock:
          - target:
              entity_id:
                - cover.garage_gauche
            action: cover.open_cover
        unlock:
          - target:
              entity_id:
                - cover.garage_gauche
            action: cover.close_cover
        optimistic: false
        state: "{{ is_state('binary_sensor.push_button_6_2', 'on') }}"
  - switch:
      - unique_id: switch.jardintemplate
        turn_on:
          - target:
              entity_id:
                - button.s106_kitch_b1
            action: button.press
        turn_off:
          - target:
              entity_id:
                - button.s106_kitch_b4
            action: button.press
        default_entity_id: switch.jardintemplate
        state: "{{ is_state('light.jardin_lights', 'on') }}"
        name: jardintemplate
      ########```

I’ve narrowed down the issue:
This template (and the one after) do not work anymore: what is the correct syntax now?

      - name: rideau cinema inverted
        device_class: curtain
        friendly_name: rideau cinema inverted
        unique_id: cover.rideau_cinema_inverted
        position_template: >
          {{100 - (state_attr('cover.rideau_cinema','current_position')|int)}}
        set_cover_position:
          service: cover.set_cover_position
          data_template:
            entity_id: cover.rideau_cinema
            position: >
              {{100 - position}}
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.rideau_cinema

Please see the pinned topic here for help: Deprecation of legacy template entities in 2025.12
Also here is a custom Integration to convert them for you if that doesn’t work for you.

Comment there if you need more help.

I commented on the post you mentionned… thx

1 Like