Saturday, December 31, 2011

Home Automation 2011

Since I wrote about 2011 downloads, I thought I'd write about the automation & related projects I worked on this year.

1) The biggest effort for the year was the Chumby/Infocast project that resulted in Panel Builder, xPLChumbyTTS, and the xPLChumby Python script. I learned how to program ActionScript/Flash and ended up with these awesome, low power and cheap touch panels that make great picture frames and TTS clients. I also totally revamped Panel Builder with a V2 but never finished it up enough to release. Built screens to control every aspect of the HA system, a lot of the screens automatically generated by PHP scripts populating from from existing MySQL databases. The Infocasts also got updated to run Chumby 8 firmware.

2)Integration of the OBi110 VOIP adapter with our existing Asterisk and MagicJack setup. Wrote a syslog Perl script (the main parts are available here) to monitor all sorts of events from the Obi, including touch tones, line status & caller ID. It also does caller ID lookups from our MySQL db of contacts sending results via xPL. Also migrated Asterisk from a Dockstar to the SageTV server.

3) Upgraded SageTV server from Server 2003 to Win 7 Pro & wrote a new xPL Sage app to replace my xPL Plugin. Also paid for and upgraded SageTV to V7 just weeks before they were acquired by Google and gave away the V7 upgrade for free >8(

4) Built an xPL Facebook app with a scripting engine and created a Doghouse Labs page where certain random events are posted on the fb feed via the app.

5) Did a bit of upgrading my Jab2Twit Jabber-Twitter connector. It's the main way I interact with Twitter since GMail/GTalk is always on my PC or phone. It's great getting an IM whenever Amazon's Appstore announces their free app of the day - no need to start another app or check their webpage to find out.

6) Upgraded all my IM client apps, including Jab2Twit, from using the Jabber-NET library to agsXMPP, which is much more robust.

7) Wet my feet with Android development building in tweaks to gtalksms.

8) Did a lot of tuning & tweaking w/ BlueBlabber, my bluetooth-Jabber connector, which I have running on my work PC so my automation system knows when I'm in my office. I just need to publish the latest version. As you can tell, I love using IM as a communication protocol. It's great for bridging remote networks - no need for firewall holes - plus it has the added security of SSL encryption. You can also encode your messages your own way as well to make things more obscure.

9) Added Z-Wave to the HA system, hacking xPL into the open-zwave demo app. I'm really liking Z-Wave, even more than UPB.

10) Lucked out & got a couple of $99 HP Touchpads in the first wave. Installed CM7 on them & have been extremely pleased. The kids & wife love using them.

11) Got the kids (8 & 10) AKA spoiled brats ;) their own Sandy Bridge based laptops, loaded them with Ubuntu & Google Chrome running AdBlock and WOT extensions, and configured with OpenDNS Family Shield so they can surf safely and smartly. Copied the xPLChumby Python script to their laptops so I can send text-to-speech and on-screen messages to their laptops. Added them to my host monitoring so that every 20 minutes of uptime, they are sent a reminder to get up and walk around to rest their eyes and stretch their legs.

12) Hacked pyrocket to put USB rocket launcher on a Seagate Dockstar and use as an xPL controllable pan-tilt webcam.

13) Wrote an extension of xPLGameport to work with cheap 12 button gamepads, obviously named xPLGamepad.

14) Replaced our public webserver (NSLU2) with Seagate Dockstar and picked up a cheap Pogoplug as a backup for the 3 Dockstars that are deployed. The Pogo's been loaded up with Arch Linux.

15) Finally deployed the WebControl I bought nearly 2 years ago. For now, just using the analog inputs and some CdS sensors to detect light levels in rooms. Of course, it's using xPLWebControl - which got a new feature - a fake SMTP server that the WebControl can send an email to, which will be converted to an xPL message.

16) Wrote a Perl script to screen scrape Yahoo Sports and send TTS over our whole house speaker system so I can listen to play-by-play of football games that aren't on TV while I'm debugging the house.

17) Added IP control of our Samsung TV and Blu-ray player via a Python script.

18) Installed 2 new outdoor bullet cams to upgrade the coverage in front of our house.

19) Rooted and installed a custom ROM on my Galaxy S phone in order to fix GPS that Samsung broke with the Gingerbread update and get rid of the Carrier IQ crapware. Been automating my phone lately with Llama and android scripting.

