Active TopicsActive Topics  Display List of Forum MembersMemberlist  Search The ForumSearch  HelpHelp
  RegisterRegister  LoginLogin
PowerHome Bug Reports
 PowerHome Messageboard : PowerHome Bug Reports
Subject Topic: ph_macro does not execute immediately Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
GadgetGuy
Super User
Super User
Avatar

Joined: June 01 2008
Location: United States
Online Status: Offline
Posts: 942
Posted: December 05 2011 at 17:16 | IP Logged Quote GadgetGuy

Pete -

Just thinking (I know. That's dangerous at my age, but
what the heck).

The issue with direct switch linking is that when I tap Off
on the switch, I want all the room lights to go out, but
when I tap On I don't want any such actions.

Off hand, I can't think of a way to ONLY have the switch's
OFF tap trigger an action, while the On tap does nothing


__________________
Ken B - Live every day like it's your last. Eventually, you'll get it right!
Back to Top View GadgetGuy's Profile Search for other posts by GadgetGuy
 
BeachBum
Super User
Super User
Avatar

Joined: April 11 2007
Location: United States
Online Status: Offline
Posts: 1880
Posted: December 05 2011 at 17:32 | IP Logged Quote BeachBum

I would think PH trigger would be sufficient for off since that is not usually a time related problem. In my option, I would think that the ON was more time related then OFF. In fact when I trigger OFFs usually I delay the action so people have a way to get out before it gets dark….

__________________
Pete - X10 Oldie
Back to Top View BeachBum's Profile Search for other posts by BeachBum
 
GadgetGuy
Super User
Super User
Avatar

Joined: June 01 2008
Location: United States
Online Status: Offline
Posts: 942
Posted: December 05 2011 at 17:34 | IP Logged Quote GadgetGuy

Dave -

In testing further on this "slowness" issue, I just captured the following scenario that demonstrates what I have been experiencing.

At 16:32:45 I selected "PLAY" for the "DR OFF" macro, but it never fired. Even after 5 minutes of waiting it never kicked off.

Looking at the Event Log (snapshot taken at ~16:34.10), my Play "DR Off" never even showed up. A log refresh several minutes later still showed no DR OFF execution.


The Execution Que kind of tells the story. It appears that my Garage Door state sensing macro was running, and running, and running. In fact after 5 minutes, it still was stuck in the queue until I executed a Clear Exec Que command.


Here is a listing of the Garage Door Sense macro . . .


Does this reveal anything to you?   

__________________
Ken B - Live every day like it's your last. Eventually, you'll get it right!
Back to Top View GadgetGuy's Profile Search for other posts by GadgetGuy
 
BeachBum
Super User
Super User
Avatar

Joined: April 11 2007
Location: United States
Online Status: Offline
Posts: 1880
Posted: December 05 2011 at 21:52 | IP Logged Quote BeachBum

You could be hung waiting for insteonwithret if it is encountering errors. But it should eventually clear. For those type of back to back commands I stick a short a wait in case someone wants to jump to the front.

__________________
Pete - X10 Oldie
Back to Top View BeachBum's Profile Search for other posts by BeachBum
 
dhoward
Admin Group
Admin Group
Avatar

Joined: June 29 2001
Location: United States
Online Status: Offline
Posts: 4447
Posted: December 05 2011 at 22:58 | IP Logged Quote dhoward

Pete's most likely right. I would think the ph_insteonwithret functions as the most likely suspect.

I'll trace the oode tomorrow to determine what happens if there are COMM problems while calling this function.

Dave.
Back to Top View dhoward's Profile Search for other posts by dhoward Visit dhoward's Homepage
 
GadgetGuy
Super User
Super User
Avatar

Joined: June 01 2008
Location: United States
Online Status: Offline
Posts: 942
Posted: December 06 2011 at 08:12 | IP Logged Quote GadgetGuy

dhoward wrote:
Pete's most likely right. I would think the ph_insteonwithret functions as the most likely suspect.

I think y'all have hit the nail on the head. Thinking back on my experiences, it seems like I have always noted that when PH performance seems very slow, I have seen that the Overhead door check macro was in the execution queue. Since it checks three doors every time it runs, there is a lot of potential for delays if the ph_insteonwithret function encounters issues.

I have noticed over the years that the EZIOxxx modules do not seem to have as good Insteon comm reliability as SmartHome units. Virtually all of my 70+ SmartHome Insteon devices have a COMM reliabily of 98-99% but my EZIO units seem to typically be in the 89% range (despite the fact that I have 2443 Access Point boosters within 10 feet of all my EZIO devices, otherwise there were almost unusable!) . . .


Per Pete's suggestion I put in 0.5 second Waits between the EZIO Read attempts, while that will help open the queue up to others during my back to back read attempts, I'm assuming that it won't really help if a particular read attempts gets hung up. The Wait doesn't get executed until after the ph_insteonwithret excution goes to completion, does it?

Dave does it make any sense to add a "timeout" parameter to the ph_insteonwithret function, so the read attempt aborts if unsuccessful for too long?

__________________
Ken B - Live every day like it's your last. Eventually, you'll get it right!
Back to Top View GadgetGuy's Profile Search for other posts by GadgetGuy
 
BeachBum
Super User
Super User
Avatar

Joined: April 11 2007
Location: United States
Online Status: Offline
Posts: 1880
Posted: December 06 2011 at 08:23 | IP Logged Quote BeachBum

Here goes my 2 cents again. I think the way it is currently handled is sufficient without seeing the code. But I would have the (RET) return put into a wait queue instead of holding up other processes. If a timeout condition occurred or the return was satisfied it would then become active again. A similar problem occurs with the execution of X10 commands. I would like to see them put into a different queue while waiting to complete. But I may be in a minority on that one.

__________________
Pete - X10 Oldie
Back to Top View BeachBum's Profile Search for other posts by BeachBum
 
GadgetGuy
Super User
Super User
Avatar

Joined: June 01 2008
Location: United States
Online Status: Offline
Posts: 942
Posted: December 06 2011 at 08:45 | IP Logged Quote GadgetGuy

Pete -

Excellent thoughts. It reflects your good Main Frame experience where Task Management included multiple prioritized execution queues. Obviously worked pretty well as I recall our big IBM 360/67 (requiring a whole floor of equipment in a very large building) which served hundreds of simultaneous time sharing users, yet had less performance that an iPad2 does today!


It is still hard to imagine, looking back, how we ever pulled it off.

Dave - thinking of your "prioritized" insteon command approach, I'm not sure you need to come up with a new methodology. Allowing all commands to be executed from the Boolean field really seems quite adequate to do everything I have desired. Perhaps if you can just focus on getting that to work, it gives a badly needed capability without having to come up with a whole new approach.


__________________
Ken B - Live every day like it's your last. Eventually, you'll get it right!
Back to Top View GadgetGuy's Profile Search for other posts by GadgetGuy
 
GadgetGuy
Super User
Super User
Avatar

Joined: June 01 2008
Location: United States
Online Status: Offline
Posts: 942
Posted: December 06 2011 at 13:18 | IP Logged Quote GadgetGuy

Just wanted to post that I have been able to make a
SIGNIFICANT improvement in my overall performance this
morning.

I inserted 0.1 second Waits in every macro that polled
multiple devices or used a ph_insteonwithret function. I
had several macros that were quite long and ran often
(every ten minutes, for example) to poll device status,
or to update KPL button light states.

All of these now have WAITs interspersed.

I also enhanced (per BeachBums normal approach) my light
off macros (from a single switch tap) so that they do,
then test the results, and do again if needed. Using
judicious WAITs and limiting the tests to a max of 10.

The bottom line is things seem vastly improved. I still
vote for a "priorty" queue position function, however.   


__________________
Ken B - Live every day like it's your last. Eventually, you'll get it right!
Back to Top View GadgetGuy's Profile Search for other posts by GadgetGuy
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

<< Prev Page of 3
  Post ReplyPost New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum