What you could do, though visually it is not the most reliable, but functionally it should work is to have a button on your PPC that you setup to do multiple toggle states. A real good tutorial can be found here:
http://www.xlobby.com/forum/viewtopic.php?p=32891#32891That will set you button to either "Light On" or "Light Off".
In those events you would have the commands to tell Powerhome to turn lights on/off, and change the button text and image accordingly.
Then above the button in your PPC screen you could have a text field with plugin>XReceive>received, which will receive all the XSend commands from Powerhome. The only thing is that if you are sending multiple messages, the text field will only show the most recent. The thing you could do then is to send one big message with all the status reported. This is how I do the zone status report from my music server to my Mirage skin.
In my ZoneSkin4 I've created an event recently (not released yet) with a command to os:execute xsend. In my arguements I've added "%zone>1>status%" "%zone>2>status%"..."%zone>X>status%" "8000" "AAA.AAA.AAA.AAA". Where: X is the zone number, and AAA is the IP address of the resultant machine. I've set up an XEvent variable to trigger this event every minute.
So then in my Mirage skin I've added a text field plugin>XReceive>received and every minute it receives an update on all the zones (which for my use in ZoneSkin4, these are really winamp sources). Check out the my most recent Mirage post in the skins section. Oh and by the way, the Mirage machine is not even a client of the ZoneSkin4 music-server.
You could do something similar as this, only you could update every 10 seconds, or 5 seconds, then set your PPC refresh to 1000 (1 second intervals).
Or in the very least, use the text box idea, but don't use a toggle button, but two buttons, one "On" the other "Off" and tie powerhome events to them to turn lights on/off. Powerhome in return should send xsend commands which you should be able to pick up on.
Now in your case, I've experimented yesterday with the plugin>XReceived text box on the thin client, and though it works, it always seemed to be one command behind the current. In this case I was rotating the XMenu in the Mirage skin around and every rotation sends an XSend command to update a text field. In Mirage, this text field is in the upper left corner of the screen and updates the name to whatever the front most image is. So in this case for powerhome, you could set up something similar but since it always seems to be one command behind, for an "On" state, you would want to send a text field saying "Off" and when off, you'd want to send a text field to say "On".
Pretty confusing...you bet . Is it perfect...no even close, but in the very least it gets you going with something, though will be buggy, it will be functional. What we really need are for more of the French dudes to come back and whip up some nifty plugins that will take care of this
, or maybe P3rv with his P3rvTalk plugin...maybe he might have more of an idea/workaround.
What are the limitations of doing this:
1) As scott points out, toggling buttons on another client will not show up on the thin client (button wise). It should however update the plugin>XReceive textbox, so in the very least, you should be able to attain status of what a light is doing.
2) Toggling from the PPC will not be indicated on other clients...again unless you use something like the plugin>XReceive textbox.
3) Information displayed in the textbox on a thin client always seems to be one command behind the current. If only indicating two states, just xsend a text message to indicate the opposite state then the current.
4) The resultant text from the plugin>XReceive text field most times show the pure command sent. You would have to play around with it to get the message you want.
Sorry for the long and rambling post...I know it may not be exactly what you want to hear (or even if you understood anything that I have said). If I get a chance, I will do up some mock examples and and throw the images on here to help you out.