20) Finally unplugged the last Rio Receivers, which were in the kids' rooms. The kids got migrated to Squeezeboxes and I shut down MediaNet, which, with its predecessor xPLRioNet, have been in use with the Rio's since the early 2000s. Those servers first introduced me to xPL and really opened my eyes to a lot of what can be done with home automation.

21) Lots of minor things:
- hardwiring sensors that were once connected to DS10A's now connected to a distributed network of gamepads/gameports residing on Dockstars, thin clients & servers.
- script to import Android contacts into MySQL DB for caller ID lookups
- constantly refining the 4800 line script that runs in starCOMUltra (my main automation engine) and the 2500+ lines of code running in my xPL scripting engine
- did some natural langugage parsing for the system's IM interface - allowing better voice control via IM using the speech input feature of Android & Google Talk - before people got all hot & bothered about Siri & home automation
- integration of reading Google Voice SMS's based on this

I think that's a pretty good summary of my HA work in 2011. What about you?

Thursday, December 29, 2011

Most Downloaded of 2011

Here is our annual list of popular downloads:

1. EventGhost xPL Plugin - 101 times
2. xScript - 67
3. BlueTracker - 54
4. xPLChumby - 51
5. xPLSerial - 21
5. xPLWebControl - 21
7. BlueTrackerScript - 16
8. xPLChumbyTTS - 16
9. xPLGVoice - 16
10. xPLWav - 10

Surprisingly, the EG plugin led the way yet again, but overall downloads were lower than last year. I admit, I haven't been as prolific turning out apps this year. The whole Chumby/Infocast effort was really draining and I don't I think ever recovered from it. It took a lot of the fun out of developing. We do use the Infocasts all the time though. The real interest in Chumby wasn't seen in the download numbers since Panel Builder gets served off of I did see over 1200 unique IP addresses previewing Panel Builder - although I don't how many actually installed it.

Saturday, October 8, 2011

Power Savings and Prepping for an EV

Last week, I had some free time to reassess what devices I have running and whether or not I still use them at all. This was born out of some preliminary research into purchasing an electric vehicle (EV). Nissan Leafs are actually available now to those without reservations. That's the more realistic choice, but I really like the Telsa Model S. I've been missing a sporty car since my Honda roadster was totaled last year.

Taking the Nissan Leaf as an example, with its 24 kWH battery and 100 mile range and my current commute of about 30 miles roundtrip, I could drive 3 days per full charge. I would drive one of our other cars one day a week, so that would leave about 16 days/month on the EV. Rounding it to 15 days, I'd need 5 full charges or an additional 5*24kWH = 120 kWH of electricity per month.

Fortunately, we had solar panels installed 18 months ago. Since then, we've been able to stay in the lower 2 tiers of electricity costs for 11 out of the first 12 months we've had them. Those lower tiers are now 12.2 cents/kWH and 13.9 cents/kWH. The 3rd tier jumps to over 30 cents/kWH and the 4th and 5th tiers more costly. In December 2010, we used 73 kWH of tier 3 electricity. The 2nd worst month was January 2011, but we were 60 kWH below tier 3. The other 10 months we were 150-500 kWH below tier 3.

So if nothing changes, it would be "expensive" to drive an EV in December. The 120 kWH of electricity to charge the EV would all come in tier 3 at a cost of about $36 for 450 miles. That ends up being more than the $33 it would cost to drive our Prius the same distance (assuming $3.70/gallon for gas), but less than the $70 it costs our Subaru. It would cost about $26 in January. April to October would be all tier 1 electricity and cost about $14.50. February, March and November would be about half tier 1 and half tier 2, or about a buck more per month than April-October.

These are hardly savings compared to a hybrid - maybe $150/year. Compared to our non-hybrid, it's more significant - $550/year. When the economy improves, those savings will go up as gas prices will rise. For me, the real savings will be not sending as much of our hard earned money to big oil companies or countries that want to destroy the American lifestyle.

Political statements out of the way, there are some special options our electric utility has for EV owners. One is a time-of-use option where they charge a high rate during peak periods and less during the late night-early morning. This wouldn't work out well for us because of all the HA related servers, electronics, etc running 24x7. Another option is the installation of a 2nd electric meter specifically for charging the EV, but that's at least $2000. A third option would be to install an additional 6 solar panels on the west facing portion of our roof. It's not an optimal position and I haven't priced it out - but I figure it would be around $4000. I could do some of the work myself as I did an install with SunWork before. Of course, the obvious option is to cut our electricity usage - specifically the things that run 24x7.

