From: <misterhouseusers@li...>  20050521 20:46:14

We are currently away on holiday, until 16th June. I will respond with your email on my return. Thanks James Nunnerley 
From: Charles Sullivan <cwsulliv@tr...>  20050620 04:27:58

Brian, Did you ever get an answer to this? If so, please post. On Sat, 21 May 2005 20:32:51 0700 misterhouseusersrequest@... wrote: > Date: Sat, 21 May 2005 13:42:57 0700 > From: Brian Rudy <brudy@...> > Organization: Praecogito > To: misterhouseusers@... > Subject: [mh] W800RF32 running in W800 mode? > ReplyTo: misterhouseusers@... > > Hi Folks, > > I recently encountered a problem with my W800RF32 after upgrading my MH > box to Centos 4.0. After the upgrade I was getting a stream of errors > from X10_W800.pm that the data it was receiving from the W800RF32 was > invalid: > > > 05/20/2005 18:41:04 W800: flushing incomplete data: 3231 > 05/20/2005 18:41:26 W800: flushing incomplete data: 3231 > 05/20/2005 18:41:54 W800: flushing incomplete data: 3231 > > After analyzing what the W800RF32 was returning with rf32.exe from WGL > and a terminal program on one of my Windows boxes it became apparent > that it was sending two bytes of data, instead of the usual 4 for > standard X10 commands. I ran across a specification for the older W800, > and the data my W800RF32 was returning matched this exactly. It would > appear that the W800RF32 had switched to an otherwise undocumented 'W800 > compatibility mode'. I haven't managed to find any information on others > discovering this feature, and it seems to be persistent across > powercycling. > > Has anyone with an W800RF32 on this list run across this issue before? > >  > Brian Rudy (brudyNO@...) > Mad Cow 
From: Brian Rudy <brudy@pr...>  20050730 18:54:46

Hi Charles, I never received a response from this list, but I did get a reply from email I sent directly to Warren Lohoff. He mentioned that the W800 and the W800RF32 shared the same firmware, but there was no way to change the operating mode in the field and requested that I send it back to him for an RMA. Due to other life responsibilities, I wasn't able to mail it to him until earlier this week. When I get an update, I will pass on the information to this list. Charles Sullivan wrote: >Brian, >Did you ever get an answer to this? If so, please post. > > >On Sat, 21 May 2005 20:32:51 0700 >misterhouseusersrequest@... wrote: > > > >>Date: Sat, 21 May 2005 13:42:57 0700 >>From: Brian Rudy <brudy@...> >>Organization: Praecogito >>To: misterhouseusers@... >>Subject: [mh] W800RF32 running in W800 mode? >>ReplyTo: misterhouseusers@... >> >>Hi Folks, >> >>I recently encountered a problem with my W800RF32 after upgrading my MH >>box to Centos 4.0. After the upgrade I was getting a stream of errors >>from X10_W800.pm that the data it was receiving from the W800RF32 was >>invalid: >> >> >>05/20/2005 18:41:04 W800: flushing incomplete data: 3231 >>05/20/2005 18:41:26 W800: flushing incomplete data: 3231 >>05/20/2005 18:41:54 W800: flushing incomplete data: 3231 >> >>After analyzing what the W800RF32 was returning with rf32.exe from WGL >>and a terminal program on one of my Windows boxes it became apparent >>that it was sending two bytes of data, instead of the usual 4 for >>standard X10 commands. I ran across a specification for the older W800, >>and the data my W800RF32 was returning matched this exactly. It would >>appear that the W800RF32 had switched to an otherwise undocumented 'W800 >>compatibility mode'. I haven't managed to find any information on others >>discovering this feature, and it seems to be persistent across >>powercycling. >> >>Has anyone with an W800RF32 on this list run across this issue before? >> >> >>Brian Rudy (brudyNO@...) >>Mad Cow >> >> > > > >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >________________________________________________________ >To unsubscribe from this list, go to: http://sourceforge.net/mail/?group_id=1365 > > >  Brian Rudy (brudy@...) Hibernating Bear Praecogito=>Thinking Ahead...  "Any sufficiently advanced technology is indistinguishable from magic." Arthur C. Clarke, "Technology and the Future" 
From: Brian Rudy <brudy@pr...>  20050803 04:30:09

Here is WGL's analysis: >There is a sequence of bytes that are used to switch firmware sets. Your >case is still the only documented case of this happening in the field out of >over a 1000 shipped so we are not too worried that this can happen again. >The external version antenna of this item has revised firmware but the >selfcontained antenna product is still using the original code. > >To avoid the remote chance that this could happen again, just be careful >about sending strings of data to the module. > >Warren > > > >Original Message >From: Brian Rudy [mailto:brudyNO@...] >Sent: Sunday, July 31, 2005 11:21 PM >To: wglNO@... >Subject: Re: W800RF32 running in W800 mode? > >Thanks Warren! > >Any idea on how this happened, or more specifically, how I might prevent >this from reoccurring? > > > >Warren Lohoff wrote: > > > >>Received your module and restored it to the 32bit config. You should not >>have any trouble now. >> >>Warren Lohoff >>WGL & Associates >>5418 Lancashire >>San Antonio, TX 78230 > Brian Rudy wrote: > Hi Charles, > > I never received a response from this list, but I did get a reply from > email I sent directly to Warren Lohoff. He mentioned that the W800 > and the W800RF32 shared the same firmware, but there was no way to > change the operating mode in the field and requested that I send it > back to him for an RMA. > > Due to other life responsibilities, I wasn't able to mail it to him > until earlier this week. When I get an update, I will pass on the > information to this list. > > > Charles Sullivan wrote: > >> Brian, >> Did you ever get an answer to this? If so, please post. >> >> >> On Sat, 21 May 2005 20:32:51 0700 >> misterhouseusersrequest@... wrote: >> >> >> >>> Date: Sat, 21 May 2005 13:42:57 0700 >>> From: Brian Rudy <brudy@...> >>> Organization: Praecogito >>> To: misterhouseusers@... >>> Subject: [mh] W800RF32 running in W800 mode? >>> ReplyTo: misterhouseusers@... >>> >>> Hi Folks, >>> >>> I recently encountered a problem with my W800RF32 after upgrading my >>> MH box to Centos 4.0. After the upgrade I was getting a stream of >>> errors from X10_W800.pm that the data it was receiving from the >>> W800RF32 was invalid: >>> >>> >>> 05/20/2005 18:41:04 W800: flushing incomplete data: 3231 >>> 05/20/2005 18:41:26 W800: flushing incomplete data: 3231 >>> 05/20/2005 18:41:54 W800: flushing incomplete data: 3231 >>> >>> After analyzing what the W800RF32 was returning with rf32.exe from >>> WGL and a terminal program on one of my Windows boxes it became >>> apparent that it was sending two bytes of data, instead of the usual >>> 4 for standard X10 commands. I ran across a specification for the >>> older W800, and the data my W800RF32 was returning matched this >>> exactly. It would appear that the W800RF32 had switched to an >>> otherwise undocumented 'W800 compatibility mode'. I haven't managed >>> to find any information on others discovering this feature, and it >>> seems to be persistent across powercycling. >>> >>> Has anyone with an W800RF32 on this list run across this issue before? >>> >>>  >>> Brian Rudy (brudyNO@...) >>> Mad Cow >>> >> >> >> >>  >> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >> from IBM. Find simple to follow Roadmaps, straightforward articles, >> informative Webcasts and more! Get everything you need to get up to >> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >> ________________________________________________________ >> To unsubscribe from this list, go to: >> http://sourceforge.net/mail/?group_id=1365 >> >> >> > >  Brian Rudy (brudy@...) Transient Soul Praecogito=>Thinking Ahead...  "Men have become the tools of their tools." Henry David Thoreau 
From: Kevin Long <kevin@lo...>  20050522 04:03:22

