Dashboards: how to fill cards like overview (domain specific)?

I think I am missing something simple.

I understand the overview/automatic (original-states) dashboard is special.

But it appears to bring in card types specific to each entity. If I fill in a manually (start from scratch) dashboard, one way to do so is with custom auto-entities. But that requires (I think) that I pick a card type.

Is there any way to do something similar (e.g. auto-incorporate entities) and have them use a card appropriate to their domain, like the overview dashboard does?

The closest are types like glance, entity and tile, but those are not nearly as robust.

Linwood

This is as close as I’ve been able to get so far with auto-entities and templating. It does allow me to look at attributes of an entity and pick the card type, which is what I want. What it doesn’t do is make it very easy to arrange sizing (e.g. thermostats bigger than buttons), though it does adjust row height to the largest in a row, all columns are the same size. And of course you can not drag and drop any arrangements since it’s all generated by the sort order of the auto-entities.

But in case it’s useful (or in case there is a simpler way) an example (you clearly might want to adjust the if’s and types used. This is one view of a dashboard:

  - title: Lab Test
    type: panel
    cards:
      - type: custom:auto-entities
        card:
          type: grid
          title: stuff
          columns: 6
          square: false
        card_param: cards
        filter:
          template: >

            [ {% for e in (expand(area_entities("Lab")) |
            map(attribute='entity_id') | list ) %} 
                {% if states[e].domain == 'light' %} 
                      {{ { 'entity' : e , "type" : "light"  } }}  
                {% elif states[e].domain == 'climate' %} 
                      {{ { 'entity' : e , "type" : "thermostat"  } }}  
                {% elif states[e].domain == 'sensor' %} 
                      {{ { 'entity' : e , "type" : "sensor"  } }}  
                {% elif states[e].domain == 'binary_sensor' %} 
                      {{ { 'entity' : e , "type" : "entity"  } }}  
                {% elif states[e].domain == 'switch' %} 
                      {{ { 'entity' : e , "type" : "button"  } }}  
                {% else %} 
                      {{ { 'entity' : e , "type" : "entity"  } }}  
                {% endif %}
                , 
              {% endfor %}  
            ]
        sort:
          method: name
          ignore_case: true
          square: false

My guess is I could get more flexible if I didn’t use the grid card in the auto-entities, but not sure what choice I have there.