Generic 'Vehicle' Card

I’ve updated the readme recently, GitHub - tmack8001/ha-rivian-card: Rivian Card for use with Home Assistant, to contain example screenshots of what the various states are.

That side view charging card is dynamic based on if the vehicle is charging or not. Unforutunately I’ haven’t gone in to modify and remove the charger plug when not plugged in (these images come straight from the manufacturer… working on an update to pull in the right wheel style and color).

when there is an active charge session

normal for when not charging (plugged in or not)

3 Likes

Was wondering if somebody did something similar for a Kia EV6, if so, would love to see it!
And if possible, receive the required files to get going!

Have started based on another example from the forum of @flixlixlix, see picture below but far from ready. See the post in the " Car Dashboard - Volkswagen ID3 2021" for the possibilities of the card.

Thanks!

3 Likes

I’ll second the request for an EV6.

Awesome work @genosonic :smiley:

Been looking for at way to display our Skoda Enyaq IV 60 in Home Asssistant and this is the perfect way :slight_smile:

Any chance you can make the Enyaq also in black (Our car color is “Black Magic Pearl”)

55a6eb8d73ccf5ca4a82a52c559fb305367259d8_2_500x500

Best regards
Nick Fredberg

So glad I stumbled upon this post. With a bit of Photoshop and the code above I was able to put the following card in action.

When the car is unlocked but no door is open it just displays an unlock sign:

Then I have images for all 4 doors, hood and trunk.




Forget about the entity that’s unavailable, the integration is not publishing it since yesterday.

So, this is a Skoda Scala Monte Carlo, if anyone has the same car, let me know and I can share the files…

Thank you very much

1 Like

I have been doing some updates that i would like to share.

Now the vehicle card contains images for when the fuel is below 40% and i also added a lock image when only the trunk is unlocked. Improved a bit the car in the card by adding a different background and a shadow under the car. See below the entire dashboard:

Below is only the trunk unlocked:

When doors are unlocked:

Also the lights turn on in the picture element on the top left corner.

I am also using the swipe card to place the most common functions like unlock/lock the trunk, doors, flash, flash and honk and force refresh data from the integration.

It came out pretty nice! Hope you like it too but if an suggestions please let me know!

Thank you all!

5 Likes

Yeeaaah, it looks good :smile:

1 Like

How can i build this :smiley: looks awsome!


Heavily inspired by this thread, I did wifie’s Mini this week. Using the BMW integration, I get the vital stats. In adition I can see the charger status, and how much juice gone into the car since connecting. The EV plug icon allows us to override the cost based charging scheme we’ve set up. The doors open icon obviously just show when the doors are open…

2 Likes

Fancy!!!
Where did you find the top view file? Or maybe it’s homemade?

Snatched it of a cardealer site. The sun roof served my purposes well. :smiley:

1 Like

Thanks for the inspiration in this thread!

I just build my first dash for my Cupra Leon ST Hybrid.
The first picture card has just a few information and will show if the lights are on (first picture).
The second picture card could show all open doors and trunk and hood. And there are four buttons for the main features i use.

Not completely ready yet. I’am going to add a card for charging and i am having problems getting the GPS-Data and Device Tracker.
But i am happy for the moment.

If needed i’ll share my configuration and files.


9 Likes

Is it possible to make it look like real 3D?

For instance, the normal mode and view are like this:

But when someone opens a door, the car view smoothly transitions to that perspective:

I found the 3D Model of that car here:
Volkswagen ID.4 X 3D Model (2021) - 3DCADBrowser

If you can share it, this would be awesome.

thanks in advance.

I would love to check your configuration :heart_eyes:
I have Cupre Leon “no hybrid” and would love something like this. However i dont understand how to get the data from the car. Tried using the sensors android auto has, but they give me no values…
Is there another way? And becuase mine is’t electric i guess i wont get data if the car is not on. But as long as it grabs data from last trip that should be fine for my usecase.

Hey, this looks really nice. Can you share your code?.Thank you

Hi,

I would love to adapt one of these card to my EV MG4. I am hesitating beteween @Bellardita card and @tmack8001 card.

First, I think I need to make image / svg files. Is there is a tutoriel which shows how to do that ?

