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

Login:
Pass:
 
 

Page 1 of 3
Topic:
RFX9600 Receiving Commands from External Source
This thread has 43 replies. Displaying posts 1 through 15.
Post 1 made on Wednesday January 14, 2009 at 14:15
footVOL
Long Time Member
Joined:
Posts:
June 2008
17
I know Barry has a program that allows for interface with Homeseer (HA software), but I was wondering if anyone had created a way to send commands from an external source (Homeseer) to an RFX9600.

I am using ProntoNIC to send commands from my TSU9600 to Homeseer, but I would like to be able to send some simple power commands to my RFX9600 so I don't have to duplicate control functionality using IR splitters, etc. to my A/V components.

What I envision is to allow Homeseer to send event based commands to my RFX to turn off components if a room is unoccupied or if an "All Off" command is sent. I guess with our inability to interface with the RFX, it would require a "virtual TSU".

Or I suppose since I always dock my TSU's a Pronto script could listen for an external command and then send a Pronto command to the RFX. Or Phillips could just make it easy for us to externally interface with the RFX, but I won't hold my breath.

I would be willing to discuss paying for such a interface. Any help would be appreciated!

TC

Last edited by footVOL on January 14, 2009 14:24.
Post 2 made on Wednesday January 14, 2009 at 14:45
Barry Gordon
Founding Member
Joined:
Posts:
August 2001
2,157
The problem is that the API for the RFX is not exposed. There is no documentation on how to talk to it. That is why I went a different route and use a Global cache and do all my IR through it over TCPIP. An advantage is that both homeseer and the Pronto could talk to the Global Cache. At the request of a user I built a Homeseer plugin that talks to the Pronto PAL which deals with the Global cache on behalf of the Pronto.

He was using the PAL to do his IR with a Global cache, and wanted to do just what you are trying to do so he is now doing it.
Post 3 made on Wednesday January 14, 2009 at 17:20
Lyndel McGee
RC Moderator
Joined:
Posts:
August 2001
12,992
TC, best of luck but you will never get public protocol api for RFX9600. You are better off using Barry's Global Cache approach.
Lyndel McGee
Philips Pronto Addict/Beta Tester
OP | Post 4 made on Wednesday January 14, 2009 at 21:18
footVOL
Long Time Member
Joined:
Posts:
June 2008
17
You mean the 2 uber-Pronto Pro's are laying down in defeat? I find that hard to believe.

Just kidding guys, I suppose I have beat this dead horse enough. What about my second idea, having a Prontoscript on a docked TSU that listens for the "All Off" signal and send the command when it wakes up on the Pronto minute.

This doesn't have to be a real time "All Off", I am simply looking for a power saving measure so a delay is fine. Otherwise, I guess I will go with my back up plan and use a "duplicate" IR system.



This will give me more flexibility than relying on Prontoscripts which I know NOTHING about.
Post 5 made on Wednesday January 14, 2009 at 23:48
Jon Welfringer
Long Time Member
Joined:
Posts:
December 2002
175
Has anyone actually run a network sniffer to see what the communications with the RFX9600 look like?

Edit: nevermind, I see a project called ProntoNic started doing this.

Last edited by Jon Welfringer on January 15, 2009 00:09.
Post 6 made on Friday November 5, 2010 at 11:55
avdorks
Long Time Member
Joined:
Posts:
November 2008
68
Seems like this is will need to be revisited with Pronto being dropped.

Looking for some protocol info or I guess I can sniff the packets and work backwards...
Post 7 made on Friday November 5, 2010 at 12:03
Jon Welfringer
Long Time Member
Joined:
Posts:
December 2002
175
Maybe someone can approach Philips to see if they'll publish the RFX protocol now that they are dropping the product line.
Post 8 made on Friday November 5, 2010 at 12:07
avdorks
Long Time Member
Joined:
Posts:
November 2008
68
I asked while they were in business and just asked now... Will let you know what I hear...
Post 9 made on Friday November 5, 2010 at 19:46
sWORDs
Long Time Member
Joined:
Posts:
November 2006
373

I've just managed to open and close relay ports of the RFX9600 from my laptop by analyzing the frames.
What I've figured out so far:

RFX udp port: 65442
Hex:

open relay 1: 0000000000000000000000006300000600000000
close relay 1: 0000010000000000000000006300000600010000
open relay 2: 0000020000000000000000006300000601000000
close relay 2: 0000030000000000000000006300000601010000
toggle relay 1: 0000040000000000000000006400000500000000
toggle relay 2: 0000050000000000000000006400000501000000
query relay 1: 0000060000000000000000006500000500000000
query relay 2: 0000070000000000000000006500000501000000

response open relay 1: 00000640020000000000000500000000
response close relay 1: 00000740020000000000000501000000