I have to admit, having solar, I've been lazy about conserving. Rather than run a long Cat-5 cable, I plug in another Ethernet switch. Instead of using an extension cord to get to a UPS already installed, I add another UPS. When security cameras get updated, I keep the old ones plugged in pointing somewhere else - not really someplace necessary. Last weekend, I fixed all that. I pulled 4 UPS's, 4 Ethernet switches, 2 cameras, 3 modulators, one Squeezebox and 1 Slingbox. I disabled Connect24 on our Wii so it can idle at 1W instead of 9W. I unplugged a clock radio in the garage that used 10W. The end result is I cut about 3 kWH/day or 90 kWH/month. That's almost as much as the 120 kWH/month an EV would require!! This was by far the cheapest option. You can really see the results in a chart. In the 5 full days since my unplug-fest, our usage has never exceeded 20 kWH/day.

Now, we have headroom for an EV - I just need to decide whether I'm ready to plunk down all the cash for one.

Monday, September 5, 2011

Random Bits

I just finished my first week at my new startup and I'm already buried. New designs & new methodologies to learn and I need to know it by yesterday. I've spent a lot of time this 3 day weekend going over some training material I got from a co-worker. I did, however, get around to some minor automation stuff.

I finally hardwired some contact closures which were connected to DS10As. I just needed a little more accuracy for these sensors and sometimes I would get collisions with other X10 wireless devices which would cause status updates not to be received. I've wired these sensors to a USB gamepad connected to the thin client that interfaces to our Brultech power monitor. My xPLGamepad app relays the closure state via xPL.

This weekend I also upgraded to the kids from Rio Receivers to Squeezeboxes and turned off Medianet for good. It was a good run, but most of the house was running Squeezeboxes so it was time to consolidate to one music server. Medianet really helped push me deeper into home automation. Years ago, while searching for alternate servers for the Rio Receivers, I stumbled onto Medianet's predecessor, xPLRioNet. Installing it not only gave new life to the Receivers, but introduced me to xPL which has become such an intricate component of our HA system.

Finally, we've got these chef's mats on our kitchen floor, which are pretty thick. The Roomba will go up one of the mats, but will never go down due to its cliff sensors. This makes for one very clean mat, but that's about it. The cliff sensors work by bouncing IR off the ground and if it's not reflected back strong enough, the Roomba thinks it's on an edge and won't continue in that direction. I never use the Roomba upstairs so I chose to disable the cliff sensors. Fortunately, I had some aluminum tape from some HVAC work I did and used it to tape over the cliff sensors. The aluminum works perfectly and reflects the IR back to the cliff sensor and our kitchen floor is now clean again.

Wednesday, August 31, 2011

So Where's That Health Care Reform?

It's been a while since I've blogged as I've been busy tying up some loose ends at work. This post qualifies in the "random stuff" category, but it's still a post ;)

It was a little over a year ago that my employer shut down our group and laid off most of the hardware engineers. I ended up trying out contracting for a year, having never done it before in my career. One of the big issues for contractors is health insurance - actually obtaining it and then paying for it. We didn't have any issues getting coverage - other than one of our grade school children having mild asthma. That one minor condition triggers all sorts of warning bells at health insurance companies. Our son had to be listed on his own separate policy, which means he couldn't be under our family plan and we had to pay additional premiums for a 2nd policy. It also meant he would have his own deductible, and since we opted for a high deductible plan ($5000 family, $2500 individual - anything else would have completely unreasonable premium), we were unable to pool our expenses together to meet one family deductible. What a joke.

Over the course of the year, our insurance premiums went from reasonable to ridiculous. The family premium for myself, my wife and daughter started at $244/month, jumped to $373 the next month and in January it spiked to $509. Just 4 months later, it rose to $516. In July, we received notice of yet another increase in rates to $593 effective October 1st. We did also have to pay for our son's policy, which started around $40/month, gapped up to $70/month then to over $100/month in January. It too, will be having a rate increase in October, jumping to $115/month.

In the course of 15 months, our family plan premiums would have risen 243%!!! The two policies combined started off around $300 in July of last year and in October will run $708!!! Our son's mild asthma ended up being a 20% rate increase from our family plan rate every month.

Fortunately, I've returned back to a full time position with employer provided healthcare. Healthcare insurance is a scam. Nothing justifies a 243% increase in the course of 15 months. Health Net you suck.

Saturday, June 25, 2011

Various Updates

