George Clark
2014-02-16 18:03:29 UTC
Hi all,
I've got off_fast working for a SWITCHLINC, but for a couple of my
switches I'm using SWITCHLINCRELAY type devices. They seem to map the
off_fast and on_fast to a simple off/on for the state, so I've been
unable to figure out how to access the commands. On a couple of devices
I was hoping to use the "fast" type commands to override some timers.
For example: When my garage door closes, a timer starts and the lights
turn off after 15 minutes. However if I'm working out there, I don't
want the doors opening/closing to turn off the lights. If I can
detect an on_fast, I could use that to tell mh that the lights are in
manual mode, and not go starting any timers. The garage lights are on a
switchlincrelay.
I've been through the FAQs and code examples, but no luck so far. Is
there some way to get the underlying message / command that caused a
state? Below is test code for another switchlincrelay that shows the
events that are processed, and the mapping that happened. If I run the
same events against a switchlinc. then code reports off_fast and on_fast
as the states.
It seems as though even though a relay can't support levels, the *_fast
commands should still have meaning. So maybe it's a bug?
Thanks,
George
-------
if ( $state = ( state_now $l_bath_fan_lt ) ) {
print "BATHROOM.PL: received $state\n";
if ( $state eq 'off_fast' ) {
print "Detected off_fast for bath fan\n";
}
}
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: off_fast; type: alllink; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject]
$l_bath_fan_lt::set_receive(off, $l_bath_fan_lt)
BATHROOM.PL: received off
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: off_fast; type: cleanup; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject]
$l_bath_fan_lt::set_receive(off, $l_bath_fan_lt)
16/02/2014 12:15:39 [Insteon::BaseObject] Ignoring duplicate set off
state command for $l_bath_fan_lt received in less than 1000 millisecond
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: link_cleanup_report; type: alllink; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject] DEBUG Received AllLink
Cleanup Success for $l_bath_fan_lt
I've got off_fast working for a SWITCHLINC, but for a couple of my
switches I'm using SWITCHLINCRELAY type devices. They seem to map the
off_fast and on_fast to a simple off/on for the state, so I've been
unable to figure out how to access the commands. On a couple of devices
I was hoping to use the "fast" type commands to override some timers.
For example: When my garage door closes, a timer starts and the lights
turn off after 15 minutes. However if I'm working out there, I don't
want the doors opening/closing to turn off the lights. If I can
detect an on_fast, I could use that to tell mh that the lights are in
manual mode, and not go starting any timers. The garage lights are on a
switchlincrelay.
I've been through the FAQs and code examples, but no luck so far. Is
there some way to get the underlying message / command that caused a
state? Below is test code for another switchlincrelay that shows the
events that are processed, and the mapping that happened. If I run the
same events against a switchlinc. then code reports off_fast and on_fast
as the states.
It seems as though even though a relay can't support levels, the *_fast
commands should still have meaning. So maybe it's a bug?
Thanks,
George
-------
if ( $state = ( state_now $l_bath_fan_lt ) ) {
print "BATHROOM.PL: received $state\n";
if ( $state eq 'off_fast' ) {
print "Detected off_fast for bath fan\n";
}
}
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: off_fast; type: alllink; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject]
$l_bath_fan_lt::set_receive(off, $l_bath_fan_lt)
BATHROOM.PL: received off
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: off_fast; type: cleanup; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject]
$l_bath_fan_lt::set_receive(off, $l_bath_fan_lt)
16/02/2014 12:15:39 [Insteon::BaseObject] Ignoring duplicate set off
state command for $l_bath_fan_lt received in less than 1000 millisecond
16/02/2014 12:15:39 [Insteon::BaseInterface] Received message from:
$l_bath_fan_lt; command: link_cleanup_report; type: alllink; group: 01
16/02/2014 12:15:39 [Insteon::BaseObject] DEBUG Received AllLink
Cleanup Success for $l_bath_fan_lt