Skip to content

Instantly share code, notes, and snippets.

@jrgutier
Last active March 25, 2024 03:52
Show Gist options
  • Save jrgutier/d7cfe566148f56f60b5c5157078cfe70 to your computer and use it in GitHub Desktop.
Save jrgutier/d7cfe566148f56f60b5c5157078cfe70 to your computer and use it in GitHub Desktop.
abrp_request:
url: >
{% set token = "REPLACE_ME_WTH_ABRP_TOKEN" %}
{% set params = [] %}
{% set params = params + ['"utc":' ~ now().timestamp()] %}
{% set params = params + ['"soc":' ~ states('sensor.r1t_battery_state_of_charge')] %}
{% set params = params + ['"lat":' ~ state_attr('device_tracker.r1t_location', 'latitude')] %}
{% set params = params + ['"lon":' ~ state_attr('device_tracker.r1t_location', 'longitude')] %}
{% set params = params + ['"heading":' ~ states('sensor.r1t_bearing')] %}
{% set params = params + ['"speed":' ~ (0 if is_state('sensor.r1t_gear_selector', 'Park') else states('sensor.r1t_speed') | float * 1.609344)] %}
{% set params = params + ['"is_charging":' ~ (1 if is_state('binary_sensor.r1t_charging_status', 'on') else 0)] %}
{% set params = params + ['"is_parked":' ~ (1 if is_state('sensor.r1t_gear_selector', 'Park') else 0)] %}
{% set params = params + ['"odometer":' ~ states('sensor.r1t_odometer') | float * 1.609344] %}
{% set params = params + ['"est_battery_range":' ~ states('sensor.r1t_estimated_vehicle_range') | float * 1.609344] %}
{% set params = params + ['"car_model":"rivian:r1t:21:135:w22"'] %}
{% if is_state('sensor.r1t_gear_selector', 'Park') %}
{% set params = params + ['"power":' ~ (0 if not is_state('binary_sensor.r1t_charging_status', 'on') else states('sensor.r1t_charging_speed') * -1)] %}
{% endif %}
{% set params = params + ['"kwh_charged":' ~ (0 if not is_state('binary_sensor.r1t_charging_status', 'on') else states('sensor.r1t_charging_energy_delivered'))] %}
https://api.iternio.com/1/tlm/send?token={{token}}&tlm={{'{'}}{{params | join(',')}}{{'}'}}
method: POST
headers:
authorization: "APIKEY 07b6953e-22fe-4116-ae9d-5184743a20e9"
verify_ssl: true
@p3ck
Copy link

p3ck commented Jan 20, 2023

I had to make some changes for this to work. I changed the entities for lat and lon otherwise I was getting None for the previous. Also, method: post was accidentally left on the url line.

Example configuration.yaml entry

rest_command:
abrp_request:
url: https://api.iternio.com/1/tlm/send?token=REPLACE_ME_WITH_ABRP_TOKEN&tlm={"utc":{{ now().timestamp() | round }},"soc":{{ states('sensor.rivian_energy_storage_charger_adjusted_soc') }},"lat":{{ state_attr('device_tracker.rivian_telematics_gnss_position', 'latitude') }},"lon":{{ state_attr('device_tracker.rivian_telematics_gnss_position', 'longitude') }},"is_charging":{% if is_state('sensor.rivian_energy_storage_charger_vehicle_charger_state', 'charging_active') %}1{% else %}0{% endif %},"is_parked":{% if is_state('sensor.rivian_dynamics_propulsion_status_prndl', 'park') %}1{% else %}0{% endif %},"odometer":{% set odometer = states('sensor.rivian_dynamics_odometer_value') | float %}{{ odometer * 1.609 }},"est_battery_range":{% set est_battery_range = states('sensor.rivian_energy_storage_vehicle_energy_vehicle_range') | float %}{{ est_battery_range * 1.609 }},"car_model":"rivian:r1t:20:135:other"}
method: POST
headers:
authorization: "APIKEY 07b6953e-22fe-4116-ae9d-5184743a20e9"
verify_ssl: true

@p3ck
Copy link

p3ck commented Jan 20, 2023

I also added a trigger:

alias: ABRP - Rivian update
description: ""
trigger:

  • platform: time_pattern
    seconds: /10
    condition: []
    action:
  • service: rest_command.abrp_request
    data: {}
    mode: single

@jrgutier
Copy link
Author

Modified. Thanks!

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