There is a lot more communication going on, I think the remote asks the RFX if it's ready and the RFX tells the remote if it succeded and things like that. But just sending the commands works.

First part (000000) of the send command seems to be a number to indicate the sequence. 63 is open/close relay (64=toggle relay, 65=query relay, 40=IR, 50=RS232), the 00 (01, 02, 03) after that is the relay's port number, the 00 after that is open or close (01).
The response contains the sequence number (000006,000007) of the send item. Which makes sense because it uses UDP.
The bytes after the id (40) seem to be a reponse type or something like that(40=relaystate???), the bytes after that (02) are also a sequental number, some where around 01 is the relay's state (00 = open, 01 is closed)

I've start with the relays because their easier.

With RS232 I'm starting to figure out the command structure. It's not that hard either, it just has a lot more parameters like baudrate, parity, databits and stop bits. The command itselve is just ASCII character codes or hex.

IR is something I look at later, I need a learned command (not one from the database) because I can see what's send (you can only peek at learned codes).

It's a shame that I've got so much work to do. I've got a few projects I need to finish first.
Reading openremotes xml and dynamicly building the pronto gui from prontoscript is a job I'm looking to forward too aswell. But I can't do my daytime job, figure out the complete RFX protocol, get openremote to work with that protocol, build an openremote Pronto module (for the TSU) and do some other projects while keeping my child and wife happy. So come on guys, who's going to help?

Last edited by sWORDs on November 6, 2010 08:30.
Post 10 made on Saturday November 6, 2010 at 03:00
Lyndel McGee
RC Moderator
Joined:
Posts:
August 2001
12,992
Curiosity has gotten the best of me now...

So,
How does one "toggle" the relay?
How does one "query" the current state?
How does one address Extender 0 vs Extender 1, 2, etc...?
Lyndel McGee
Philips Pronto Addict/Beta Tester
Post 11 made on Saturday November 6, 2010 at 06:18
sWORDs
Long Time Member
Joined:
Posts:
November 2006
373
On November 6, 2010 at 03:00, Lyndel McGee said...
Curiosity has gotten the best of me now...

So start helping and fulfill your need. ;)
I could help you getting started and we could split some tasks.
So,
How does one "toggle" the relay?

toggle relay 1: 0000000000000000000000006400000500000000
toggle relay 2: 0000000000000000000000006400000501000000
How does one "query" the current state?

query relay 1: 0000000000000000000000006500000500000000
query relay 2: 0000000000000000000000006500000501000000
response open relay 1: 00000040020000000000000500000000
response open relay 2: 00000040020000000000000501000000
How does one address Extender 0 vs Extender 1, 2, etc...?

You can use the extender's ip. If you want to discover extenders you need to SSDP multicast msearch philips:maestro-extender:

M-SEARCH * HTTP/1.1
S: uuid:????????-????-????-????-????????????
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
X-Maestro-ControlPanel-MAC: ??:??:??:??:??:??
ST: philips:maestro-extender

Should return:



NOTIFY * HTTP/1.1
Host: 239.255.255.250:1900
NT: philips:maestro-extender
NTS: ssdp:alive
Cache-Control: max-age=1800
USN: uuid:????????-????-????-????-????????????
X-Maestro-Extender-ID: 2
X-Maestro-Extender-Firmware: 1.4.5
X-Maestro-Extender-MAC: 00:16:??:??:??:??
X-Maestro-Extender-Type: RFX9400
X-Maestro-Extender-Mode: usemode

I've updated the post above with these commands.

Last edited by sWORDs on November 6, 2010 10:54.
Post 12 made on Saturday November 6, 2010 at 06:51
sWORDs
Long Time Member
Joined:
Posts:
November 2006
373
Test from TSU (back and forth)
Get relay 0 (current state open):
TSU 0000000800000000000000006500000500000000
RFX 000000200000000057ec494a57ec494b
RFX 00000040000000000000000500000000
RFX 000000200100000057ec494a57ec497d
RFX 00000040010000000000000500000000
RFX 000000200200000057ec494a57ec49af
RFX 000000400200000000000005000000000000
TSU 0000010000000000000000003000001a0000753044656e6f6e506c617965722076312e3331000000
RFX 000001200000000057ec53de57ec53e0
RFX 00000140000000000000000501000000
Toggle relay 0 (open->closed)
TSU 0000020000000000000000006400000500000000
RFX 000002200000000057ec53fb57ec53fc
RFX 00000240000000000000000501000000
TSU 0000030000000000000000003100001644656e6f6e506c617965722076312e3331000000
RFX 000003200000000057ec540657ec5408
RFX 00000340000000000000000501000000
RFX 000001200100000057ec53de57ec541b
RFX 00000140010000000000000501000000
RFX 000002200100000057ec53fb57ec542f
RFX 00000240010000000000000501000000
RFX 000003200100000057ec540657ec5443
RFX 00000340010000000000000501000000
RFX 000001200200000057ec53de57ec544d
RFX 00000140020000000000000501000000
RFX 000002200200000057ec53fb57ec5462
RFX 00000240020000000000000501000000
RFX 000003200200000057ec540657ec5475
RFX 00000340020000000000000501000000
Get relay 0 (current state closed):
TSU 0000040800000000000000006500000500000000
RFX 000004200000000057ec5e9757ec5e97
RFX 00000440000000000000000501000000
RFX 000004200100000057ec5e9757ec5ec9
RFX 00000440010000000000000501000000
RFX 000004200200000057ec5e9757ec5efb
RFX 00000440020000000000000501000000


