Adobe Flex interface

Posted on
Wed May 02, 2007 9:10 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

Adobe Flex interface

I've been searching around for a better interface to tie all the systems I have together. I started by making a flash/web client but the proformance was lacking. This made me realize that a pull method for updating a display wasn't going to work for my requirements.

I've been doing a lot of research on the subject over the last two weeks and finally stumbled upon adobe's recently open sourced flex framework. This allows one to design a flashed based insterface that can recieve updates pushed from the server.

My question is what is the Indigo developers take on my reverse engineering the communtication between the native indigo client and the server and reimplementing it using flex as an open source project. I choose Indigo becuase of the stellar support for insteon and my not wanting to have to reinvent the wheel everytime there was a change in the devices supported. I'm asking out of respect for the developers of Indigo. I have no desire to step on toes....

Posted on
Thu May 03, 2007 9:54 am
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: Adobe Flex interface

Give me a few days and I'll post the Flash ActionScript source files that act as an Indigo Client and can receive broadcast updates (no polling needed) from the Indigo Server. The files are a bit out-of-date and won't work with the latest Indigo Server, so I'll need to update and test them first. I'll also post a basic (very rough) protocol document that outlines the Indigo Client/Server communication. Between that document and the ActionScript source, you should be able to get a feel for how it all works.

I'm not sure how much Adobe Flex will be needed. I know pretty much nothing about it. But the ActionScript source files I have will handle the underlying TCP socket communication and XML parsing to do the basics, even without Flex.

I don't mind publicly posting the ActionScript source. However, like the Python based Indigo Web Server, I haven't worked out the details of the license yet. For the time being redistribution is restricted, but you are free to hack/modify the source as you want for personal use. Obviously, I want modifications to get rolled out and made available for public consumption, but until I put the exact terms of the license down formally the distributions of those changes will need to flow through Perceptive Automation. Basically, the license is more restricted (no redistribution unless approved through us) than I want, but the plan is to figure out something more generally workable. Hopefully for the time being this is acceptable and won't discourage anyone. If it does, then let me know and I'll look into the getting a formal license put together sooner... but as it stands right now I have some coding to do that is a higher priority. :-)

I definitely would love for folks to help contribute on the client side for coming up with new Indigo solutions. I'm excited about this!

Regards,
Matt

Posted on
Thu May 03, 2007 10:40 am
mreyn2005 offline
User avatar
Posts: 161
Joined: Oct 06, 2006

AS3 or AS2?

Hey!
This is a very exciting thread for me to have run across! I am a flash/flex developer and I also run Indigo in my apartment. I have recently been developing a flex interface to the Indigo software. However, the AS class model will be a large improvement from my proof of concept hacks right now. My question is: will the AS classes be in AS2 or AS3? AS3 is native to flex and I would like to see the re-implementation of these classes in AS3 :-) Keep up the great work! I will be following this thread to see how things progress. Let me know if you want any help!

Regards,
Matthew Reynolds

Posted on
Thu May 03, 2007 11:46 am
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

Thanks for the response. I hold on to my code until you figure out how you want to use it or not. It's your product and right to do that any way you like.

As for development of this method it sounds like you don't care if we all work on it but you just don't want it package and released to the general public until you decide if and how you want to do that.

I'll post this to the other thread too, but I see the use of flex as having an advantage over a simple action script based approach. Flex allows for the dynamic creation of the flash client. So changes made to the configuration of Indigo do not require the flash interface on client side to recompiled. Also you would not have to totally redesign the ui need to create the interface. Simply read the XML files for the devices to display. I'm also trying to pretty it up by using some dynamic animation. Finally I want something that is as cross platform and as cheap as I can make it. Using an apple back row plugin doesn't meet that requirement.

Flex also has the advantage of pushing data changes to any number of connected clients only when needed. As you pointed out this isn't need for Indigo but its a nice feature for pulling together other item into the interface. IE. what song is currently playing, do I have voice mail waiting, caller id, whats traffic like before I leave for work. etc...

An example of a flex application in action is Yahoo maps. Using live traffic feature is the push part. The rest is a normal pull.

Just a note but, Adobe open sourced the flex data server for use on a single cpu machine. They seem to only want to charge for a development environment and the big iron version of the server. Packages are available for Linux, Windows, and OSX.

Posted on
Thu May 03, 2007 12:58 pm
mreyn2005 offline
User avatar
Posts: 161
Joined: Oct 06, 2006

current AS files?

Are the current AS files available somewhere? Can you post them so I can look at them, even if you are in the middle of re-writing them?

Thanks,
Matthew

Posted on
Thu May 03, 2007 1:04 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

Any help from a someone who does this full time would be great.

Just saw your post Matthew.

I'm a noob to flex but have some action scirpt experience. I'm a network engineer by trade so I spend my days reverse engineering client server communication.

Posted on
Thu May 03, 2007 1:24 pm
mreyn2005 offline
User avatar
Posts: 161
Joined: Oct 06, 2006

cool

I was a CS and Philosophy under-grad. Did java for a year and half. Just switched professionally to Flash/Flex about 2 months ago, but have been playing with it for little over a year.

I have a flex project that uses this concept. I have it working currently, but its just calling indigo URLs with the URLLoader class.

Using full fledged AS class files to persist object data between indigo and flex would be a million times better.

Can't wait to see those AS source files?!?!