I've been working on a number of projects off & on the last few weeks. A few weeks ago, I tweeted about this app called GTalkSMS. It has a lot of potential for automation. I played with it a while, downloaded the source and modified it. I wanted my HA system's Jabber interface to be able to interact with GTalkSMS. It was using Jabber-NET, but for some unknown reason, that package isn't able to communicate with GTalkSMS. I found another free Jabber library, agsXMPP, and tried that out. It was able to talk to GTalkSMS so I ripped Jabber-NET out and replaced it with agsXMPP. For the most part, it was easy to swap libraries.

Next, I decided to replace the Jabber-NET client in Jab2Twit with agsXMPP because it's not able to communicate when you chat with Google's talk gadget (like in Chromebooks). I also finished up IM'ing new tweets and tweet filters. That's about wrapped up and ready for release.

I did a little work with Kinect, eventually moving to Windows as I couldn't make much headway in Linux. That's been backburnered as Microsoft recently released their official beta SDK for Kinect. I haven't had time to really play with it.

We also had our annual pilgrimage to the Southern California theme parks and in preparation for our trip, I set up a mini mobile camera viewer. It's just a simple web page with JQuery and AJAX. Since the cameras are on different servers (or are IP cameras), rather than set up SSH tunnels to each IP address, I basically proxied them through Apache - so I only had to tunnel one port. I used this technique I've used before. One other issue I had was I couldn't view MJPEG streams of certain IP cams with the AJAX technique I implemented. I found this PHP code to return a single frame from a stream.

I also picked up a Kindle Special Offers because up all the deals they've been handing to owners (such as 20% off HDTVs!). It's the first e-reader we've had and I have to say it's pretty cool, whenever I can pry it out of my wife's hands.

One more thing I got was an Aeon Labs ZStick to use with the handful of closeout ZWave modules I scrounged from Radio Shack months ago. There's a particular area of our house where UBP and X10 just don't work reliably and I've given up trying to figure out the noise source that's causing problems. I figured the ZWave modules would be perfect in this situation and took a stab at using the Open ZWave project. It was really easy to build and I slapped an xPL interface onto the demo .NET app and was controlling the modules in about 15 minutes. ZWave is now fully integrated into our system - using this hacked app. Our needs for ZWave are simple, just turning on & off modules, no scenes or other complexities. Maybe if I can find more closeout modules, I might expand its features.

Finally, I picked up a couple Lepai T-Amps from Parts Express via - just $20 + S&H. These are nice little amps that I'm using in conjunction with a couple Squeezeboxes I have lying around. I'm starting to phase out our remaining 3 Rio Receivers with gen 1 Squeezeboxes and SliMP3s I've found on Craigslist.

My next project I plan on working on is expanding the capabilities of our system's IM interface. I would like to increase its capabilities of interpreting text into commands usable by the system. With all the voice capabilities built into Google apps and Android phones, this could be a simple way to have reliable pseudo voice control from anywhere. The idea is to use the voice to text features of our Android phones, for example, to dictate to the IM client. Then pressing send and let our system regex the text to extract useful commands and perform them. Easy enough right?

Wednesday, June 1, 2011

More Tweeting, Less Blogging?

I remember seeing an article some time ago about a guy who was a really prolific blogger. He posted about how Twitter has rendered blogging obsolete. I started on Twitter in July 2009 and the frequency of my blog posts has tailed off considerably. For me, Twitter let's me write about more useless things and things off the top of my head, things I wouldn't necessarily blog about. I think I'm less interested in writing much these days, but I can tweet little bits. Also, I tend to spend more time with blog posts, editing wording and grammar, but with Twitter I don't care about editing other than fitting in 140 characters, so it saves me time. I'll continue to blog when I feel the need to add more detail, but if you don't mind a bit of noise, you can follow me over on Twitter.

I've got a number of projects I'm working on at the same time, multi-tasking or ADD, depending on how you look at it ;) Too many to make any real progress on any one of them. I've been updating my Twitter clients (xPLTweet and Jab2Twit) and working on my Facebook bot/scripting engine. I also started Android development and have loaded my first app on my phone that just has 2 buttons and does nothing yet. Finally, my Kinect came yesterday and I spent last night configuring a Dockstar to get X windows running so I can play around with libfreenect. As a big hoops fan, the NBA finals are distracting me from making progress. It's good to be busy right?

Monday, May 23, 2011

Facebook Page and Interface

