Monday, January 31, 2011

Panel Builder for Insignia Infocast

I've completed my latest Chumby app called Panel Builder. It let's you create a control panel on your Infocast, specifying the layout, buttons, labels and actions in an XML file served by your own web server. This sample XML file shows the different aspects you can control. For example, you can create rectangular, circular, triangular and ellipsoid shaped buttons. You control the button color, border color, position, size, text label (size, color & position). You can also create just plain labels and have the option to add status graphics (to show on/off state perhaps?). Actions are defined in the XML file as well and use a PHP script on your server to issue commands. You specify the "root" URL in the XML file, then specify individual actions for each button by specifying the rest of the URL which gets appended to the root URL. You can see the XML file above for examples. A sample PHP script can be viewed here. The app is waiting to get through the Chumby approval process, so I will provide the link when it's available. In the meantime, here's a screenshot showing the different elements that can be created and a YouTube video of the sample screen in use (If you listen closely, you may hear some X10 light switches going clunk in the background in response to button presses).


If you find this useful, donations are greatly appreciated :)

Update: Panel Builder was just approved 2/1 and is now available from the Chumby website.

6 comments:

  1. Pretty cool. I have one question and one feature request.

    The question is how I would update a status string according to events detected on the web server. For example, I have my alarm panel available via a web interface (see http://sourceforge.net/projects/dsc-alarm/), and I'd like to do something similar on my Infocast. Is there some way to cause panel builder to periodically poll the XML file for changes?

    The feature request is the addition of some additional <action>-like tags. To interact with the alarm panel, I need to hit two different URLs: one when a button is pressed, and another when the button is released. (This is important because some actions are triggered by holding buttons down for a long period of time). So, adding tags like <on-press> and <on-release> would be extremely useful.

    Thanks for such a cool application!

    (BTW, I also have an ECM-1240, and look forward to you releasing the code for your Brultech widget. :) )

    ReplyDelete
  2. the problem with getting the status updates via the original XML is that the file can be fairly large depending on a user's layout. the chumby/infocast cpu gets bogged down parsing it, so doing it at a decent interval will really peg the processor continuously.

    i do have a solution that ties the status updates in with the 1.3 feature that polls another XML file for messages to display. this file would be more compact & have only the OSD message to display and the on/off status values for the icons on the screen. the original XML file will then just be for the layout of the status icons. the initial version i plan to release will only support on/off status icons.

    as for your request, that feature is very easy to implement & i will roll it in with my next release.

    not sure i'll be releasing the brultech widget any time soon. i don't have the bandwidth to support & test it these days.

    ReplyDelete
  3. Thanks! I really appreciate you sharing the result of your efforts with us.

    I'll probably tackle putting together something for the Brultech myself. I'm about to get a second unit anyway, and I'd need something that can render 14 channels.

    ReplyDelete
  4. I too find this widget to be incredibly useful. Only thing on the wish list is somewhat better documentation (ie, how does the status stuff work (where does it get the inputs from and what format), what does button type "osd" do?...). Thanks a lot for the good work.

    ReplyDelete
  5. when i have time, probably after the next update, i will put more documentation on my website http://goo.gl/4JK78 - if you click on video 3 there, you'll see a demo of the OSD feature. as for status, it's mentioned in the above comments that status is currently nothing more than a static display, but that i'm working on a way to get them dynamically updating. so no documentation on that yet.

    ReplyDelete
  6. i have released version 1.4 with the button release action and the status update features. i have added some minimal documentation as comments inside the sample xml file on my website http://goo.gl/4JK78 and there is also an updated osd/status php file that shows how the status should be formatted.

    ReplyDelete