Automation issue: why isn't this wait_template waiting

so a little more experimenting seems to allow for determining ‘opening’ and ‘closing’, by adding 1 script.cover_stookhok_position, and adding that in the sequence before the existing one:

script:
  cover_stookhok_position:
    alias: Cover stookhok position
    mode: restart
    sequence:
      - condition: template
        value_template: >
          {{toposition != fromposition}}
      - service: input_boolean.turn_on
        data_template:
          entity_id: >
            input_boolean.{{'cover_stookhok_opening' if toposition > fromposition else 'cover_stookhok_closing'}}
# below not needed because booleans are turned off anyway. and always start from 'off'
#      - service: input_boolean.turn_off
#        data_template:
#          entity_id: >
#            input_boolean.{{'cover_stookhok_opening' if toposition < fromposition else 'cover_stookhok_closing'}}

automation:
  - alias: Cover stookhok
    trigger:
      platform: state
      entity_id: cover.raamverduistering_stookhok
    action:
      - service: script.cover_stookhok_position
        data_template:
          toposition: '{{trigger.to_state.attributes.current_position}}'
          fromposition: '{{trigger.from_state.attributes.current_position}}'
      - service: script.cover_stookhok

this in turn allows me to customize the icon even better, and, instead of the ‘motion’ icon, show ‘archive-arrow-down’ and ‘archive-arrow-up’ :wink:
which is a nice and unforeseen use of these ‘Archive’ icons…

homeassistant:
  customize:
    cover.raamverduistering_stookhok:
      templates:
        icon: >
          if (entities['input_boolean.cover_stookhok_opening'].state == 'on') return 'mdi:archive-arrow-up';
          if (entities['input_boolean.cover_stookhok_closing'].state == 'on') return 'mdi:archive-arrow-down';
          if (state == 'open' && attributes.current_position == 100) return 'mdi:window-shutter-open';
          if (state == 'closed') return 'mdi:window-shutter';
          else return 'mdi:window-shutter-alert';
        icon_color: >
          if (entities['binary_sensor.raamverduistering_stookhok_moving'].state == 'on') return 'red';
          if (state == 'open' && attributes.current_position == 100) return 'gold';
          if (state == 'closed') return 'midnightblue';
          else return 'green';
1 Like