Out of boredom, this weekend I played around with the Facebook C# SDK. I was mainly seeing what I could access through the API and created an app that periodically scanned the news feed. Then I got sidetracked building a scripting engine into the app and allowing it to post to my feed. Eventually, I got the idea to build a Facebook page for Doghouse Labs and have my new app automatically post stuff to the feed. I've seen this done with Twitter before, but never on Facebook. This app also has xPL built in, so its posts can be event driven, based on what xPL messages it sees flying by. Since it has its own scripting engine, I can keep its code out of the normal HA code, so it doesn't pollute it or interfere with more critical operations. I'm in the process of figuring out what info to post and what not to post: "alarm armed, nobody home" ;) so what shows up on the feed will evolve over time. Check it out and don't forget to "like" it.

Friday, May 20, 2011

CR48 Bits

Just some random thoughts about my CR48

- Google chat is slow. It pops out a talk gadget every time you start a conversation. It is cool when someone IMs you and you're not in your gmail window, the talk gadget window pops up, but when starting a conversation it takes 4-5 seconds for the window to appear. Defeats the purpose of "instant" messaging.
- 1280x800 is good enough resolution for me.
- Battery life is good. I've gotten almost 8 hours a charge.
- The keyboard has a nice feel - Macbook like I'm told. I don't know about that as I haven't used an Apple computer since the Apple ][+ I had as a kid, although I'm open to receiving a free one from Apple to test for them. ;)
- It has an irritating automatic screen brightness feature, that adjusts the backlight based on the current lighting conditions. On an overcast day where the sun comes & goes, the backlight brightness keeps changing - a bit annoying.
- The screen doesn't fold back far enough.
- 2 years of free 100MB/month Verizon 3G data. I have more reasons to take this everywhere.
- The remote desktop app has no way of switching back to the CrOS stuff so I keep a Google chat window minimized all the time. When I hover over the chat window then I can Alt-Tab back to CrOS.

Saturday, May 7, 2011

Google Chrome Revitalizes a Netbook

Our old Acer Aspire One netbook has been sitting around idle the last few months after our kids got really into Club Penguin. Even though I loaded it up with Ubuntu Notebook Remix some months ago, the bundled Firefox browser and Flash player really sucked. The Club Penguin site wouldn't even load. Today, I installed the latest version of Chrome on the netbook and was surprised how all of a sudden everything worked! My daughter was so happy as was my wife, who's laptop won't be hijacked anymore for penguin adventures. Chrome still gets laggy, which is more a limitation of the slow Atom N270 processor, the 512MB of RAM and the pokey 8GB SSD, but it really blows Firefox away.

On a side note, my CR48, aka ChromeOS Notebook, arrived a couple weeks ago courtesy of Google. I'm probably one of the last recipients in their Chrome pilot program. I've been playing with it on & off since then. The first thing I did after charging it was switch it over to developer's mode and load it up with a precompiled binary of a remote desktop client. I needed this so I could access my servers, which allowed me to test the CR48 exclusively for a few days without using my regular notebook. It's pretty impressive so far, but still a work in progress. At times, it bogs down due to the number of open tabs and possibly what extensions are running. Hopefully, I'll have time to write more detailed thoughts on it after I play with it more.

Sunday, May 1, 2011

OBI 110 and VOIP Fun

I've always been a late adopter with VOIP technologies and never used it until we switched over to MagicJack a couple years ago. I never even played with Asterisk until last November, when I added it to a hacked Dockstar. The main reason was to set up an in house intercom system using a Linksys PAP2T and Blink softphones on my wife and my laptops. When the OBI 110 came out, I immediately thought it was a neat new toy and so did others. I finally got one a couple weeks ago.

I initially configured it to use the MagicJack for all outgoing calls and incoming calls would come via MagicJack, Sipgate and Google Voice (via forwarding to the Sipgate number). This weekend, I configured the OBI to be a gateway for the Asterisk server for outgoing calls. Now, the kids' phones on the PAP2T, can not only call in-house numbers, but they can make outgoing calls through the MagicJack. Our Blink softphones can do the same. I'm thinking about having incoming calls also forwarded to the Blink clients as well.

I had configured Asterisk to allow outgoing calls from Blink via the Google Voice hacks, but it was always kludgy and sometimes didn't work. This seems to work nicely so far.

Wednesday, April 6, 2011

OSMO to the Rescue

