From e787da4d86905bda6c4a350cf5a2ffb768467eb6 Mon Sep 17 00:00:00 2001 From: ttrabatt Date: Fri, 7 Feb 2025 16:13:12 +0100 Subject: [PATCH] EVcharge Process WIP cont --- .../homeassistant/evcharge-process.yaml | 205 ++++++++++++------ 1 file changed, 138 insertions(+), 67 deletions(-) diff --git a/blueprints/automation/homeassistant/evcharge-process.yaml b/blueprints/automation/homeassistant/evcharge-process.yaml index 89ccde0..31566bc 100644 --- a/blueprints/automation/homeassistant/evcharge-process.yaml +++ b/blueprints/automation/homeassistant/evcharge-process.yaml @@ -59,83 +59,154 @@ conditions: [] variables: evcharge_entity1_var: !input evcharge_entity1 evcharge_entity2_var: !input evcharge_entity2 + use_entity1_var: !input use_entity1 + use_entity2_var: !input use_entity2 + recipient_list: + - notify.mobile_app_ttrabatt_iphone15 + #- notify.mobile_app_emanuele_s24 actions: - - action: notify.mobile_app_ttrabatt_iphone15 - metadata: {} - data: - message: >- - "EVcharge process on {{ evcharge_entity1_var }} has started" - title: EV Charge process + - if: + - or: + - condition: template + #value_template: "{{ is_state(evcharge_entity1_var, 'on') }}" + # TEST ONLY: value_template: "{{ false }}" + value_template: "{{ false }}" + - condition: template + #value_template: "{{ is_state(evcharge_entity2_var, 'on') }}" + # TEST ONLY: value_template: "{{ false }}" + value_template: "{{ false }}" + then: + # charge already active, send message and terminate + repeat: + for_each: "{{ recipient_list }}" - # switch of all plugs - - action: switch.turn_off - # entity_id: !input evcharge_entity1 - entity_id: switch.presa_smart_1 - - delay: 10 - - action: switch.turn_off - # entity_id: !input evcharge_entity2 - entity_id: switch.presa_smart_2 - - # Start plug1 and wait until power measured is below input_number.evcharge_no_charge_threshold for 10 minutes = 600 seconds - - action: switch.turn_on - # entity_id: !input evcharge_entity1 - entity_id: switch.presa_smart_1 - - # need to wait car to start charging - #- delay: 60 - - delay: 10 - - - repeat: - # until: "{{ state_attr( evcharge_entity1_var, 'power') < states('input_number.evcharge_no_charge_threshold') }}" - until: "{{ state_attr('sensor.evcharge_front', 'power') < states('input_number.evcharge_no_charge_threshold') }}" + sequence: + - action: "{{ repeat.item }}" + metadata: {} + data: + message: >- + "EVcharge process is ALREADY RUNNING" + title: EV Charge process ERROR + else: sequence: - - delay: 60 + - if: + - condition: template + value_template: "{{ is_state(use_entity1_var, 'on') }}" + then: # EVcharge entity_1 (eg front) charge is requested + sequence: + - repeat: # send message to all recipient-list members + for_each: "{{ recipient_list }}" - - action: switch.turn_off - # entity_id: !input evcharge_entity1 - entity_id: switch.presa_smart_1 + sequence: + - action: "{{ repeat.item }}" + metadata: {} + data: + message: >- + "EVcharge process on {{ evcharge_entity1_var }} has started" + title: EV Charge process - - action: notify.mobile_app_ttrabatt_iphone15 - metadata: {} - data: - message: >- - "EVcharge process on {{ evcharge_entity1_var }} has ended" - title: EV Charge process + # Wait before starting charge + - delay: 10 - # wait couple of minutes before starting charge on plug2 - #- delay: 120 - - delay: 10 + # Start plug1 and wait until power measured is below input_number.evcharge_no_charge_threshold for 10 minutes = 600 seconds + - action: switch.turn_on + # entity_id: !input evcharge_entity1 + # TEST ONLY: entity_id: switch.presa_smart_1 + entity_id: switch.presa_smart_1 - # then start plug2 and wait until power measured is below input_number.evcharge_no_charge_threshold for 10 minutes = 600 seconds - - action: notify.mobile_app_ttrabatt_iphone15 - metadata: {} - data: - message: >- - "EVcharge process on {{ evcharge_entity2_var }} has started" - title: EV Charge process + # need to wait car to start charging + #- delay: 60 + # TEST ONLY: - delay: 10 + - delay: 10 - - action: switch.turn_on - # entity_id: !input evcharge_entity1 - entity_id: switch.presa_smart_2 + - repeat: + # until: "{{ ( states( evcharge_entity1_var, 'power') | int ) < ( states('input_number.evcharge_no_charge_threshold') | int ) }}" + until: "{{ ( states('input_number.test_evcharge_front') | int) < (states('input_number.evcharge_no_charge_threshold') | int) }}" + sequence: + - delay: 60 - # need to wait car to start charging - #- delay: 60 - - delay: 10 + - action: switch.turn_off + # entity_id: !input evcharge_entity1 + # TEST ONLY: entity_id: switch.presa_smart_1 + entity_id: switch.presa_smart_1 - - repeat: - # until: "{{ state_attr( evcharge_entity2_var, 'power') < states('input_number.evcharge_no_charge_threshold') }}" - until: "{{ state_attr('sensor.evcharge_back', 'power') < states('input_number.evcharge_no_charge_threshold') }}" - sequence: - - delay: 60 + - repeat: + for_each: "{{ recipient_list }}" - - action: switch.turn_off - # entity_id: !input evcharge_entity2 - entity_id: switch.presa_smart_2 + sequence: + - action: "{{ repeat.item }}" + metadata: {} + data: + message: >- + "EVcharge process on {{ evcharge_entity1_var }} has ended" + title: EV Charge process - - action: notify.mobile_app_ttrabatt_iphone15 - metadata: {} - data: - message: >- - "EVcharge process on {{ evcharge_entity2_var }} has ended" - title: EV Charge process + # wait couple of minutes before starting charge on plug2 + #- delay: 120 + # TEST ONLY: - delay: 10 + - delay: 10 + - if: + - condition: template + value_template: "{{ is_state(use_entity2_var, 'on') }}" + then: + sequence: + # then start plug2 and wait until power measured is below input_number.evcharge_no_charge_threshold for 10 minutes = 600 seconds + - repeat: # send message to all recipient-list members + for_each: "{{ recipient_list }}" + + sequence: + - action: "{{ repeat.item }}" + metadata: {} + data: + message: >- + "EVcharge process on {{ evcharge_entity2_var }} has started" + title: EV Charge process + + # turn_on evcharge_entity1 + - action: switch.turn_on + # entity_id: !input evcharge_entity1 + # TEST ONLY: entity_id: switch.presa_smart_2 + entity_id: switch.presa_smart_2 + + # need to wait car to start charging + #- delay: 120 + # TEST ONLY: - delay: 10 + - delay: 10 + + - repeat: + # until: "{{ state_attr( evcharge_entity2_var, 'power') < states('input_number.evcharge_no_charge_threshold') }}" + until: "{{ ( states('input_number.test_evcharge_back') | int) < ( states('input_number.evcharge_no_charge_threshold') | int) }}" + sequence: + - delay: 60 + + - action: switch.turn_off + # entity_id: !input evcharge_entity2 + # TEST ONLY: entity_id: switch.presa_smart_2 + entity_id: switch.presa_smart_2 + + - repeat: # send message to all recipient-list member + for_each: "{{ recipient_list }}" + + sequence: + - action: "{{ repeat.item }}" + metadata: {} + data: + message: >- + "EVcharge process on {{ evcharge_entity2_var }} has ended" + title: EV Charge process + + - if: + - and: + - condition: template + value_template: "{{ is_state(use_entity1_var, 'off') }}" + - condition: template + value_template: "{{ is_state(use_entity2_var, 'off') }}" + then: + sequence: + - action: notify.mobile_app_ttrabatt_iphone15 + metadata: {} + data: + message: >- + "EVcharge process activation ERROR, select what to charge" + title: EV Charge process ERROR