
f11
Members-
Posts
141 -
Joined
-
Last visited
Everything posted by f11
-
Other issues aside, it sounds like there shouldn't normally be any reason to submit QueryAll actions more often than the 3AM default program. It also sounds like if I decide to run them during the more active part of the day, I may impact the response times of other actions programs are controlling. At the same time, if I do run QueryAll frequently, it doesn't cause other problems except possibly the traffic congestion, or in worst case if a comm does fail, several devices will be in an unknown state. That's what I was curious about. I understand what you guys are discussing, and I can see both perspectives, but since I don't have any comm issues (that I'm aware of) that I'm trying to manage by multiple QueryAll actions, it isn't relevant to my concerns. Thanks for the debate (seriously, I learned a lot from both of you), but let there be peace for now. Thanks!! Rod
-
How many times can we flash new programming into the ISY-99i/IR before we start approaching the limit? It just occurred to me as I merrily made a change, saved it, made a change, saved it, ad nauseum... IIRC, all flashable devices have some upper limit as to how many times you can update the flash memory before that memory starts getting flakey. Seems to me I often read 100,000 cycles as typical (so you could perform 100 re-flashes each day for about 2.7 years, or more likely 10 flashes per day on average for 27 years ). Mind you, perhaps current technology flash memory has better recovery after many cycles?? Rod
-
If you need a beta tester with different toys, keep me in mind.
-
The default QueryAll program is set to run at 3AM, which I assume was chosen because its unlikely that any other program will be interfered with at that time of night, and because it guarantees that the end device status' are checked at least once a day during a period where its unlikely the user is manually changing their states. Can that program be changed to re-run the query at 8AM and 6PM as follows: Program Name: QueryAll If Time is 3:00:00AM Or Time is 8:00:00AM Or Time is 6:00:00PM Then Set Scene 'My Lighting' Query Else - No Actions - (To add one, press 'Action') I'm thinking this is a way reading all device's current status more often in case things get out of sync. Or is this even necessary? I chose the times I did because they tend to be after the morning and evening program runs. Rod
-
What?! I'll be able to run UD on my Samsung A920 EVDO RevA browser, or my Dell X30 PocketPC, or even (drool!!) my iPod Touch Safari browser? [ I know, I know - I have WAY too many toys on my desk!! ] Man, this would all be GREAT!! Rod
-
After that writeup, I think you'll have to change your handle to "Not Just Another Joe" . Brilliant implementation, and exactly what I had in mind when I submitted the original post for this thread... except I'm trying to avoid using X10 products and was thinking of the 6-button RemLinc. On the other hand, I have a LOT of old PalmPads around, and they were easily the most reliable part of my old X10 system, so maybe I better reconsider - besides, the PalmPad is more "hand friendly" than the RemLinc, and considerably cheaper! Rod
-
Someone else here was discussing their use of "flags" to initiate actions. I realized that the ContLinc and RemLinc buttons could be used without linking them to anything but just using programmatic control. It further occurred to me that if you can program ISY to watch for multiple button pushes (say CL-1-ON followed by CL-2-OFF and CL-3-ON, or 101 "binary"), you could control a lot more than five end devices. Not that you'd want to take this to the nth degree, since it gets hard to remember many more than a handful of codes per controller, but you could sub-divide the ContLink into a 5 bit "encoder" for up to 31 tasks by toggling the five buttons, or 3-bit and 2-bit encoders for up to 12 tasks. I haven't tried to program a "decoder" for such an approach, so I don't know if the ISY syntax will allow it. Has anyone tried this? Rod
-
Is there any way to assess which of several optional ways of programming a solution (folders, programs, flags or links, scenes, wait, repeat, etc) is the most efficient from a particular perspective: least used memory; or fastest execution; or least CPU loading; and so on? I find myself trying to weigh the advantages of several ways to do a particular task, but then wondering how I can do it most efficiently. Also, is there a memory model of the ISY-99i that can be shared, to give us some idea of what's available for programming and what's available for data? I realize I have no tools to adjust these boundaries, but knowing where they are (and being able to determine what resources are still available) might help those tackling large systems approach the task more methodically. Perhaps this is a waste of effort with a "black box" like the ISY, but the question has been nagging at me, so I thought I may as well ask. Rod
-
Well, when I see WHILE, I think "there is an element of time involved here". So I assume that the conditional is constantly being re-evaluated and that the subsequent action is tied to its being TRUE or FALSE, as in: iVar=1 While (iVar) Do [TRUE action Some other actions iVar=0] Else [FALSE action] Wend WHILE constructs always reminded me of checking the gas gauge in the car - you keep checking and as long as the gauge shows fuel, you keep driving the car. If it shows empty, then you have to stop driving and pick up fuel. IF-THEN-ELSE always seemed more like a fork in the road I'm driving on, a decision taken just once and then you go on your way. Anyway, I get your message - IF-THEN-ELSE aren't used the same as I recall from other environments. Thanks! Rod
-
AH!! I see... So to summarize what I think I understand: - the Schedule evaluates to TRUE when the FROM conditional is TRUE and the TO conditional evaluates as later than the FROM conditional, and therefore initiates the THEN action - the Schedule stays TRUE until the TO conditional evaluates as TRUE and later than the FROM conditional, at which time the Schedule goes FALSE, and therefor initiates the ELSE action - whenever the TO time conditional evaluates as earlier than the FROM time conditional, even if the FROM conditional evaluates as TRUE, then the Schedule does not toggle its logical state (is this right?) Thanks! Rod
-
Michel, pls don't misunderstand - I know this product is evolving and things are still being done for it... and I really like it!! But a product that is essentially a programmable controller with a non-standard programming syntax needs good docs to be useful. At least the essential components of the syntax HAVE to be spelled out properly and illustrated with non-trivial examples. And I shouldn't have to go looking to find them. I'd expect on or two "2-Lamp Configuration Examples" somewhere in the docs for a new user, where you show a complete working configuration for two lamplinc'd lights, one using just programs, and another showing how a folder might be useful. The official doc'n should either contain that complete configuration, or point new users to the "wiki" location where it can be viewed and printed off without effort. At least that's my expectation in regard to programmable equipment doc's. Anyway, I'll review the "wiki" site and see what I can learn there. I still don't understand why or when I'd use a Program vs a Folder or vice versa. BTW, the IF-THEN-ELSE construct is more like WHILE-ELSE-WEND I've seen in other environments... at least the WHILE gives a better idea how that segment works vs IF. Rod
-
In regard to the TO sunrise conditional "sunrise - 20", if the time this evaluates to is earlier than the FROM conditional fixed time, does the whole IF section evaluate to FALSE, which then runs the ELSE option[/b]?
-
Sorry, that "6:50AM" sequence is burned into my brain from another problem - that segment was to turn the lights ON in the morning... a similar set of programs is supposed to turn them off at night starting 11:45PM (on weekdays). We can probably kill this thread - it looks like I saved over the configuration file that gave me the weird 14 minute delay, and I can't remember the whole sequence. Since it didn't work that well anyway, I guess there's no point in continuing this discussion. I've since rewritten all the lights programs using a suggestion made elsewhere in this forum, and it all works as it should. Thanks for trying to help me out yardman and JAJ, and my apologies for such sloppy file maintenance - I now save each set of changes to a new *.zip file with an embedded timestamp in the filename, so I can recall it later if necessary. Rod
-
Ah! That thread on programming you pointed me to is something I should have read before I started coding... it does explain what I had to find out the hard way regarding the If-Then-Else construct execution. As impressed as I already am with the diminutive ISY pkg (I also come from a long history of X10 use, starting with a VIC-20 running a BASIC program controlling an expansion card to manage my house lights in the mid-80s, then that was replaced with a CP290 controller, and later the flakey X10 programmable wall modules and their frustrating software), the User Guide sure could use better sections on the command structure, including non-trivial examples. Also, there is virtually no discussion on the purpose of Folders vs Programs, or examples where one would be used instead of the other. And I may have missed it in the UG, but I don't remember reading that I have to "Save" my programs to the ISY after creation or changes, something I figured out for myself. Rod
-
I'm not on the PC connected to my ISY, but I believe the code looked like this: [Folder] If On Mon, Tue, Wed, Thu Time is 6:50:00AM And Status 'MBRM - 00.65.BE.1' is Off Then [ Run programs in Folder ] [Program A] If [nothing] Then Set 'MBRM - 00.65.BE.1' On Else - No Actions - (To add one, press 'Action') [Program B] If [nothing] Then Wait 5 minutes Set 'Fireplace - 00.47.B5.1' On Else - No Actions - (To add one, press 'Action') [Program C] If [nothing] Then Wait 10 minutes Set 'Stairs - 00.65.8F.1' On Else - No Actions - (To add one, press 'Action') Basically, a Folder contains a time and a status conditional, and 3 Programs in the Folder set the state of a light after a variable WAIT period. Is there anything in this approach that would add a signficant time delay? Rod
-
I want to turn a light on: - if today is M,T,W,T AND - if the time is 6:50AM AND - if sunrise today isn't earlier than 7:10AM Maybe I just need more (or probably less) coffee, but I just can't seem to wrap my head around how the 3rd condition could be written within the available ISY syntax. Basically, I don't want to turn on the light if sunrise is just 20 minutes away from the fixed time. Can anyone offer a suggestion? Its probably a case of not yet fully grasping the many ways ISY programming can be done. Thanks for your patience and help! Rod
-
I set up some simple code to turn a light off at 11:45PM last night, but according to the ISY log, the code didn't execute until 11:59PM and change. The light did indeed stay on until 11:59PM when it went off. I checked that the ISY was sync'd up with my PC time/date (it was) and that my location was correct (it was). Any idea why execution was delayed? Rod
-
So the IF conditional expression is evaluated, the THEN segment is initiated, but the WAIT does not cause the execution to idle in the THEN segment - instead the IF segment is continually being evaluated and when it goes false, the THEN segment is halted regardless of the WAIT command. I think of WAIT in the context of a multi-threaded multi-tasking OS like QNX when I coded in C (showing my age) - I can't recall what the actual command was, but you could block/idle a thread waiting for some condition to go true or a timer to expire before continuing in that segment. But as you say, the relationship between the IF and the THEN/ELSE isn't sequential, its parallel - the IF is always being evaluated, so a WAIT command in the THEN segment of a program with a quickly changing conditional in the IF segment may never get a chance to execute. So I have to dissociate my IF from my THEN statements to avoid that situation, or as you say, break the program into two pieces as you show. Thanks!!! My "f11" handle (or my alternate, "feleven") is all over the internet, in most of the forums I've joined since about 1999. It short, easy to spell, and was originally related to my fascination with the F111-F fighter jet. Rod
-
My apologies if this has been discussed already... I did a Search and didn't come up with quite enough detail. I'm a new ISY99i user trying to get my first programs running. I have sufficient programming experience in my past to get me over the beginner stuff, but the details of ISY-specific programming were a little "thin" in the User Guide. Anyway, I wrote what I thought was a basic program: If On Mon, Tue, Wed, Thu Time is 6:50:00AM And ( Status 'MBRM - 00.65.BE.1' is Off ) Then Set 'MBRM - 00.65.BE.1' On Wait 5 minutes Set 'Fireplace - 00.47.B5.1' On Wait 5 minutes Set 'Stairs - 00.65.8F.1' On Else - No Actions - (To add one, press 'Action') I assumed the WAIT command would cause the THEN section to continue executing until the timers ran out (10 minutes later). But it doesn't. The program runs at 6:50AM, turns on the MBRM light and thats it. What is the rule with the WAIT command? Am I using it incorrectly, or had I misinterpreted what its supposed to do? THanks for the help! Rod