Discussion:
[mh] Question about insteon "fast" commands
George Clark
2014-02-16 18:03:29 UTC
Permalink
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
Eloy Paris
2014-02-16 23:56:55 UTC
Permalink
Hi George,

I'm sorry, I don't have any idea about the off_fast/on_fast states but
wanted to mention that your garage issue can be solved easily by putting
an INSTEON motion sensor there. Yeah, I know, one more thing to buy, but
those sensors really work well, and interesting things can be done with
them.

Cheers,

Eloy Paris.-
Post by George Clark
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";
}
}
$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
$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
$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
Loading...