This page last changed on Nov 05, 2010 by marcf.

There seems to be quite a bit of interest in porting the Pronto technologies here. This thread is meant to aggregate people that are interested and defining what could be interesting.

For example, maybe a XCF translator to our XML format? It could be fairly straightforward.

Marc Do you have a dtd kicking around?

There are some tools to dump the devices..  http://www.netefb.com/PDBTools.zip

Posted by avdorks at Nov 05, 2010 14:29

Yeah we do have a DTD. Just pinging juha who is in Seoul and massively jet-lagged it seems

Posted by marcf at Nov 05, 2010 15:07

The schema for the panel UI is defined here:

http://openremote.svn.sourceforge.net/svnroot/openremote/trunk/UIDesigner/config/panel-2.0-M7.xsd

Posted by juha at Nov 05, 2010 15:07

Someone talked about supporting the RFX hardware, in lieu of GC. That frankly seems like a no brainer. If someone can post the specifics of the IP protocol, autodiscover if any, then this could really be a matter of days for us to support that hardware.

Posted by marcf at Nov 05, 2010 15:08

There are plenty of XCF files herethat I assume could be used to generate a schema.

I don't have specifics regarding the IP protocol, but a post to Remote Central's Pronto Pro discussion forum might generate some details. I will post a notification of this effort to that forum and invite that community to participate here.

Posted by wiyosaya at Nov 05, 2010 17:15

Thanks that will be helpful.

Yeah clearly there are a lot of templates floating around. Importing these as is, would be a good feature. Support for iPad/Android/Web.

Posted by marcf at Nov 05, 2010 18:36

Right...  take any xcf change the extension to zip and extract...  xml is there...  now we just need the post and reponses to the extender...

Posted by avdorks at Nov 05, 2010 18:50

Ok, I see it, let us see what we can turn around in a short time frame. Essentially we would need to massage the data in our XML and mass input the icons from the templates. We would need to add all of this that to the designer (a upload XCF pronto file). All of it is open source.

Posted by marcf at Nov 05, 2010 19:07

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 (sample relay flow), 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)

Seems as if I've got some more work to do...

Posted by swords at Nov 05, 2010 23:51

OK. I won't have my hands on an rfx until early next week.

Makes sense that it checks if the port is available, I see this occuring in the panel.

I assume the sense relays there would be a check and return...

Beintersting to see what happens on the serial side and IR.

Cool.

Posted by avdorks at Nov 06, 2010 00:11

Yup.. Scale the pages... Images layout...

There is prontoscript as well....

But I think most people would enjoy import actions and the commands...

Need to Look at how we can import an xml with just the devices would be the best place to start.. Thouhgts?

DTD for devices / commands?

I am sure I can convert to a format via webpage... Need to look more at yours first...?

Games plan?

You around for a call tomorrow sunday? Time zone est...?

Posted by avdorks at Nov 06, 2010 00:29

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.

header:
3 bytes to indicate message number (00 00 01)
1 byte statuscode (00 = Request, 20 = Ok, 24 = Failed, 40 = Finished)
1 byte repeatcount (00)
7 bytes probably reserved (00 00 00 00 00 00 00)

data:
1 double byte to indicate action
00 = Completed?
21 = PowerSense
30 = Requeststatus?
31 = Repeat last frame?
40 = IR
50 = RS232
63 = SetRelayState
64 = ToggleRelayState
65 = GetRelayState
1 byte ??? (02) (maybe Pronto major version 2.00?)
1 byte ??? (00) (maybe Pronto major version 2.00?)
1 byte datalength (from action to end data)
1 byte
first part RS232 port
port1 = 0
port2 = 1
port3 = 2
port4 = 3
second part RS232 baudrate
2400 = 2
4800 = 3
9600 = 4
14400 = 5
19200 = 6
28800 = 7
31250 = 8
38400 = 9
57600 = a
115200 = b
1 byte combined rs232 flags
Stopbits:
1 = 0
1.5 = 2
2 = 4
Parity:
none = 0
even = 8
odd = 16
mark = 24
space = 32
Databits:
5 = 0
6 = 64
7 = 128
8 = 192
So, Stopbits 8 + Parity space + Databits 8 = 226 = e4
2 bytes Duration in ms (01 ea = 1ea = 490ms = .49s)
7 bytes probably reserved (00 00 00 00 00 00 00)
1 byte rs232 repeatcount (01)
? bytes RS232 string

end data:
3 bytes to indicate end or reserved (00 00 00)
It's possible to send multiple data + end data (multiple commands) in one packet.

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?

Posted by swords at Nov 06, 2010 00:36

Command Structure and communicating with an rfx9600 might be a good start.

Seems like there is some info on using ccf file for command structre... herc... easy to import the command just need to learn more about what is being done here...

More than happy to assist and get this going...

Like to lay out a plan...

Posted by avdorks at Nov 06, 2010 01:09

