- 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