How does ack work?

Posted on
Tue Nov 14, 2006 8:30 am
nsosnicki offline
Posts: 168
Joined: Nov 14, 2004
Location: Boston, MA, US

How does ack work?

Recently I had yet another INSTEON device die, this time a LampLinc. It would not respond to any commands.

However, I noticed when I sent On/Off/Bright/Dim commands to the device, even after it was unplugged, Indigo did not generate any error messages. I was under the impression that commands were retried until acknowledgment was received or an error was generated.

Only when I tried a status request did an error get logged ("...send failed (no acknowledgment)").

Posted on
Tue Nov 14, 2006 10:31 am
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: How does ack work?

nsosnicki wrote:
...Indigo did not generate any error messages. I was under the impression that commands were retried until acknowledgment was received or an error was generated.

There is a preference to enable ACK checking. Turn ON the checkbox "Report error on all NAKs..." inside the PowerLinc V2 options dialog (prefs dialog, press Interface Options... button). There are cases where, because of an INSTEON timing problem, acknowledgments won't be seen by the PowerLinc V2 even though they are sent. This is why the preference is OFF by default. In general, the more INSTEON modules you have the less likely you'll have the "missing acknowledgment" problem. However, if you only have a single LampLinc V2, then you might see it often enough that Indigo, by default, ignores the fact that it doesn't receive an acknowledgment. Point being, if you turn on that pref then you might see an occasional ACK failure in the Event Log even when the module did turn on/off (by occasional I mean less than 2%). If you have several INSTEON modules (10 or more maybe?), then you are unlikely to have the missing ack problem because of the strong mesh network you will have.

One last note -- the above preference only deals with how Indigo handles missing ACKs: does it show an error and not update the device state, or does it let a missing ACK slide. No matter what the PowerLinc V2 will retry sending the command to the module if it doesn't receive an ACK.

Regards,
Matt

Posted on
Tue Nov 14, 2006 5:48 pm
nsosnicki offline
Posts: 168
Joined: Nov 14, 2004
Location: Boston, MA, US

(No subject)

For what its worth, at this point 22 Insteon devices and 31 X10 (and only 60% of the house is done!)

Without the "report error on all NAKs" checkbox selected, Indigo will let me turn on, off, brighten, and dim the device even though it is not plugged in (i.e., the device status is updated).

With the checkbox, I get the "send failed, no ACK" message and the device status is not updated, which for me is the desired behavior.

Posted on
Wed Nov 15, 2006 11:49 am
nsosnicki offline
Posts: 168
Joined: Nov 14, 2004
Location: Boston, MA, US

Related question

I have 2 SwitchLincs mounted next to each other and it is common for me when leaving the room to turn both off in rapid succession. When I do this, Indigo only sees the status update for the first switch turning off, not the second. If I slow down and turn off the first, wait half a second, then turn off the second switch, both status updates are seen.

From what I see, an Insteon device is under no "obligation" to ensure that it's status updates are communicated to the PowerLinc. Is that correct? That is contradictory to my understanding (or maybe my assumption) about the Insteon protocol.

Posted on
Wed Nov 15, 2006 7:30 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: Related question

nsosnicki wrote:
From what I see, an Insteon device is under no "obligation" to ensure that it's status updates are communicated to the PowerLinc. Is that correct?

It is a bit complicated. When you press a switch button the switch first sends out a group broadcast message to all devices. The PowerLinc picks this up and reports it to Indigo, which then updates the device state and starts any Trigger Actions based on the command (or state change). This message, because it is a global broadcast, is not ACKd. Next the switch sends out direct messages to everyone that it thinks is linked to that button press to make sure they got the initial group broadcast. This process of sequentially sending direct messages (which are ACKd) to all the devices, including the PowerLinc, is interruptible if another INSTEON command is put on the power line. If it is interrupted, then it does not resume.

But I am somewhat puzzled by your description -- Indigo only updates the device states on the initial group broadcast command (I need to revisit this and have it update on the direct commands as well, but that is another issue). Based on what you are seeing, it would be as if your 2nd switch press is somehow interrupting the initial group broadcast. But that group broadcast is sent out immediately on the 1st switch press -- I'd be surprised if you could press the other one quick enough. Do you have any other modules (like a LampLinc) linked to the 1st SwitchLinc? If so, does it fail to turn on/off if you interrupt it by pushing the 2nd switch also? If the LampLinc works but Indigo does not update the state, then I think maybe the PowerLinc is getting confused by the interruption.

Regards,
Matt

Posted on
Thu Nov 16, 2006 10:26 am
outlanderbz offline
Posts: 48
Joined: Dec 11, 2005
Location: Chicagoland

(No subject)

this happens to me also. I have 2 Icon switches on the wall in a bathroom; one is a icon dimmer for the light and the other is an icon relay for the exhaust fan. If i enter the bathroom and turn the light on and then the fan on one after another Indigo does not see the fan being turned on.

i noticed this problem when i decided to get creative and have a trigger that turned the fan off after 30 minutes.

I could not figure out why the trigger didnt always work. I thought maybe the icon relay switch was bad so i used my master bedroom which has the same 2 switch light/fan setup as a test. I get the same results there, if you press them one after another indigo does not receive the second one.

to solve my auto off problem i changed the trigger to "if device state of fan is changed to on then shut off fan after 30 minutes". I then created a trigger so when Indigo receives the ON command from the light it waits 10 seconds and then checks the status of the fan. if the status is on then the auto off trigger goes.

however, i have not been able to solve the problem of indigo not seeing the second command. I have tried moving the powerlinc, my 4 rf's and using filterlincs and nothing helped.

Posted on
Thu Nov 16, 2006 10:55 am
nsosnicki offline
Posts: 168
Joined: Nov 14, 2004
Location: Boston, MA, US

Re: Related question

support wrote:
Do you have any other modules (like a LampLinc) linked to the 1st SwitchLinc? If so, does it fail to turn on/off if you interrupt it by pushing the 2nd switch also? If the LampLinc works but Indigo does not update the state, then I think maybe the PowerLinc is getting confused by the interruption.


This is bizarre. If I link switch #2 to control another Insteon device, I cannot recreate the missing status; it works every time (both the linked device and it is seen by Indigo). After I unlink it, same behavior where Indigo does not see the 2nd switch turning off.

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 0 guests