From Laptop (so missing the returns on the requests from RFX):
Send (Query relay 1, currently closed):
00 00 06 00 00 00 00 00 00 00 00 00 65 00 00 05 00 00 00 00
Rec:
00 00 06 20 00 00 00 00 58 47 75 F7 58 47 75 F7
00 00 06 40 00 00 00 00 00 00 00 05 01 00 00 00
00 00 06 20 01 00 00 00 58 47 75 F7 58 47 76 29
00 00 06 40 01 00 00 00 00 00 00 05 01 00 00 00
00 00 06 20 02 00 00 00 58 47 75 F7 58 47 76 5B
00 00 06 40 02 00 00 00 00 00 00 05 01 00 00 00

Send (Open relay 1, currently closed):
00 00 07 00 00 00 00 00 00 00 00 00 63 00 00 06 00 00 00 00
Rec:
00 00 07 20 00 00 00 00 58 48 E8 2C 58 48 E8 2C
00 00 07 40 00 00 00 00 00 00 00 05 01 00 00 00
00 00 07 20 01 00 00 00 58 48 E8 2C 58 48 E8 61
00 00 07 40 01 00 00 00 00 00 00 05 01 00 00 00
00 00 07 20 02 00 00 00 58 48 E8 2C 58 48 E8 93
00 00 07 40 02 00 00 00 00 00 00 05 01 00 00 00

Send (Query relay 1, currently open) :
00 00 08 00 00 00 00 00 00 00 00 00 65 00 00 05 00 00 00 00

Rec:
00 00 08 20 00 00 00 00 58 49 37 F5 58 49 37 F5
00 00 08 40 00 00 00 00 00 00 00 05 00 00 00 00
00 00 08 20 01 00 00 00 58 49 37 F5 58 49 38 27
00 00 08 40 01 00 00 00 00 00 00 05 00 00 00 00
00 00 08 20 02 00 00 00 58 49 37 F5 58 49 38 59
00 00 08 40 02 00 00 00 00 00 00 05 00 00 00 00

Last edited by sWORDs on November 6, 2010 09:09.
Post 13 made on Saturday November 6, 2010 at 06:53
Paul Biron
Founding Member
Joined:
Posts:
August 2001
142
This is called reverse engineering. Let's make sure that there is no conflict between doing this and Philips IP rights. Especially posting on a very public forum.
The last thing we want to do is to derail a future path for the Pronto...

My 2 cents.

Paul
___________________
Pronto Level II Certified
Post 14 made on Saturday November 6, 2010 at 06:57
sWORDs
Long Time Member
Joined:
Posts:
November 2006
373
Reverse enginering for compatibility is totally legal in the EU.

What we are doing here is probably legal in the US aswell, as far as I've managed to understand [Link: chillingeffects.org].

Also, this project should be good for Pronto aswell:
1) It will allow to send combined IR from TSU to RFX, like the airco devices that send all states (cool/heat, fan speed, angle, temperature, etc) in a single 1 command. if the port isn't open all the time.
2) It will allow TSU to talk to openremote (open remote module for TSU)
3) It should make RFX and TSU's market bigger if someone does continue the Pronto brand.
4) It should extend the TSU and RFX useable lifetime if Pronto is discontinued.

Besides the above, what good would it do for Pronto if people buy "extenders" of another brand? Now the extenders would be usable with OpenRemote (and other software), from a PC, smartphone, tablets and all other UDP capable remotes (AMX,Crestron, etc).

Last edited by sWORDs on November 6, 2010 08:54.
Post 15 made on Saturday November 6, 2010 at 07:20
sWORDs
Long Time Member
Joined:
Posts:
November 2006
373
TSU 0000140800000000000000006500000500000000
RFX 00001440020000000000000501000000

The response contains the "id" (14) of the send item. Which makes sense because it uses UDP.
The bytes after the id (40) seem to be a reponse type or something like that, they bytes after that (02) are also a sequental number, some where around 01 is the relay's state (00 = open, 01 is closed)

Last edited by sWORDs on November 6, 2010 07:50.
Page 1 of 3


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