Anfängerfrage - generelles zu *_template

Hallo zusammen,
ich habe mal eine allgemeine Verständnisfrage. Leider habe ich bisher nirgendwo eine Erklärung gefunden für dummies. Meistens werden direkt irgendwelche Beispiele gezeigt ohne genau zu erklären was da eigentlich passiert. Z.B. verwende ich folgendes Template um die Tuya Rollladen zu invertieren:

  - platform: template
    covers:
      rollladen_oben:
        friendly_name: Rollladen oben
        position_template: "{{ 100 - (state_attr('cover.rollo_oben_vorhang', 'current_position') | int) }}"
        open_cover:
          service: cover.close_cover
          data:
            entity_id: cover.rollo_oben_vorhang
        close_cover:
          service: cover.open_cover
          data:
            entity_id: cover.rollo_oben_vorhang
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.rollo_oben_vorhang
        set_cover_position:
          service: cover.set_cover_position
          data:
            entity_id: cover.rollo_oben_vorhang
            position: "{{ 100 - (position) }}"
        value_template: "{{is_state('cover.rollo_oben_vorhang', 'open' )}}"
        icon_template: >-
          {% if is_state('cover.rollo_oben_vorhang', 'close') %}
            mdi:window-shutter
          {% else %}
            mdi:window-shutter-open
          {% endif %}

Was bedeutet denn hier dieses position_template ?

position_template: "{{ 100 - (state_attr('cover.rollo_oben_vorhang', 'current_position') | int) }}"

Wird hier die Variable Position erzeugt, die nachher hier verwendet wird?

position: "{{ 100 - (position) }}"

Wofür ist dieses value_template? Wo wird der value verwendet?

value_template: "{{is_state('cover.rollo_oben_vorhang', 'open' )}}"

Bei mir funktioniert die Anzeige (Icon) des Rolladen nämlich nicht wirklich. Und vielleicht wäre es hilfreich die Hintergründe zu verstehen damit man Änderungen machen kann :slight_smile: