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
@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