@Bellardita , what is your last configuration ? Are you agree to share your code ?

Thanks

Anyone knows where I can find that background underneath the cars?

Hello Bellardita, I have a SEAT Leon ST Hybrid. Is it possible for you to share the configuration and files with me?

Using the integration for Hyundai and Kia I created two different vehicle cards.
Here’s the integration I’m using: GitHub - Hyundai-Kia-Connect/kia_uvo: A Home Assistant HACS integration that supports Kia Connect(Uvo) and Hyundai Bluelink. The integration supports the EU, Canada and the USA.

The first is for a Hyundai EV with the full BlueLink subscription. If you are an Ioniq 5 or 6 driver you may notice the morse code SoC indicator and it’s coded to match what is on the charge port of the vehicle using the charge percentages in the owners manual.

This image is from my phone. The icon and text positioning looks slightly different from web browser but I’m configured the picture elements card to work best from a phone.

This second example is for a Kia ICE vehicle that has the free tier Kia Connect (formerly UVO).

Since getting updates too frequently will drain the 12v battery and may flag an timeout for API calls with both Hyundai Bluelink and Kia Connect, I have a manual update button. I also have the integration set to a scan interval of 240 min and forced refresh of 240 min with the no update time set to 10pm - 6am as the default.

This is the lovelace code for the BlueLink full subscription card using an EV:

type: picture-elements
style: |
  ha-card {
    --charge-ev-optimal-range: {% if states('sensor.2023_ioniq_6_ev_battery_level')|float > 20 %} green {% else %} red {% endif %};
    --charge-12v-optimal-range: {% if states('sensor.2023_ioniq_6_car_battery_level')|float > 65 %} green {% else %} red {% endif %};
    --charge-1: {% if states('sensor.2023_ioniq_6_ev_battery_level')|float > 1 %} white {% else %} grey {% endif %};
    --charge-2: {% if states('sensor.2023_ioniq_6_ev_battery_level')|float > 24 %} white {% else %} grey {% endif %};
    --charge-3: {% if states('sensor.2023_ioniq_6_ev_battery_level')|float > 49 %} white {% else %} grey {% endif %};
    --charge-4: {% if states('sensor.2023_ioniq_6_ev_battery_level')|float > 74 %} white {% else %} grey {% endif %};
  }
