Skip to content

Instantly share code, notes, and snippets.

@tmack8001
Last active February 17, 2024 21:37
Show Gist options
  • Save tmack8001/d213097f4309a977d1806573cf2b2e91 to your computer and use it in GitHub Desktop.
Save tmack8001/d213097f4309a977d1806573cf2b2e91 to your computer and use it in GitHub Desktop.
Rivian Home Assistant - Dashboards

Below are a bunch of YML files for setting up Home Assistant dashboards and automations for Rivian vehicles.

description: ""
mode: single
trigger:
- platform: state
entity_id:
- binary_sensor.rivian_body_closures_door_fl_state
- binary_sensor.rivian_body_closures_door_fr_state
- binary_sensor.rivian_body_closures_door_rl_state
- binary_sensor.rivian_body_closures_door_rr_state
- binary_sensor.rivian_body_closures_tailgate_state
- binary_sensor.rivian_body_closures_sidebin_l_state
- binary_sensor.rivian_body_closures_sidebin_r_state
- binary_sensor.rivian_body_closures_frunk_state
to: "on"
for:
hours: 1
minutes: 0
seconds: 0
condition: []
action:
- device_id: f61d70f281172abb82c815a69ae8e878
domain: mobile_app
type: notify
message: "Rivian Door Left Ajar - check as it impacts vehicle's ability to \"sleep\" "
alias: Notify - Door Ajar
alias: Rivian OTA - Download Notification
description: notify phone(s) when Rivian OTA state changes
trigger:
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "9"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "24"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "49"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "74"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "89"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "94"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_download_progress
above: "99"
condition: []
action:
- device_id: f61d70f281172abb82c815a69ae8e878
domain: mobile_app
type: notify
message: >-
Downloaded {{
states('sensor.rivian_telematics_ota_status_download_progress') }}% from
OTA bundle dated {{
states('sensor.rivian_telematics_ota_status_available_version_year')}}.{{
states('sensor.rivian_telematics_ota_status_available_version_week') }}.{{
states('sensor.rivian_telematics_ota_status_available_version_number') }}
title: Software OTA - Download Progress
mode: single
alias: Software OTA - Install Progress
description: notify phone(s) when Rivian OTA install progress changes
trigger:
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "0"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "9"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "24"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "49"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "74"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "89"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "94"
- platform: numeric_state
entity_id: sensor.rivian_telematics_ota_status_install_progress
above: "99"
condition: []
action:
- device_id: f61d70f281172abb82c815a69ae8e878
domain: mobile_app
type: notify
title: Software OTA - Install Progress
message: >-
Installed {{
states('sensor.rivian_telematics_ota_status_install_progress') }}%,
duration expected {{
states('sensor.rivian_telematics_ota_status_install_duration') }} minutes
data:
color: "#2DF56D"
mode: single
alias: Software OTA - State Change
description: notify phone(s) when Rivian OTA state changes
trigger:
- platform: state
entity_id:
- sensor.rivian_telematics_ota_status_status
not_from: Installing
to:
- Installing
- Awaiting_Install
- Install_Coundown
- platform: state
entity_id:
- sensor.rivian_telematics_ota_status_status
not_from: Downloading
to:
- Downloading
- platform: state
entity_id:
- sensor.rivian_telematics_ota_status_status
not_from: Preparing
to:
- Preparing
condition: []
action:
- device_id: f61d70f281172abb82c815a69ae8e878
domain: mobile_app
type: notify
message: >-
OTA State changed to {{
states('sensor.rivian_telematics_ota_status_status') }} for OTA bundle
dated {{
states('sensor.rivian_telematics_ota_status_available_version_year')}}.{{
states('sensor.rivian_telematics_ota_status_available_version_week') }}.{{
states('sensor.rivian_telematics_ota_status_available_version_number') }}
data:
channel: Rivian OTA State
title: Software OTA - State Change
mode: single
alias: Rivian - Prevented Sleep State
description: ""
trigger:
- platform: state
entity_id:
- sensor.rivian_core_power_modes_power_state
to: Ready
for:
hours: 1
minutes: 0
seconds: 0
condition:
- condition: state
entity_id: binary_sensor.rivian_energy_storage_charger_vehicle_charger_state
state: "off"
action:
- device_id: f61d70f281172abb82c815a69ae8e878
domain: mobile_app
type: notify
message: Rivian Power State is Ready for >1hr, Preventing Sleep State
mode: single
title: Rivian - Dashboards
views:
- theme: Backend-selected
title: Rivian R1T
path: rivian-r1t
icon: mdi:car-lifted-pickup
badges: []
cards:
- type: gauge
entity: sensor.rivian_r1t_battery_state_of_charge
unit: '%'
min: 1
max: 100
needle: false
severity:
green: 45
yellow: 20
red: 1
- show_name: true
show_icon: true
show_state: true
type: glance
entities:
- entity: sensor.rivian_r1t_cabin_temperature
- entity: sensor.rivian_r1t_driver_temperature
- entity: sensor.rivian_r1t_pet_mode_temperature_status
- entity: weather.forecast_home_grove_st
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_charger_connection
- entity: sensor.rivian_r1t_estimated_vehicle_range
- entity: sensor.rivian_r1t_gear_selector
- entity: sensor.rivian_energy_storage_vehicle_efficiency_lifetime_wh_per_km
- entity: sensor.rivian_r1t_odometer
- entity: device_tracker.rivian_r1t_location
- type: weather-forecast
entity: weather.forecast_home_grove_st
- type: map
entities:
- entity: device_tracker.rivian_r1t_location
dark_mode: true
hours_to_show: 24
- type: history-graph
entities:
- entity: sensor.rivian_r1t_drive_mode
- entity: sensor.rivian_r1t_gear_selector
- entity: binary_sensor.rivian_r1t_locked_state
- entity: binary_sensor.rivian_r1t_gear_guard
- type: history-graph
entities:
- entity: sensor.rivian_r1t_power_state
- entity: sensor.rivian_r1t_battery_state_of_charge
- entity: binary_sensor.rivian_r1t_charger_connection
- entity: binary_sensor.rivian_r1t_cabin_climate_preconditioning
- entity: sensor.rivian_r1t_battery_thermal_runaway_propagation
- entity: sensor.rivian_r1t_battery_thermal_status
- type: history-graph
entities:
- entity: sensor.rivian_r1t_cabin_temperature
- entity: sensor.rivian_r1t_driver_temperature
- type: history-graph
entities:
- entity: sensor.rivian_r1t_odometer
- theme: Backend-selected
title: Rivian R1S
path: rivian-r1s
icon: mdi:car-estate
badges: []
cards:
- type: gauge
entity: sensor.rivian_r1s_battery_state_of_charge
unit: '%'
min: 1
max: 100
needle: false
severity:
green: 45
yellow: 20
red: 1
- show_name: true
show_icon: true
show_state: true
type: glance
entities:
- entity: sensor.rivian_r1s_cabin_temperature
- entity: sensor.rivian_r1s_driver_temperature
- entity: sensor.rivian_r1s_pet_mode_temperature_status
- entity: weather.forecast_home_grove_st
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_charger_connection
- entity: sensor.rivian_r1s_estimated_vehicle_range
- entity: sensor.rivian_r1s_gear_selector
- entity: sensor.rivian_energy_storage_vehicle_efficiency_lifetime_wh_per_km
- entity: sensor.rivian_r1s_odometer
- entity: device_tracker.rivian_r1s_location
- type: weather-forecast
entity: weather.forecast_home_grove_st
- type: map
entities:
- entity: device_tracker.rivian_r1s_location
dark_mode: true
hours_to_show: 24
- type: history-graph
entities:
- entity: sensor.rivian_r1s_drive_mode
- entity: sensor.rivian_r1s_gear_selector
- entity: binary_sensor.rivian_r1s_locked_state
- entity: binary_sensor.rivian_r1s_gear_guard
- type: history-graph
entities:
- entity: sensor.rivian_r1s_power_state
- entity: sensor.rivian_r1s_battery_state_of_charge
- entity: binary_sensor.rivian_r1s_charger_connection
- entity: binary_sensor.rivian_r1s_cabin_climate_preconditioning
- entity: sensor.rivian_r1s_battery_thermal_runaway_propagation
- entity: sensor.rivian_r1s_battery_thermal_status
- type: history-graph
entities:
- entity: sensor.rivian_r1s_cabin_temperature
- entity: sensor.rivian_r1s_driver_temperature
- type: history-graph
entities:
- entity: sensor.rivian_r1s_odometer
- theme: Backend-selected
title: OTA
path: ota
icon: mdi:cloud-download
badges: []
cards:
- type: entities
entities:
- update.rivian_r1s_software
- update.rivian_r1t_software
- type: history-graph
entities:
- entity: sensor.rivian_r1s_software_ota_status_current
- entity: sensor.rivian_r1t_software_ota_status_current
- type: markdown
content: >-
{% for device_id in
integration_entities('rivian')|map('device_id')|unique if
device_attr(device_id,'model') is match('.*\sR1(T|S)$') -%}
{% set status_entity_id = device_entities(device_id)|select("match", "^sensor.*_software_ota_status$")|first %}
{% set update_entity_id = device_entities(device_id)|select("match", "^update.*$")|first %}
{% set device_name = [device_attr(device_id,'name_by_user'), device_attr(device_id,'name')]| unique| select("ne", None)| first%}
# OTA Updates Info - {{ device_name }}
{% if is_state(status_entity_id, 'Downloading') -%}
<p><font color="#c3e88d">
<ha-icon icon="mdi:cloud-download"></ha-icon> Download Available <ha-icon icon="mdi:cloud-download"></ha-icon>
</font></p>
{%- endif %}
{%- if is_state(status_entity_id, 'Preparing') -%}
<p><font color="#ff9800">
<ha-icon icon="mdi:cog"></ha-icon> Preparing for Install <ha-icon icon="mdi:cog"></ha-icon>
</font></p>
{%- endif %}
{%- if is_state(status_entity_id, 'Ready_To_Install') -%}
<p><font color="#03a9f4">
<ha-icon icon="mdi:party-popper"></ha-icon> Installation Ready <ha-icon icon="mdi:party-popper"></ha-icon>
</font></p>
{%- endif %}
{%- if is_state(status_entity_id, ['Installing','Awaiting_Install']) -%}
<p><font color="#03a9f4">
<ha-icon icon="mdi:cog-clockwise"></ha-icon> Installing {{ state_attr(update_entity_id, 'in_progress') }}%
</font></p>
{%- endif %}
## Current Version: {{ state_attr(update_entity_id,'installed_version') }}
## Available Version: {{ state_attr(update_entity_id,'latest_version') }}
{%- if not loop.last %}
----
{% endif -%}
{%- endfor %}
- type: custom:auto-entities
filter:
include:
- entity_id: '*ota_download_progress*'
exclude: []
card:
type: entities
- type: custom:auto-entities
filter:
include:
- entity_id: rivian_r1*ota_install_progress*
exclude: []
card:
type: entities
- type: history-graph
entities:
- entity: sensor.rivian_r1s_software_ota_status
- entity: sensor.rivian_r1s_software_ota_install_duration
- entity: sensor.rivian_r1s_software_ota_install_time
- entity: sensor.rivian_r1s_software_ota_install_type
- entity: sensor.rivian_r1t_software_ota_status
- entity: sensor.rivian_r1t_software_ota_install_duration
- entity: sensor.rivian_r1t_software_ota_install_time
- entity: sensor.rivian_r1t_software_ota_install_type
- type: history-graph
entities:
- entity: sensor.rivian_telematics_ota_status_pending_reason_active_mode
- entity: sensor.rivian_telematics_ota_status_pending_reason_lv_batt
- entity: sensor.rivian_telematics_ota_status_pending_reason_other
- entity: sensor.rivian_telematics_ota_status_available_version
- entity: sensor.rivian_telematics_ota_status_status
- entity: sensor.rivian_core_power_modes_power_state
- type: entities
entities:
- entity: sensor.rivian_r1s_software_ota_status
- entity: sensor.rivian_r1s_software_ota_status_current
- entity: sensor.rivian_r1t_software_ota_status
- entity: sensor.rivian_r1t_software_ota_status_current
- theme: Backend-selected
icon: mdi:map-clock
title: Location History
path: location-history
badges: []
cards:
- type: custom:auto-entities
filter:
include:
- domain: device_tracker
integration: rivian
exclude: []
card:
type: map
hours_to_show: 7
title: Rivian Location (<24h)
- type: custom:auto-entities
filter:
include:
- domain: device_tracker
integration: rivian
exclude: []
card:
type: map
hours_to_show: 178
title: Rivian Location (<7d)
default_zoom: 12
- type: custom:auto-entities
filter:
include:
- domain: device_tracker
integration: rivian
exclude: []
card:
type: map
hours_to_show: 720
title: Rivian Location (<30d)
default_zoom: 10
- theme: Backend-selected
title: R1T - Vehicle State
path: r1t-state
icon: mdi:car-lifted-pickup
badges: []
cards:
- type: gauge
entity: sensor.rivian_r1t_estimated_vehicle_range
name: Estimated Range
unit: mi
min: 1
max: 350
needle: true
severity:
green: 120
yellow: 40
red: 1
- type: gauge
entity: sensor.rivian_r1t_battery_state_of_charge
name: State of Charge
unit: '%'
min: 1
max: 100
needle: false
severity:
green: 45
yellow: 20
red: 1
- type: entity
entity: sensor.rivian_r1t_odometer
state_color: false
- square: true
columns: 3
type: grid
cards:
- type: entity
entity: sensor.rivian_r1s_tire_pressure_front_left
name: Front Left
icon: mdi:car-tire-alert
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_front_trunk
- entity: binary_sensor.rivian_r1t_front_trunk_lock
state_color: true
- type: entity
entity: sensor.rivian_r1t_tire_pressure_front_right
icon: mdi:car-tire-alert
name: Front Right
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_door_front_left_lock
- entity: binary_sensor.rivian_r1t_door_front_left
- entity: binary_sensor.rivian_r1t_window_front_left
show_header_toggle: true
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_door_front_right_lock
- entity: binary_sensor.rivian_r1t_door_front_right
- entity: binary_sensor.rivian_r1t_window_front_right
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_door_rear_left_lock
- entity: binary_sensor.rivian_r1t_door_rear_left
- entity: binary_sensor.rivian_r1t_window_rear_left
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_door_rear_right_lock
- entity: binary_sensor.rivian_r1t_door_rear_right
- entity: binary_sensor.rivian_r1t_window_rear_right
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_gear_tunnel_left_lock
- entity: binary_sensor.rivian_r1t_gear_tunnel_left
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_gear_tunnel_right_lock
- entity: binary_sensor.rivian_r1t_gear_tunnel_right
state_color: true
- type: entity
entity: sensor.rivian_r1t_tire_pressure_rear_left
icon: mdi:car-tire-alert
name: Rear Left
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_tonneau_lock
- entity: binary_sensor.rivian_r1t_tonneau
state_color: true
- type: entity
entity: sensor.rivian_r1t_tire_pressure_rear_right
icon: mdi:car-tire-alert
name: Rear Right
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1t_tailgate
- entity: binary_sensor.rivian_r1t_tailgate_lock
state_color: true
- type: markdown
content: '&nbsp;'
- theme: Backend-selected
title: R1S - Vehicle State
path: r1s-state
icon: mdi:car-estate
badges: []
cards:
- type: gauge
entity: sensor.rivian_r1s_estimated_vehicle_range
name: Estimated Range
unit: mi
min: 1
max: 350
needle: true
severity:
green: 120
yellow: 40
red: 1
- type: gauge
entity: sensor.rivian_r1s_battery_state_of_charge
name: State of Charge
unit: '%'
min: 1
max: 100
needle: false
severity:
green: 45
yellow: 20
red: 1
- type: entity
entity: sensor.rivian_r1s_odometer
state_color: false
- square: true
columns: 3
type: grid
cards:
- type: entity
entity: sensor.rivian_r1s_tire_pressure_front_left
name: Front Left
icon: mdi:car-tire-alert
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_front_trunk
- entity: binary_sensor.rivian_r1s_front_trunk_lock
state_color: true
- type: entity
entity: sensor.rivian_r1s_tire_pressure_front_right
icon: mdi:car-tire-alert
name: Front Right
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_door_front_left_lock
- entity: binary_sensor.rivian_r1s_door_front_left
- entity: binary_sensor.rivian_r1s_window_front_left
show_header_toggle: true
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_door_front_right_lock
- entity: binary_sensor.rivian_r1s_door_front_right
- entity: binary_sensor.rivian_r1s_window_front_right
state_color: true
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_door_rear_left_lock
- entity: binary_sensor.rivian_r1s_door_rear_left
- entity: binary_sensor.rivian_r1s_window_rear_left
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_door_rear_right_lock
- entity: binary_sensor.rivian_r1s_door_rear_right
- entity: binary_sensor.rivian_r1s_window_rear_right
state_color: true
- type: entity
entity: sensor.rivian_r1s_tire_pressure_rear_left
icon: mdi:car-tire-alert
name: Rear Left
state_color: true
- type: markdown
content: '&nbsp;'
- type: entity
entity: sensor.rivian_r1s_tire_pressure_rear_right
icon: mdi:car-tire-alert
name: Rear Right
state_color: true
- type: markdown
content: '&nbsp;'
- type: entities
entities:
- entity: binary_sensor.rivian_r1s_liftgate
- entity: binary_sensor.rivian_r1s_liftgate_lock
- entity: binary_sensor.rivian_r1s_tailgate
- entity: binary_sensor.rivian_r1s_tailgate_lock
state_color: true
- type: markdown
content: '&nbsp;'
- theme: Backend-selected
title: History
path: history
icon: mdi:clipboard-text-clock
badges: []
cards:
- type: custom:auto-entities
card:
type: logbook
hours_to_show: 24
filter:
include:
- name: '*R1T*'
- type: custom:auto-entities
card:
type: logbook
hours_to_show: 24
filter:
include:
- name: '*R1S*'
- theme: Backend-selected
path: climate-controls
icon: mdi:snowflake-thermometer
badges: []
cards:
- type: custom:auto-entities
card:
type: entities
filter:
include:
- entity_id: '*heated_seat*'
exclude: []
- type: custom:auto-entities
filter:
include:
- entity_id: '*heated_seat*'
exclude: []
card:
type: history-graph
- type: custom:auto-entities
card:
type: entities
filter:
include:
- entity_id: '*vented_seat*'
exclude: []
- type: custom:auto-entities
card:
type: entities
filter:
include:
- entity_id: '*rivian*defrost*'
exclude: []
- type: custom:auto-entities
filter:
include:
- entity_id: '*driver_temperature'
- entity_id: '*cabin_temperature'
exclude: []
card:
type: history-graph
- type: custom:auto-entities
filter:
include:
- entity_id: '*rivian*steering*'
- entity_id: '*rivian*defog*'
exclude: []
card:
type: history-graph
- type: custom:auto-entities
filter:
include:
- entity_id: '*vented_seat*'
exclude: []
card:
type: history-graph
@tikotzky
Copy link

tikotzky commented May 3, 2023

Hey @tmack8001 thanks for this! I just set it up for my R1S.

I have everything working now, besides for sensor.rivian_energy_storage_vehicle_efficiency_lifetime_wh_per_km.
Where is that sensor set up?

@sethgagnon
Copy link

i must be missing something on this as i see a whole bunch of entities not available. do we need to rename something in the yaml, or set a variable somewhere to discover these entities?

@74656b
Copy link

74656b commented Sep 16, 2023

Yes, updates to sensor names have made this out of date. It should probably be taken down if it's not going to be updated, otherwise will just cause confusion for people.

@karas-ai
Copy link

karas-ai commented Nov 7, 2023

This works great! One change I had to make was to add in the name of my rivian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment