Solved: Garage Cover w/four states won't work for me - help?

I was able to figure this out. I had to completely abandon the garage door cover. I still use the input_booleans for each state, then I use automations to move the state machine through the states. Here is the code that works below. Notice that it is now a “sensor” and no longer a cover. All of the states work properly.

The only part I need to figure out is how to change the color of the icons in the various states. Anyone know how to do that? I tried adding an icon_color: section but it didn’t like that one bit.

sensor:
  - platform: template
    sensors:
      garage_door_controller:
        friendly_name: "Garage Door Controller"
        value_template: >
          {% if is_state('input_boolean.garage_main_door_closing','on') %}
            Closing
          {% elif is_state('input_boolean.garage_main_door_open','on') %}
            Open
          {% elif is_state('input_boolean.garage_main_door_opening','on') %}
            Opening
          {% else %}
            Closed
          {% endif %}

        icon_template: >
          {% if is_state('input_boolean.garage_main_door_opening','on') %}
            mdi:garage-alert
          {% elif is_state('input_boolean.garage_main_door_open','on') %}
            mdi:garage-open
          {% elif is_state('input_boolean.garage_main_door_closing','on') %}
            mdi:garage-alert
          {% else %}
            mdi:garage
          {% endif %}

@Allistah If you upgrade to the latest version of HA, your template cover example above should now work. I submitted a code change to allow template covers to have “opening” and “closing” states, and this change was included in the new 2021.5 release.

My setup is the same and I’m trying to configure it. Are the helper booleans necessary with the latest change? Do you need to write your own state machine, so the open button sets the state to opening? I’d like to have an error state, and if the cover is in opening or closing more than 30 seconds, it goes to error.