onstar2mqtt/HA-MQTT.md
tylerpieper e791f6e13d
Add an example automation to automatically update location
The examples provided have a good start, but I suggest adding an example automation to automatically update the vehicle's location so users have everything needed to have location updates automatically. I have done this by triggering the automation when the odometer changes, that way we aren't wasting onstar calls when the vehicle is sitting still.
2023-01-03 16:16:35 -07:00

227 lines
5.8 KiB
Markdown

Sample configs for MQTT Home Assistant integration.
### Commands
#### example script yaml:
```yaml
alias: Car - Start Vehicle
sequence:
- service: mqtt.publish
data:
topic: homeassistant/YOUR_CAR_VIN/command
payload: '{"command": "startVehicle"}'
mode: single
icon: 'mdi:car-electric'
```
#### Triger precondition via calendar
````yaml
alias: Car Precondition
description: Precondition if group.family is home (ie, at least one person).
trigger:
- platform: state
entity_id: calendar.YOUR_CAL_NAME
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: calendar.YOUR_CAL_NAME
state: Bolt Start
attribute: message
action:
- service: script.car_start_vehicle
data: {}
mode: single
````
### Location
Unfortunately, the MQTT Device tracker uses a home/not_home state and the MQTT Json device tracker does not support
the discovery schema so a manual entity configuration is required.
device tracker yaml:
```yaml
device_tracker:
- platform: mqtt_json
devices:
your_car_name: homeassistant/device_tracker/YOUR_CAR_VIN/getlocation/state
```
#### script yaml:
```yaml
alias: Car - Location
sequence:
- service: mqtt.publish
data:
topic: homeassistant/YOUR_CAR_VIN/command
payload: '{"command": "getLocation"}'
mode: single
icon: 'mdi:map-marker'
```
### Automation:
Create an automation to update the location whenever the odometer changes, instead of on a time interval.
```alias: Update EV Location
description: ""
trigger:
- platform: state
entity_id:
- sensor.odometer_mi
condition: []
action:
- service: script.locate_bolt_ev
data: {}
mode: single
```
#### Commands:
[OnStarJS Command Docs](https://github.com/samrum/OnStarJS#commands)
1. `getAccountVehicles`
2. `startVehicle`
3. `cancelStartVehicle`
4. `alert`
5. `cancelAlert`
6. `lockDoor`
7. `unlockDoor`
8. `chargeOverride`
9. `cancelChargeOverride`
10. `getLocation`
### Lovelace Dashboard
Create a new dashboard, or use the cards in your own view. The `mdi:car-electric` icon works well here.
![lovelace screenshot](images/lovelace.png)
#### dashboard yaml:
```yaml
views:
- badges: []
cards:
- type: gauge
entity: sensor.ev_battery_level
min: 0
max: 100
name: Battery
severity:
green: 60
yellow: 40
red: 15
- type: gauge
entity: sensor.ev_range
min: 0
max: 420
name: Range
severity:
green: 250
yellow: 150
red: 75
- type: glance
entities:
- entity: sensor.tire_pressure_left_front
name: Left Front
icon: 'mdi:car-tire-alert'
- entity: sensor.tire_pressure_right_front
name: Right Front
icon: 'mdi:car-tire-alert'
- entity: sensor.tire_pressure_left_rear
name: Left Rear
icon: 'mdi:car-tire-alert'
- entity: sensor.tire_pressure_right_rear
name: Right Rear
icon: 'mdi:car-tire-alert'
columns: 2
title: Tires
- type: entities
title: Mileage
entities:
- entity: sensor.lifetime_mpge
- entity: sensor.lifetime_efficiency
- entity: sensor.electric_economy
state_color: true
footer:
type: 'custom:mini-graph-card'
entities:
- entity: sensor.odometer
- entity: sensor.lifetime_energy_used
y_axis: secondary
show_state: true
hours_to_show: 672
group_by: date
decimals: 0
show:
graph: bar
name: false
icon: false
- type: entities
entities:
- entity: binary_sensor.ev_plug_state
secondary_info: last-changed
- entity: binary_sensor.ev_charge_state
secondary_info: last-changed
- entity: binary_sensor.priority_charge_indicator
- entity: binary_sensor.priority_charge_status
- entity: sensor.ev_plug_voltage
- entity: sensor.interm_volt_batt_volt
- entity: sensor.charger_power_level
title: Charging
state_color: true
- type: 'custom:mini-graph-card'
entities:
- entity: sensor.last_trip_total_distance
- entity: sensor.last_trip_electric_econ
y_axis: secondary
show_state: true
name: Last Trip
hours_to_show: 672
group_by: date
agreggate_func: null
show:
graph: bar
icon: false
- type: 'custom:mini-graph-card'
entities:
- entity: sensor.ambient_air_temperature
name: Ambient
- entity: sensor.hybrid_battery_minimum_temperature
name: Battery
- entity: sensor.kewr_daynight_temperature
name: Outdoor
name: Temperature
hours_to_show: 24
points_per_hour: 1
line_width: 2
- type: grid
cards:
- type: button
tap_action:
action: toggle
entity: script.car_start_vehicle
name: Start
show_state: false
- type: button
tap_action:
action: toggle
entity: script.car_cancel_start_vehicle
name: Cancel Start
show_state: false
icon: 'mdi:car-off'
- type: button
tap_action:
action: toggle
entity: script.car_lock_doors
name: Lock
show_state: false
icon: 'mdi:car-door-lock'
- type: button
tap_action:
action: toggle
entity: script.car_unlock_doors
name: Unlock
show_state: false
icon: 'mdi:car-door'
columns: 2
title: Bolt EV
```