My mh install on FreeBSD was unusable, it would lock up or crash 35 times a day. So I installed it on a new W2K server instead, new activestate, new mh. It still suffers from a memory leak, though it's now easier to track on Windows. It says it's losing 112Mb/hr. This is during times when nothing is actually happening, except for some motion sensor action. So, assuming that's the cause (it ran for days before I installed my code), here's the code files. I have no clue what is wrong with them. Codefile1.pl $doors = new Serial_Item('XE1EJ', 'front_dooron'); $doors > add ('XE1EK', 'front_dooroff'); $doors > add ('XE2EJ', 'side_dooron'); $doors > add ('XE2EK', 'side_dooroff'); # E1 ON  FRONT DOOR MOTION if ($Dark and state_now $doors eq 'front_dooron') { set $entry_light ON; } set $entry_light OFF if state_now $doors eq 'front_dooroff'; # E2 ON  SIDE DOOR MOTION if ($Dark and state_now $doors eq 'side_dooron') { set $reading_light ON; } set $reading_light OFF if state_now $doors eq 'side_dooroff'; Codefile2.pl $office = new Serial_Item('XD5DJ', 'office_kevinon'); $office > add ('XD5DK', 'office_kevinoff'); # D5 ON  KEVIN DESK MOTION set $kevin_computer_light ON if state_now $office eq 'office_kevinon'; set $kevin_computer_light OFF if state_now $office eq 'office_kevinoff'; Codefile3.pl $garage = new Serial_Item('XG3GJ', 'garage_righton'); $garage > add ('XG3GK', 'garage_rightoff'); # G3 ON  GARAGE WORKBENCH MOTION set $garage_right_light ON if state_now $garage eq 'garage_righton'; set $garage_right_light OFF if state_now $garage eq 'garage_rightoff'; Any suggestions? Kevin Long. 
From: Gregg Liming <gregg@li...>  20050522 11:25:05

Kevin Long wrote: >My mh install on FreeBSD was unusable, it would lock up or crash 35 times a >day. So I installed it on a new W2K server instead, new activestate, new mh. >It still suffers from a memory leak, though it's now easier to track on >Windows. It says it's losing 112Mb/hr. This is during times when nothing is >actually happening, except for some motion sensor action. So, assuming >that's the cause (it ran for days before I installed my code), here's the >code files. I have no clue what is wrong with them. > >Codefile1.pl > $doors = new Serial_Item('XE1EJ', 'front_dooron'); > $doors > add ('XE1EK', 'front_dooroff'); > $doors > add ('XE2EJ', 'side_dooron'); > $doors > add ('XE2EK', 'side_dooroff'); > ># E1 ON  FRONT DOOR MOTION > if ($Dark and state_now $doors eq 'front_dooron') { > set $entry_light ON; > } >set $entry_light OFF if state_now $doors eq 'front_dooroff'; > ># E2 ON  SIDE DOOR MOTION > if ($Dark and state_now $doors eq 'side_dooron') { > set $reading_light ON; >} >set $reading_light OFF if state_now $doors eq 'side_dooroff'; > >Codefile2.pl > $office = new Serial_Item('XD5DJ', 'office_kevinon'); > $office > add ('XD5DK', 'office_kevinoff'); > ># D5 ON  KEVIN DESK MOTION > set $kevin_computer_light ON if state_now $office eq 'office_kevinon'; > set $kevin_computer_light OFF if state_now $office eq 'office_kevinoff'; > >Codefile3.pl > $garage = new Serial_Item('XG3GJ', 'garage_righton'); > $garage > add ('XG3GK', 'garage_rightoff'); > ># G3 ON  GARAGE WORKBENCH MOTION > set $garage_right_light ON if state_now $garage eq 'garage_righton'; > set $garage_right_light OFF if state_now $garage eq 'garage_rightoff'; > >Any suggestions? > > The following suggestion may not solve your problem, but will ensure that the add methods are executed only once (which is what you wantright?). Add #nolooop at the end of each of your "add" method invocations like this: $garage > add ('XG3GK', 'garage_rightoff'); # noloop 
From: Kevin Long <kevin@lo...>  20050522 13:18:58

