bikerbobhain Posted October 17, 2017 Posted October 17, 2017 I'm new to ISY and am totally confused. I have searched the forum and the internet but nothing that turns up seems to be my situation. I have a device (true of X10 or Insteon) that I can turn on and off from the administrative console but I can not turn it on or off from within a program. I have tried the run-if, run-then and run-else but nothing seems to happen. A program that ran yesterday no longer works today. What has changed is that my cable modem died and was replaced. I really can't point to anything else that has changed. Any Ideas I wrote the test program (can't seem to save a text copy but will type)... If - No Conditions Then Set 'Couch Light' on Else Set 'Couch Light' off If I go to the device, I can turn on/off/dim the couch light but if I run-then or run-else nothing happens.
bikerbobhain Posted October 17, 2017 Author Posted October 17, 2017 More info... Couch Light appears in a scene that I can control from a mini keypad. That works fine.
oberkc Posted October 17, 2017 Posted October 17, 2017 First, "run if" will do nothing, since there are no conditions. Same with "run else" (no actions). "Run then" would be the only manual action you could perform that would cause any action. Is there a little green arrow near the bottom of your program listings next to "save changes" button?
bikerbobhain Posted October 17, 2017 Author Posted October 17, 2017 I had a program very similar to this, including "no conditions" in the "If". The main difference is that it had additional statements that sent commands to my legacy X10 devices. I did this because Echo has a limited vocabulary. If you run a program from Echo by saying "turn on spoken name" it will run the "Then" part of the program. "Turn off spoken name" runs the "Else" part. Also the manual indicates that "no conditions" equates to "true", which should cause the "Then" to execute. All that said the program I had was working. Including the "run-if/then/else" tests that I did above. After a couple of days the program stopped working. Running any of the if/then/else parts no longer worked. Echo, still, responds that it completes the action (it answers "OK") but, it no longer controls the devices. I did this as a test program in the most minimal form that I could, so that, I could test a new program and to eliminate any unintended results. It is true that this program has never run on my system, but that does not explain why my working program, of identical structure, stopped.
oberkc Posted October 17, 2017 Posted October 17, 2017 I remain curious if there is the little green arrow mentioned in my earlier post. I agree, this program should turn on the light. Running THEN should be same as controlling it via admin consloe directly.
bikerbobhain Posted October 17, 2017 Author Posted October 17, 2017 I'm not sure what little green arrow. Is it the one the shows up when you click update before saving changes? If so ... Yes More info... I have watched the program status on the summary tab and it does change from true to false depending on if you run true or else. I'm a noob here, but if I understand the variable concepts correctly this is another data point. I have added a variable RunTest. I set RunTest to 5 in the Then part and 10 in the Else part. The variable tab only shows the initial value. I don't seem to have a working system so I'm not sure if the variable is persistent after the program run but if it is this indicates that the program never executed even thought the summary tab indicates it did. I have to go now or others will "beat up the geek" :-0 Thanks for your help with this. I'll check back later today.
oberkc Posted October 17, 2017 Posted October 17, 2017 I'm not sure what little green arrow. Is it the one the shows up when you click update before saving changes? If so ... Yes If there is a little green arrow indicating a need to save your changes, go ahead and save them. Any changes you made to that program since last saving will not execute. If you command alexa to turn on (or off) the light, and you see an immediate response from the program summary list, then I would conclude that the program IS running, but that the command (then/else path) is not getting through for some reason. In that summary tab, you can also look at last run time to get an indicator if it is running when commanded by alexa. Yes, the variables are persistant. They should stay where last assigned, unless there is a power loss (at which point they would revert to "initial" value). Unfortunately, I don't use echo and ISY integration. I am wondering if something could be broken there, but don't know how to troubleshoot that possibility.
larryllix Posted October 17, 2017 Posted October 17, 2017 Just skimming the thread, everything not from the ISY works, and you can still access your ISY via Ethernet (running admin console) so.. Was your PLM unplugged from your ISY while the modem replacement process was going on? Is the serial port cable snapped into place properly on the ISY end and the PLM end? Have you tried to power cycle your PLM and ISY, powering your PLM first ,and then about 15 seconds later powering up your ISY (order is important)? Once these are done and if it still doesn't work you can check links between ISY and your devices.
bikerbobhain Posted October 18, 2017 Author Posted October 18, 2017 My new test program ... Integer variable Run_Test init 0 value 0 last changed Tue 2017/10/17 10:53:31 AM If $Run_Test < 5 Then $Run_Test = 5 Else $Run_Test = 10 The summary page shows... Name Enabled Run at Startup Activity Status Path Last Run Time Last Finish Time ..................... Test2 On - idle False Tue 2017/10/17 08:35:07 PM Tue 2017/10/17 08:35:07 PM This totally makes sense as I just ran the Else part. If I tell it to run the Then part the If or the Then part everything updates as expected. Status becomes True and run time make sense. This is the weird part. The variable seems to be untouched. Integer variable Run_Test init 0 value 0 last changed Tue 2017/10/17 10:53:31 AM Also, if I run the If part the result is True. If I set the variable to 1000 and run again the resulting status is still True. If I run the Else part manually the program status is False. It seems the conditional is not working. The variable never changes. The program will change status to False if I manually run the Else part. The conditional seems to not work as the program returns True if Run_Test = 0 or if Run_Test =1000 So programs can't control a device, set a variable or evaluate a conditional. Even though the summary tab update time is updated. As to the questions you asked above. Yes things were disconnected. I did the reboot procedure you describe (PLM first). The part I don't understand is "Once these are done and if it still doesn't work you can check links between ISY and your devices." How do I do this? thanks again
oberkc Posted October 18, 2017 Posted October 18, 2017 How do I do this? from the device list, rightclick>>>diagnostics>>>show device links. Once complete, "compare" to ISY. also make sure software versions (firmware and UI) match. I doubt that this is an issue, but does not hurt to check.
larryllix Posted October 18, 2017 Posted October 18, 2017 My new test program ... Integer variable Run_Test init 0 value 0 last changed Tue 2017/10/17 10:53:31 AM If $Run_Test < 5 Then $Run_Test = 5 Else $Run_Test = 10 The summary page shows... Name Enabled Run at Startup Activity Status Path Last Run Time Last Finish Time ..................... Test2 On - idle False Tue 2017/10/17 08:35:07 PM Tue 2017/10/17 08:35:07 PM This totally makes sense as I just ran the Else part. If I tell it to run the Then part the If or the Then part everything updates as expected. Status becomes True and run time make sense. This is the weird part. The variable seems to be untouched. Integer variable Run_Test init 0 value 0 last changed Tue 2017/10/17 10:53:31 AM Also, if I run the If part the result is True. If I set the variable to 1000 and run again the resulting status is still True. If I run the Else part manually the program status is False. It seems the conditional is not working. The variable never changes. The program will change status to False if I manually run the Else part. The conditional seems to not work as the program returns True if Run_Test = 0 or if Run_Test =1000 So programs can't control a device, set a variable or evaluate a conditional. Even though the summary tab update time is updated. As to the questions you asked above. Yes things were disconnected. I did the reboot procedure you describe (PLM first). The part I don't understand is "Once these are done and if it still doesn't work you can check links between ISY and your devices." How do I do this? thanks again This would only work if you use STATE variables. Follow oberkc's suggestions and stop changing the subject for now, sidetracking his troubleshooting.
bikerbobhain Posted October 18, 2017 Author Posted October 18, 2017 I didn't mean to be changing the subject. I am grateful for all your help. As I stated, I am a noob in ISY land. Thanks for pointing out my misunderstanding. I was trying to be helpful. OK the link test that was suggested shows "identical" and the last line "identical/ignore" The Firmware is 4.6.2 The UI is 4.5.4 So it looks like they do not match, unless the major version number is enough.
bikerbobhain Posted October 18, 2017 Author Posted October 18, 2017 I cleared the Java cache and reloaded the administrative console and they now match Firmware 4.6.2 UI 4.6.2 Programs still don't work. I will reboot now that things match.
bikerbobhain Posted October 18, 2017 Author Posted October 18, 2017 I have rebooted. Firmware=UI=4.6.2 The links match as was suggested. But, the programs still don't work. Also, (Please, no disrespect intended and I'm not trying to change the subject.) I rewrote the Test program to use a state variable but the results are the same. It has the initial value after running the program and it has not been updated.
larryllix Posted October 18, 2017 Posted October 18, 2017 I have rebooted. Firmware=UI=4.6.2 The links match as was suggested. But, the programs still don't work. Also, (Please, no disrespect intended and I'm not trying to change the subject.) I rewrote the Test program to use a state variable but the results are the same. It has the initial value after running the program and it has not been updated. Sorry if I sounded a little rough there. You seem to be jumping ahead. People here are typically factual and blunt but not rude. Don't worry about it. Been there, done that. It's a new world for you right now. If your devices aren't linked to ISY properly, programs to control them won't work either. So one basic at a time. oberkc was attempting to get your basics going first. You will get there. We all want to see that. See post 10. Sent from my SGH-I257M using Tapatalk
bikerbobhain Posted October 18, 2017 Author Posted October 18, 2017 Wow ... my bad, I thought I did answer that. Looking back, I kinda did, but not clearly. A better description ... I ran the link test as was requested in post #10. After the compare button was selected "[identical]" was inserted for all but the last entry which had "[identical/Ignore]" inserted. I tested several Insteon devices with the same result. I think its OK that there are no links for X10.
oberkc Posted October 19, 2017 Posted October 19, 2017 So, to restate. 1. You can manually control couch light from admin panel. Yes? This suggests to me that links are acceptable. Your link comparison confirms this, in my mind. 2. When you “run then” nothing happens? Very strange. If still true, I would start there and not worry yet about echo control at this point. The only thing that I can think of, given the understanding above, is to delete the first program, then recreate it. I really dont know why one could manually control a device, but a program cannot, unless there is some transient communication problem that occurs simultaneously with program execution. Seems unlikely to me, but not impossible I suppose.
bikerbobhain Posted October 19, 2017 Author Posted October 19, 2017 I'm perplexed at this point. 1) Yes I can manually control ANY of my modules (Insteon dimmers or bulbs, or X10 modules) from the administrative console. 2) I think (but surely don't know) we have something more fundamental here. My second test program doesn't even address a module. I agree, as I outlined in my observations, that the administrative console believes the program ran. It updates the last ran time and it updates the status according to if I ran the Then part or the Else part. What makes me question what is going on is the variable never changes. If I set the value of the variable to 1000 and run the program, the condition test should execute the Else part resulting Status = false. But that the Status is still set to true (actually it remains whatever is was before execution). Again, Status does get updated by run-then or run-else but not by program execution. The programming language is limited here but I see no evidence that the program actually runs. It doesn't, update a variable or interpret the conditional. And my original program that used to work (for a couple of days) quite controlling modules. (For reference the program is outlined in post #9. I have tried it with the integer variable replaced with a state variable with the same result.) Question... The programming language is limited here but I see no evidence that the program actually runs. There is no print statement that I can put in that would tell me if some part is being executed. 1) Is there any to actually know if the program runs? 2) What error logs do I have that might shed some light on this?
Jimbo.Automates Posted October 19, 2017 Posted October 19, 2017 For your program that just sets a variable, are you sure you are setting the correct one, and you don't have an Integer and a State variable with the same name? Try renaming the variable, hit save, the go back to the program and make sure the variable name changed in the program. Sent from my Pixel XL using Tapatalk
bikerbobhain Posted October 19, 2017 Author Posted October 19, 2017 My integer variable was called Run_Test. My state variable is the default name of State_1. As an additional note my integer variable has been deleted from the system. The only variable I have defined at this time is the state variable (State_1). These are simply tests to see if a program actually runs. I toss them out to keep things clean. Again, programs that were working just stopped. I have no idea how to see if a program really runs. The only program outputs that I'm aware of are variables and device controls. My simple (as simple as I can make them) test programs do neither. I have not written in this language before, so I'm not sure how variables work but, in the variable cases (my second and third programs), I was trying to write a program that I could have evidence of having run without the need for communications with anything (nothing to do with echo or devices). At this point I'm not convinced that programs actually run. I think the summary tab reports what you ask it to do and not what it did. The summary tab is the only thing I have seen that suggest a program ran. There is no other evidence that I am aware of. Is there anyway, maybe, a test program or something that can determine that a program actually ran?
oberkc Posted October 19, 2017 Posted October 19, 2017 The only thing that I am aware to see if a program ran is to look at the program listing and see last run time. I suppose one could watch the event viewer for some evidence as it happens, (or the event log after the fact), but this can sometimes be a little cryptic. I have no explanation why a program would not run.
bikerbobhain Posted October 19, 2017 Author Posted October 19, 2017 As there has been much concern about what my programs actually look like, I have attached two screen shots. If this is a valid program, I should see a change in the value of the variable. I don't. I did look at the logs but I'm not sure what I should be looking for and felt that I might not be able to interpret them correctly. Please keep in mind I'm a noob with the ISY.
oberkc Posted October 19, 2017 Posted October 19, 2017 I have never experienced a program that would not execute. Have I experienced device changes that were not recognized by the ISY? Yes. Has a program executed but failed to communicate with devices? Yes. Since variables are all internal to ISY, I have no explanation short of device failure that would explain such a case. So, you "run then" on this "test2" program and see no response to the variables? Whether the program is valid depends on what you are trying to accomplish. Regardless, manually choosing "run then" should cause variable State_1 to go to value 5 (unless, of course, you have unsaved changes in the program, as indicated by a little green arrow.)
bikerbobhain Posted October 19, 2017 Author Posted October 19, 2017 Validity was meant to be in term of syntax not accomplishment, although, I did expect the variable to change The save changes came up before. I know that one. I believe I should see what you suggest, State_1 = 5, after a run-if or a run-then. This is what I have observed. There are three choices. No Change in this case means State_1 = 0 Variable Status run-if No Change True or False (whatever it was before running) run-then No Change True run -else No Change False Clearly the ISY thinks something happens but still no program output (change of variable value) That program has been run several time to test the matrix shown above but it still says it has not changed since I manually changed it a day ago. I have not had experience with an ISY and I may misunderstand concept or not make connections but I've had a lot of experience with programable devices and this is a mystery to me. I have little understanding of how it operates inside; it's just a black box.
bikerbobhain Posted October 19, 2017 Author Posted October 19, 2017 SOLVED! Michel Kohanim from tech support had the answer. Thank you Robert. As I suspected, your My Program folder has a condition that makes everything else false. i.e. NOTHING under My Programs will work. Please remove the condition on My Programs folder. I don't know how that happened but its easy to make a error on a new system. The solution is always easy once you know what it is I thank all of you for your time and effort. bob
Recommended Posts
Archived
This topic is now archived and is closed to further replies.