But I think most people would enjoy import actions and the commands...

Need to Look at how we can import an xml with just the devices would be the best place to start.. Thouhgts?

DTD for devices / commands?

I am sure I can convert to a format via webpage... Need to look more at yours first...?

Current schema for controller (maps UI component ID's to device commands)

http://openremote.svn.sourceforge.net/svnroot/openremote/trunk/UIDesigner/config/controller-2.0-M7.xsd

Posted by juha at Nov 06, 2010 19:27

Frankly speaking, I do not think this is a very valuable thread. "Let us do everything that is

cool and has the name'Pronto' in it"... Ok, let's be constructive.

There are (at least?) three different generations of Prontos around. See http://www.pronto.philips.com/Products/Archive/ on the first and second. The first

generation ises ccf configuration files. This is a binary format, but has been reverse

engineered. There exists a very nice open-source Java project Tonto, normally described as

a replacement for Prontoedit, but alsp containing a Java library for manipulating CCF files.

Using this library, it is possible to extract anything from a CCF file. For example, I have done

this, see here. It can also be mentioned that Promixis' Netremote uses a slightly extended

version of the CCF format.The second generation uses configuration files with the exension .pcf.
This is nothing but a zip-file, consisting of a  number of bmp bitmaps,
and an XML file (ConfigEdit.xml). Here is a sample of the xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--written by ProntoEdit NG-->
<ConfigurationFile Mode="ADVANCED" Version = "3">
<UserComments></UserComments><Bitmaps>
<BITMAP id="1">
<FileName>.\Bitmaps\Bitmap_id1.bmp</FileName>
<UpperLeftTransparency></UpperLeftTransparency>
</BITMAP>
...
<ACTION id="7">
<IRCODE>
<BASICIRCODE>
<Duration>
<WhilePressed/></Duration>
<Code>39 0 f 6c 4 60 ac 15 40 ac 56 3f 5f fc 42 48 0 4 40 0 44 40 4
 44 4 40 0 0 40 4 44 4 bf 4e bc f2 b 31 7c 3</Code><Name
id="55"/>
</BASICIRCODE>
</IRCODE>
</ACTION>
...
<Items>
<ITEM id="18">
<PANEL><Position>3 49
</Position><Dimension>234 254
</Dimension><TextColor>255 255 255
</TextColor><BGColor>170 170 170
</BGColor><Font>STANDARD 10
</Font><Label id="5"/>
</PANEL><TextAlignment>CENTER CENTER</TextAlignment></ITEM><ITEM id="19">
<BUTTON><Position>16 60
</Position><Dimension>95 30
</Dimension><TextColor>255 255 255
</TextColor><BGColor>170 170 170
</BGColor><TextColorPressed>0 0 0
</TextColorPressed><BGColorPressed>0 0 0
</BGColorPressed><Font>STANDARD 10
</Font><BitmapNormal id="1"/>
<BitmapPressed id="2"/>
<Label id="6"/>
<UDP_FunctionID>0</UDP_FunctionID>
<ActionList id="18"/>
</BUTTON>



I have never had my hands on a current Pronto, using configuration files with the ending

of xcf. I strongly suspect they are similar, at least in spirit (AV Dorks' comment above

supports this.) Prontoscript is nothing but possibly extended Javascript (ECMAScript).

With a tool like, say, XSLT it should not be too hard to extract desired information.

Probably a 90%-translator to the controller XML format can be made within a few days.

Since there are certainly minor details around, getting the last 10% right is probably not

worth it. But I also doubt the general usefulness: there are simply too many differences

between OR Designer and Pronto -- and the different Prontos. Sort-of like aliasing Unix'

ls to dir for the MSDOS user... Still, extracting things like IR-commands may of course be

sensible.

Posted by barf at Nov 07, 2010 14:22

The Pronto's I was talking about are the latest generation. So the TSU9300, 9400, 9600 and 9800 with the extenders RFX9400 and RFX9600.

Running ProntoScript should be very easy. It's just javascript with some extra objects. Al we would need to do is create those extra objects (like Activity, CF, Diagnostics, etc) and be able to execute javascript.

So by doing four things (Build a RFX protocol, build an openremote Pronto module, build an import XCF function, build support for ProntoScript) there could be many thing possible:

1) Use the TSU9400, 9600 and 9800 (even the 9300 with a custom older firmware that enables ProntoScript) as a openremote client.
2) Use the RFX9400 and 9600 as a microcontroller based translation unit.
3) Use Pronto configuration files (there are really many)
4) Use Pronto modules (there are a lot)

And you can't compare the last gen Pronto's to earlier models. They are very different. They also are a lot nicer. The 9600 and 9800 feature VGA screens. They also have hardbuttons, which would be a + on tablets. At the downside they lack CPU power (200Mhz Risc) and have no graphics acceleration or browser. But as a remote they are great.

The RFX devices are quite nice as microcontroller based translation unit (RFX9600 has 4 RS232 ports, 4 IR, 4 relays), the only downside is that they can only do one thing at a time, but that would be an easy fix by buffering from the controller or openremote client.

Posted by swords at Nov 07, 2010 14:47

IMHO, I cannot say I agree that efforts aimed at a pronto import for any pronto version would not be valuable. As a programmer, I understand the argument that going that last 10 percent is not a worthwhile endeavour since many people venturing into the OR releam are likely to have experience of some sort in programming.

As an end user of all three versions of the Pronto designers, they seem to me to be significantly more featureful than the current OR designer. If there were an import function, those in the pronto community could still use existing software to quickly design front-end UIs for OR.

Also as an end user of software in general, I find it extremely frustrating to use an import function that does not do a good job of translation. I can see people familiar with the prontos, like myself, wanting to use OR, but being put off because of the current UI designer. Whether that begs improvement in the OR designer, or a proto port that does a great job is something that I do not feel qualified to answer. I do know that if there were an import that would take my PCF from the previous version of pronto (TSU-7500) and import it with a high degree of accuracy, I would be less reluctant to join the OR realm. That is me, however, and at this time, I do not have a lot of spare time to invest in learning a completely different system.

Posted by wiyosaya at Nov 08, 2010 17:37

Hilko, I am more than will to help in any way.  I am installing open remote now on windows and a nix ...  Need to poke around and will have some thoughts.

I have a rfx9600 a droid a tsu9400 and a 3gs.  Also, I have numerous devices that I can test.

I assume a function to build the socket protocal woudl be a good place for me to start with and test.  I am leaning more about open remote.  I have done socket programming in php and vb and progress...

Do you need more on the ir?

Creating the user interface maybe a little much.  Not sure..  I would simply state the create a command protocal would be best.  Users can always recreate similiar functionality and look n' feel...

Posted by avdorks at Nov 12, 2010 14:06

I'm actually an happy user of a pronto 9600 remote and I would like to contribute my experience to the discussion.
The pronto PEP actually seems to me more featered than the OR UI designer. With pronto-script abilities and event-driven function calls it's actually possible to design 2-way interactive pages for controlling things like mediaservers, musicservers, ip-cams, etc...There are for example free and commercial pronto modules for controlling slimserver, xbmc, sonos and such.
Even if I don't actually use interactive pages, but have just designed few control panels for one-way control of my home-theater, I'm actually in the process of starting the design/integration of pages for controlling my slimserver, apple tv, my indigo home automation server for lights, irrigation and hvac.
Problem is: I also own an iphone, an ipod touch and I will soon buy an ipad. I would like to be able to have full control not only with the pronto but also with my other devices. And ... why not ... on the web too. And here comes the problem: why investing a lot of effort in designing/integrating pronto pages when I will need to redesign all of them using other tools for iphone/ipad/web ?
To make a long story short: I see a great value proposition in building a conversion tool which will get a pronto xcf file in input beeing able to deploy it on the web, on iphone, ipad, android and future other platforms.
Untill PEP will be a better UI design tool than OR UI designer, integrators and DIYers could still design the interface on PEP, deply it using PEP on the Pronto and OR on all other platforms.
Just my 2cents.

Posted by lombrano at Nov 12, 2010 14:25

If you could analyse IR (only full learned commands are possible, so no Philips Database or shortened commands), powersense and RS232 request (and return from RFX) that would be great. If you don't have a switch that can duplicate the port of the extender, the best way to analyse is:

Add your extender to your project with the ip of your computer.

1. Get http://aluigi.altervista.org/mytoolz/sudppipe.zip
2. sudppipe -x -a c:\test.cap extenderip 65442 65442

This will output all frames from TSU and from extender on screen (-x) and to a .cap file (-a c:\test.cap) that you can open with WireShark.
You can even program a dll to parse the data and load it (by adding a -l parameter). This last option excites me, easy way to test if the understanding of the protocol is correct.

Posted by swords at Nov 12, 2010 14:38

Hilko,

I should have this up over the weekend and I will post a wireshark file.

Plenty of "learned" ir....

I have a powersense device.

The 232 device may be ok...  It is a snap av 4x4 video matrix.  The command are asc and 2 digit, looking for a hex device. some use different start end commands ie pana pro \x02DWA:OVL1\x03 vs the prior just 11.  Not sure what they do with the start/ends but i have seen many different start stops, not corresponding to the manufacturers specs.  I have  a russound vm1 that uses hex.  So I think I may have this covered.  The only bit I will not have is the 2 way.  But I can access a russound cam at some point in the near future with this.

Posted by avdorks at Nov 20, 2010 02:59

Looks like you got some 232....  woking on the others.

Posted by avdorks at Nov 20, 2010 03:01
Document generated by Confluence on Jun 05, 2016 09:31