Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias: Indstil sluttid for opladning
- description: "Sætter bilens opladningsdeadline baseret på kalenderaftaler og live rejsetid (inkl. 15 min. buffer), og deaktiverer hvis deadline er passeret eller er over 24 timer væk."
- triggers:
- - alias: Når det er en ny dag
- trigger: time
- at: "00:01:00"
- - alias: Når lokationen for den næste aftale skifter
- trigger: state
- entity_id:
- - sensor.location_next_event
- to: null
- for: "00:00:05"
- - alias: Når tiden for den næste aftale skifter
- trigger: state
- entity_id:
- - sensor.location_next_event
- attribute: start_time
- for: "00:00:05"
- - trigger: state
- entity_id:
- - binary_sensor.monta_dino_juice_eliminator_cable_plugged_in
- to: "on"
- alias: Når bilen sættes til opladning
- conditions: []
- actions:
- - variables:
- alias: Sæt globale variabler
- buffer_time: 15
- valid_options: >-
- {# Hent alle muligheder fra EV Smart Charging #}
- {{ state_attr('select.ev_smart_charging_charge_completion_time', 'options') | default([]) }}
- deadline_option: >-
- {# Hent aftalens starttid og dens rejsetid #}
- {% set start_time = state_attr('sensor.location_next_event', 'start_time') | as_datetime | as_local %}
- {% set travel_time = states('sensor.rejsetid_naeste_aftale') | default(0) | int %}
- {# Initialiserer med den sikre fallback #}
- {% set final_option = 0 %}
- {# Valider tider #}
- {% if start_time is not none and travel_time > 0 %}
- {# Beregn sluttidspunkt #}
- {% set end_time = start_time - timedelta(minutes = travel_time + buffer_time) %}
- {# Tjek at tidspunktet er i fremtiden og indenfor 24 timer #}
- {% if end_time > now() and end_time <= (now() + timedelta(hours=24)) %}
- {# Filtrerer gyldige tider (<= deadline) fra options og vælg det seneste. #}
- {% set final_option = valid_options
- | select('<=', end_time.strftime('%H:%M'))
- | list
- | last %}
- {% endif %}
- {% endif %}
- {# Kom med tidspunktet #}
- {{ final_option | default(0) }}
- - action: homeassistant.update_entity
- metadata: {}
- data:
- entity_id:
- - sensor.rejsetid_naeste_aftale
- alias: Opdater rejsetiden til lokationen
- enabled: true
- - delay:
- hours: 0
- minutes: 0
- seconds: 5
- milliseconds: 0
- enabled: true
- - alias: Vælg mellem 2 muligheder
- choose:
- - conditions:
- - condition: template
- value_template: "{{ deadline_option != 0 }}"
- alias: Ikke 0
- sequence:
- - action: select.select_option
- metadata: {}
- data:
- option: "{{ deadline_option }}"
- target:
- entity_id: select.ev_smart_charging_charge_completion_time
- alias: Vælg tidspunktet
- alias: Vi har et tidspunkt
- default:
- - action: select.select_first
- metadata: {}
- data: {}
- target:
- entity_id: select.ev_smart_charging_charge_completion_time
- mode: single
Advertisement
Add Comment
Please, Sign In to add comment