Jump to content

apostolakisl

Members
  • Posts

    6869
  • Joined

  • Last visited

Everything posted by apostolakisl

  1. So far this all seems very simple and self explanatory. You guys included a ton of stuff, even individual keystrokes on the keypads. The main question I have at this point is what things will act as triggers. So far, everything I have tested behaves as a trigger.
  2. Installed 3.1.12. It needed a power cycle after the install as it locked up. After the power cycle all seems to be fine. Installed Elk module. No problems there. So far so good on playing with the Elk zones/outputs/status'/etc. Just doing some stupid stuff right now. ISY makes the security system say "seven" when I open the back door. Good news is, that is what I programed it to do!
  3. Your program is written properly. I have multiple programs with an identical if section that work. There is something else wrong.
  4. I have several programs like that using icon dimmers, so it isn't the icon dimmer. Just to be sure, check that the program is saved and is enabled. The ISY might not be getting good com with the switch so it may think the light status is not "off" when you are hitting the "off" side of the switch. Check the status of the light on the ISY console before hitting the "off" button. Then check to be sure the program ran by looking at the "last run time" in the program summary page and make sure the program ran.
  5. Please copy and paste the actual program from ISY. In the program details screen, right click on the program in the three on the left and hit "copy to clipboard". Then paste it to the forum. The program should be true any time it is triggered between those time slots by turning on either of those two lights. The other possibility is that you are not turning those things "on" but rather have them at some percentage of on. You could try changing the language to "not off" instead of "on". If From Sunset + 1 hour and 20 minutes To Sunset + 2 hours and 22 minutes (same day) And ( Status 'Kitchen Ceiling Keypad - A' is not off Or Status 'Fam Rm Table' is not off )
  6. Yes, for all intents and purposes, unlimited. It recovers just fine from power outages with accurate time and date. It also will checks an NTP server per your instruction. It also gives you options on how to handle recovering from a power outage regarding execution of programs that may have been missed. In addition, it only draws a few watts (7 seems to ring a bell) so you can put it on a UPS and it could run for days without killing the battery.
  7. You may be having some conflicts. Your program 1 and program 2 share many of the same triggers and could be in conflict with one another. As an experiment, try disabling program 1 at some point during that time period after sunset and then turn on that keypad or lamp listed in the program. I suspect the program will work (must have those parenthesis properly placed). Assuming it does, this points to program 1 as being in conflict.
  8. I don't fully understand what it is you want. But one error I see for sure is that program 2 needs a set of parenthesis. If From Sunset + 1 hour and 20 minutes To Sunset + 2 hours and 22 minutes (same day) And ( Status 'Kitchen Ceiling Keypad - A' is On Or Status 'Fam Rm Table' is On )
  9. If you push and hold the slave switch, that will ramp the master switch up the rest of the way in unison with the slave (and vice-versa). But as Lee said, as far as Insteon commands go, when you click "on", it sends an "on" signal over the power line. And "on" means 50% per your scene definition. Scenes don't know the difference between "on" clicked when light is already at 50% and "on" clicked when light is off. So whichever button you click "on" it will cause the other switch to go to 50%.
  10. There is no way to do what you ask directly. Indirectly you could use variables. io_guy has written programs that set ISY variables from outside sources. Namely, cai webcontrol board and a dsc alarm. The applications run in the background on a pc. So, you could have some other device set a variable in ISY and the variable change would trigger the action. In your example, it would be something like this In your example, the if would say something like if variable x is 1, then turn on light. A second program could be used to turn it off. If variable x is 0, then turn light off. You would use state variables for this so the programs would trigger with the change in the variable. You would need two things here. Another network enabled device that has some way of knowing what to do, and an io_guy style application to serve as the intermediary between your other network enabled device and your ISY.
  11. If you changed your state variables to integer variables, you could turn it into one program. Or just leave well enough alone
  12. Lee, So, again not owning one of these devices, when it sends an "on" statement, is it equivalent to pushing an "on" on a switchlinc? In other words, would simply replacing "status on" to "control switched on" be recognized? This would avoid needing two programs and would keep resetting the 45 sec timer every time it picks up movement and then finish the 45 sec's once 45 seconds with no motion detected passes. Plus the "state variables" need to be changed to integer or else that will mess things up on one of those random days where the variable happens to change state within 45 seconds of motion detection.
  13. Excuse my ignorance here, not owning an insteon motion sensor. But how does it only trigger on "on". Do you mean that it only sends out an "on" PLC command and never anything else? In ISY, a program with an if clause containing "status", will only trigger when the status changes. So, if the sensor only sends "on" commands, it would never trigger the program since it only receives repeat "on" messages. For the program to trigger, you would need it to be a control statement ("if switched on"). But again, I don't know how ISY motion sensors do their com. Your variables being state variables will also trigger the program if they change while the program is running. I don't know what could change them or when, but that is a possibility. Integer variables would not have that problem. I still would bet your motion sensor is changing state during the 45 seconds and causing the program to terminate prematurely. EDIT: OK, I just saw that you included what sets your two variables. I would suggest that you change those to integer variables since I don't see that you ever want them to be triggers.
  14. First, not to state the obvious, but your program doesn't have any commands after the "wait". Perhaps this is a cut/paste oversight. Generally, the reason "wait" commands don't work is becuase something in the "if" section got triggered. You have 3 "status" items in the "if" section. I assume the variables are state variable judging by the "s" you used in naming. If the status of any of those 3 things changes, your program will terminate and the "if" clause will re-eval. If it evaluates to "false" then your "else" clause will run. For example, you trip your motion detector. The state turns turns to "on". The motion detector has a built in time-out function I assume. After so many seconds it reverts to "off". If the "wait" wasn't done, then the stuff after the wait will never happen. The program would have terminated (cancelling the wait) when the motion detector reverted to "off" and the else would run (which is blank). The command to turn off the scene never is sent becuase the program terminated prior to the 45 sec wait period. The best way to fix this is with two programs. If Status 'Motion Sensors / Closet / Closet Motion Sensor-Sensor' is On And $s_Is.SleepTime is 0 And $s_ClosetOveride is 0 Then Run 'program 2' then Else - No Actions - (To add one, press 'Action') Program 2 If - - (leave it blank) Then Set Scene 'Scenes / Closet Motion' On Wait 45 seconds Set Scene 'Scenes / Closet Motion' Off Else - No Actions - (To add one, press 'Action') With this setup, the timer will get reset in the event that the first program triggers to true before the 45 seconds is up, but if it turns false, the second program will still finish the timer. I also should note, that you could use "control" instead of status to avoid this problem. I do not own any insteon motion detectors, so I don't know if "control" is allowable. Control is only a trigger when it actually happens. Like "control on" only terminates a program for re-eval if the thing is actually turned on. All other actions are ignored. (Also, you don't need those parenthesis)
  15. Haaa, great stuff, so many programs you can't even remember what you did. I have this problem with my Elk programs since it has no folder architecture to organize nor can you even give the programs names. I might suggest you try creating a folder architecture in ISY to help you keep things a little more memorable.
  16. I don't really want to change the time settings on my ISY to find out, but did you try just closing your Java admin console and reopening it to see if that fixed the time. I do believe that the Java window loads the time from the ISY when you log in and then keeps time itself after that on the local computer. I believe that to be true becuase the time on the Java admin panel slowly gets out of sync with the ISY. Like a second every few hours.
  17. What Lee said. The program as you wrote it will never be true. You are asking for it to be two different times at the same time. The "before" and "after" sunrise/sunset are to define a point in time before or after sunrise, not all times before/after. For example "sunrise - 15 minutes" means that if sunrise is 7:15 that day, the program will trigger at 7:00 You can also use a variable. If From Sunrise To Sunset (same day) Then $iSunshine = 1 Else $iSunshine = 0 Then in programs, use "if $iSunshine = 1" for something you want to happen while the sun is up. There is a subtle but important difference here. If you use an integer variable (not state), then the program will not trigger at sunrise and sunset, it will only trigger when some other "if" clause triggers it. This makes it possible to use the "else" clause in a program and not have that else clause potentially happen at sunrise and sunset. For example If $iSunshine is 0 And Status 'Overhead L' is On Then Set 'Closet L' On Else Set 'Closet L' Off The above program will only run the when someone changes the status of 'Overhead L'. If From Sunrise To Sunset (same day) And Status 'Overhead L' is On Then Set 'Closet L' On Else Set 'Closet L' Off The above program will not only run when someone changes the status of 'Overhead L' but also at sunrise and sunset, running the "then" or "else" clause at that time, even though no one did anything to 'Overhead L' switch.
  18. As LeeG says, you probably have antivirus issues blocking the Java console from freely communicating. If you can shut your antivirus software off then I would do so, at least as a test. You should find that most of your problems go away. Personally, I just use microsofts antivirus software and it hasn't caused any troubles, plus it is free. I do occasionally get a warning that it thinks something is fishy, but I just click "allow" and all is fine.
  19. OK, I am glad that we violently agree. Not sure which we the OP actually wanted it, he says that "advanced's" program does what he wants, but that is both of us. I guess I can see having it so that if you turn all the floor lights off in a room, that the overhead comes on, but it wouldn't be my choice. I could see the other way around perhaps. The overheads are typically for the "full blast" lighting of a room and the other lights are for background "don't trip" lights.
  20. I also don't believe the simple condition: time is sunset + 15 minutes, will accomplish the goal. This condition will be true only for an infintessimal time (at sunset +15) and false the rest of the 24 hours. I believe it to be necessary to make this true over a measurable period of time, whether that be from sunset to 10:21, sunset to sunrise, or some other period of time. The two programs have this in common: At Sunset plus 15, if the other two devices are off, the ceiling light will turn on. Difference: In your program, between Sunset +15 and 10:21, changing the status of either the table lamp or keypad to "off", provided the other is already "off", will cause the ceiling light to turn "on". Personally, it seems like an odd thing to turn a light off and have another turn on, but maybe that is what he wants. The fact that my program is only true at sunset plus 15 for an "infentessimal" period of time is of no consequence. ISY will trigger the program at that moment in time and either go to "true" if the other 2 conditions are met and run the "then" or false if the other two conditions aren't met, and run "else". A trigger statement , which is what a time statement like this is, need not have a range to cause the program to run true. It is only if you want other statements in that program to run a "then" statement that you need a range (like manually turning the table lamp off)
  21. I don't own one of these, so i am only speculating here, but I am pretty sure it will work. http://www.smarthome.com/2450/IOLinc-IN ... ut-/p.aspx It has a dry contact sensor on it. Power a relay off of your generator (such that it only gets power from the generator). Connect the NO contacts of the relay to the dry contacts on the insteon device. The insteon device would be plugged in where it gets power all the time. I can only assume then that there is a node in ISY for that dry contact that will show up as "on" when the contacts are closed, letting you know the generator is powered up.
  22. oberck, Why Time is from sunset + 15 minutes to 10:21pm Instead of Time is sunset + 15 minutes Doing the time interval will make the program true any time someone tries to shut off all the lights during that time and cause it to flip back on again. I would assume you only want the light to automatically come on at sunset plus 15, not block you from shutting it off between the two time slots.
  23. I assume what you want here is for at sunset plus 15, you want the status of the lights checked and the scene turned on. You can not use a folder like you have done. At sunset plus 15 the folder condition triggers and the folder evaluates to true. The folder stays true, as there is no other trigger to make the folder evaluate to false. So all of the programs in your folder will be active all the time. You could manually make the folder false, but the next day at 15 minutes past sunset it will become true again and stay that way. Your programs themselves are thus active all the time. You have three lines in the first program all of which evaluates the status of those three lights. When the status of any of those lights changes, the program triggers. I will assume the "family room key - ceiling" is part of your family room ceiling scene. Here is the scenario. Assume 1) "kitchen ceiling keypad - a" and "family room table" are both off. 2) "fam rm key - ceiling" is on You push to turn "fam rm key - ceiling" off, either by directly hitting its button or by a scene. The status of the light changes to off The program triggers becuase "status" is a program trigger wheneve the status changes The program sees that all three lights are "off" The program runs the then and turns the ceiling scene "on" In short what you want is this instead. (without the folder conditions) If Time is sunset + 15 minutes And Status 'Fam Rm Key - Ceiling' is Off And Status 'Kitchen Ceiling Keypad - A' is Off And Status 'Fam Rm Table' is Off Then Set Scene 'Fam Rm Ceiling' On This program is only true at sunset +15 mintes when the status of the other three lights is off. The program will also trigger at sunset +15 minutes because a time statment is a trigger at the specified time. It will also trigger every time the status of one of those lights changes, but that will have no affect since the time is wrong (making it false) and thus the "else" will run (which is empty). What you used to have is a folder that is always true, so the folder was useless. Every time someone changed the status of one of those lights, the program ran. So if the other two lights were off, and you shut off the over head light, it would turn right back on.
  24. That is what the "init" value for the variables does. Whatever program sets your variables in the first place just needs to simultaneously init the value. No need to run a program at reboot, the variable will automatically go to the init value. The program below is an example. The program sets the variable and then it immediately changes the init value so it will persist through a power failure. You should do this with all variables you want to persist through a power failure. The only time you shouldn't do it is if you want a power failure to cause the variable to be different. Then right a program that runs only at startup. If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then $iOdd.Even.Day = $iDay.of.Month $iOdd.Even.Day %= 2 $iOdd.Even.Day Init To $iOdd.Even.Day Else - No Actions - (To add one, press 'Action')
  25. I have that problem as well after an xep reboot. The ISY doesn't lock up entirely, programs still run, but the java console stops communicating and Elk/ISY communications stop. Rebooting the ISY fixed it. Rebooting the xep is a very rare event for me, but it just so happens that I recently had all kinds of issues with the email function on it.
×
×
  • Create New...