We've had a Roomba practically from the day they came out. We got it from Sharper Image with a 3 year extended warranty (which typically aren't worth it). Within a couple years, though, it died and with the warranty, we got a brand new Roomba Discovery. The warranty paid for itself in this case. The last few years, however, it has seen little use as it developed a problem where it makes the "uh-oh sound" + 4 beeps after spinning in circles. Recently, I decided to Google the problem, and discovered it's a well known issue with an easy fix. iRobot will send you a device called OSMO, which plugs into the Roomba's serial port, and does some reprogramming. Not only did it fix the problem, but it appears to have upgraded the programming all together and our Roomba works better than ever. iRobot is a pretty awesome company to provide support for an out of warranty, 6 year old Roomba!

Monday, April 4, 2011

SageTV 7 Upgrade

Just installed the SageTV 7 upgrade over the weekend and it was painless. I made a backup of my SageTV 6 directory, then removed the plugins from the original JARs directory. Then I installed version 7 right over the original install. It kept all the settings and recordings. Finally, I installed the various plugins and it is considerably easier to do in this version. The UI is much snappier on the HD200 extenders as well. Also, my xPLSage app worked flawlessly with the latest SageTCPServer plugin. I did do a few tweaks to it and solved the xP crashing issue, so it should be ready for release soon.

Monday, March 28, 2011

xPL SageTV Plug "out"

This weekend, I started work on a new mechanism for controlling SageTV via xPL since my original Java based plugin no longer functions on Win7. It's a plug "out" instead of a plug-in since it runs outside of SageTV as a separate app. It communicates via TCP sockets with the SageTCPServer plugin. I've got it working with multiple clients and also forwarding osd.basic messages to the SageInfoPopup plugin as my old plugin did. It seems to work well so far, however, oddly, it crashes on XP but doesn't on Win7. I'm going to continue testing for a while before releasing it.

Thursday, March 24, 2011

SageTV Server Upgrade

After dealing with Server 2003 on the DVR for the last two years, it's time to move on. It had all sorts of idiosyncrasies that desktop OS's don't have to deal with - such as having to hunt down drivers for audio and hacking in bluetooth drivers, but one of the main irritations was that certain software won't install on server OS's. I've made the jump to Windows 7 Pro and have been gradually installing bits of things. Unfortunately, one thing that one make it is my xPL plugin for SageTV. The plugin is written in Java and relies on the xPL4Java package. xPL4Java doesn't work on Windows 7 for whatever reason and I've spent a few days unsuccessfully trying to get it working. Now, my Chumby control screens for SageTV will be on hold until I figure out a different method of control (I have an idea). Given this, I will probably be abandoning support for my xPL Plugin for SageTV.

While I'm leaving behind the SageTV plugin, I'm considering getting the SageTV 7 upgrade. Since it has new plugin architecture, I would either have to re-write the xPL plugin or abandon it. Hopefully, it will be a seamless upgrade.

Wednesday, March 23, 2011

Solar Update - 1 Year of Green Electricity

It's been a little over a year since our solar array went online. So far, it's exceeded the estimates I made (using my spreadsheet in this post) for every month. Even in rainy, cloudy December, it beat estimates - just barely. This month, I don't think we'll reach estimates as it's been an unusually rainy, cloudy March. Right now we're about 140 kWH short with 9 days left - and today it's been non stop rain.

In spite of the rain (we do need it badly though), we've been extremely happy with the investment. In one year, we've used 8,821 kWH of electricity with 5,796 kWH being provided by the panels. Over 65.7% of our power was provided by the sun. Our electricity pricing is tiered based on usage, where tiers 1 (<370 kWH) and 2 (370-480 kWH) are the lowest priced and most reasonable. Before solar, we were consistently in tier 4 (730-1100 kWH). With solar, we hit tier 3 once - in that cloudy December. We hit tier 2 in January. Every other month, we've been in tier 1 usage. From an investment perspective, the electricity savings have returned approximately 8.3% 9.1% tax-free, relatively risk-free and effort free! Can't complain about that. Plus the tax credit for 30% of the net cost (cost less California rebate) is coming in real handy right now as I'm doing our taxes!

If you're thinking about going solar, I strongly encourage you to really look into it. Get a few providers to come out & give estimates. Use my spreadsheet linked above. Think about it as an investment - like buying a stock - but solar provides a higher dividend that's tax-free and essentially risk-free.

Saturday, March 12, 2011

Panel Builder Screenshot

