Files
smart-domofon/ge1mer/esphome/packages/script.yaml
Nikolay Vasilchuk 6e66e9c20f Refactoring
2022-09-09 21:04:09 +03:00

80 lines
2.3 KiB
YAML

script:
# Connected intercom or mute resistor
- id: state_ready
then:
- lambda: |-
if (id(mode_mute) || id(mode_mute_once)) {
id(relay_mute).turn_on();
id(relay_phone).turn_off();
} else {
id(relay_phone).turn_on();
id(relay_mute).turn_off();
}
id(relay_answer).turn_off();
# Connected answer resistor
- id: state_answer
then:
- lambda: |-
id(relay_answer).turn_on();
id(relay_phone).turn_off();
id(relay_mute).turn_off();
# Disconnected all
- id: state_open
then:
- lambda: |-
id(relay_answer).turn_off();
id(relay_phone).turn_off();
id(relay_mute).turn_off();
# Accept incoming call
- id: call_accept
then:
- logger.log: "Accept call"
- delay: !lambda "return id(relay_before_answer_delay).state;"
- script.execute: state_answer
- delay: !lambda "return id(relay_answer_on_time).state;"
- script.execute: state_open
- delay: !lambda "return id(relay_open_on_time).state;"
- script.execute: state_answer
- delay: !lambda "return id(relay_after_open_delay).state;"
- script.execute: state_ready
- globals.set:
id: mode_mute_once
value: 'false'
# - homeassistant.event:
# event: esphome.domofon_call_accept
# data:
# entity_uid: $mdns_name
# Reject incoming call
- id: call_reject
then:
- logger.log: "Reject call"
- delay: !lambda "return id(relay_before_answer_delay).state;"
- script.execute: state_answer
- delay: !lambda "return id(relay_answer_on_time).state;"
- script.execute: state_ready
- globals.set:
id: mode_mute_once
value: 'false'
# - homeassistant.event:
# event: esphome.domofon_call_reject
# data:
# entity_uid: $mdns_name
# Call state
- id: state_call
then:
- lambda: |-
ESP_LOGD("main", "Incoming call");
if (id(mode_auto_reject)) {
id(call_reject).execute();
} else if (id(mode_auto_open)) {
id(call_accept).execute();
} else if (id(mode_auto_open_once)) {
id(call_accept).execute();
id(mode_auto_open_once) = false;
}