Moved some timeouts to numbers

This commit is contained in:
Nikolay Vasilchuk
2022-07-25 15:49:36 +03:00
parent b383450051
commit c4635a2875
6 changed files with 94 additions and 35 deletions

View File

@@ -41,10 +41,6 @@ substitutions:
# Software configuration
call_end_detect_delay: 3000ms # Interval between rings to detect incoming call
relay_before_answer_delay: 400ms # Delay before answer call
relay_answer_on_time: 1000ms # Delay between answer call and open/close door
relay_open_on_time: 300ms # How long the "open door button" will be pressed
relay_after_open_delay: 500ms # Delay in "answer" state after opening door
short_click_time_from: 50ms # Short button click min time
short_click_time_to: 1000ms # Long button click min time

View File

@@ -61,32 +61,34 @@ sensor:
update_interval: 20s
unit_of_measurement: bytes
accuracy_decimals: 0
entity_category: "diagnostic"
- platform: uptime
internal: true
id: uptime_sensor
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
text_sensor:
- platform: template
id: uptime_human
name: "${board_name} Uptime"
lambda: |-
uint32_t dur = id(uptime_sensor).state;
int dys = 0;
int hrs = 0;
int mnts = 0;
if (dur > 86399) {
dys = trunc(dur / 86400);
dur = dur - (dys * 86400);
}
if (dur > 3599) {
hrs = trunc(dur / 3600);
dur = dur - (hrs * 3600);
}
if (dur > 59) {
mnts = trunc(dur / 60);
dur = dur - (mnts * 60);
}
char buffer[17];
sprintf(buffer, "%ud %02uh %02um %02us", dys, hrs, mnts, dur);
return {buffer};
icon: mdi:clock-start
update_interval: 60s
entity_category: "diagnostic"

View File

@@ -1,4 +1,7 @@
button:
- platform: restart
name: "${board_name} Restart"
# Accept call
- platform: template
name: "${board_name} accept call"

View File

@@ -5,6 +5,7 @@ number:
id: led_brightness
optimistic: true
restore_value: true
entity_category: "config"
initial_value: 7
min_value: 0
max_value: 10
@@ -18,3 +19,63 @@ number:
light.control:
id: rgb_led
brightness: !lambda "return x > 0 ? x / 10 : 0.01;"
# Delay before answer call
- platform: template
name: "${board_name} Delay Before Answer"
icon: "mdi:clock-time-two-outline"
id: relay_before_answer_delay
optimistic: true
restore_value: true
mode: box
unit_of_measurement: "ms"
entity_category: "config"
initial_value: 400
min_value: 100
max_value: 5000
step: 100
# Delay between answer call and open/close door
- platform: template
name: "${board_name} Answer On Time"
icon: "mdi:clock-time-two-outline"
id: relay_answer_on_time
optimistic: true
restore_value: true
mode: box
unit_of_measurement: "ms"
entity_category: "config"
initial_value: 1000
min_value: 100
max_value: 5000
step: 100
# How long the "open door button" will be pressed
- platform: template
name: "${board_name} Open On Time"
icon: "mdi:clock-time-two-outline"
id: relay_open_on_time
optimistic: true
restore_value: true
mode: box
unit_of_measurement: "ms"
entity_category: "config"
initial_value: 300
min_value: 50
max_value: 2000
step: 50
# Delay in "answer" state after opening door
- platform: template
name: "${board_name} Delay After Open"
icon: "mdi:clock-time-two-outline"
id: relay_after_open_delay
optimistic: true
restore_value: true
mode: box
unit_of_measurement: "ms"
entity_category: "config"
initial_value: 500
min_value: 100
max_value: 5000
step: 100

View File

@@ -31,13 +31,13 @@ script:
then:
- logger.log: "Accept call"
- script.execute: state_no_call
- delay: $relay_before_answer_delay
- delay: !lambda "return id(relay_before_answer_delay).state;"
- script.execute: state_answer
- delay: $relay_answer_on_time
- delay: !lambda "return id(relay_answer_on_time).state;"
- script.execute: state_open
- delay: $relay_open_on_time
- delay: !lambda "return id(relay_open_on_time).state;"
- script.execute: state_answer
- delay: $relay_after_open_delay
- delay: !lambda "return id(relay_after_open_delay).state;"
- script.execute: state_ready
- globals.set:
id: mode_mute_once
@@ -48,9 +48,9 @@ script:
then:
- logger.log: "Reject call"
- script.execute: state_no_call
- delay: $relay_before_answer_delay
- delay: !lambda "return id(relay_before_answer_delay).state;"
- script.execute: state_answer
- delay: $relay_answer_on_time
- delay: !lambda "return id(relay_answer_on_time).state;"
- script.execute: state_ready
- globals.set:
id: mode_mute_once
@@ -216,4 +216,4 @@ script:
then:
- light.turn_off:
id: rgb_led
transition_length: 0ms
transition_length: 0ms

View File

@@ -1,7 +1,4 @@
switch:
- platform: restart
name: "${board_name} Restart"
# Automatically open door switch
- platform: template
name: "${board_name} automatically open"