> > > > > The following suggestion may not solve your problem, but will > ensure that the add methods are executed only once (which is > what you wantright?). Add #nolooop at the end of each of > your "add" method invocations like this: > > $garage > add ('XG3GK', 'garage_rightoff'); # noloop > > I had the motion sensor routines unloaded all night, and mh still ground to a halt by the morning. However, I've used the syntax on all my scripts, so I'll fix all of them and see if that helps. I'm now plodding through the normal troubleshooting method, and have 1 routine unloaded for a few hours, to see if I can find the specific culprit. If I find it, I'll post it here as an example of leaky code. Thanks. Kevin 
From: Bruce Winter <winter@ch...>  20050522 16:48:17

Kevin Long wrote: >>$garage > add ('XG3GK', 'garage_rightoff'); # noloop >> >> > > > I had the motion sensor routines unloaded all night, and mh still ground to > a halt by the morning. However, I've used the syntax on all my scripts, so > I'll fix all of them and see if that helps. I'm now plodding through the > normal troubleshooting method, and have 1 routine unloaded for a few hours, > to see if I can find the specific culprit. > > If I find it, I'll post it here as an example of leaky code. > > Thanks. > > Kevin In theory, the mh code should parse out the static 'new' and 'add' method calls unless they are nested in a conditional clause. So the noloop directive, while it doesn't hurt, probably will not help. You can verify if the code is in the loop or not by looking for it in the data_dir/mh_temp.user_code file, which is the code that perl evals. You can try the 'Start the memory leak checker' command in common/monitor_memory.pl, which automates what you are currently trying (disable a code file at a time). Sometimes a perl install can go bad, so running the compiled mhe.exe can rule that out. Bruce 
From: Kevin Long <kevin@lo...>  20050522 20:47:53