image: /local/images/ioniq6.png
elements:
  - type: state-label
    entity: sensor.2023_ioniq_6_ev_range
    prefix: 'Range: '
    style:
      color: grey
      top: 21%
      left: 19%
  - type: state-icon
    entity: sensor.2023_ioniq_6_ev_battery_level
    state_color: false
    style:
      top: 6%
      left: 11%
      '--paper-item-icon-color': var(--charge-ev-optimal-range)
  - type: state-label
    entity: sensor.2023_ioniq_6_ev_battery_level
    style:
      color: grey
      top: 14%
      left: 12%
  - type: state-icon
    entity: sensor.2023_ioniq_6_car_battery_level
    title: 12v
    state_color: false
    style:
      top: 0%
      left: 18%
      transform: scale(1.1, 1.1)
      '--paper-item-icon-color': var(--charge-12v-optimal-range)
  - type: state-label
    entity: sensor.2023_ioniq_6_car_battery_level
    style:
      color: grey
      top: 14%
      left: 25%
  - type: state-icon
    entity: binary_sensor.2023_ioniq_6_air_conditioner
    icon: mdi:air-conditioner
    title: null
    state_color: true
    style:
      top: 1%
      left: 35%
      transform: scale(1.1, 1.1)
  - type: state-icon
    entity: binary_sensor.2023_ioniq_6_tire_pressure_all
    style:
      top: 7%
      left: 49%
  - type: state-icon
    entity: binary_sensor.2023_ioniq_6_ev_battery_plug
    state_color: true
    style:
      top: 7%
      left: 58%
  - type: state-label
    entity: sensor.2023_ioniq_6_estimated_charge_duration
    show_name: false
    style:
      color: grey
      top: 13%
      left: 58%
  - type: state-icon
    entity: binary_sensor.2023_ioniq_6_engine
    icon: mdi:power
    state_color: true
    style:
      top: 7%
      left: 67%
  - type: state-label
    entity: sensor.2023_ioniq_6_odometer
    prefix: 'odo: '
    style:
      color: grey
      top: 8%
      left: 85%
  - type: state-label
    entity: device_tracker.2023_ioniq_6_location
    style:
      color: grey
      top: 20%
      left: 92%
  - type: service-button
    title: Lock
    service: kia_uvo.lock
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 70%
      left: 86%
  - type: service-button
    title: Unlock
    service: kia_uvo.unlock
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 77%
      left: 86%
  - type: state-icon
    entity: lock.2023_ioniq_6_door_lock
    state_color: true
    style:
      top: 70%
      left: 67%
      transform: scale(1.1, 1.1)
  - type: service-button
    title: Start AC
    service: kia_uvo.start_climate
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 88%
      left: 86%
  - type: service-button
    title: Stop AC
    service: kia_uvo.stop_climate
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 95%
      left: 86%
  - type: state-label
    entity: sensor.2023_ioniq_6_set_temperature
    style:
      color: grey
      top: 92%
      left: 70%
  - type: state-icon
    icon: mdi:square
    entity: sensor.2023_ioniq_6_ev_battery_level
    state_color: false
    style:
      top: 75%
      left: 30%
      width: 40px
      height: 40px
      transform: scale(.5,.5)
      '--paper-item-icon-color': var(--charge-1)
  - type: state-icon
    icon: mdi:square
    entity: sensor.2023_ioniq_6_ev_battery_level
    state_color: false
    style:
      top: 75%
      left: 35%
      width: 40px
      height: 40px
      transform: scale(.5,.5)
      '--paper-item-icon-color': var(--charge-2)
  - type: state-icon
    icon: mdi:square
    entity: sensor.2023_ioniq_6_ev_battery_level
    state_color: false
    style:
      top: 75%
      left: 40%
      width: 40px
      height: 40px
      transform: scale(.5,.5)
      '--paper-item-icon-color': var(--charge-3)
  - type: state-icon
    icon: mdi:square
    entity: sensor.2023_ioniq_6_ev_battery_level
    state_color: false
    style:
      top: 75%
      left: 45%
      width: 40px
      height: 40px
      transform: scale(.5,.5)
      '--paper-item-icon-color': var(--charge-4)
  - type: service-button
    title: Update
    service: kia_uvo.update
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 85%
      left: 15%
  - type: state-label
    entity: sensor.2023_ioniq_6_last_updated_at
    show_last_changed: true
    style:
      top: 95%
      left: 32%
      color: grey

This is the lovelace code for the Kia Connect free tier subscription card using an ICE vehicle:

type: picture-elements
style: |
  ha-card {
    --charge-12v-optimal-range: {% if states('sensor.tride_car_battery_level')|float > 50 %} green {% else %} red {% endif %};
  }
image: /local/images/2020_kia_telluride.png
elements:
  - type: state-icon
    entity: binary_sensor.tride_engine
    state_color: true
    style:
      top: 28%
      left: 21%
  - type: state-label
    entity: device_tracker.tride_location
    style:
      color: grey
      top: 30%
      left: 12%
  - type: state-label
    entity: sensor.tride_fuel_driving_range
    style:
      color: grey
      top: 5%
      left: 8%
  - type: state-icon
    entity: binary_sensor.tride_fuel_low_level
    style:
      top: 12%
      left: 9%
  - type: state-label
    entity: sensor.tride_car_battery_level
    state_color: false
    style:
      color: grey
      top: 5%
      left: 20%
  - type: state-icon
    entity: sensor.tride_car_battery_level
    title: 12v
    state_color: false
    style:
      top: 12%
      left: 19%
      '--paper-item-icon-color': var(--charge-12v-optimal-range)
  - type: state-icon
    entity: sensor.tride_next_service
    style:
      color: grey
      top: 5%
      left: 29%
  - type: state-label
    entity: sensor.tride_next_service
    prefix: 'in:'
    style:
      color: grey
      top: 5%
      left: 41%
  - type: state-label
    entity: sensor.tride_odometer
    prefix: 'odometer: '
    style:
      color: grey
      top: 5%
      left: 80%
  - type: state-icon
    entity: binary_sensor.tride_air_conditioner
    icon: mdi:air-conditioner
    title: null
    state_color: true
    style:
      top: 85%
      left: 94%
  - type: state-icon
    entity: binary_sensor.tride_tire_pressure_all
    state_color: true
    style:
      top: 85%
      left: 85%
  - type: state-label
    entity: sensor.tride_set_temperature
    style:
      color: grey
      top: 96%
      left: 94%
  - type: state-icon
    entity: lock.tride_door_lock
    state_color: true
    style:
      top: 85%
      left: 75%
  - type: service-button
    title: Update
    service: kia_uvo.update
    service_data:
      device_id: [enter_your_device_id_here]
    target: {}
    style:
      color: grey
      top: 94%
      left: 75%
  - type: state-label
    entity: sensor.tride_last_updated_at
    show_last_changed: true
    style:
      top: 96%
      left: 32%
      color: grey