I've finally had time to actually use Panel Builder. As I've been creating screens, I've been trying out new UI elements. The screen is actually generated by a PHP script. The script customizes elements based on what Chumby is making the request. For example, if my nightstand Chumby requests the lighting page, it automatically goes to the master bedroom lighting screen, but the family room Chumby will see the FR lighting first. All requests from the Chumby pass an option containing the requesting Chumby's device name. You can access this from PHP using:

Thursday, March 10, 2011

Gesture Control in Panel Builder

I've been playing around with gestures to control actions in Panel Builder. Here's a demo of what I've got working right now. It's very simplistic, only taking into account 4 directions of swipes. Although if you make diagonal swipes, both the horizontal & vertical action are executed, but I'll probably filter that out and make diagonal swipes unique actions.

Wednesday, March 2, 2011

Doghouse Labs Announces Our First Donor...Ever

I'm pleased to announce that Walter Krämbring of Sweden has become our very first donor. Walter's been a major contributor over on the EventGhost project and has been a big proponent of xPL over there ever since I polluted his mind by releasing the xPL plugin for EventGhost ;) Despite not having access to Insignia Infocasts, he donated the incredibly generous amount of $50 to the project. Since the $25 threshold was met, as promised, I will add in a feature to add a webcam view to Panel Builder. I will also put in a slide show screensaver which I think will be great feature. Furthermore, I plan to use $20 of Walter's donation to "Pay it forward" by purchasing a Silver membership at I don't need or use the benefits of the membership, but I'd like to show my support for CT as Dan aka electron has built a great Home Automation community over there and invested a ton of his time & money.

Once again, thank you Walter Krämbring!

Sunday, February 27, 2011

Announcing xPLChumbyTTS

I've modified our xPLAudreyTTS application to send TTS to your Chumby or Insignia Infocast. Visit our website for details.

Saturday, February 26, 2011

Free Software...What's It Worth To You?

I've always benefited from free software, like MySQL, Apache and lots of smaller applications. I think I've done a good job of paying back either by donating time or money or with my own software. Lately, I've invested a lot of my free time into writing my Panel Builder app for the Chumby platform.

It wasn't easy. I had to learn how to write Actionscript, learn how to use FlashDevelop and scoured the 'Net for code bits to help me along. As part of my learning process I wrote a couple Chumby apps before I thought of doing Panel Builder. I kept those apps private for use on my own Infocasts, as I debated whether or not I wanted to deal with supporting a public app. After all, once an app is released, people are going to want help using it or want features added, especially, if it's free software. Obviously, that takes even more of my time.

I think Panel Builder is a great app and I'm really proud of my work. I've received a lot of positive feedback and thanks which has been great. It's nice to see people write about how they now have this super touch panel that cost so little (but don't forget the 100 hours of my time). I do think Panel Builder's also at a point where it has a substantial set of features that allows you to make some very complex & flexible control panels - all for free. I'm debating whether to stop adding new features and just doing bug fixes from now on.

However, there are more features I think that could go in to make Panel Builder even more useful. A few of them:
- Built in slideshow screensaver pulling photos off your network
- Updating status labels for displaying temperatures, song tracks, etc.
- Ability to add a webcam view to a screen

So, I'd like to pose a question. What would these or other new features be worth to people? The reason I ask is that nobody's ever clicked the Donate button on my website in the 3 years I've been developing software - no matter how many features requests I've done or how much help I've provided with my apps. If nobody voluntarily donates, would they donate to unlock features?

Let's try an experiment. For a $25 total in donations, I would add the feature to add a simple webcam view to Panel Builder. How will this work? You donate what you think this feature is worth. $1. $5. Whatever. When the total of donations reaches $25, I'll release an update to Panel Builder letting you put in a simple webcam viewer (The webcam must have a URL which will return an image when accessed). Want a different feature? Propose it in a comment below.

If there aren't any donations or comments, then I can assume Panel Builder is perfect the way it is and I can move on to other projects. There's obviously details to work out. Tell me what you think in the comments.

PS. I just wanted to add that my frustration really stems from users who ask for feature after feature and have offered nothing in return. I'm not talking about monetarily either. I really appreciate the efforts of others who've also been hacking the Infocast and revealing what they found about the file system, or system calls, or have given back by making their own wares available (not necessarily Infocast related either). Granted, not everyone's going to have the skills to do these things, but maybe they should find another way to contribute instead of just taking?

Tuesday, February 15, 2011

Another Chumby App Preview - Real Time Power Monitor