> > You can try the 'Start the memory leak checker' command in > common/monitor_memory.pl, which automates what you are > currently trying > (disable a code file at a time). Sometimes a perl install > can go bad, > so running the compiled mhe.exe can rule that out. > > Bruce Thanks for the reply. I am already running the mhe.exe file and the memory leak checker. Through a process of elimination (one script at a time) have found the code that causes memory to leak. It's for a palmpad remote control, intended for macros. Here's the code: # Lots of ways to do it. Here is one suggestion: $remote1 = new Serial_Item('XB8BJ', '8on'); $remote1 > add ('XB2BJ', '2on'); $remote1 > add ('XB3BJ', '3on'); $remote1 > add ('XB4BJ', '4on'); $remote1 > add ('XB6BK', '6off'); $remote1 > add ('XB7BK', '7off'); $remote1 > add ('XB8BK', '8off'); # B1 EATING # B2  CLEANING UP set $living_room_lights '100%' if state_now $remote1 eq '2on'; set $reading_light ON if state_now $remote1 eq '2on'; set $entry_light ON if state_now $remote1 eq '2on'; set $den_light '100%' if state_now $remote1 eq '2on'; set $hall_light '100%' if state_now $remote1 eq '2on'; set $little_kids_light '100%' if state_now $remote1 eq '2on'; set $big_kids_light '100%' if state_now $remote1 eq '2on'; set $master_light '100%' if state_now $remote1 eq '2on'; # B3  KIDS PLAYING set $living_room_lights '60%' if state_now $remote1 eq '3on'; set $reading_light ON if state_now $remote1 eq '3on'; set $entry_light ON if state_now $remote1 eq '3on'; set $den_light '60%' if state_now $remote1 eq '3on'; set $hall_light ON if state_now $remote1 eq '3on'; set $little_kids_light '60%' if state_now $remote1 eq '3on'; set $big_kids_light '60%' if state_now $remote1 eq '3on'; # B4 ON  WATCHING A MOVIE set $entry_light OFF if state_now $remote1 eq '4on'; set $reading_light OFF if state_now $remote1 eq '4on'; set $reading_light '40%' if state_now $remote1 eq '4on'; set $living_room_lights OFF if state_now $remote1 eq '4on'; set $den_light OFF if state_now $remote1 eq '4on'; set $hall_light OFF if state_now $remote1 eq '4on'; set $hall_light '60%' if state_now $remote1 eq '4on'; set $little_kids_light OFF if state_now $remote1 eq '4on'; set $big_kids_light OFF if state_now $remote1 eq '4on'; set $master_light OFF if state_now $remote1 eq '4on'; set $kevin_computer_light OFF if state_now $remote1 eq '4on'; set $christine_computer_light OFF if state_now $remote1 eq '4on'; set $living_room_lights OFF if state_now $remote1 eq '4on'; set $garage_right_light OFF if state_now $remote1 eq '4on'; # B6 OFF  LITTLE KIDS GONE TO BED set $little_kids_light OFF if state_now $remote1 eq '6off'; set $hall_light OFF if state_now $remote1 eq '6off'; set $hall_light '50%' if state_now $remote1 eq '6off'; set $kids_nightlights ON if state_now $remote1 eq '6off'; set $mode_sleeping 'kids'; set $mode_security 'armed'; # B7 OFF  BIG KIDS GONE TO BED set $big_kids_light OFF if state_now $remote1 eq '7off'; set $little_kids_light OFF if state_now $remote1 eq '7off'; set $hall_light OFF if state_now $remote1 eq '7off'; set $hall_light '50%' if state_now $remote1 eq '7off'; set $kids_nightlights ON if state_now $remote1 eq '7off'; set $mode_sleeping 'kids'; set $mode_security 'armed'; # B8 ON  KEVIN GETTING UP set $living_room_lights '50%' if state_now $remote1 eq '8on'; set $reading_light '50%' if state_now $remote1 eq '8on'; set $kevin_computer_light ON if state_now $remote1 eq '8on'; # set $hall_light '40%' if state_now $remote1 eq '8on'; set $garage_opener ON if state_now $remote1 eq '8on'; set $mode_sleeping 'nobody'; set $mode_security 'unarmed'; # B8 OFF  EVERYBODY GONE TO BED set $master_light OFF if state_now $remote1 eq '8off'; set $garage_opener OFF if state_now $remote1 eq '8off'; set $garage_right_light OFF if state_now $remote1 eq '8off'; set $entry_light OFF if state_now $remote1 eq '8off'; set $den_light OFF if state_now $remote1 eq '8off'; set $kevin_computer_light OFF if state_now $remote1 eq '8off'; set $christine_computer_light OFF if state_now $remote1 eq '8off'; set $living_room_lights OFF if state_now $remote1 eq '8off'; set $big_kids_light OFF if state_now $remote1 eq '8off'; set $little_kids_light OFF if state_now $remote1 eq '8off'; set $hall_light OFF if state_now $remote1 eq '8off'; set $christine_bedside OFF if state_now $remote1 eq '8off'; set $kevin_bedside OFF if state_now $remote1 eq '8off'; set $kids_nightlights ON if state_now $remote1 eq '8off'; set $reading_light OFF if state_now $remote1 eq '8off'; set $mode_sleeping 'all'; set $mode_security 'armed'; The code is based on one of the keychain remote sample files. It eats around 1Mb/minute. Can you point me to a sample file of the "right" way to code this remote? Kevin. 
From: Bruce Winter <winter@ch...>  20050522 21:05:37

Kevin Long wrote: > Thanks for the reply. I am already running the mhe.exe file and the memory > leak checker. Through a process of elimination (one script at a time) have > found the code that causes memory to leak. It's for a palmpad remote > control, intended for macros. Here's the code: > > # Lots of ways to do it. Here is one suggestion: > > $remote1 = new Serial_Item('XB8BJ', '8on'); > $remote1 > add ('XB2BJ', '2on'); > $remote1 > add ('XB3BJ', '3on'); > >.... > > set $hall_light '50%' if state_now $remote1 eq '7off'; > set $kids_nightlights ON if state_now $remote1 eq '7off'; > set $mode_sleeping 'kids'; > set $mode_security 'armed'; The above all looks ok except for the last 2 lines. Those $mode objects are being set on every pass. There shouldn't be a leak in that set method, but if there were a small one, it could add up. Did you intend to have those set conditionally? Bruce 
From: Kevin Long <kevin@lo...>  20050522 22:54:52

