87squirrels Posted March 29, 2015 Posted March 29, 2015 I have a program which tracks the status of my "Evening" scene, by watching the status of the buttons that control the scene. Its main purpose is to manage a couple X10 devices that are part of the (logical) scene (I don't have the X10 module). If Status 'Living Room / LR - KPL:H # Evening' is 100% Or Control 'Living Room / LR - KPL:H # Evening' is switched On Or Control 'Living Room / Rlinc 6 - Evening' is switched On Or Control 'Kitchen / Kit - KPL:H # Evening' is switched On Or Control 'Bedroom / MBR - KPL:H # Evening' is switched On Then Run Program 'Powder Room - O3' (Then Path) Set Scene 'Living Room / Movie Buttons' Off Run Program 'Powder Room - O3' (Then Path) Run Program '"DOT" - A11' (Then Path) Set 'Living Room / Living Room - Center Floor La' On Else Run Program 'Powder Room - O3' (Else Path) Run Program '"DOT" - A11' (Else Path) Set 'Living Room / Living Room - Center Floor La' Off The last command in the Then and Else sections usually, but not always, works. That device is an ApplianceLinc, address 28.04.15. Here is a trace from pressing "Rlinc 6" Off on the RemoteLinc (14.37.97), you can see that the Else clause of the program was triggered, as the X10 commands are sent (the Then clause of the X10 programs sends On, the Else clause sends OFF), but no command to the Center Floor Lamp seems to be sent. Once in a while, the X10 commands don't work -- but I've always passed that off to X10 unreliability The other thing that surprises me is the error from 14 53 B3 at the end; as 9 seconds earlier, that device sent ST 114, so it doesn't seem to have communication issues (it is triggered by another program that has some conditional logic when the same scene is updated). Sat 03/28/2015 09:18:17 PM : [ Time] 21:18:19 20(0) Sat 03/28/2015 09:19:12 PM : [INST-SRX ] 02 50 14.37.97 00.00.06 C7 13 00 LTOFFRR(00) Sat 03/28/2015 09:19:12 PM : [Std-Group ] 14.37.97-->Group=6, Max Hops=3, Hops Left=1 Sat 03/28/2015 09:19:12 PM : [ 14 37 97 6] DOF 0 Sat 03/28/2015 09:19:12 PM : [INST-SRX ] 02 50 14.37.97 00.00.06 C3 13 00 LTOFFRR(00) Sat 03/28/2015 09:19:12 PM : [Std-Group ] 14.37.97-->Group=6, Max Hops=3, Hops Left=0 Sat 03/28/2015 09:19:12 PM : [INST-DUP ] Previous message ignored. Sat 03/28/2015 09:19:13 PM : [INST-TX-I1 ] 02 62 14 53 B3 0F 11 72 Sat 03/28/2015 09:19:13 PM : [ 6 15 F0 1] ST 0 Sat 03/28/2015 09:19:13 PM : [INST-ACK ] 02 62 14.53.B3 0F 11 72 06 LTONRR (72) Sat 03/28/2015 09:19:13 PM : [INST-TX-I1 ] 02 62 00 00 23 CF 13 00 Sat 03/28/2015 09:19:13 PM : [ 14 CB EF 8] ST 0 Sat 03/28/2015 09:19:13 PM : [INST-ACK ] 02 62 00.00.23 CF 13 00 06 LTOFFRR(00) Sat 03/28/2015 09:19:13 PM : [ 14 3E 41 1] ST 0 Sat 03/28/2015 09:19:13 PM : [INST-SRX ] 02 50 14.53.B3 0F.9F.12 2B 11 72 LTONRR (72) Sat 03/28/2015 09:19:13 PM : [Std-Direct Ack] 14.53.B3-->ISY/PLM Group=0, Max Hops=3, Hops Left=2 Sat 03/28/2015 09:19:14 PM : [INST-TX-I1 ] 02 62 00 00 1D CF 13 00 Sat 03/28/2015 09:19:14 PM : [ 2A C A5 8] ST 0 Sat 03/28/2015 09:19:14 PM : [INST-ACK ] 02 62 00.00.1D CF 13 00 06 LTOFFRR(00) Sat 03/28/2015 09:19:15 PM : [INST-TX-I1 ] 02 62 28 04 15 0F 13 00 Sat 03/28/2015 09:19:15 PM : [ 18 85 80 1] ST 0 Sat 03/28/2015 09:19:15 PM : [INST-TX-I1 ] 02 62 00 00 22 CF 13 00 Sat 03/28/2015 09:19:15 PM : [ 14 37 2A 1] ST 0 Sat 03/28/2015 09:19:15 PM : [ 15 4A 6C 1] ST 0 Sat 03/28/2015 09:19:15 PM : [ 16 77 3E 8] ST 0 Sat 03/28/2015 09:19:15 PM : [ 14 37 97 6] ST 0 Sat 03/28/2015 09:19:15 PM : [ 20 BB 74 1] ST 0 Sat 03/28/2015 09:19:15 PM : [ 29 13 22 1] ST 0 Sat 03/28/2015 09:19:15 PM : [ 2A C A5 2] ST 0 Sat 03/28/2015 09:19:15 PM : [ 14 53 B3 1] ST 114 Sat 03/28/2015 09:19:15 PM : [ 2A C A5 4] ST 0 Sat 03/28/2015 09:19:15 PM : [ X10] A11 Sat 03/28/2015 09:19:15 PM : [ X10] A11/Off (11) Sat 03/28/2015 09:19:15 PM : [ X10] A11 Sat 03/28/2015 09:19:15 PM : [ X10] A11/Off (11) Sat 03/28/2015 09:19:15 PM : [ X10] O3 Sat 03/28/2015 09:19:15 PM : [ X10] O3/Off (11) Sat 03/28/2015 09:19:15 PM : [INST-SRX ] 02 50 14.37.97 0F.9F.12 47 13 06 LTOFFRR(06) Sat 03/28/2015 09:19:15 PM : [Std-Cleanup ] 14.37.97-->ISY/PLM Group=6, Max Hops=3, Hops Left=1 Sat 03/28/2015 09:19:15 PM : [ 14 37 97 6] DOF 0 Sat 03/28/2015 09:19:15 PM : [X10-RSP ] 02 63 63 00 06 Sat 03/28/2015 09:19:15 PM : [INST-TX-I1 ] 02 62 14 53 B3 0F 11 72 Sat 03/28/2015 09:19:16 PM : [X10-RSP ] 02 63 63 80 06 Sat 03/28/2015 09:19:17 PM : [INST-ACK ] 02 62 00.00.22 CF 13 00 06 LTOFFRR(00) Sat 03/28/2015 09:19:17 PM : [ 2A C A5 3] ST 0 Sat 03/28/2015 09:19:18 PM : [X10-RSP ] 02 63 63 00 06 Sat 03/28/2015 09:19:19 PM : [X10-RSP ] 02 63 63 80 06 Sat 03/28/2015 09:19:20 PM : [X10-RSP ] 02 63 42 00 06 Sat 03/28/2015 09:19:21 PM : [X10-RSP ] 02 63 43 80 06 Sat 03/28/2015 09:19:22 PM : [INST-ACK ] 02 62 14.53.B3 0F 11 72 06 LTONRR (72) Sat 03/28/2015 09:19:22 PM : [INST-ERX ] 02 51 14 53 B3 0F 9F 12 13 88 B2 32 20 00 00 20 20 1C FE 15 00 80 00 00 00 Sat 03/28/2015 09:19:22 PM : [Ext-Direct ] 14.53.B3-->ISY/PLM Group=0, Max Hops=3, Hops Left=0 Sat 03/28/2015 09:19:26 PM : [ 14 53 B3 1] ERR 1 Rlinc 6 is a controller for a scene "Evening", which has 12 devices: 14.CB.EF (2486D KPL button), 16.77.3E (2486D KPL button), 29.13.22, (2472D OutletLinc Dimmer) 09.4A.76 (2430 ControlLinc button), 2A.0C.A5 (2334-2 KPL button), 15.4A.6C, (2456D3 LampLinc) 06.15.F0, (2456D3 LampLinc) 18.85.80, (2457D2X LampLinc) 14.37.2A, (2457D2X LampLinc) 14.37.97 (2440 RemoteLinc button), 14.3E.41, (B2457D2 LampLinc) 20.BB.74. (2456S3 ApplianceLinc) they've all reported ST 0, except the 2430 ControlLink. I'm not sure where to go from here.
LeeG Posted March 29, 2015 Posted March 29, 2015 The error with 14 53 B3 is the result of the device not ACKing the On command. It takes 7 seconds for the PLM to ACK the receipt of the On command request followed by a Broadcast message from 14 53 B3 rather than the expect ACK of the On command. That is the cause of the error. There is too much Insteon activity going on at the same time. Insteon does not allow multiple Scenes or a Scene and Direct Insteon activity to run at the same time. This is discussed in the insteondetails.pdf document on insteon.com. The Scene initiated by the RemoteLinc button is running at the same time other Insteon activity has been started by the Programs. Multiple Programs are invoked at the same time, each doing Insteon activity. Without seeing those Programs it is not possible to analyze potential parallel Insteon issues. Analyze the Insteon activity and centralize it in a single Program or add Waits to prevent the overlaps.
87squirrels Posted March 29, 2015 Author Posted March 29, 2015 Thanks Lee. I'd always assumed the ISY or PLM would queue commands if the bus was busy. I'll disable the programs, monitor to see how long the devices typically take to respond to the scene commands, and then time the programs to follow that activity. The programs triggered by the scene are fairly light in terms of activity (the one above sends at most 2 Insteon and 3 X10 commands); the other one that can be triggered by this scene is conditional and sends either one or zero Insteon commands. I will change that one to trigger at the end of this program.
87squirrels Posted March 29, 2015 Author Posted March 29, 2015 Is there some recommendation of how many devices can be in a scene before traffic problems result?
paulbates Posted March 29, 2015 Posted March 29, 2015 Is there some recommendation of how many devices can be in a scene before traffic problems result? Hi The number of devices in the scene are not a root cause for what you are experiencing. By design, insteon scenes can have many devices. When you set up a scene with your ISY, it creates a unique scene address/link, and then programs that into each participating device. When you issue a scene command, a single message with that address/link is sent on your power line, and and all devices programmed for that respond to that single message when they see it. My largest scene has 26 participants, and only one message is needed to activate them.
87squirrels Posted March 29, 2015 Author Posted March 29, 2015 What about the traffic from the devices reporting their new status? In my example, there was one scene command (with 12 members), then three X10 commands and 3 Insteon individual device commands. It doesn't seem like that should cause a device to time out after 7 seconds.
paulbates Posted March 29, 2015 Posted March 29, 2015 Individual Insteon device commands are fully acknowledged and retried. However the group broadcast message used for scenes from the PLM is not acknowledged or retried. There is no "acknowledgement storm" from the devices. If the Individual insteon device commands are issued before a scene, or before X10, the acknowledgement response from the device can collide with the next scene or X10 command. X10 messages are vulnerable getting stepped on by the acknowledgement as well. Therefore, the individual Insteon device commands should be the last command(s) in a program sequence. If its possible to make one single thread program (no Run commands), my suggestion is send the 3 X10 commands followed by a scene, followed by individual insteon commands. One more thought to simplify the above: Scenes are 'cheap' resource wise (unless you have hundreds of Insteon devices). I would create an additional scene with the 12 original members, and then add the three additional devices. Have the program control the three x10 devices, and then control that new scene. It will give you the added 'effect' of all the insteon devices going off at the same time, and lower network traffic.
87squirrels Posted March 29, 2015 Author Posted March 29, 2015 @paulbates, thanks. The scene is triggered by a button press. I'd prefer not to change that part. The two programs that run (now sequentially, they both used to trigger at the button press) * Send X10 commands to simulate the X10 devices being in the scene. * Change the state of another button (if the evening scene is on, the movie scene must be off -- they are different scenes on the same devices) * If a flag isn't set, turn on a light in the bedroom if the evening scene is turned off. When I started with the ISY, I had many more X10 devices, and I established a pattern (for better or worse) of a program for each one, where Then sent the On command, and Else the off command. This allows me to easily find all references to a device. I'd rather not change that. I might be able to move the Movie button into the main scene with an on level of zero. I'll play with that. The last one is a device that I wanted to put temporarily into the scene, but was lazy and added it to the program rather than reminding myself how to put the remotelinc into program mode (and the device that misses more often than not). I've added a 7 second delay before the programs run, and it seems to be working now, with several seconds of no activity logged, so I'll lower that by a few seconds. I think this will be workable without further changes, but it'll take a couple days of usage to be sure. I have learned a few things about Insteon thanks to you and LeeG. Much appreciated.
stusviews Posted March 29, 2015 Posted March 29, 2015 Is there some recommendation of how many devices can be in a scene before traffic problems result? I have a scene with 59 devices. No traffic problems.
paulbates Posted March 29, 2015 Posted March 29, 2015 @paulbates, thanks. I have learned a few things about Insteon thanks to you and LeeG. Much appreciated. You are welcome. I bought Insteon as a way to bridge off of X10 and have had a number of unexpected surprises over the years with that plan, things different than what I thought / wanted. I sure learn a lot here on this forum all the time
Recommended Posts