AZPhil Posted June 11, 2017 Posted June 11, 2017 isy994i, running 4.5.4.The objective is to manage one KPL toggle button under program control. The button to be managed is a controller of a scene that has several devices as responders, as well as several several KPL buttons that correspond to the responding devices. When the button LED is turned ON because of the button having been pressed to turn on the multidevice scene, several other button LEDs on the same KPL turn on to reflect the ON state of the device each of the buttons controls. In effect, the button is question acts as a master button. But a master button becomes superfluous when only one device and its dedicated button are all that remains. Therefore, when the master is currently ON, the desire is to turn the master button OFF after some devices in the scene have been turned off under separate button control. Having read through various "howtos" in this forum, my understanding is that the correct (and apparently, only) way to turn a KPL button on or off under program control is to create a scene containing the button and have the program turn the scene on/off. Therefore, a scene was created which contains the button in question, and only that button. Note: The button is a responder in exactly two scenes: The single button scene, and the master scene for which the button is a controller. With the button scene selected in the admin console, clicking the "on" and "off" controls at the bottom of the window turns the LED on and off. (I visually inspected the KPL after each command.) I then manually pressed the master button, turning on the master scene, and then repeated the test in the admin console. Same result: LED turns off and on under console control. So far, so good. Turning the button scene on/off turns the button on/off. On to programming the button state. A program was written to turn off the scene when a button turns OFF while the state of other devices is OFF.The "Then" clause is of the form: "Set Scene '(the button scene)' off" The program appears to work perfectly. When the program is triggered and the "If" clause evaluates as true, the button is turned OFF as evidenced by the admin console reporting both the button scene state and the button state itself changing from "ON" to "OFF". The problem is, despite the "off" state of both the button and the button scene as reported by the console, the actual LED behind the button remains quite visibly on at 100% brightness! Also, the toggle state of the button is exactly as it appears visually, not as reported in the console. Pressing the button turns OFF the master scene, and the button LED. Pressing it again turns on the whole master scene. From all appearances, it seems as if the isy is marking the scene and device states as off as commanded to do by the program, but the isy is not sending an appropriate command to the device to actually turn the LED off, or change the toggle state of the button. I don't want to simply manage a state variable, I want to actually toggle the button on or off, together with its LED. And I certainly don't understand having both a scene and the only device in the scene being reported as being in the OFF state when visual inspection clearly reveals the actual device is ON. What am I missing? Perhaps of interest, perhaps not: The KPL device is a 6-button 2334-232, converted to an 8-button KPL when installed.The actual device is marked Rev. 7.7 datecode 4315. HL correctly identified it as a 2334-232 with 8 buttons. The device reported itself in HL as 0x01.0x42.0x45. The KPL is identified in the isy admin console as "(2334-2) KeypadLinc Dimmer 5 Buttons v.45". Not sure why it is identified in isy as having "5 buttons". However, the isy correctly set up the 8-button KPL as having 8 named buttons. All of the 2334-232 KPLs (most being used in 6-button mode) are identified the same way, The "LED Brightness" button control on the device page for all of the KPLs reports both "on level" and "off level" as having value "0". I would expect this button to report the actual LED brightness as currently set in each KPL.
oberkc Posted June 11, 2017 Posted June 11, 2017 It appears to me that your understaning is completely accurate across the board. I expect that when you command the scene containing only the button to be off, the button should, in fact, turn off. The qyuestion becomes why it does not turn off. Were this me, I would select the single-button scene from the admin console and manually tell it to turn off. Once done, confirm whether it is actually off. If not, my best guess is a communication problem. If so, manually turn the button on, and select the prgram at the admin panel. Right click and run the "then" clause. Did the button turn off? If not, your "then" clause has an error. If it turned off after running "then", my best guess is a problem with the "if" clause.
Techman Posted June 11, 2017 Posted June 11, 2017 It's also possible some of the links in the KPL are corrupted. Try doing a restore device on the KPL to see if that corrects the problem. You can also try doing a restore device on the devices in your scene(s).
AZPhil Posted June 11, 2017 Author Posted June 11, 2017 It appears to me that your understaning is completely accurate across the board. I expect that when you command the scene containing only the button to be off, the button should, in fact, turn off. The qyuestion becomes why it does not turn off. Were this me, I would select the single-button scene from the admin console and manually tell it to turn off. Once done, confirm whether it is actually off. If not, my best guess is a communication problem. If so, manually turn the button on, and select the prgram at the admin panel. Right click and run the "then" clause. Did the button turn off? If not, your "then" clause has an error. If it turned off after running "then", my best guess is a problem with the "if" clause. In point of fact, as I reported, I had already tried manually turning the scene on and off with the console. That worked fine. I wasn't previously aware of the "run then" feature. Thanks for that tip! Just tried that, and the button turns off. However, when the full program runs when triggered by a button change event, only the reported state changes, not the actual button. Very confusing. Some kind of timing issue maybe?
lilyoyo1 Posted June 11, 2017 Posted June 11, 2017 The 6 button keypad shows up as 5 buttons since the on and off buttons are tied together. Outside of changing it to 8 button configuration, there are technically only 5 programmable buttons
oberkc Posted June 11, 2017 Posted June 11, 2017 Sorry I missed some of the details of your original post. If running "then" portion of program works as expected, i wonder about entire program, or other programs that may be accidentally triggered. I am unaware of "timing" issues that would cause this. However, I could envision a couple of programming problems that might cause this. I certainly encourage you to post the actual program. Perhaps there is an issue that someone might catch. Short of that, open the program log which shows program run times and current state (true or false). Initiate the event or events that you believe would trigger this program. Does it? Does it trigger any other programs? Does this program end up true or false?
AZPhil Posted June 11, 2017 Author Posted June 11, 2017 Short of that, open the program log which shows program run times and current state (true or false). Initiate the event or events that you believe would trigger this program. Does it? Does it trigger any other programs? Does this program end up true or false? I will start with the log, and proceed from there. Something like the really detailed logging in HL would be nice. Where do I find the program log? Seems to be well hidden!
oberkc Posted June 11, 2017 Posted June 11, 2017 Along the top is a tab "programs". Below that are three (i think) options...details, summary, and something else. (Dont quote me, this is all from memory.). Ibelieve the summary tab is the one showing the status of all the programs.
Techman Posted June 11, 2017 Posted June 11, 2017 If you right click on the scene, there's an option to run a scene test which will give you a diagnostic display of all the devices in the scene. Copy and paste the test results in a post.
AZPhil Posted June 12, 2017 Author Posted June 12, 2017 If you right click on the scene, there's an option to run a scene test which will give you a diagnostic display of all the devices in the scene. Copy and paste the test results in a post. Sun 06/11/2017 05:29:06 PM : [GRP-RX ] 02 61 27 13 00 06 Sun 06/11/2017 05:29:07 PM : [CLEAN-UP-RPT] 02 58 06 Sun 06/11/2017 05:29:07 PM : [iNST-SRX ] 02 50 3D.8D.2A 44.30.E6 E5 13 FC LTOFFRR(FC) ----- MBR--KPL-D-button Test Results ----- [Failed] MBR KPL.D (3D 8D 2A 4) ----- MBR--KPL-D-button Test Results ----- Sun 06/11/2017 05:29:14 PM : [iNST-TX-I1 ] 02 62 00 00 27 CF 13 00 Sun 06/11/2017 05:29:14 PM : [iNST-ACK ] 02 62 00.00.27 CF 13 00 06 LTOFFRR(00)
Techman Posted June 12, 2017 Posted June 12, 2017 (edited) Sun 06/11/2017 05:29:06 PM : [GRP-RX ] 02 61 27 13 00 06 Sun 06/11/2017 05:29:07 PM : [CLEAN-UP-RPT] 02 58 06 Sun 06/11/2017 05:29:07 PM : [iNST-SRX ] 02 50 3D.8D.2A 44.30.E6 E5 13 FC LTOFFRR(FC) ----- MBR--KPL-D-button Test Results ----- [Failed] MBR KPL.D (3D 8D 2A 4) ----- MBR--KPL-D-button Test Results ----- Sun 06/11/2017 05:29:14 PM : [iNST-TX-I1 ] 02 62 00 00 27 CF 13 00 Sun 06/11/2017 05:29:14 PM : [iNST-ACK ] 02 62 00.00.27 CF 13 00 06 LTOFFRR(00) The "D" button on your keypad failed to respond. Try doing a scene test that involves one of the other KPL buttons to see if it succeeds. You can try doing a factory reset on the KPL then a restore device. It's possible that when it was converted from a 6 to 8 button the conversion got corrupted. After the factory reset you may have to convert it back to a 8 button device before you do the restore. I corrected the above line - You'll need to covert it back to a 8 button device not a 6 button. Edited June 12, 2017 by Techman
oberkc Posted June 12, 2017 Posted June 12, 2017 If you are performing scene tests, be aware that programs that are triggered by the devices in the test can cause false results. Be sure to disable any such programs.
AZPhil Posted June 12, 2017 Author Posted June 12, 2017 The "D" button on your keypad failed to respond. Try doing a scene test that involves one of the other KPL buttons to see if it succeeds. You can try doing a factory reset on the KPL then a restore device. It's possible that when it was converted from a 6 to 8 button the conversion got corrupted. After the factory reset you may have to convert it back to a 6 button device before you do the restore. Fascinating. I would never have figured that out as the cause of the issue. I will mess with that tomorrow. Thanks a heap!
AZPhil Posted June 12, 2017 Author Posted June 12, 2017 The "D" button on your keypad failed to respond. Try doing a scene test that involves one of the other KPL buttons to see if it succeeds. You can try doing a factory reset on the KPL then a restore device. It's possible that when it was converted from a 6 to 8 button the conversion got corrupted. After the factory reset you may have to convert it back to a 8 button device before you do the restore. I corrected the above line - You'll need to covert it back to a 8 button device not a 6 button. Factory Reset + 6==>8 + Device Restore did the trick. The program now works! I first tried just performing the 6==>8 change procedure. Scene still failed the diagnostic test. Then I removed the button from the failing scene and added it back to the scene as a responder. The scene then passed the diagnostic test. However: Still no joy on turning off the button with the program. (Program ran, status True, LED still on.) So, failing the scene diagnostic really was not the issue. Then I bit the bullet: Factory reset; Perform the 6==>8 procedure; Restore the device. Voila! Program ran and turned off the LED. Problem solved! Seems like factory reset is the solution to most unexplainable issues. The program: MBR KPL D Button Off - [iD 0006][Parent 0001] If ( Status 'MBR Dresser Lamps' is Off And Status 'MBR Bed Lamps' is Off ) Or ( ( Status 'MBR Bed Lamps' is Off Or Status 'MBR Dresser Lamps' is Off ) And Status 'MBR Corner Lamp' is Off ) Then Set Scene 'Scenes / KPL MBR Scenes / MBR--Master Button' Off Else - No Actions - (To add one, press 'Action')
Techman Posted June 12, 2017 Posted June 12, 2017 Factory Reset + 6==>8 + Device Restore did the trick. The program now works! Glad to hear it got resolved. The KPL's links can sometimes get corrupted. An easy way to check is to run a diagnostic | compare link tables, on a device. If a link mismatch shows up then do a restore device, that will correct the mismatch. Additionally, a power line surge or power fail can sometimes mess up the link tables in some devices.
AZPhil Posted June 12, 2017 Author Posted June 12, 2017 Glad to hear it got resolved. The KPL's links can sometimes get corrupted. An easy way to check is to run a diagnostic | compare link tables, on a device. If a link mismatch shows up then do a restore device, that will correct the mismatch. Additionally, a power line surge or power fail can sometimes mess up the link tables in some devices. I compared the links table yesterday. Every entry was marked either "Identical" or "Identical/Ignore". There were 108 entries. I presume the "Ignore" entries were entries marked deleted that were previously used by the PLM connected to HL. I didn't consider that a problem except for clutter in the . Since the reset+restore, there are now only 62 entries, all of which are marked "identical" except the final, all zeroes entry. I think the error was not the links table, but was probably some internal thing related to my not doing the manual 6==>8 button-pressing procedure before loading up the links. Whatever. I noticed this morning something I hadn't noticed before. A few seconds after pressing any button on the KPL, the LED behind the set button would flash once in color red (very dim). Since the KPL was reset, the LED now always flashes green (fairly bright, much more noticeable than the red). Clearly the red LED was trying to tell me there was an issue. Wouldn't you think the brighter light should be the error light? Insteon engineers evidently do not agree. BTW: I added the complementary program that turns the master button ON when at least two of the lamp modules are ON. Duplicated the OFF program with "COPY", renamed, changed "is" to "is not" in the IF clause, OFF to ON in the THEN clause. This all "works a treat" now. I gave up trying in HL. The lack of an "OR" capability made things just way too complicated. Master MBR Button On - [ID 0009][Parent 0001] If ( Status 'MBR Dresser Lamps' is not Off And Status 'MBR Bed Lamps' is not Off ) Or ( ( Status 'MBR Bed Lamps' is not Off Or Status 'MBR Dresser Lamps' is not Off ) And Status 'MBR Corner Lamp' is not Off ) Then Set Scene 'Scenes / KPL MBR Scenes / MBR--Master Button' On Else - No Actions - (To add one, press 'Action')
Recommended Posts