Jump to content

skisteep

Members
  • Posts

    70
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

skisteep's Achievements

New

New (2/6)

2

Reputation

  1. Just ran into an upgrade issue with a replacement for my old EZFlora(died) with the new RainBee8, all went well until I tried to change the default zone timeout value from 30 minutes to 60 minutes(or another any other value). Using the ISY Options feature for RainBee8, it shows 30 minutes for all the zones, when I change it to say 60 minutes, the PEEK and POKE look good, but it doesn't save the new value, and also reverts to 1 minute. I've tried many things like move closer to PLM, etc, no change. Any ideas would be appreciated I'm currently using the ISY 994i with firmware version 4.8.0 Wayne PS. I reached out to Smartenit for help, but got no response, hopefully someone on the forum can help UPDATE: Was able to reach Smartenit support, they determined that the firmware needed to be upgraded to fix the Timeout change problem. They provided me with a prepaid shipping label and returned with re-flashed firmware in a week, all works now.
  2. Hi Jon, Thanks for the proof of concept, that helps a lot..I'll edit the starter posting to reference your posting. Wayne
  3. Jon, Thanks for the info, I've run your suggested test without much success, the Event Viewer doesn't seem to show much, I'm running our of energy on this one, I currently feel the WAIT feature might have a bug or is just not implemented correctly(unexplained re-evaluations). I've seen several post where others have encountered unexplained issues with WAIT and in the end had to find a workaround such as using a separate program and a clever use of DISABLE/ENABLE programs. I've currently removed all IN THEN 'WAITS', and replaced them with separate programs and all seems to working Again, thanks for your help Wayne
  4. Jon....The Lux variables are updated every 5 min from an external computer via REST commands, so not likely, it just hits the first WAIT 30 sec and exits Wayne
  5. Hi Jon, Your response tweaked my interest, at first I thought can't be, because I'm using a INTEGER Variable(non-triggering) as a semaphore to stop the IF logic from running. So I tried a few tests on my code to see, surprise, surprise, you were correct. The first WAIT in my program above, was causing the remainder of my program to be exited(SOMETIMES). My question is, why??? Shouldn't the semaphore construct work?? Maybe I should put the semaphore at the top of the IF logic, I don't like this approach because it is a workaround(haven't tried this yet) Wayne
  6. I would like to thank all these responders for their inputs, they all are some of the most experienced ISY users on this forum and I trust their input. I have written this brief synopsis of their remarks, please feel free to comment or edit, wording can sometimes be inaccurate when stating rules >>>>> RULES OF ENGAGEMENT - Long Running WAIT Commands(NON Interruptible) 1 - Use a separate Program that contains the WAIT Command 2 - Use an INTEGER Variable as a semaphore to stop the re-execution of the primary program's THEN (see my example in the starter posting) 3 - Or use a DISABLE command in the program containing the WAIT Command to DISABLE then ENABLE the primary program after the WAIT completes. (See larryllix posting) 4 - If you have logic in the WAIT program's IF section, then DISABLE this WAIT Program so that it is only executable via a 'RUN IF' from a primary program. 5 - If there is NO logic in the IF Section of the WAIT Program, then DISABLE'ing it is not necessary
  7. Thanks for all your input, I'll check my programs and retest to make sure I'm not missing something, just seem to not call a DISABLED program, but as stated above, since I'm using an INTEGER VARIABLE as semaphore and I have no IF statements, then I shouldn't need to set it to DISABLED Another questions, do WAIT Commands have there own threads, or do they share a thread, ie. if one WAIT is stopped/interpreted then only that one stops(own thread) or do they all stop(shared thread)?? Wayne
  8. HI Larry, thanks for you response, I like your approach, but a couple of issues I've had. First, If I DISABLE program 2, then I haven't been able to start it via RUN THEN, haven't tried RUN IF, does that make a difference?? Second, I'm using an integer variable to cause Program 1's IF to fail to ELSE, much like your DISABLE on program 1, does that sound like it should work?? Wayne
  9. Jon, thanks for the reply, I'm using an integer variable for '$ShadesMorningPaused' so that the IF statement isn't retrigger, so I think that part is ok. But the two state variables could also async'ly cause a retrigger, but since the '$ShadesMorningPaused' is now equal to '1', then the ELSE triggers, which does nothing. Wayne
  10. I've researched several threads on the how-to's of using the WAIT Command, but still can't find a definitive answer on the use of long running timers, ie. in the order to 10 to 60 plus minutes, where the probablity of a retrigger of the IF statement may occur prior to the WAIT command running its full time. I would like feedback on this approach so that a proper approach to Long WAIT commands can be used without unexpected results My apologizes if this already has been posted, I haven't been able to find it, and please do post me a link When Definitive Solution is agreed upon, then I'll publish the final version in this starter thread Here is the code I think might work. I'm trying to create a WAIT that works without being prematurely stopped, and callable from other programs. I would then create Wait 10, Wait 20, etc Wayne >>Edited to combine user input There are two techniques to use WAIT Commands Technique 1 - using Integer Variables as semaphores Program 1 -ENABLED If From Sunrise + 1 hour To 12:00:00PM (same day) And $sLuxCurrent_South >= 1500 And $sLuxAverage_South > 1000 And $sLuxAverage_South is not 0 And $ShadesMorningUpDown is 0 And $ShadesMorningPaused is not 1 Note: this and the first line on the THEN work to stop a rerun of the THEN, this is an Integer variable, thus doesn't trigger the IF Then $ShadesMorningPaused = 1 Resource 'Kitchen All Down' Resource 'Dining South Awning Open' Resource 'Dining West All Up' Resource 'Living Room All Up' Wait 30 seconds Note: DO NOT use WAIT commands in the primary program, always call/run a secondary program Resource 'Kitchen All Down' Resource 'Dining South Awning Open' Resource 'Dining West All Up' Resource 'Living Room All Up' Run Program 'Wait 30' (Then Path) Note: this runs the program below Else - No Actions - (To add one, press 'Action') ------------------------------------------------------------------------------------------------ Program (WAIT 30) -ENABLED - Note: Since this program has no IF Command then the THEN can't be rerun, except thru a RUN THEN command If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Wait 30 minutes $ShadesMorningUpDown = 1 $ShadesMidDayUpDown = 0 $ShadesMorningPaused = 0 Note: the IF statement in Program 1 above can now be trigger after 30 minutes, and the WAIT used again Else - No Actions - (To add one, press 'Action') Technique 2 - Using Program DISABLE/ENABLE to block re-evaluation of IF logic - Complements of Larryllix Use the "don't trigger me until I let you" approach. Program 1 [enabled] If whatever Then Run Program 2 (If) Else -- Program 2 [disabled] If non-triggerable conditions Then Disable program 1 Do something WAIT a long time, <---Program 1 can't touch us Do something else Enable Program 1 Else Do the negative conditions Conclusions: >>>>> RULES OF ENGAGEMENT - Long Running WAIT Commands(NON Interruptible) 1 - Use a separate Program that contains the WAIT Command, NEVER use WAIT Commands in the Primary Program, per Jerlands comments No matter how tempting it is, the WAIT command can be re-evaluated thus causing your program to exit prematurely. 2 - Use an INTEGER Variable as a semaphore to stop the re-execution of the primary program's THEN (see my example above) 3 - Or use a DISABLE command in the program containing the WAIT Command to DISABLE then ENABLE the primary program after the WAIT completes. (See larryllix posting) 4 - If you have logic in the WAIT program's IF section, then DISABLE this WAIT Program so that it is only executable via a 'RUN IF' from a primary program. 5 - If there is NO logic in the IF Section of the WAIT Program, then DISABLE'ing it is not necessary <<<<<<< Also see 'jerlands' posting in this thread on Feb 27, 2016 for a proof of concept with primary program embedded WAIT Commands, still best to use separate program for WAIT commands to eliminate all accidental re-evaluations
  11. Thanks for the explanation, got the Network Resource module, but ran into a dead-end on capturing the value I need from the Z-Wave MultiSensor. Below is the XML file when I do a REST get using http://MYISYIP/rest/nodes/ZW002_1/ The value I'm trying to capture is towards the end of the file, named "LUMIN", it has a value of 7100, any ideas on how to do this?? >>> My XML file -<nodeInfo> -<node flag="128"> <address>ZW002_1</address> <name>ZW 002 Multilevel Sensor</name> <family>4</family> <parent type="3">45379</parent> <type>4.33.1.0</type> <enabled>true</enabled> <deviceClass>0</deviceClass> <wattage>0</wattage> <dcPeriod>0</dcPeriod> <pnode>ZW002_1</pnode> <sgid>1</sgid> -<devtype> <gen>4.33.1</gen> <mfg>134.258.100</mfg> <cat>118</cat> </devtype> <ELK_ID>D05</ELK_ID> <property uom="51" formatted=" " value=" " id="ST"/> </node> -<properties> <property uom="51" formatted="100%" value="100" id="BATLVL"/> <property uom="22" formatted="21%" value="21" id="CLIHUM"/> <property uom="17" formatted="85.10° F" value="8510" id="CLITEMP" prec="2"/> <property uom="51" formatted=" " value=" " id="DOF"/> <property uom="51" formatted=" " value=" " id="DON"/> <property uom="36" formatted="71.00 lux" value="7100" id="LUMIN" prec="2"/> <property uom="51" formatted=" " value=" " id="ST"/> <property uom="71" formatted="0.00 UV Index" value="0" id="UV" prec="2"/> </properties> </nodeInfo> <
  12. Yes, I'm using Luminance to control my Hunter Douglas Powerview shades, so I need realtime, but also smoothing so that they aren't constantly going up and down, MWareman has an interesting suggestion so I might not need to use my server and Powershell Thanks, this looks interesting, would you expand on how-to do this, I can't find any threads or documentation. Note: I'm getting Luminance values from a MultiSensor Z-wave device, so not sure that I can even get to the Luminance values via EMail Variables Wayne
  13. Thanks Scott, I'm trying to create a moving average of the Luminance value from the MultiSensor 6(as you know from your Luminance values over time graph, it is very sensitive), so I need to either get the Luminance value into a ISY variable, or use an external program like PHP or Powershell to capture the current Luminance via REST, process it into a moving average, and then REST it back to the ISY. It's Looking like the later method is the only way to do this, until V5 Wayne
  14. Scott and others, Is there a way to get the luminance value into an ISY variable?? Wayne
  15. Scott Thanks for the great tip, the MultiSensor 6 works wonders, I had to buy the Z-Wave board for the ISY, but was planning to already. One question, the STATUS variable is a mystery, what does it represent??? Wayne
×
×
  • Create New...