gza - any chance you'd be interested in a flex development position in Iowa? :-p
Last edited by mreyn2005 on Thu May 03, 2007 9:24 pm, edited 2 times in total.

Posted on
Thu May 03, 2007 5:44 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

If you want a developer who just ordered the books from amazon. Sure, why not. Better yet, can I just telecommute from Cleveland Ohio. I mean I just got my new townhouse up and running with indigo, insteon, and an apple tv as server. Wouldn't want all that to goto waste. I did spend my entire day debugging PHP for my company's electronic ebussiness customer invoice site. Things are pretty bad when they need the WAN engineer to debug web code. I got it to work though. Someone forgot to copy a stored procedure in one DB2 database to another. Opps....

Is your flex code upto being converted into a plugin architecture? One of my developement requirement is to be able to deploy plugins to extend the functionality of the interface much like what is going on right now in the hacker community for the apple tv. In fact I kind of like that UI design. Very pretty 10 foot interface. I, of course, want to hook this whole thing up to a 17 inch planer thouch screen mounted in the wall. Thus my motivation for annoying Matt repeatedly with messages on this board.

I have a few PHP projects related to using all the website API being opened up recently by yahoo, google, and digg. In fact www.digg.com is offering prizes for the best flash insterface using their API. Just playing right now. I currently have my mythtv, asterisk voip, and internal home intranet tied together with the plone content management system. Unfortunatly that doesn't lend itself at all to either a touch screen or 10 foot interface. So on with learning another technology.

Also, what server do you use to host flex? I can build a vmware virtual centos linux server running with jboss pretty quickly. I just wonder if that's the best choice. I think I already have a standard install image somewhere to start with. Everything I run is in vmware.

Posted on
Thu May 03, 2007 6:53 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: current AS files?

mreyn2005 wrote:
Are the current AS files available somewhere? Can you post them so I can look at them, even if you are in the middle of re-writing them?

They aren't posted yet. Give me a couple of days to update them so they work with the latest version of the Indigo Server.

I'm excited about this. Martijn and I did quite a bit of work putting together a couple of different Flash based clients a long time ago. We ended up not finishing it up because the Web 2.0/AJAX client ended up working pretty well, but there is definitely some use in having Flash clients as well...

Regards,
Matt

Posted on
Mon May 07, 2007 6:33 am
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

Is there a data dictionary for XML database some where? Loading the XML file into the flash interface turned out to be easy. I'm just not sure what some of the values mean. I'm currently working on the admin client to setup new events etc. I going to leave device descovery and linking to the native indigo client unless someone has a reason to add it to the flash client.

I figure creating events and trigger actions etc.. might me something you would want in the remote interface. Device discovery belongs to the server and should be seperate from the presentation.

Opinions welcome.

Posted on
Mon Jun 18, 2007 7:09 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)


Posted on
Sat Jul 28, 2007 3:22 pm
ethank offline
Posts: 55
Joined: Oct 12, 2006

Re: Adobe Flex interface

support wrote:
Give me a few days and I'll post the Flash ActionScript source files that act as an Indigo Client and can receive broadcast updates (no polling needed) from the Indigo Server. The files are a bit out-of-date and won't work with the latest Indigo Server, so I'll need to update and test them first. I'll also post a basic (very rough) protocol document that outlines the Indigo Client/Server communication. Between that document and the ActionScript source, you should be able to get a feel for how it all works.

I'm not sure how much Adobe Flex will be needed. I know pretty much nothing about it. But the ActionScript source files I have will handle the underlying TCP socket communication and XML parsing to do the basics, even without Flex.

I don't mind publicly posting the ActionScript source. However, like the Python based Indigo Web Server, I haven't worked out the details of the license yet. For the time being redistribution is restricted, but you are free to hack/modify the source as you want for personal use. Obviously, I want modifications to get rolled out and made available for public consumption, but until I put the exact terms of the license down formally the distributions of those changes will need to flow through Perceptive Automation. Basically, the license is more restricted (no redistribution unless approved through us) than I want, but the plan is to figure out something more generally workable. Hopefully for the time being this is acceptable and won't discourage anyone. If it does, then let me know and I'll look into the getting a formal license put together sooner... but as it stands right now I have some coding to do that is a higher priority. :-)

I definitely would love for folks to help contribute on the client side for coming up with new Indigo solutions. I'm excited about this!

Regards,
Matt


Matt, did you ever post the protocol docs and AS source?

Posted on
Sat Jul 28, 2007 4:52 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

I posted it on sourceforge
http://sourceforge.net/projects/coreautomation/

It's not Matt's original source. I updated it to actionscript 3.0/flex. It works and I'm looking for other developers to help with the client.

Posted on
Sat Jul 28, 2007 9:23 pm
ethank offline
Posts: 55
Joined: Oct 12, 2006

(No subject)

Here's something that is probably a stupid question, but I'm just learning Flex and this syntax doesn't conform to normal OOP stuff:

gDeviceListCache..Device

why two periods?

Posted on
Sat Jul 28, 2007 9:25 pm
ethank offline
Posts: 55
Joined: Oct 12, 2006

(No subject)

gza wrote:
I posted it on sourceforge
http://sourceforge.net/projects/coreautomation/

It's not Matt's original source. I updated it to actionscript 3.0/flex. It works and I'm looking for other developers to help with the client.


Did Matt post the TCP/IP protocol documentation anywhere or did you reverse engineer it?

Who is online

Users browsing this forum: No registered users and 8 guests