-
Notifications
You must be signed in to change notification settings - Fork 130
Items Timer
ggodart edited this page Jan 6, 2021
·
1 revision
See original
$timer_laundary = new Timer;
$v_laundary_timer = new Voice_Cmd('Laundary timer [on,off]');
if ($state = said $v_laundary_timer) {
if ($state eq ON) {
play('rooms' => 'shop', 'file' => 'cloths_started.wav');
set $timer_laundary 35*60, 'speak "rooms=all The laundary clothes done"', 4;
}
else {
speak 'rooms=shop The laundry timer has been turned off.';
unset $timer_laundary;
}
}
This example uses an anonymous subroutine
$v_test_delay = new Voice_Cmd 'Test timer with [1,5,10] seconds';
if ($state = said $v_test_delay) {
print_log "Starting $state second timer test";
my $timer = new Timer;
set $timer $state, sub {
print_log "Ending $state second timer test";
}
# set $timer $state, "print_log 'Ending $state second timer test'";
}
The Timer object can be used to run an action one or more times, at a specified interval.
Method | Description |
---|---|
new |
Used to create the object. |
set($period, $action, $cycles) |
$period is the timer period in seconds $action (optional) is the code (either a string or a code reference) to run when the timer expires $cycles (optional) is how many times to repeat the timer. Set to -1 to repeat forever. |
unset |
Unset the timer. 'set $my_timer 0' has the same effect. |
run_action |
Runs the timers action, even if the timer has not expired. |
expired |
Returns true for the one pass after the timer has expired. |
hours_remaining, hours_remaining_now, minutes_remaining, minutes_remaining_now, seconds_remaining, `econds_remaining_now |
These methods return the hours, minutes or seconds remaining on the timer. The _now methods only return the remaining time on the hour, minute, or second boundary. |
active |
Returns true if the timer is still running. |
inactive |
Returns true if the timer is has expired or has not been set. |
start |
Starts the timer |
restart |
Restarts the timer (start on an active timer does nothing) |
stop |
Stops a timer. |
pause |
Pauses |
resume |
Bet you can guess :) |
query |
Returns the seconds on the timer. |
get_type() |
Returns the class (or type, in MisterHouse terminology) of this item. |