- Add this repository to your custom repositories
- Search for and install "Smart #1/#3 Integration" in HACS.
- Restart Home Assistant.
- In the Home Assistant UI go to "Configuration" -> "Integrations" click "+" and search for "Smart"
- Using the tool of choice open the directory (folder) for your HA configuration (where you find
configuration.yaml
). - If you do not have a
custom_components
directory (folder) there, you need to create it. - In the
custom_components
directory (folder) create a new folder calledsmarthashtag
. - Download all the files from the
custom_components/smarthashtag/
directory (folder) in this repository. - Place the files you downloaded in the new directory (folder) you created.
- Restart Home Assistant
- In the Home Assistant UI go to "Configuration" -> "Integrations" click "+" and search for "Smart"
@chriscatuk integrated A Better Route Planner with data from this component. To automatically send the information everytime the component updates, add this to your automations.
# based on https://documenter.getpostman.com/view/7396339/SWTK5a8w
alias: ABRP update
description: ""
triggers:
- entity_id:
- sensor.smart_last_update
trigger: state
conditions: []
actions:
- action: rest_command.abrp
data:
token: 99999999-aaaa-aaaa-bbbb-eeeeeeeeee # generated for each car in ABRP app
api_key: 8888888-2222-44444-bbbb-333333333 # obtained from [email protected] , see https://documenter.getpostman.com/view/7396339/SWTK5a8w
utc: "{{ as_timestamp(states('sensor.smart_last_update')) | int }}"
soc: >-
{{ states('sensor.smart_battery', rounded=False, with_unit=False) |
default('') }}
soh: 100
power: >
{% if states('sensor.smart_charging_power', rounded=False,
with_unit=False) | default(0) | float > 0 %}
-{{ states('sensor.smart_charging_power', rounded=False, with_unit=False) | int / 1000 }}
{% endif %}
speed: ""
lat: "{{ state_attr('device_tracker.smart_none', 'latitude') | default('') }}"
lon: "{{ state_attr('device_tracker.smart_none', 'longitude') | default('') }}"
elevation: >-
{{ state_attr('device_tracker.smart_none', 'altitude').value |
default('') }}
is_charging: >
{% if states('sensor.smart_charging_status') == 'charging' or
states('sensor.smart_charging_status') == 'DC charging' %}
1
{% else %}
0
{% endif %}
is_dcfc: |
{% if states('sensor.smart_charging_status') == 'DC charging' %}
1
{% else %}
0
{% endif %}
is_parked: "{{ states('sensor.smart_electric_park_brake_status') | default(0) }}"
ext_temp: >-
{{ states('sensor.smart_exterior_temperature', rounded=False,
with_unit=False) | default('') }}
odometer: >-
{{ states('sensor.smart_odometer', rounded=False, with_unit=False) |
default('') }}
est_battery_range: >-
{{ states('sensor.smart_range', rounded=False, with_unit=False) |
default('') }}
mode: single
And this to your configuration.yaml
to create the rest_command
.
rest_command:
abrp:
url: https://api.iternio.com/1/tlm/send?token={{ token }}&tlm={"utc":"{{ utc }}","soc":"{{ soc }}","soh":"{{ soh }}","power":"{{ power }}","speed":"{{ speed }}","lat":"{{ lat }}","lon":"{{ lon }}","is_charging":"{{ is_charging }}","is_dcfc":"{{ is_dcfc }}","is_parked":"{{ is_parked }}","elevation":"{{ elevation }}","ext_temp":"{{ ext_temp }}","odometer":"{{ odometer }}","est_battery_range":"{{ est_battery_range }}"}
method: post
headers:
Authorization: "APIKEY {{ api_key }}"
We need to add more sensor values from the JSON aquired form the Web API. Please have a look at pySmartHashtag. If you want to contribute to this please read the Contribution guidelines