-
-
Save ditdafivo/1026600450f4963d1b81e9cc1740923b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- id: '1710304207312' | |
alias: ABRP R1S Telemetry - Standard Update | |
description: '' | |
trigger: | |
- platform: state | |
entity_id: | |
- sensor.abrp_r1s_misc_telemetry_last_update | |
condition: | |
- condition: not | |
conditions: | |
- condition: state | |
entity_id: timer.abrp_r1s_telemetry_update_holdoff_timer | |
state: active | |
- condition: state | |
state: unknown | |
entity_id: sensor.abrp_r1s_telemetry_last_update | |
- condition: state | |
entity_id: sensor.abrp_r1s_telemetry_last_update | |
state: unavailable | |
action: | |
- service: timer.start | |
target: | |
entity_id: timer.abrp_r1s_telemetry_update_holdoff_timer | |
data: {} | |
- service: rest_command.update_abrp_r1s | |
data: {} | |
mode: single | |
- id: '1710389395198' | |
alias: ABRP R1S Telemetry - Delayed Update | |
description: '' | |
trigger: | |
- platform: event | |
event_type: timer.finished | |
event_data: | |
entity_id: timer.abrp_r1s_telemetry_update_holdoff_timer | |
condition: | |
- condition: state | |
entity_id: input_boolean.abrp_r1s_telemetry_update_holdoff_retrigger_flag | |
state: 'on' | |
action: | |
- service: input_boolean.turn_off | |
target: | |
entity_id: input_boolean.abrp_r1s_telemetry_update_holdoff_retrigger_flag | |
data: {} | |
- service: rest_command.update_abrp_r1s | |
data: {} | |
mode: single | |
- id: '1710390329117' | |
alias: ABRP R1S Telemetry Holdoff Retrigger | |
description: '' | |
trigger: | |
- platform: state | |
entity_id: | |
- sensor.abrp_r1s_misc_telemetry_last_update | |
condition: | |
- condition: state | |
entity_id: timer.abrp_r1s_telemetry_update_holdoff_timer | |
state: active | |
action: | |
- service: input_boolean.turn_on | |
target: | |
entity_id: input_boolean.abrp_r1s_telemetry_update_holdoff_retrigger_flag | |
data: {} | |
mode: single | |
- id: '1710994587428' | |
alias: ABRP R1S Telemetry - SoC update | |
description: '' | |
trigger: | |
- platform: state | |
entity_id: | |
- sensor.abrp_r1s_soc_last_update | |
condition: | |
- condition: not | |
conditions: | |
- condition: state | |
state: unknown | |
entity_id: sensor.abrp_r1s_telemetry_last_update | |
- condition: state | |
entity_id: sensor.abrp_r1s_telemetry_last_update | |
state: unavailable | |
action: | |
- service: timer.start | |
target: | |
entity_id: timer.abrp_r1s_telemetry_update_holdoff_timer | |
data: {} | |
- service: timer.start | |
target: | |
entity_id: timer.abrp_r1s_unchanged_soc_timer | |
data: {} | |
- service: rest_command.update_abrp_r1s_with_power | |
data: {} | |
mode: single | |
- id: '1711115090605' | |
alias: ABRP R1S Telemetry - Zero Power Update | |
description: '' | |
trigger: | |
- platform: event | |
event_type: timer.finished | |
event_data: | |
entity_id: timer.abrp_r1s_unchanged_soc_timer | |
condition: [] | |
action: | |
- service: rest_command.update_abrp_r1s_with_zero_power | |
data: {} | |
mode: single |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": 1, | |
"minor_version": 1, | |
"key": "core.config_entries", | |
"data": { | |
"entries": [ | |
{ | |
"entry_id": "3e802be924d12c47e6d1bbd2e60c7536", | |
"version": 1, | |
"domain": "derivative", | |
"title": "R1S Power", | |
"data": {}, | |
"options": { | |
"name": "R1S Power", | |
"source": "sensor.r1s_pack_energy", | |
"round": 4.0, | |
"time_window": { | |
"hours": 0, | |
"minutes": 0, | |
"seconds": 0 | |
}, | |
"unit_time": "h" | |
}, | |
"pref_disable_new_entities": false, | |
"pref_disable_polling": false, | |
"source": "user", | |
"unique_id": null, | |
"disabled_by": null | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": 1, | |
"minor_version": 1, | |
"key": "input_boolean", | |
"data": { | |
"items": [ | |
{ | |
"id": "abrp_r1s_holdoff_retrigger_flag", | |
"name": "ABRP R1S Telemetry Update Holdoff Retrigger Flag" | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": 1, | |
"minor_version": 1, | |
"key": "input_number", | |
"data": { | |
"items": [ | |
{ | |
"id": "r1s_manual_soh", | |
"min": 0.0, | |
"max": 100.0, | |
"name": "R1S Manual SoH", | |
"step": 0.1, | |
"mode": "slider", | |
"unit_of_measurement": "%" | |
}, | |
{ | |
"id": "abrp_r1s_power_consumption_telemetry_multiplier", | |
"min": 0.0, | |
"max": 2.0, | |
"name": "ABRP R1S Power Consumption Telemetry Multiplier", | |
"step": 0.001, | |
"mode": "box" | |
}, | |
{ | |
"id": "abrp_r1s_power_charging_telemetry_multiplier", | |
"min": 0.0, | |
"max": 2.0, | |
"name": "ABRP R1S Power Charging Telemetry Multiplier", | |
"mode": "box", | |
"step": 0.001 | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": 1, | |
"minor_version": 1, | |
"key": "timer", | |
"data": { | |
"items": [ | |
{ | |
"id": "abrp_r1s_telemetry_update_holdoff_timer", | |
"name": "ABRP R1S Telemetry Update Holdoff Timer", | |
"duration": "0:00:05", | |
"restore": false | |
}, | |
{ | |
"id": "abrp_r1s_unchanged_soc_timer", | |
"name": "ABRP R1S Unchanged SoC Timer", | |
"duration": "0:02:00", | |
"restore": false | |
} | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rest_command: | |
update_abrp_r1s: | |
url: > | |
{% set params = states('sensor.abrp_r1s_common_telemetry_parameters') %} | |
{{states('sensor.abrp_r1s_common_telemetry_prefix')}}&tlm={{'{'}}{{params}}{{'}'}} | |
method: POST | |
headers: | |
authorization: !secret APIKEY_abrp | |
verify_ssl: true | |
update_abrp_r1s_with_power: | |
url: > | |
{% set params = states('sensor.abrp_r1s_power_telemetry_parameters') %} | |
{{states('sensor.abrp_r1s_common_telemetry_prefix')}}&tlm={{'{'}}{{params}}{{'}'}} | |
method: POST | |
headers: | |
authorization: !secret APIKEY_abrp | |
verify_ssl: true | |
update_abrp_r1s_with_zero_power: | |
url: > | |
{% set params = states('sensor.abrp_r1s_zero_power_telemetry_parameters') %} | |
{{states('sensor.abrp_r1s_common_telemetry_prefix')}}&tlm={{'{'}}{{params}}{{'}'}} | |
method: POST | |
headers: | |
authorization: !secret APIKEY_abrp | |
verify_ssl: true | |
template: | |
- sensor: | |
- name: "R1S Heading" | |
state: > | |
{{ ( 2 * ( (states('sensor.r1s_bearing')|float(0.0)) / 2 )|round() ) % 360 }} | |
- name: "R1S Latitude" | |
state: > | |
{{ state_attr('device_tracker.r1s_location','latitude') }} | |
- name: "R1S Longitude" | |
state: > | |
{{ state_attr('device_tracker.r1s_location','longitude') }} | |
- name: "R1S Pack Energy" | |
unit_of_measurement: "kWh" | |
state_class: measurement | |
state: > | |
{% set pack_useful_capacity = 131.0 %} | |
{% set pack_total_capacity = 135.0 %} | |
{% set pack_floor = pack_total_capacity - pack_useful_capacity %} | |
{% set soc = states("sensor.r1s_battery_state_of_charge")|float(0.0) / 100.0 %} | |
{% set soh = states("input_number.r1s_manual_soh")|float(0.0) / 100.0 %} | |
{{ ( soc * soh * pack_useful_capacity ) + pack_floor }} | |
- name: "ABRP R1S Misc Telemetry Last Update" | |
state: > | |
{% set last_changed = 0.0 %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_latitude.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_longitude.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_heading.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_speed.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.binary_sensor.r1s_charging_status.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_gear_selector.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_odometer.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_estimated_vehicle_range.last_changed|as_timestamp(0.0)) %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_charging_energy_delivered.last_changed|as_timestamp(0.0)) %} | |
{{ last_changed }} | |
- name: "ABRP R1S SoC Last Update" | |
state: > | |
{% set last_changed = 0.0 %} | |
{% set last_changed = max(last_changed, states.sensor.r1s_battery_state_of_charge.last_changed|as_timestamp(0.0)) %} | |
{{ last_changed }} | |
- name: "ABRP R1S Telemetry Last Update" | |
state: > | |
{% set last_changed = 0.0 %} | |
{% set last_changed = max(last_changed, states("sensor.abrp_r1s_misc_telemetry_last_update")|float(0.0)) %} | |
{% set last_changed = max(last_changed, states("sensor.abrp_r1s_soc_last_update")|float(0.0)) %} | |
{{ last_changed }} | |
- name: "ABRP R1S Token" | |
state: !secret r1s_token_abrp | |
- name: "ABRP R1S Common Telemetry Prefix" | |
state: > | |
https://api.iternio.com/1/tlm/send?token={{ states('sensor.abrp_r1s_token') }} | |
- name: "ABRP R1S Common Telemetry Parameters" | |
state: > | |
{% set params = [] %} | |
{% set telem_last_upd = ((states('sensor.abrp_r1s_telemetry_last_update') | float(0.0))) | round(3) %} | |
{% set params = params + ['"utc":' ~ telem_last_upd ] %} | |
{% set params = params + ['"soc":' ~ states('sensor.r1s_battery_state_of_charge')] %} | |
{% set params = params + ['"lat":' ~ state_attr('device_tracker.r1s_location', 'latitude')|float(0.0)|round(6)] %} | |
{% set params = params + ['"lon":' ~ state_attr('device_tracker.r1s_location', 'longitude')|float(0.0)|round(6)] %} | |
{% set params = params + ['"heading":' ~ states('sensor.r1s_heading')] %} | |
{% set params = params + ['"speed":' ~ (0 if is_state('sensor.r1s_gear_selector', 'Park') else states('sensor.r1s_speed') | float(0.0) * 1.609344) | round(1)] %} | |
{% set is_charging = (1 if is_state('binary_sensor.r1s_charging_status', 'on') else 0) %} | |
{% set params = params + ['"is_charging":' ~ is_charging ] %} | |
{% set params = params + ['"is_parked":' ~ (1 if is_state('sensor.r1s_gear_selector', 'Park') else 0)] %} | |
{% set odometer = ((states('sensor.r1s_odometer') | float(0.0)) * 1.609344) | round(2) %} | |
{% set params = params + ['"odometer":' ~ odometer ] %} | |
{% set est_batt_range = ((states('sensor.r1s_estimated_vehicle_range') | float(0.0)) * 1.609344) | round(2) %} | |
{% set params = params + ['"est_battery_range":' ~ est_batt_range ] %} | |
{% set params = params + ['"car_model":"rivian:r1s:21:135:w22"'] %} | |
{{ params | join(',') }} | |
- name: "ABRP R1S Power Telemetry Parameters" | |
state: > | |
{% set params = [ states("sensor.abrp_r1s_common_telemetry_parameters") ] %} | |
{% set power = states('sensor.abrp_r1s_power_estimate') | float(0.0) | round(1) %} | |
{% set params = params + ['"power":' ~ power ] %} | |
{% if power < -19.2 and is_state('binary_sensor.r1s_charging_status', 'on') %} | |
{% set params = params + ['"is_dcfc":1'] %} | |
{% endif %} | |
{{ params | join(',') }} | |
- name: "ABRP R1S Zero Power Telemetry Parameters" | |
state: > | |
{% set params = [ states("sensor.abrp_r1s_common_telemetry_parameters") ] %} | |
{% set params = params + ['"power":0' ] %} | |
{{ params | join(',') }} | |
- name: "R1S Power Estimate" | |
device_class: power | |
state_class: measurement | |
unit_of_measurement: "kW" | |
state: > | |
{% if state_attr("timer.abrp_r1s_unchanged_soc_timer","finishes_at") != None %} | |
{{ states("sensor.r1s_power") | float(0.0) }} | |
{% else %} | |
0.0 | |
{% endif %} | |
- name: "R1S Corrected Power Estimate" | |
device_class: power | |
state_class: measurement | |
unit_of_measurement: "kW" | |
state: > | |
{% if is_state('binary_sensor.r1s_charging_status', 'on') %} | |
{% set pwrscale = states('input_number.abrp_r1s_power_charging_telemetry_multiplier')|float(0.0) %} | |
{% else %} | |
{% set pwrscale = states('input_number.abrp_r1s_power_consumption_telemetry_multiplier')|float(0.0) %} | |
{% endif %} | |
{{ pwrscale * (states("sensor.r1s_power_estimate") | float(0.0)) }} | |
- name: "ABRP R1S Power Estimate" | |
device_class: power | |
state_class: measurement | |
unit_of_measurement: "kW" | |
state: > | |
{{ -1.0 * states("sensor.r1s_corrected_power_estimate") | float(0.0) }} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment