Your Universal Remote Control Center
RemoteCentral.com
Philips Pronto Professional Forum - View Post
Previous section Next section Up level
Up level
The following page was printed from RemoteCentral.com:

Login:
Pass:
 
 

Topic:
Something I've been tinkering with... Controlling your Pronto via your Mobile.
This thread has 7 replies. Displaying all posts.
Post 1 made on Tuesday June 9, 2015 at 03:34
tenchi
Long Time Member
Joined:
Posts:
January 2006
156
Hi guys,

Well it's been a VERY VERY VERY long time since I've posted to the forum and I hope your all well, big hello to long term members like Barry and Lyndel.

I started this project 5 years ago and with 2 babies and running a business time hasn't particularly been on my side.

Oh so what is the project. Well essentially it turns your Pronto into a webserver which you can then interact with. Philips gave me some initial code in the dying days but it was relatively limited. Last year we had a renovation done and we moved in to the inlaws. This gave me a bit of spare time to revisit the code and go from basic one page of macros where I last left it to the ability to layout multiple custom pages for your mobile device. As part of the reno I knew I was going to have a TSW9500 (I can still get my hands on new ones if anyone is interested) in the kitchen which I thought hmm that could make for a handy server! I mainly wanted it for when I'm outside and wanting to use the external zones where I'm not likely to be carrying a Pronto. However I like to challenge myself so I ended up converting my whole Pronto including some basic controls for AppleTV(FireCore) and Squeezebox. Now I find myself for the past 2 months not even looking for a Pronto as the phone is in my pocket!

You can take a peak here:
[Link: prontoprojects.com]

Think of it as a TSU9300, as if you have loads of ProntoScript that's not going to work. But if your using IR & RS232 then it's a great solution. I have setup some JSON variables you can define on the button labels which extends the functionality like the ability to send a socket/http requests. Also a great solution if your Pronto has died but you still have your extenders or you just find you want another remote... Just run the simulator and your good to go!

Can I use my existing layouts?
Er no. I could list a few but the main reason is there is no way to actually read in prontoscript what is on any given page.. In html you could query the DOM and loop... That feature never made it, it was planned in the next release :(
So unfortunately you have to number your buttons 1-50 and you can have panels 1-20 (I think).
BUT you can simply copy and paste your existing macros *hurrah* :)

It works on iPhone what about Android..
It will work on that too but I don't think you have the ability for "full screen app option" as long as your on a Webkit Browser you should be good!

What about different Screen Sizes
You can adjust the width of the box if you have a large screen/phablet the buttons live in and that will adjust your canvas. Width is all managed in % and all objects are absolutely positioned *coughs which is not the best for responsive* how ever does give you the best WYSIWYG. As everything is in % buttons just get wider on wider screens.

Images
Er No. Just no real "easy" way of getting them out of the Pronto that didn't require a heck of a lot of work for the user. Yes I do it for the icon but would you really want to base64 every image? Didn't think so.. There is also an issue with how much data the Pronto can output (8k) which was one of my first MASSIVE hurdles.

Price?
Well good question! I'd like feedback on that one!

Cheers

Last edited by tenchi on June 9, 2015 04:13.
Post 2 made on Tuesday June 9, 2015 at 05:31
gopronto
Senior Member
Joined:
Posts:
April 2008
1,453
I see your back on RC.. good to see you on line again :)

hope your sleep patterns have returned to normal..
Pronto still one of the best Wi-Fi Remotes,
www.ikonavs.co.nz and [Link: axiumcontrol.com] Axium Control
OP | Post 3 made on Tuesday June 9, 2015 at 05:39
tenchi
Long Time Member
Joined:
Posts:
January 2006
156
Oh I wish that was true gopronto!
Post 4 made on Tuesday June 9, 2015 at 05:44
gopronto
Senior Member
Joined:
Posts:
April 2008
1,453
if you had time you could get pronto to communicate with the Axium processor :)


here is the ccode for the server

The example demonstrates the following:
1. How to set up a TCP server.
2. What happens when a client opens and closes a connection.
3. How to keep client connections open and how to close them.
4. Sending data to the client.
5. Using a postamble for separating commands and replies.
6. Receiving data from the client.
7. Closing a single socket
8. Closing the server (along with all connected sockets).
9. Randomly picking a greeting from a list of possibilities.

The script is started by the Startup macro and then keeps itself running by
returning a non-zero number when run() is called. If the server is shutdown
then the script returns 0 and subsequently terminates.
*/

// The port number that the server allows clients to connect to.
const the_port = 1234

// Allow the server to support up to 10 simultaneous sockets
const max_sockets = 10

static Server:server
static Socket:sockets[max_sockets]

public init (parameter)
{
// Create the server and add a postamble
server = create_ethernet_server (the_port, "", "\r\n",
add_postamble | remove_postamble)
}

static add_socket (Socket:socket)
{
// Add socket to a spare position in sockets
for (new n = 0; n < max_sockets; n++) {
if (sockets[n] == no_socket) {
sockets[n] = socket
break
}
}
}

static remove_socket (Socket:socket)
{
// Clear the entry from sockets
for (new n = 0; n < max_sockets; n++) {
if (sockets[n] == socket) {
sockets[n] = no_socket
break
}
}
}

public data_received_str (Socket:socket, String:str_data)
{
logf("received '%s'\n", str_data)
if (str_data == asString("CLOSE")) {
// Remove the socket that receives the CLOSE command from the sockets
// array so it will be garbage collected. Also send a goodbye message.
send_data_str (socket, asString("Bye!"))
remove_socket (socket)
}
else if (str_data == asString("SHUTDOWN")) {
// Clear the server variable so the server and all its sockets will be
// cleaned up by the garbage collector. Also send a goodbye message for
// everyone back to the socket that sent the SHUTDOWN command.
send_data_str (socket, asString("Bye y'all!"))
server = no_server
}
else {
// Try to convert str_data to a number and then execute the corresponding
// command from the objects table.
new n = strval (str_data)
if (n > 0) {
if (execute_object (StoredObjectIndex:n))
send_data_str (socket, asString("OK"))
}
}
}

public socket_event (Socket:socket, t_socket_event:event)
{
if (event == socket_event_open) {
log("Socket opened\n")
// Store the socket otherwise it will be automatically closed by the
// garbage collector.
add_socket (socket)
// Send a welcome message
send_data_str (socket, strextract(
asString("Hello\tNi hao\tMoin moin!\tCiao"), get_random(3), '\t'))
}
else {
log("Socket closed\n")
remove_socket (socket)
}
}

// run() has to return a non-zero number to keep the script alive
public run()
{
if (server)
return 2000
return 0 // end the script if the server is shutdown
}

Last edited by gopronto on June 9, 2015 06:05.
Pronto still one of the best Wi-Fi Remotes,
www.ikonavs.co.nz and [Link: axiumcontrol.com] Axium Control
Post 5 made on Thursday June 11, 2015 at 21:15
Lyndel McGee
RC Moderator
Joined:
Posts:
August 2001
12,992
Welcome Back!!!!
Lyndel McGee
Philips Pronto Addict/Beta Tester
OP | Post 6 made on Friday June 12, 2015 at 00:09
tenchi
Long Time Member
Joined:
Posts:
January 2006
156
Thanks Lyndel!

Bit surprised at lack of response but i guess the user base is substantially smaller than it once was! Leaves me wondering should i bother finishing it (well actually more the issue of documenting how to use it!)
Post 7 made on Friday June 12, 2015 at 11:09
Lyndel McGee
RC Moderator
Joined:
Posts:
August 2001
12,992
We are in the same boat. I am working on a Squeeze module at the moment for the Pronto. I control my 74K+ track library of hi-res music through Squeeze Server (LMS) via iPad. Volume control of receiver on the Pronto. I recently pulled together a JSON based module to monitor what's playing and have been toying with adding JSON-based Guide Pages so that I can load music from the Pronto as well.

This is for my own use only and I have no intentions of competing with the existing Squeeze Modules. However, I have considered uploading what I call SqueezeLite (Single Player monitoring with No Artwork) here in case others might want similar functionality.
Lyndel McGee
Philips Pronto Addict/Beta Tester
OP | Post 8 made on Saturday June 13, 2015 at 01:31
tenchi
Long Time Member
Joined:
Posts:
January 2006
156
Yeah my project is a bit the same, and might follow the same idea of a lite offering which will be easy for users to implement.


Jump to


Protected Feature Before you can reply to a message...
You must first register for a Remote Central user account - it's fast and free! Or, if you already have an account, please login now.

Please read the following: Unsolicited commercial advertisements are absolutely not permitted on this forum. Other private buy & sell messages should be posted to our Marketplace. For information on how to advertise your service or product click here. Remote Central reserves the right to remove or modify any post that is deemed inappropriate.

Hosting Services by ipHouse