Flash/Flex client done and installed.

Posted on
Fri Jul 06, 2007 6:01 am
gza offline
Posts: 46
Joined: Apr 12, 2007

Flash/Flex client done and installed.

Image
Image
Image
Image

Image
Image
Image
Image
Image


Well I finally finished my flash/flex indigo client. The purpose of this was to create a touch screen interface for indigo that didn't have to be run in a browser or have to poll indigo for device status every few secs. The client can run in the browser being flash and is served by the indigo web server for remote use. Right now it only handles changing and displaying device state in realtime, action groups, listing variable values, and showing a realtime log.

As you can see from the pictures, the client is running within the flash player on OSX. The flash player can be set to full screen completely covering the OSX desktop and thus users can't easily interface with the underlying OSX install.

The pictures of the controller are an apple tv running a full version of OSX 10.4 mounted in a levton media box. The hard drive was mounted outside of the apple tv housing to reduce heat issues. The rest is just the cabling to the monitor and the usb connections to the monitor, hub, and insteon PLC. The apple tv only has one usb port. This makes for a great embeded OSX controller that only uses 48W minus the monitor.

The touch screen is a 17 inch planer model mounted in the wall. This particular model doesn't have a housing of it's own. I just framed it with some picture molding.

Any questions just ask.
Last edited by gza on Sat Jul 07, 2007 5:50 am, edited 2 times in total.

Posted on
Fri Jul 06, 2007 9:07 am
macpro offline
User avatar
Posts: 765
Joined: Dec 29, 2005
Location: Third byte on the right

(No subject)

Looking good!

Are you also running the Indigo server on the AppleTV?

Posted on
Fri Jul 06, 2007 10:13 am
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

Everything is running off the apple tv. Server and client. I did it this way so if the network connection went down (airport in this case) it would still function. Plus keeping the atv on is a lot less wasteful then the mac, power wise.

I did build the client to run in both stand alone mode or be served by the Indigo web server. I've found that if I don't run the webserver on the atv and just the indigo server then it runs a little smoother.

If you run the flash client stand alone (meaning it wasn't served by a web server) you have to go through a login screen to make a server connection. If you use the indigo server with password protection then once you supply your username and password to the indigo server these are passed to the flash client and the login page in the client is skipped.

So it's a little more convenient for the client to use the web served version. No need to have the client local. On the other hand it's more efficient to use it the other way.

Either way once the client is loaded it makes a direct connection to the indigo server and doesn't pass anything through the web server. This is way the stand alone version works. Seeing it is listening to broadcast events from the indigo server it works just like the native client. Flip a switch, change a device name, whatever. It show up in realtime in the client without user intervention. Same is true in the other direction of course. Change the state in the flash client and it show up everywhere else.

Here is were I all say thanks to the developers for such a well designed program. Oh and all the help.
Last edited by gza on Sun Jul 08, 2007 8:08 am, edited 1 time in total.

Posted on
Fri Jul 06, 2007 8:06 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

(No subject)

This is very slick! Your install looks awesome (professional).

So you are finding the performance of the iTV is sufficient to run the Indigo Server? That would be great. I know some folks said it was a bit slow... but I wonder if that was AppleScripts slowing it down. I would hope that for basic logic (no AppleScript) that the iTV could keep up with HA demands.

Matt

Posted on
Fri Jul 06, 2007 8:45 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

I don't know how anyone was having a performance problem running the indigo server. The only one I've ever run into was using the python based control pages which is directly caused by all the polling. The webserver and indigo server themselves don't take any horse power.

There is a little lag in script performance due to the speed of the box but nothing that causes a problem. Very few things have to be completed in milliseconds. You just really want to stay away from polling opertations and complex animated graphics. The first is do the CPU and the second is due to a lack of hardware based video exceleration support under OSX. You have to use the generic video driver for now.

Anyways the point of the whole thing was to create mControl's feature set at a much lower price of entry. I don't know if I hit that with the monitor I'm using but if you use a smaller monitor then goal achieved. I think I ended up spending the same amount but at least its an open system I can add to. To really drop the price it would have to run on a linux embeded system. Something like a Soekris board or a linksys NLU2. Hint hint. There's a market there I'm sure. If that time comes look me up.

Posted on
Sat Jul 07, 2007 11:21 pm
diablo943 offline
Posts: 18
Joined: Oct 24, 2006
Location: Grand Junction, CO

(No subject)

How did you connect the AppleTV to the monitor? The AppleTV just has HDMI output or component and the monitor has DVI-D and VGA input. I am very interested in this project!

Thanks,
Dave

Image

Posted on
Sat Jul 07, 2007 11:36 pm
diablo943 offline
Posts: 18
Joined: Oct 24, 2006
Location: Grand Junction, CO

(No subject)

Well. I should have researched a little before posting my comment. Obviously XtremeMac sells a HDMI to DVI cable that should do the trick nicely for just $19.95.

Are you going to make your Flex app available to the community?

Dave

Image

Posted on
Sun Jul 08, 2007 8:06 am
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

The HDMI to DVI cable from Mac Xterme is exactly what I am using.

At some point I would love to release the client as a community project and move into a maintainer role. This is up to the Indigo developers though. They have the unenviable position of maintaining a quality product and user experience so some issues have to be worked out first. Matt has is busy adding important features at the moment but, when there is time I hope a license can be worked out and the code released.

In the future I would like others to be able to add features and I would like to be able to use those ideas myself. You never know what someone else is going to come up. For me I did like to add the abilty to setup indigo from the client. I.E. add and edit action groups. I'd also like to build some kind of editor for the layout so it more closely resembles the control page creation feature.

The future will tell.

Mike

Posted on
Sun Jul 08, 2007 8:49 am
diablo943 offline
Posts: 18
Joined: Oct 24, 2006
Location: Grand Junction, CO

(No subject)

Mike,
I am happy to hear you are open to the idea of releasing your Flex solution into the wild so others can participate in its development and use.

My goal for a GUI client is to wrap all the functionality and features in a simplified, easy to use client that the family can interact with without worrying about all the potential and complexity inherent in Indigo and Applescript. I can use the Indigo client on my laptop for any configuration work or ARD into the headless server.

I have been exploring wall-mountable, touch-screen options and really hadn't found anything that came in under my goal of $500. Although a modded AppleTV+touch monitor still is a little over my cost goal, it is a lot better than a Mini+touch monitor. Since I envision installing multiple units, it needs to be a cost efficient as possible.

I have considered a touch monitor/PC that I could run a Linux OS on and then a web browser, but I think having the option of running Apple software (like iTunes, iCal, etc.) in the future is important.

Since I currently run Indigo Server on a headless G4 in the basement, I really only want the client on the AppleTV and not much else.

Thanks Mike!

Dave

Image

Posted on
Sun Jul 08, 2007 10:10 am
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

500 is a hard price point to meet. The apple tv alone is 300. If you all ready have the server running on a G4 then I would start looking for embeded linux systems that provide VGA out and can run firefox or just the falsh player, in my case, in a simple X session like openbox. I'm hoping that apple continues the ATV line and older units start showing up on ebay at some point.

The monitor for my install was 700. Mostly because I was restricted to a DVI connection from the ATV. VGA connections are still more common and would have dropped the price. Another argument for Linux. I only went the ATV route because I needed or wanted to host the indigo server on the same box which required OSX leaving the ATV as the only option. If I move I want to take any current mac with me instead of leaving it behind to control the house. Also the single function nature makes it more stable.

As I add additional controllers I plan to use the Linux approach to lower the cost.

I'm hoping that others will add to the client to do exactly what you said. I had my entire family here over the fourth which gave the client it's first real beating and it stood up to all the non technical users. Everyone went oh cool and spent the next 30 mins clicking around and turning things on a off with no training or ill effect other then my front porch lights were left on all day.

I want that same experience to expand to the rest of my devices. I.E whole house video through Mythtv, whole house audio through MythTV and mpd (i'm working on adding that to the client this morning), and control of the security system, HVAC, and VOIP phone at some point. I run an Asterisk server for VOIP so all this is doable and already contains hooks for control from the network.

Hopefully some kind of plugin architecture can be created so the project can grow in the same fashion as mainlobby. Just cheaper and more reliable.

I forgot to mention iCal and ITunes. If I'm not mistaken Ical can be used as a interface for google calender so I plan to use Ical to edit google calender and then query google calender with a plugin for the client. As for Itunes that can be controlled remotely so it just has to be running on the computer connected to the speakers somewhere. I don't use Itunes do to the platform lock in so I use the linux music player daemon instead. I'm all about cross platform where ever its possibly. Up until indigo everything was opensource and cross platform. Indigo was well worth the exception.

Posted on
Sun Jul 08, 2007 3:16 pm
diablo943 offline
Posts: 18
Joined: Oct 24, 2006
Location: Grand Junction, CO

(No subject)

Wow! Sounds very similar to my goals. I think your route is pretty interesting... With Leopard server offering an iCal server I am interested in exploring true-Mac solutions. Using Google calendar as a reflector for iCal is interesting, but the inability to ad or modify a calendar seems like trouble to me. One of the core purposes of having panels through the house is so the family's calendars are always easily available and that we can all manage them.

iTunes is a love hate thing with me. I have a massive music library that I constantly interact with. I have a weekly radio show so I am constantly building playlists, screening music for FCC compliance, and tagging songs for future use. I have built some Applescripts that help in that process (if I could only display song lyrics on my control pages). I would love to be able to play and manage my music library anywhere in the house.

Don't know much about embedded *nix devices. Any suggestions where to start?

What are you running your Asterisk VOIP server on? Getting Asterisk up and running in my house is the next big project and needs to happen before the touch panel project. I have a Sipura 3000 sitting on the floor of my office, but haven't put much effort into getting Asterisk up and running. I have another G4 sitting around collecting dust that I would like to turn into a VOIP server, but it seems to be more of an uphill battle getting it running on a Mac.

Dave

Image

Posted on
Sun Jul 08, 2007 4:59 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

I'm running asterisk within a vmware image on top of an intel based server. That server is the main server for the house. The base is just a file and print server with a terabyte raid array for storing everything.

On the bare metal I run the free vmware server for linux with two images running all the time. The first is the asterisk server and all it's related functions. The second is my intranet server image which hosts the plone content management system, jinzora web based jukebox and streaming (it display lyrics along with every other type of meta data you might want), mythweb (web interface for mythtv), my dvd library index, ftp site, and misc other items. Each item will get it own plugin in the client at some point. Right now I writing the music piece.

I'm moving the Asterisk installation to an embedded system running http://www.astlinux.org/. That is a custom linux distro that is configured for the http://www.soekris.com/ Soekris embedded computer platform. This should free the server up to run another image. I like to test everything I'm working on in vmware before I go through the trouble of building a system for someone else who can't run vmware. If they can then I just give them the image and walk away. Anyways running three images on a 3Ghz P4 is pushing it.

I wonder if there is a web client for Ical offered by apple. I don't know. There are other good calender apps out there that might work for what you want. Having a mac as a simple controller at each point is cost prohibitive. Having a central mac and then just web clients is the way to go even if you have to hack it all together. That's what I'm doing. I just plan to use google calender instead of Ical. The google API means I can integrate it into anything I want and everyone can update it where ever they are. One of my main design goals is not to tie a user to a platform, location, or OS. The finally product cannot use things that have to run on a certain platform unless they allow interaction through some kind of open standard from any other platform and can be installed inside a vmware image or on an embedded system so that the sofware just becomes an appliance (I.E. Indigo and OSX). With vmware coming to OSX that base is covered.

An example of something that isn't allowed is anything that requires Internet explorer as a web browser. Using something like this instantly ties you to windows with no way out. On the other hand a web page simply hosted on windows but can be accessed with IE or firefox is ok. Although it won't be me that does that.

I want to continue the same model I use when consulting. Build a plugin based interface where the user is free to mix and match without having to rewrite the entire thing and a plugin infrastructure using vmware or any other cross platform virtualization technology. No parrelles unless they release windows and linux versions.

For example a client needs a web server, messaging server, and VOIP server to start their small business. Right now I sell them a dell dual xeon server and three preconfigured vmware images, one for each task. The management interface is simply a copy of plone with the web interfaces for each system (apache, asterisk, etc) embedded. If the client decided he wants to change the messaging server all he has to do is launch the new vmware image and change the links in plone.

Like I said, I hope a community project evolves to not only to share plugins to the client but also to share infrastructure components. There are to many cool pieces of kit out there for any one person to master.

Rant over. If you can run vmware then look at trixbox. That's a open source linux distro that includes asterisk and all the bells and whistles preconfigured for you. Took me 5 mins to get it up and running with a single extension after the download. Of course then I spent months tweaking the hell out of it. But that's the way it goes.

Posted on
Fri Jul 13, 2007 4:07 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

(No subject)

Hi Mike,

gza wrote:
At some point I would love to release the client as a community project and move into a maintainer role. This is up to the Indigo developers though.

I don't mind publicly releasing my contributions for the client ActionScript (whatever of my code there may be left, I know your changes were extensive). Eventually, I'd like to include a Flash/Flex client in the Indigo install as well.

Regards,
Matt

Posted on
Thu Jul 19, 2007 1:14 pm
saltsman offline
Posts: 27
Joined: Oct 24, 2006

(No subject)

Spanning Sync, for the most part, provides the Google calendar to iCal interface. It does have issues, but changes to gCal show up in iCal and vice versa. gCal is a great web interface for iCal. I think with a bug fix or two, Spanning Sync will rock. Hope that helps.

Posted on
Thu Jul 19, 2007 4:02 pm
gza offline
Posts: 46
Joined: Apr 12, 2007

(No subject)

Thanks for the tip. I'll look into that.

I'm pretty close to posting the Flex client on source forge for others to down load and hopefully improve.

I've also got a music client that interfaces with MythTV so that you can remotely create playlist and have them play through the system connected to the stereo using mpd (music player daemon) for linux, which also runs on OSX. If you wish to use another database then changing the php script is pretty easy. I had it working with ampache at one point.

Hopefully somebody can modify it to control an apple airport. I don't have one but I imagine that would be more useful to those on this forum.

I'll post a link once it is up.

Album info and playlist on the left. Tracks available on the right. It's a work in progress.

Image

Who is online

Users browsing this forum: No registered users and 2 guests