75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
- alias: Tesla smart charging PRO
|
|
id: tesla_smart_charging_pro
|
|
mode: restart
|
|
|
|
trigger:
|
|
# Kør hvert 5. min (responsiv)
|
|
- platform: time_pattern
|
|
minutes: "/5"
|
|
|
|
# Sikrer re-evaluering ved ny time
|
|
- platform: time_pattern
|
|
minutes: "0"
|
|
|
|
condition:
|
|
# Deadline gyldig
|
|
- condition: template
|
|
value_template: >
|
|
{% set deadline = states('input_datetime.tesla_charge_deadline') %}
|
|
{{ deadline not in ['unknown','unavailable',''] and as_timestamp(deadline) > as_timestamp(now()) }}
|
|
|
|
# Kun når bilen er tilsluttet
|
|
- condition: template
|
|
value_template: >
|
|
{{ states('binary_sensor.tesla_connected') == 'on' }}
|
|
|
|
action:
|
|
- variables:
|
|
should_charge: "{{ states('binary_sensor.tesla_charge_now') == '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 / CONTINUE CHARGING
|
|
# -------------------------
|
|
- conditions:
|
|
- condition: template
|
|
value_template: "{{ should_charge }}"
|
|
|
|
sequence:
|
|
# Hvis ikke allerede i gang → registrer start
|
|
- condition: template
|
|
value_template: >
|
|
{{ states('switch.home_charging') != 'on' }}
|
|
|
|
- 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: >
|
|
{{ not should_charge and runtime > 3600 }}
|
|
|
|
sequence:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.home_charging
|