This is another card I made for the Hyundai EV based on information I found on this and other posts in the community.

Here is the lovelace code for that card:

type: custom:stack-in-card
mode: vertical
keep:
  background: false
  border_radius: false
  box_shadow: false
  margin: false
  outer_padding: false
cards:
  - type: glance
    entities:
      - entity: binary_sensor.2023_ioniq_6_ev_battery_plug
        name: Charger
      - entity: sensor.2023_ioniq_6_estimated_charge_duration
        name: Time Left
        icon: mdi:timer
      - entity: binary_sensor.2023_ioniq_6_fuel_low_level
        name: EV Battery
        icon: mdi:power
      - entity: sensor.2023_ioniq_6_ev_range
        name: Range
    show_state: true
    show_name: true
    state_color: true
  - type: custom:bar-card
    icon: mdi:battery-charging
    entities:
      - entity: sensor.2023_ioniq_6_ev_battery_level
    columns: '0'
    entity_row: false
    direction: right
    positions:
      icon: outside
      indicator: 'off'
      name: 'off'
      minmax: 'off'
      value: inside
    severity:
      - color: '#FFC107'
        from: '81'
        to: '100'
      - color: '#4CAF50'
        from: '20'
        to: '80'
      - color: '#FF5722'
        from: '0'
        to: '19'
  - type: custom:bar-card
    entities:
      - entity: sensor.2023_ioniq_6_ev_range
        max: 240
        min: 0
        severity:
          - color: Red
            from: 0
            to: 48
          - color: Orange
            from: 49
            to: 191
          - color: Green
            from: 192
            to: 240
  - type: glance
    entities:
      - entity: binary_sensor.2023_ioniq_6_tire_pressure_all
        name: Tire Pressure
      - entity: sensor.2023_ioniq_6_car_battery_level
        name: 12v Battery
      - entity: sensor.2023_ioniq_6_odometer
        name: Odometer
    show_state: true
    show_name: true
    state_color: true
  - type: custom:button-card
    entity: sensor.2023_ioniq_6_last_updated_at
    show_last_changed: true
    styles:
      grid:
        - grid-template-areas: '"i n l"'
        - grid-template-rows: 100%
        - grid-template-columns: 25% 45% 30%
      label:
        - justify-self: start
      name:
        - justify-self: end
        - margin-right: 10%
    name: 'Last Manual Attempt:'
    aspect_ratio: 7/1
  - type: custom:mushroom-entity-card
    entity: sensor.2023_ioniq_6_last_updated_at
    tap_action:
      action: call-service
      service: kia_uvo.update
      data:
        device_id: [enter_your_device_id_here]
      target: {}
    hold_action:
      action: call-service
      service: kia_uvo.force_update
      data:
        device_id: [enter_your_device_id_here]
      target: {}
  - type: gauge
    entity: sensor.2023_ioniq_6_ev_battery_level
    severity:
      green: 20
      yellow: 80
      red: 0
    needle: true
    unit: '%'

The one thing I can’t figure out is that sometimes the entity sensor.VEHICLE_next_service, which represents the miles left before service, displays as a whole number in miles and other times it shows up with 4 decimals places in the state-label. I know I can fix it by created a template sensor, but I’d like to figure out if I can do rounding right from the card perhaps using card_mod or something else. Searching it looks like this is a very old issue.

Thank you to everyone who posted on this topic and shared! It was a huge help to see what everyone else did.

3 Likes