Here's a short video that shows an app I'm playing around with to graph the data from our Brultech ECM-1240 power monitor. The app uses the typical fetch of a URL with XML data that Panel Builder uses to bring data in. The URL actually points to a PHP script that queries a MySQL database for the power readings and returns it formatted in XML. It does this every second using the SetInterval construct in ActionScript.

The Brultech monitor has 7 channels and is interfaced to using a custom VBScript running in our xPLSerial app. The script takes care of the handshaking with the hardware and writes the channel data to our MySQL database. Another thing the script does is send the readings over xPL to our xPLGPower app, which connects to Google's PowerMeter.

Monday, February 14, 2011

Dear Google, Am I Really Getting A Cr-48?

I was one of the thousands of users of who were bombarded by sudden burst of emails from Google's Chrome Notebook Pilot program users group (detailed here.) I did apply for the pilot program months ago, but have not received a notebook...yet. I am hopeful, as I received an email from Google apologizing for onslaught of emails. A key sentence from the apology is If you are receiving this email and have not yet received a Cr-48, you should be hearing from us soon. Apparently, there is no notification if you were chosen, other than coming home one day to find UPS dumped a box on your porch with a Cr-48 inside. Surprises are nice, but c'mon Google, give us a tracking number so someone can be around to receive the item. I wonder how many Cr-48's have "walked off" their intended owner's porch. One would figure it'd be trivial for someone at Google to write a Python script to automatically email pilot program applicants a tracking number as their Cr-48 shipped.

Thursday, February 3, 2011

Learning How to Embed Graphics in Flash

This is just a quick post to show a screen I'm playing around with for the Infocast. The buttons are the free Black Glass buttons from GUI ja Board. I created the "HOME" button by using the blank button provided in the set and a little tinkering in GIMP. And the requisite short video.

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.

Sunday, January 16, 2011

First Flash App - SageTV Controller on Insignia Infocast

I've written my first Flash app. It's a remote control panel for SageTV and it runs natively on our Insignia Infocasts (which are Chumbies under the covers). It was a bit of work for me to understand Actionscript and figure out everything to make it work, but I've gotten to a point where I can show my progress. I started off using the Chumby2MPD sample code and the FlashDevelop package for the development. Each button on the app fetches a URL to a PHP script running on my Apache webserver, while passing it the command to be issued. The PHP script in turn issues an xPL message directed to the SageTV xPL plugin, which interprets the message and controls SageTV.

Here's a screenshot of the interface on the Infocast:

And here's a video of it in action.

Monday, January 10, 2011

Samsung Epic 4G, What I Don't Like

I've been using an HTC Touch Pro for the past 2+ years. I had unlocked it and installed WinMo 6.5, which gave it a nice mid-life kick. With our 2 year contract with Sprint over, the wife and I recently sprung for the Samsung Epic 4G and in the process, upgraded our Sprint SERO plans from $30/mo to the SERO Premium plan w/ 4G data at $50/mo. A big percentage increase in our monthly rate, but with 500 minutes and unlimited m2m/SMS/data/roaming data it's still $20-30 lower than plans from competing cell providers.

I've had it about a week and I figured it's time to write up my thoughts on this new toy. Let's start with the annoyances.

- Bluetooth visibility goes away after 2 minutes making bluetooth proximity all but useless. It's built into the kernel this way making it difficult to change. A big step down from WinMo.
- Voice commands over bluetooth does not exist - this was something I used *ALL* the time in WinMo. It is supposedly coming in Froyo, but Sprint & Samsung are really lagging on this. By the time Froyo hits for the Epic, it'll be time to upgrade to Gingerbread.
- In WinMo, you can turn off the 3G data connection after you're done with it, but it'll turn back on when you launch an app that needs it. In Android, if you turn off 3G data and you later start an app that needs it, it bitches about there not being a data connection. You have to manually enable data.
- When you make an appointment using the built-in calendar, it will default to the phone's calendar, which won't sync to your Google Calendar. You have to manually select that you want this appointment to be in your GCal for it to sync. Never had this problem with OggSync and WinMo. Why is the Google integration here so lame?
- On the other hand, Latitude binds to the Google account you set up your phone with and you have no option to change it, unless you re-setup your phone. This is lame. On WinMo, I used a different Google account for my Latitude tracking.
- I really miss PocketPutty, WinMo's Remote Desktop and Hamachi2 that I had running on the TouchPro. I have found alternatives to Putty and RDP, but they're just not as good.
- The TTS voice on Google Maps navigation is HORRID. How does the Sprint navigation app have a voice 100x better? Bing's WinMo voice is also way better.