> > > > set $hall_light '50%' if state_now $remote1 eq '7off'; > > set $kids_nightlights ON if state_now $remote1 eq '7off'; > > set $mode_sleeping 'kids'; > > set $mode_security 'armed'; > > > The above all looks ok except for the last 2 lines. Those $mode > objects are being set on every pass. There shouldn't be a > leak in that > set method, but if there were a small one, it could add up. > > Did you intend to have those set conditionally? > > Bruce > Thank you, yes I did want it set conditionally, and I see the if statement that Matthew Williams posted is a better way to do it. I believe I now understand how it polls the code, so I'll make the changes. Regards, Kevin Long. 
From: Kevin Long <kevin@lo...>  20050523 12:18:00

> > set $mode_sleeping 'kids'; > > set $mode_security 'armed'; > > > The above all looks ok except for the last 2 lines. Those $mode > objects are being set on every pass. There shouldn't be a > leak in that > set method, but if there were a small one, it could add up. > > Did you intend to have those set conditionally? > > Bruce It looks like there was a significant leak for those lines  making everything nested in an if has resulted in memory usage staying steady, for hours. I now have a stable install, thank you! Kevin. 
From: Matthew Williams <mattrwilliams@us...>  20050522 21:08:50

There seems to be a couple of issues with the code as written. If you ignore the lines with if clauses, you have a series of set $mode_sleeping lines that will run during every pass. This is likely the source of the leak. Also, you have a series of lines with the same if clauses in a row. Although functionally equivalent, I personally prefer the following for easier readability: if (state_now $remote1 eq '2ON') { set $living_room_lights '100%'; set $reading_light ON; set $entry_light ON; set $den_light '100%'; set $hall_light '100%'; set $little_kids_light '100%'; set $big_kids_light '100%'; set $master_light '100%'; } You can then easily include the set $mode_sleeping lines within the correct state_now blocks. Kevin Long wrote: > > >>You can try the 'Start the memory leak checker' command in >>common/monitor_memory.pl, which automates what you are >>currently trying >>(disable a code file at a time). Sometimes a perl install >>can go bad, >>so running the compiled mhe.exe can rule that out. >> >>Bruce > > > Thanks for the reply. I am already running the mhe.exe file and the memory > leak checker. Through a process of elimination (one script at a time) have > found the code that causes memory to leak. It's for a palmpad remote > control, intended for macros. Here's the code: > > # Lots of ways to do it. Here is one suggestion: > > $remote1 = new Serial_Item('XB8BJ', '8on'); > $remote1 > add ('XB2BJ', '2on'); > $remote1 > add ('XB3BJ', '3on'); > $remote1 > add ('XB4BJ', '4on'); > $remote1 > add ('XB6BK', '6off'); > $remote1 > add ('XB7BK', '7off'); > $remote1 > add ('XB8BK', '8off'); > > # B1 EATING > > > # B2  CLEANING UP > set $living_room_lights '100%' if state_now $remote1 eq '2on'; > set $reading_light ON if state_now $remote1 eq '2on'; > set $entry_light ON if state_now $remote1 eq '2on'; > set $den_light '100%' if state_now $remote1 eq '2on'; > set $hall_light '100%' if state_now $remote1 eq '2on'; > set $little_kids_light '100%' if state_now $remote1 eq '2on'; > set $big_kids_light '100%' if state_now $remote1 eq '2on'; > set $master_light '100%' if state_now $remote1 eq '2on'; > > # B3  KIDS PLAYING > set $living_room_lights '60%' if state_now $remote1 eq '3on'; > set $reading_light ON if state_now $remote1 eq '3on'; > set $entry_light ON if state_now $remote1 eq '3on'; > set $den_light '60%' if state_now $remote1 eq '3on'; > set $hall_light ON if state_now $remote1 eq '3on'; > set $little_kids_light '60%' if state_now $remote1 eq '3on'; > set $big_kids_light '60%' if state_now $remote1 eq '3on'; > > # B4 ON  WATCHING A MOVIE > set $entry_light OFF if state_now $remote1 eq '4on'; > set $reading_light OFF if state_now $remote1 eq '4on'; > set $reading_light '40%' if state_now $remote1 eq '4on'; > set $living_room_lights OFF if state_now $remote1 eq '4on'; > set $den_light OFF if state_now $remote1 eq '4on'; > set $hall_light OFF if state_now $remote1 eq '4on'; > set $hall_light '60%' if state_now $remote1 eq '4on'; > set $little_kids_light OFF if state_now $remote1 eq '4on'; > set $big_kids_light OFF if state_now $remote1 eq '4on'; > set $master_light OFF if state_now $remote1 eq '4on'; > set $kevin_computer_light OFF if state_now $remote1 eq '4on'; > set $christine_computer_light OFF if state_now $remote1 eq '4on'; > set $living_room_lights OFF if state_now $remote1 eq '4on'; > set $garage_right_light OFF if state_now $remote1 eq '4on'; > > # B6 OFF  LITTLE KIDS GONE TO BED > set $little_kids_light OFF if state_now $remote1 eq '6off'; > set $hall_light OFF if state_now $remote1 eq '6off'; > set $hall_light '50%' if state_now $remote1 eq '6off'; > set $kids_nightlights ON if state_now $remote1 eq '6off'; > set $mode_sleeping 'kids'; > set $mode_security 'armed'; > > # B7 OFF  BIG KIDS GONE TO BED > set $big_kids_light OFF if state_now $remote1 eq '7off'; > set $little_kids_light OFF if state_now $remote1 eq '7off'; > set $hall_light OFF if state_now $remote1 eq '7off'; > set $hall_light '50%' if state_now $remote1 eq '7off'; > set $kids_nightlights ON if state_now $remote1 eq '7off'; > set $mode_sleeping 'kids'; > set $mode_security 'armed'; > > # B8 ON  KEVIN GETTING UP > set $living_room_lights '50%' if state_now $remote1 eq '8on'; > set $reading_light '50%' if state_now $remote1 eq '8on'; > set $kevin_computer_light ON if state_now $remote1 eq '8on'; > # set $hall_light '40%' if state_now $remote1 eq '8on'; > set $garage_opener ON if state_now $remote1 eq '8on'; > set $mode_sleeping 'nobody'; > set $mode_security 'unarmed'; > > # B8 OFF  EVERYBODY GONE TO BED > set $master_light OFF if state_now $remote1 eq '8off'; > set $garage_opener OFF if state_now $remote1 eq '8off'; > set $garage_right_light OFF if state_now $remote1 eq '8off'; > set $entry_light OFF if state_now $remote1 eq '8off'; > set $den_light OFF if state_now $remote1 eq '8off'; > set $kevin_computer_light OFF if state_now $remote1 eq '8off'; > set $christine_computer_light OFF if state_now $remote1 eq '8off'; > set $living_room_lights OFF if state_now $remote1 eq '8off'; > set $big_kids_light OFF if state_now $remote1 eq '8off'; > set $little_kids_light OFF if state_now $remote1 eq '8off'; > set $hall_light OFF if state_now $remote1 eq '8off'; > set $christine_bedside OFF if state_now $remote1 eq '8off'; > set $kevin_bedside OFF if state_now $remote1 eq '8off'; > set $kids_nightlights ON if state_now $remote1 eq '8off'; > set $reading_light OFF if state_now $remote1 eq '8off'; > set $mode_sleeping 'all'; > set $mode_security 'armed'; > > The code is based on one of the keychain remote sample files. It eats around > 1Mb/minute. Can you point me to a sample file of the "right" way to code > this remote? > > Kevin. > > > >  > This SF.Net email is sponsored by Oracle Space Sweepstakes > Want to be the first software developer in space? > Enter now for the Oracle Space Sweepstakes! > http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click > ________________________________________________________ > To unsubscribe from this list, go to: http://sourceforge.net/mail/?group_id=1365 > > 
From: Gregg Liming <gregg@li...>  20050523 02:52:24

Bruce Winter wrote: > In theory, the mh code should parse out the static 'new' and 'add' > method calls unless they are nested in a conditional clause. That's good to know (clearly, I didn't). Are there additional method names that can be assumed to be scanned/parsed and treated in like manner? Is the parsing performed by specifically looking for a match against some set of predetermined method names (e.g., "add") or does some "flag" exist that can tell the parser to treat the method as "single pass"? If the latter, does a coding convention exist to make these methods inherently "safe" against recurring loop calls? Gregg 