Files
N22/include/automations/tesla_smart_charging.yaml
T

68 lines
2.1 KiB
YAML

- alias: Tesla smart charging PRO
id: tesla_smart_charging_pro
mode: restart
trigger:
- platform: time_pattern
minutes: "/5"
- platform: time_pattern
minutes: "0"
condition:
- condition: template
value_template: >
{% set deadline = states('input_datetime.tesla_charge_deadline') %}
{{ deadline not in ['unknown','unavailable',''] and as_timestamp(deadline) > as_timestamp(now()) }}
- condition: state
entity_id: binary_sensor.tesla_connected
state: "on"
action:
- variables:
should_charge: "{{ is_state('binary_sensor.tesla_charge_now','on') }}"
currently_charging: "{{ is_state('switch.home_charging', 'on') }}"
last_start: "{{ states('input_datetime.tesla_last_start') }}"
last_start_ts: >
{% if last_start not in ['unknown','unavailable',''] %}
{{ as_timestamp(last_start) }}
{% else %}
0
{% endif %}
runtime: "{{ as_timestamp(now()) - last_start_ts }}"
- choose:
# -------------------------
# START CHARGING
# -------------------------
- conditions:
- condition: template
value_template: "{{ should_charge }}"
sequence:
- if:
- condition: template
value_template: "{{ not currently_charging }}"
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tesla_last_start
data:
datetime: "{{ now().isoformat() }}"
- service: switch.turn_on
target:
entity_id: switch.home_charging
# -------------------------
# STOP CHARGING (med hysterese)
# -------------------------
- conditions:
- condition: template
value_template: "{{ currently_charging and not should_charge and runtime > 3600 }}"
sequence:
- service: switch.turn_off
target:
entity_id: switch.home_charging