Share working non-MQTT Garage w/Opening, Closing States Config

If you have a non-MQTT garage door opener in HA that uses the Garage Door Cover, that has all four states working - Opening, Closing, Open, and Closed, could you please share your configuration for it?

I have been unable to find anyone that has been able to show me how to make the Opening and Closing states work. All mine ever does is Open and Closed.

I would be grateful if someone could show me what I’m missing to get this working. I even resorted into making four boolean_inputs to set the states so I wouldn’t have to run my door open/closed all the time trying to debug this and I just can’t get it to work. I can get the icon to change appropriately but I can’t get the states of the garage cover to change to Opening or Closing for nothing.

Thank you!

I was wrong HA doesn’t even support this, I believe. No matter what type of integration you use, you can only have two states.

Huh, everyone else is telling me it supports four states. One person even pointed me to the source code of HA that shows all four states which is below:

So does it really support four states or just two?

Aah, I guess I was incorrect. It’s the integration’s job to support that. You might be able to copy the integration’s files, make it support it, and put it in the custom_integrations folder.

This is what I’ve been working with that I’ve been unable to get to work. Would love any suggestions in what I’m doing wrong here:

cover:
  - platform: template
    covers:
      garage_door:
        device_class: garage
        friendly_name: "Garage J Door"
        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 %}

        open_cover: 
        - service: switch.turn_on
          entity_id: switch.garage_main_door_relay
        
        close_cover:
        - service: switch.turn_on
          entity_id: switch.garage_main_door_relay
      
        stop_cover:
          service: switch.turn_on
          entity_id: switch.garage_main_door_relay

There’s a python_script in HACS that lets you set a state of an entity to anything. You can add an automation to do that.

I wonder if I’m trying to force something that just wasn’t meant to be.

Would it be easier to just make my own entity and set the states and icons to whatever I want? I’d love to see an example of that - maybe that is the better route to go.