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 Amazon.com - 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:
$chumbyName=$_REQUEST['chumby'];