<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3098906125359025983</id><updated>2012-01-05T21:04:11.274-08:00</updated><category term='mobile'/><category term='Python'/><category term='scripting'/><category term='embedded'/><category term='MySQL'/><category term='EventGhost'/><category term='HAL'/><category term='Nokia'/><category term='SageTV'/><category term='perl'/><category term='AJAX'/><category term='Audrey'/><category term='ASP'/><category term='800'/><category term='storage'/><category term='GCal'/><category term='eBay'/><category term='telcos suck'/><category term='1wire'/><category term='770'/><category term='PHP'/><category term='700WX'/><category term='xAP'/><category term='bluetooth'/><category term='vr'/><category term='x10'/><category term='telephony'/><category term='xPL'/><category term='GPS'/><category term='voice recognition'/><category term='stats'/><category term='RFID'/><category term='mp3'/><category term='network'/><category term='home security'/><category term='vbscript'/><category term='cctv'/><category term='UPB'/><category term='IM'/><category term='GMail'/><category term='solar'/><category term='News'/><category term='hardware'/><title type='text'>Experiments in Home Automation and Other Random Stuff</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default?start-index=101&amp;max-results=100'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>344</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2152033405284618072</id><published>2011-12-31T15:53:00.000-08:00</published><updated>2011-12-31T16:50:11.597-08:00</updated><title type='text'>Home Automation 2011</title><content type='html'>Since I wrote about 2011 downloads, I thought I'd write about the automation &amp; related projects I worked on this year.&lt;br&gt;&lt;br&gt;1) The biggest effort for the year was the Chumby/Infocast project that resulted in &lt;a href=http://goo.gl/VQEth target=pb&gt;Panel Builder, xPLChumbyTTS, and the xPLChumby Python script.&lt;/a&gt;  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.&lt;br&gt;&lt;br&gt;2)&lt;a href=http://goo.gl/Drtis target=obi&gt;Integration of the OBi110&lt;/a&gt; VOIP adapter with our existing Asterisk and MagicJack setup.  Wrote a syslog Perl script (the main parts are &lt;a href=http://goo.gl/Xkrpd target=sys&gt;available here&lt;/a&gt;) to monitor all sorts of events from the Obi, including touch tones, line status &amp; 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.&lt;br&gt;&lt;br&gt;3) &lt;a href=http://goo.gl/vo7t5 target=stv&gt;Upgraded SageTV server&lt;/a&gt; from Server 2003 to Win 7 Pro &amp; 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 &gt;8(  &lt;br&gt;&lt;br&gt;4) &lt;a href=http://goo.gl/yjffh target=fb&gt;Built an xPL Facebook app&lt;/a&gt; with a scripting engine and created a &lt;a href=http://goo.gl/fozXx target=dhfb&gt;Doghouse Labs page&lt;/a&gt; where certain random events are posted on the fb feed via the app.&lt;br&gt;&lt;br&gt;5) Did a bit of &lt;a href=http://goo.gl/vugfc target=t&gt;upgrading my Jab2Twit&lt;/a&gt; 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.&lt;br&gt;&lt;br&gt;6) Upgraded all my IM client apps, including Jab2Twit, from using the Jabber-NET library to agsXMPP, which is much more robust.&lt;br&gt;&lt;br&gt;7) Wet my feet with Android development building in tweaks to &lt;a href=http://goo.gl/2ukFP target=gt&gt;gtalksms&lt;/a&gt;.&lt;br&gt;&lt;br&gt;8) Did a lot of tuning &amp; tweaking w/ &lt;a href=http://goo.gl/L6bO2 target=bb&gt;BlueBlabber&lt;/a&gt;, 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.&lt;br&gt;&lt;br&gt;9) Added Z-Wave to the HA system, hacking xPL into the &lt;a href=http://goo.gl/kkwrF target=zw&gt;open-zwave&lt;/a&gt; demo app.  I'm really liking Z-Wave, even more than UPB.&lt;br&gt;&lt;br&gt;10) Lucked out &amp; got a couple of $99 HP Touchpads in the first wave.  Installed CM7 on them &amp; have been extremely pleased.  The kids &amp; wife love using them.&lt;br&gt;&lt;br&gt;11) Got the kids (8 &amp; 10) AKA spoiled brats ;) their own Sandy Bridge based laptops, loaded them with Ubuntu &amp; Google Chrome running &lt;a href=http://goo.gl/vbxYY target=ab&gt;AdBlock&lt;/a&gt; and &lt;a href=http://goo.gl/d3DKY target=wot&gt;WOT&lt;/a&gt; extensions, and configured with &lt;a href=http://goo.gl/TpTC1 target=odns&gt;OpenDNS Family Shield&lt;/a&gt; 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.&lt;br&gt;&lt;br&gt;12) Hacked &lt;a href=http://t.co/qJjjsbHu target=pyr&gt;pyrocket&lt;/a&gt; to put USB rocket launcher on a Seagate Dockstar and use as an xPL controllable pan-tilt webcam.&lt;br&gt;&lt;br&gt;13) Wrote an extension of xPLGameport to work with cheap 12 button gamepads, obviously named xPLGamepad.&lt;br&gt;&lt;br&gt;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.&lt;br&gt;&lt;br&gt;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 &lt;a href=http://goo.gl/vTLMw target=web&gt;xPLWebControl&lt;/a&gt; - 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.&lt;br&gt;&lt;br&gt;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.&lt;br&gt;&lt;br&gt;17) Added IP control of our Samsung TV and Blu-ray player via a Python script.&lt;br&gt;&lt;br&gt;18) Installed 2 new outdoor bullet cams to upgrade the coverage in front of our house.&lt;br&gt;&lt;br&gt;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 &lt;a href=http://goo.gl/4FQhQ target=ciq&gt;Carrier IQ crapware&lt;/a&gt;.  Been automating my phone lately with &lt;a href=http://goo.gl/gK2bl target=ll&gt;Llama&lt;/a&gt; and &lt;a href=http://goo.gl/qpCjI target=as&gt;android scripting&lt;/a&gt;.&lt;br&gt;&lt;br&gt;20) Finally unplugged the last Rio Receivers, which were in the kids' rooms.  The kids got migrated to Squeezeboxes and I shut down &lt;a href=http://goo.gl/V3dwk target=mn&gt;MediaNet&lt;/a&gt;, 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.&lt;br&gt;&lt;br&gt;21) Lots of minor things: &lt;br&gt; - hardwiring sensors that were once connected to DS10A's now connected to a distributed network of gamepads/gameports residing on Dockstars, thin clients &amp; servers.&lt;br&gt; - script to import Android contacts into MySQL DB for caller ID lookups&lt;br&gt; - 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&lt;br&gt; - did some natural langugage parsing for the system's IM interface - allowing better voice control via IM using the speech input feature of Android &amp; Google Talk - before people got all hot &amp; bothered about Siri &amp; home automation &lt;br&gt; - integration of reading Google Voice SMS's based on &lt;a href=http://goo.gl/3z6xQ target=gv&gt;this&lt;/a&gt;&lt;br&gt; &lt;br&gt;I think that's a pretty good summary of my HA work in 2011.  What about you?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2152033405284618072?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2152033405284618072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/12/home-automation-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2152033405284618072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2152033405284618072'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/12/home-automation-2011.html' title='Home Automation 2011'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-894476751554954146</id><published>2011-12-29T20:14:00.000-08:00</published><updated>2011-12-29T20:17:34.729-08:00</updated><title type='text'>Most Downloaded of 2011</title><content type='html'>Here is our annual list of popular downloads:&lt;br&gt;&lt;br&gt;1. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=EventGhost+xPL+Plugin target=1&gt;EventGhost xPL Plugin&lt;/a&gt; - 101 times&lt;br /&gt;2. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xScript target=4&gt;xScript&lt;/a&gt; - 67&lt;br /&gt;3. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=misc&amp;app=BlueTrackerScript target=3&gt;BlueTrackerScript&lt;/a&gt; - 54&lt;br /&gt;4. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLChumby target=3&gt;xPLChumby &lt;/a&gt; - 51&lt;br /&gt;5. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSerial target=7&gt;xPLSerial&lt;/a&gt; - 21&lt;br /&gt;5. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLWebControl target=6&gt;xPLWebControl&lt;/a&gt; - 21&lt;br /&gt;7. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=misc&amp;app=BlueTrackerScript target=3&gt;BlueTrackerScript&lt;/a&gt; - 16&lt;br /&gt;8. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLChumbyTTS target=3&gt;xPLChumbyTTS &lt;/a&gt; - 16&lt;br /&gt;9. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLGVoice target=3&gt;xPLGVoice &lt;/a&gt; - 16&lt;br /&gt;10. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLWav target=3&gt;xPLWav&lt;/a&gt; - 10&lt;br /&gt;&lt;br&gt;Surprisingly, the EG plugin led the way yet again, but overall downloads were lower than &lt;a href=http://goo.gl/CUvPC target=last&gt;last year&lt;/a&gt;.  I admit, I haven't been as prolific turning out apps this year.  The whole &lt;a href=http://goo.gl/BjW4S target=chum&gt;Chumby/Infocast effort&lt;/a&gt; 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 &lt;a href=http://goo.gl/Z1G4x target=pb&gt;Panel Builder&lt;/a&gt; gets served off of Chumby.com.  I did see over 1200 unique IP addresses previewing Panel Builder - although I don't how many actually installed it.&lt;br&gt;&lt;br&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-894476751554954146?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/894476751554954146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/12/most-downloaded-of-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/894476751554954146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/894476751554954146'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/12/most-downloaded-of-2011.html' title='Most Downloaded of 2011'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-217404020214366886</id><published>2011-10-08T13:50:00.000-07:00</published><updated>2011-10-08T13:57:22.897-07:00</updated><title type='text'>Power Savings and Prepping for an EV</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href=http://goo.gl/EW3qS target=0&gt;SunWork&lt;/a&gt; before.  Of course, the obvious option is to cut our electricity usage - specifically the things that run 24x7.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ilrXOVMKEMo/TpC29LphQgI/AAAAAAAAAcY/gjoNdqO2HhE/s1600/ecmkwh_month.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-ilrXOVMKEMo/TpC29LphQgI/AAAAAAAAAcY/gjoNdqO2HhE/s200/ecmkwh_month.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now, we have headroom for an EV - I just need to decide whether I'm ready to plunk down all the cash for one.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-217404020214366886?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/217404020214366886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/10/power-savings-and-prepping-for-ev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/217404020214366886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/217404020214366886'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/10/power-savings-and-prepping-for-ev.html' title='Power Savings and Prepping for an EV'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ilrXOVMKEMo/TpC29LphQgI/AAAAAAAAAcY/gjoNdqO2HhE/s72-c/ecmkwh_month.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3142186086103557855</id><published>2011-09-05T13:24:00.000-07:00</published><updated>2011-09-05T13:24:20.863-07:00</updated><title type='text'>Random Bits</title><content type='html'>I just finished my first week at my new startup and I'm already buried.  New designs &amp; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3142186086103557855?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3142186086103557855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/09/random-bits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3142186086103557855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3142186086103557855'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/09/random-bits.html' title='Random Bits'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4887063868337163488</id><published>2011-08-31T06:52:00.000-07:00</published><updated>2011-08-31T06:52:24.058-07:00</updated><title type='text'>So Where's That Health Care Reform?</title><content type='html'>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 ;)  &lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4887063868337163488?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4887063868337163488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/08/so-wheres-that-health-care-reform.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4887063868337163488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4887063868337163488'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/08/so-wheres-that-health-care-reform.html' title='So Where&apos;s That Health Care Reform?'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7638867811450879967</id><published>2011-06-25T16:14:00.000-07:00</published><updated>2011-12-31T13:26:42.606-08:00</updated><title type='text'>Various Updates</title><content type='html'>I've been working on a number of projects off &amp; on the last few weeks.  A few weeks ago, I tweeted about this app called &lt;a href=http://goo.gl/nTFdm target=a&gt;GTalkSMS&lt;/a&gt;.  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 &lt;a href=http://goo.gl/LOSdK target=0&gt;Jabber-NET&lt;/a&gt;, but for some unknown reason, that package isn't able to communicate with GTalkSMS.  I found another free Jabber library, &lt;a href=http://goo.gl/nY8CM target=1&gt;agsXMPP&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href=http://goo.gl/ziR20 target=2&gt;this technique&lt;/a&gt; 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 &lt;a href=http://goo.gl/9gQH7 target=4&gt;this PHP&lt;/a&gt; code to return a single frame from a stream.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href=http://goo.gl/JRqom target=op&gt;Open ZWave&lt;/a&gt; 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 &amp; off modules, no scenes or other complexities.  Maybe if I can find more closeout modules, I might expand its features.&lt;br /&gt;&lt;br /&gt;Finally, I picked up a couple &lt;a href=http://goo.gl/HLVCw target=lep&gt;Lepai T-Amps&lt;/a&gt; from Parts Express via Amazon.com - just $20 + S&amp;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7638867811450879967?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7638867811450879967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/06/various-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7638867811450879967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7638867811450879967'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/06/various-updates.html' title='Various Updates'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1262050198206857455</id><published>2011-06-01T07:23:00.000-07:00</published><updated>2011-06-01T07:23:48.031-07:00</updated><title type='text'>More Tweeting, Less Blogging?</title><content type='html'>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 &lt;a href=http://goo.gl/InvSL target=0&gt;Twitter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1262050198206857455?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1262050198206857455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/06/more-tweeting-less-blogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1262050198206857455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1262050198206857455'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/06/more-tweeting-less-blogging.html' title='More Tweeting, Less Blogging?'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1521172287222347232</id><published>2011-05-23T21:40:00.000-07:00</published><updated>2011-05-23T21:40:43.838-07:00</updated><title type='text'>Facebook Page and Interface</title><content type='html'>Out of boredom, this weekend I played around with the &lt;a href=http://goo.gl/DzrS7 target=0&gt;Facebook C# SDK&lt;/a&gt;.  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 &lt;a href=http://goo.gl/l7xGY target=1&gt;Facebook page for Doghouse Labs&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1521172287222347232?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1521172287222347232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/facebook-page-and-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1521172287222347232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1521172287222347232'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/facebook-page-and-interface.html' title='Facebook Page and Interface'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1162409024225181339</id><published>2011-05-20T21:59:00.000-07:00</published><updated>2011-05-20T21:59:56.728-07:00</updated><title type='text'>CR48 Bits</title><content type='html'>Just some random thoughts about my CR48&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;- 1280x800 is good enough resolution for me.&lt;br /&gt;- Battery life is good.  I've gotten almost 8 hours a charge.&lt;br /&gt;- 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. ;) &lt;br /&gt;- 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 &amp; goes, the backlight brightness keeps changing - a bit annoying.&lt;br /&gt;- The screen doesn't fold back far enough.&lt;br /&gt;- 2 years of free 100MB/month Verizon 3G data. I have more reasons to take this everywhere. &lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1162409024225181339?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1162409024225181339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/cr48-bits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1162409024225181339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1162409024225181339'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/cr48-bits.html' title='CR48 Bits'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-707423259716402167</id><published>2011-05-07T22:46:00.000-07:00</published><updated>2011-05-07T22:47:46.262-07:00</updated><title type='text'>Google Chrome Revitalizes a Netbook</title><content type='html'>Our old Acer Aspire One netbook has been sitting around idle the last few months after our kids got really into &lt;a href=http://www.clubpenguin.com target=0&gt;Club Penguin&lt;/a&gt;.  Even though I &lt;a href=http://goo.gl/QTTAK target=1&gt;loaded it up with Ubuntu Notebook Remix&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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 &amp; 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.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-707423259716402167?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/707423259716402167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/google-chrome-revitalizes-netbook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/707423259716402167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/707423259716402167'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/google-chrome-revitalizes-netbook.html' title='Google Chrome Revitalizes a Netbook'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-444113398659363931</id><published>2011-05-01T15:15:00.000-07:00</published><updated>2011-05-01T15:15:27.547-07:00</updated><title type='text'>OBI 110 and VOIP Fun</title><content type='html'>I've always been a late adopter with VOIP technologies and never used it until we &lt;a href=http://goo.gl/0Ndnb target=0&gt;switched over to MagicJack&lt;/a&gt; a couple years ago.  I never even played with Asterisk until last November, when I &lt;a href=http://goo.gl/yioxZ target=1&gt;added it to a hacked Dockstar&lt;/a&gt;.  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 &lt;a href=http://goo.gl/vugS1 target=2&gt;others&lt;/a&gt;.  I finally got one a couple weeks ago.   &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-444113398659363931?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/444113398659363931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/obi-110-and-voip-madness.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/444113398659363931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/444113398659363931'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/05/obi-110-and-voip-madness.html' title='OBI 110 and VOIP Fun'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5395871434718635482</id><published>2011-04-06T12:32:00.000-07:00</published><updated>2011-04-06T12:32:58.286-07:00</updated><title type='text'>OSMO to the Rescue</title><content type='html'>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!&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5395871434718635482?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5395871434718635482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/04/osmo-to-rescue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5395871434718635482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5395871434718635482'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/04/osmo-to-rescue.html' title='OSMO to the Rescue'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1059885644579697232</id><published>2011-04-04T07:12:00.000-07:00</published><updated>2011-04-04T07:12:55.106-07:00</updated><title type='text'>SageTV 7 Upgrade</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1059885644579697232?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1059885644579697232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/04/sagetv-7-upgrade.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1059885644579697232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1059885644579697232'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/04/sagetv-7-upgrade.html' title='SageTV 7 Upgrade'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-433565871633106354</id><published>2011-03-28T10:20:00.000-07:00</published><updated>2011-03-28T10:20:45.283-07:00</updated><title type='text'>xPL SageTV Plug "out"</title><content type='html'>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 &lt;a href=http://goo.gl/P9fFc target=0&gt;SageTCPServer&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-433565871633106354?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/433565871633106354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/xpl-sagetv-plug-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/433565871633106354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/433565871633106354'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/xpl-sagetv-plug-out.html' title='xPL SageTV Plug &quot;out&quot;'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5349431556920974389</id><published>2011-03-24T12:28:00.000-07:00</published><updated>2011-03-24T12:28:11.798-07:00</updated><title type='text'>SageTV Server Upgrade</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5349431556920974389?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5349431556920974389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/sagetv-server-upgrade.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5349431556920974389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5349431556920974389'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/sagetv-server-upgrade.html' title='SageTV Server Upgrade'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4083379480202181730</id><published>2011-03-23T11:49:00.000-07:00</published><updated>2011-05-01T14:10:35.449-07:00</updated><title type='text'>Solar Update - 1 Year of Green Electricity</title><content type='html'>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 &lt;a href=http://goo.gl/LEzKy target=0&gt;in this post&lt;/a&gt;) 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.&lt;br /&gt;&lt;br /&gt;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 (&lt;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 &lt;s&gt;8.3%&lt;/s&gt; 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!&lt;br /&gt;&lt;br /&gt;If you're thinking about going solar, I strongly encourage you to really look into it.  Get a few providers to come out &amp; 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.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4083379480202181730?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4083379480202181730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/solar-update-1-year-of-green.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4083379480202181730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4083379480202181730'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/solar-update-1-year-of-green.html' title='Solar Update - 1 Year of Green Electricity'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3852597137732436809</id><published>2011-03-12T16:57:00.000-08:00</published><updated>2011-03-12T16:57:20.119-08:00</updated><title type='text'>Panel Builder Screenshot</title><content type='html'>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:&lt;br /&gt;&lt;blockquote&gt;$chumbyName=$_REQUEST['chumby'];&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dzRFSVOVoxE/TXwWVcO0_vI/AAAAAAAAAVM/hj8pqoGYoIQ/s1600/fb0.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/-dzRFSVOVoxE/TXwWVcO0_vI/AAAAAAAAAVM/hj8pqoGYoIQ/s200/fb0.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3852597137732436809?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3852597137732436809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/panel-builder-screenshot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3852597137732436809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3852597137732436809'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/panel-builder-screenshot.html' title='Panel Builder Screenshot'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dzRFSVOVoxE/TXwWVcO0_vI/AAAAAAAAAVM/hj8pqoGYoIQ/s72-c/fb0.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5078542490851848352</id><published>2011-03-10T16:35:00.000-08:00</published><updated>2011-03-10T16:35:31.505-08:00</updated><title type='text'>Gesture Control in Panel Builder</title><content type='html'>I've been playing around with gestures to control actions in Panel Builder.  &lt;a href=http://goo.gl/cZSBG target=0&gt;Here's a demo&lt;/a&gt; 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 &amp; vertical action are executed, but I'll probably filter that out and make diagonal swipes unique actions.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5078542490851848352?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5078542490851848352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/gesture-control-in-panel-builder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5078542490851848352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5078542490851848352'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/gesture-control-in-panel-builder.html' title='Gesture Control in Panel Builder'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-418775926985958138</id><published>2011-03-02T10:08:00.000-08:00</published><updated>2011-03-02T10:08:03.853-08:00</updated><title type='text'>Doghouse Labs Announces Our First Donor...Ever</title><content type='html'>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 &lt;a href=http://www.eventghost.net target=0&gt;EventGhost&lt;/a&gt; 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 &lt;a href=http://en.wikipedia.org/wiki/Pay_it_forward target=pay&gt;"Pay it forward"&lt;/a&gt; by purchasing a Silver membership at &lt;a href=http://www.cocoontech.com target=ct&gt;Cocoontech.com&lt;/a&gt;.  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 &amp; money.&lt;br /&gt;&lt;br /&gt;Once again, thank you Walter Krämbring!&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-418775926985958138?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/418775926985958138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/doghouse-labs-announces-our-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/418775926985958138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/418775926985958138'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/03/doghouse-labs-announces-our-first.html' title='Doghouse Labs Announces Our First Donor...Ever'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-578468135823691733</id><published>2011-02-27T18:01:00.000-08:00</published><updated>2011-02-27T18:01:51.312-08:00</updated><title type='text'>Announcing xPLChumbyTTS</title><content type='html'>I've modified our xPLAudreyTTS application to send TTS to your Chumby or Insignia Infocast. Visit our website &lt;a href=http://goo.gl/OLaxB target=0&gt;for details&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-578468135823691733?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/578468135823691733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/announcing-xplchumbytts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/578468135823691733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/578468135823691733'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/announcing-xplchumbytts.html' title='Announcing xPLChumbyTTS'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4942801530898947697</id><published>2011-02-26T12:34:00.000-08:00</published><updated>2011-02-27T21:54:19.327-08:00</updated><title type='text'>Free Software...What's It Worth To You?</title><content type='html'>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 &lt;a href=http://goo.gl/atNpK target=0&gt;software&lt;/a&gt;.  Lately, I've invested a lot of my free time into writing my &lt;a href=http://goo.gl/4JK78 target=1&gt;Panel Builder&lt;/a&gt; app for the Chumby platform.  &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;i&gt;my time&lt;/i&gt;). 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 &amp; flexible control panels - all for free.  I'm debating whether to stop adding new features and just doing bug fixes from now on.    &lt;br /&gt;&lt;br /&gt;However, there are more features I think that could go in to make Panel Builder even more useful.  A few of them:&lt;br /&gt;- Built in slideshow screensaver pulling photos off your network&lt;br /&gt;- Updating status labels for displaying temperatures, song tracks, etc.&lt;br /&gt;- Ability to add a webcam view to a screen&lt;br /&gt;&lt;br /&gt;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 &lt;i&gt;ever&lt;/i&gt; clicked the &lt;a href=http://www.doghouselabs.com/software/index.cgi target=donate&gt;Donate&lt;/a&gt; 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?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4942801530898947697?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4942801530898947697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/free-softwareor-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4942801530898947697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4942801530898947697'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/free-softwareor-not.html' title='Free Software...What&apos;s It Worth To You?'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7538971407520679354</id><published>2011-02-15T08:13:00.000-08:00</published><updated>2011-02-15T08:14:24.931-08:00</updated><title type='text'>Another Chumby App Preview - Real Time Power Monitor</title><content type='html'>Here's a &lt;a href=http://goo.gl/99zUz target=0&gt;short video&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;The Brultech monitor has 7 channels and is interfaced to using a custom VBScript running in our &lt;a href=http://goo.gl/VMdRq target=1&gt;xPLSerial&lt;/a&gt; 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 &lt;a href=http://goo.gl/0e3jZ target=2&gt;xPLGPower&lt;/a&gt; app, which connects to Google's PowerMeter.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7538971407520679354?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7538971407520679354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/another-infocast-app-preview-real-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7538971407520679354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7538971407520679354'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/another-infocast-app-preview-real-time.html' title='Another Chumby App Preview - Real Time Power Monitor'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7333206283575337378</id><published>2011-02-14T13:00:00.000-08:00</published><updated>2011-02-14T13:03:30.066-08:00</updated><title type='text'>Dear Google, Am I Really Getting A Cr-48?</title><content type='html'>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 &lt;a href=http://goo.gl/nAZLO target=0&gt;here&lt;/a&gt;.)  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 &lt;i&gt;If you are receiving this email and have not yet received a Cr-48, you should be hearing from us soon.&lt;/i&gt;  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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7333206283575337378?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7333206283575337378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/dear-google-am-i-really-getting-cr-48.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7333206283575337378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7333206283575337378'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/dear-google-am-i-really-getting-cr-48.html' title='Dear Google, Am I Really Getting A Cr-48?'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1118025300907042273</id><published>2011-02-03T21:51:00.000-08:00</published><updated>2011-02-03T21:51:27.576-08:00</updated><title type='text'>Learning How to Embed Graphics in Flash</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_6j7jH_mJZvQ/TUuSZku1g9I/AAAAAAAAAUk/CUy0BTbYds8/s1600/avpanel.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="150" width="200" src="http://1.bp.blogspot.com/_6j7jH_mJZvQ/TUuSZku1g9I/AAAAAAAAAUk/CUy0BTbYds8/s200/avpanel.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;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 &lt;a href=http://goo.gl/5PXmW target=0&gt;GUI ja Board&lt;/a&gt;.  I created the "HOME" button by using the blank button provided in the set and a little tinkering in &lt;a href=http://www.gimp.org target=g&gt;GIMP&lt;/a&gt;.  And the requisite &lt;a href=http://goo.gl/zyzvL target=v&gt;short video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1118025300907042273?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1118025300907042273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/learning-how-to-embed-graphics-in-flash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1118025300907042273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1118025300907042273'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/02/learning-how-to-embed-graphics-in-flash.html' title='Learning How to Embed Graphics in Flash'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6j7jH_mJZvQ/TUuSZku1g9I/AAAAAAAAAUk/CUy0BTbYds8/s72-c/avpanel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8392389441697231696</id><published>2011-01-31T07:57:00.000-08:00</published><updated>2011-02-14T08:17:23.033-08:00</updated><title type='text'>Panel Builder for Insignia Infocast</title><content type='html'>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 &lt;a href=http://goo.gl/ZOZer target=0&gt;sample XML file&lt;/a&gt; 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 &amp; 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 &lt;a href=http://goo.gl/AB0mE target=1&gt;here&lt;/a&gt;.  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 &lt;a href=http://goo.gl/cM5Ex target=u&gt;YouTube video&lt;/a&gt; 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).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KJc2ZQ_W6uA/TVlVfBB_crI/AAAAAAAAAUs/G9cNdZXzf6A/s1600/pb1.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="156" width="200" src="http://3.bp.blogspot.com/-KJc2ZQ_W6uA/TVlVfBB_crI/AAAAAAAAAUs/G9cNdZXzf6A/s200/pb1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you find this useful, &lt;a href=http://doghouselabs.com/software target=don&gt;donations&lt;/a&gt; are greatly appreciated :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Panel Builder was just approved 2/1 and is now &lt;a href=http://goo.gl/mxrno target=now&gt;available from the Chumby website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8392389441697231696?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8392389441697231696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/panel-builder-for-insignia-infocast.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8392389441697231696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8392389441697231696'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/panel-builder-for-insignia-infocast.html' title='Panel Builder for Insignia Infocast'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-KJc2ZQ_W6uA/TVlVfBB_crI/AAAAAAAAAUs/G9cNdZXzf6A/s72-c/pb1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6623697287573273115</id><published>2011-01-16T18:35:00.000-08:00</published><updated>2011-01-18T09:55:29.102-08:00</updated><title type='text'>First Flash App - SageTV Controller on Insignia Infocast</title><content type='html'>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 &lt;a href=http://goo.gl/x7Tyl target=0&gt;Chumby2MPD sample code&lt;/a&gt; and the &lt;a href=http://goo.gl/Qt8Hq target=1&gt;FlashDevelop package&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;Here's a screenshot of the interface on the Infocast:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_6j7jH_mJZvQ/TTOpzLUqYqI/AAAAAAAAATo/7LKKF7r3MeQ/s1600/P1000992.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="150" width="200" src="http://4.bp.blogspot.com/_6j7jH_mJZvQ/TTOpzLUqYqI/AAAAAAAAATo/7LKKF7r3MeQ/s200/P1000992.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And &lt;a href=http://goo.gl/jrfXD target=2&gt;here's a video&lt;/a&gt; of it in action.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6623697287573273115?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6623697287573273115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/first-flash-app-sagetv-controller-on.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6623697287573273115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6623697287573273115'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/first-flash-app-sagetv-controller-on.html' title='First Flash App - SageTV Controller on Insignia Infocast'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6j7jH_mJZvQ/TTOpzLUqYqI/AAAAAAAAATo/7LKKF7r3MeQ/s72-c/P1000992.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3066098185930375178</id><published>2011-01-10T10:37:00.000-08:00</published><updated>2011-01-10T10:38:35.435-08:00</updated><title type='text'>Samsung Epic 4G, What I Don't Like</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;- 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 &amp; Samsung are really lagging on this. By the time Froyo hits for the Epic, it'll be time to upgrade to Gingerbread.&lt;br /&gt;- 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.&lt;br /&gt;- 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?&lt;br /&gt;- 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 &lt;a href=http://goo.gl/VE1OA target=lat&gt;my Latitude tracking&lt;/a&gt;.&lt;br /&gt;- 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.&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3066098185930375178?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3066098185930375178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/samsung-epic-4g-1-week-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3066098185930375178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3066098185930375178'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2011/01/samsung-epic-4g-1-week-review.html' title='Samsung Epic 4G, What I Don&apos;t Like'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1069722591753765205</id><published>2010-12-28T21:15:00.000-08:00</published><updated>2010-12-28T21:15:18.395-08:00</updated><title type='text'>Most Downloaded of 2010</title><content type='html'>It's not quite year end, but close enough.  So following on &lt;a href=http://doghouselabs.blogspot.com/2009/12/most-downloaded-of-2009.html target=0&gt;last year's list&lt;/a&gt;, here's this year's version:&lt;br /&gt;&lt;br /&gt;1. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=EventGhost+xPL+Plugin target=1&gt;EventGhost xPL Plugin&lt;/a&gt; - 161 times&lt;br /&gt;2. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=BlueTracker target=2&gt;BlueTracker&lt;/a&gt; - 110 &lt;br /&gt;3. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=misc&amp;app=BlueTrackerScript target=3&gt;BlueTrackerScript&lt;/a&gt; - 74&lt;br /&gt;4. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xScript target=4&gt;xScript&lt;/a&gt; - 38&lt;br /&gt;5. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=misc&amp;app=t2mp3 target=5&gt;t2mp3&lt;/a&gt; - 35&lt;br /&gt;6. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLWebControl target=6&gt;xPLWebControl&lt;/a&gt; - 33&lt;br /&gt;7. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSerial target=7&gt;xPLSerial&lt;/a&gt; - 26&lt;br /&gt;8. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLGameport2 target=8&gt;xPLGameport2&lt;/a&gt; - 23&lt;br /&gt;9. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=Blabber target=9&gt;Blabber&lt;/a&gt; - 20&lt;br /&gt;10. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSys target=10&gt;xPLSys&lt;/a&gt; - 15&lt;br /&gt;10. &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPL+Plugin+for+SageTV target=11&gt;xPL Plugin for SageTV6&lt;/a&gt; - 15&lt;br /&gt;&lt;br /&gt;The EventGhost xPL plugin is still the top download of the year...by far, but the gap is considerably smaller between it and #2 on the list.  Bluetooth tracking was very popular this year with the xPL version of BlueTracker #2 and the scripting version #3.  The rest of the list were far behind the top 3.  This year's top 10 list totaled over 500 downloads compared to 289 for last year's list.  It's good to see we've reached more users this year, and if you've found our software useful, &lt;a href=http://doghouselabs.com/software target=donate&gt;click the donate button&lt;/a&gt; on our software page.  Thanks for your support!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1069722591753765205?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1069722591753765205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/most-downloaded-of-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1069722591753765205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1069722591753765205'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/most-downloaded-of-2010.html' title='Most Downloaded of 2010'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5775268471435663675</id><published>2010-12-15T06:56:00.000-08:00</published><updated>2010-12-15T06:56:21.588-08:00</updated><title type='text'>New Toy: Insignia Infocast</title><content type='html'>It's not really that new, as I've had one for a week already but haven't gotten around to blogging about it.  The &lt;a href=http://goo.gl/i7dx7 target=0&gt;Infocast&lt;/a&gt; is a Chumby based device with an 8" color touchscreen.  It's Linux based and it has all the potential to be a great hacking device, potentially replacing our 3Com Audreys that have served us well for a decade now.  There is already a hack to &lt;a href=http://goo.gl/efOoB target=1&gt;get a browser running&lt;/a&gt;, but it needs work.  There are supposed efforts to get Android running on it as well.  We'll see how it develops.  I got 2 at the recent $79 sale price in anticipation. &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5775268471435663675?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5775268471435663675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/new-toy-insignia-infocast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5775268471435663675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5775268471435663675'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/new-toy-insignia-infocast.html' title='New Toy: Insignia Infocast'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6804630685853032002</id><published>2010-12-04T21:23:00.000-08:00</published><updated>2010-12-04T21:23:36.046-08:00</updated><title type='text'>More Asterisk Fun</title><content type='html'>I put a phone in each kid's room connected to the PAP2T, and I set up &lt;a href=http://goo.gl/KTkCR target=0&gt;Blink&lt;/a&gt; softphones on my &amp; my wife's laptops (which are almost always on when we're home).  Now we have a simple intercom system running.  The kids (7 &amp; 9) are really enjoying the novelty of having phones in their rooms.  Now, I just need a softphone out in the garage.  I have a Dockstar out in the garage that I'm using for a special automation project which I'll discuss when it's further along.  Since it's a headless client, I need a command-line softphone for Linux.  I figure I'd control it with a gamepad, using the buttons to dial preset numbers and a USB soundcard for the mic &amp; speaker.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6804630685853032002?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6804630685853032002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/more-asterisk-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6804630685853032002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6804630685853032002'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/12/more-asterisk-fun.html' title='More Asterisk Fun'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1703855724617431949</id><published>2010-11-27T16:01:00.000-08:00</published><updated>2010-11-27T16:06:00.475-08:00</updated><title type='text'>Dockstar Now a PBX</title><content type='html'>I just finished configuring dock #1 to be a PBX.  The recently acquired Linksys PAP2T has 2 phone jacks, and each is configured as an extension in Asterisk.  I used &lt;a href=http://goo.gl/aVung target=0&gt;this link&lt;/a&gt; to configure it to use &lt;a href=http://www.sipgate.com target=1&gt;Sipgate&lt;/a&gt; (free incoming calls) as the incoming call provider.  Google Voice is used for dialing out. It does this by calling the number that was dialed, then calling the configured incoming number (Sipgate) and connecting the two.  All for the price of free.  This isn't going to be our main landline since we already have MagicJack.  Instead it's going to be used mainly as an in-house intercom system.  So, now dock #1 runs Asterisk, Motion, bluetooth proximity and contact closure over IP.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1703855724617431949?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1703855724617431949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-now-pbx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1703855724617431949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1703855724617431949'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-now-pbx.html' title='Dockstar Now a PBX'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3113673755996738045</id><published>2010-11-26T10:48:00.000-08:00</published><updated>2010-11-26T10:48:57.603-08:00</updated><title type='text'>Dockstar Surveillance</title><content type='html'>I finally stopped being lazy and finished up deploying 2 Dockstars.  The first one has been set to replace a HP T5700 thin client that was mainly being used with xPLGameport for contact closure over IP.  I connected the T5700's gameport to the Dockstar and it was plug &amp; play.  It's also running as a bluetooth proximity sensor and a webcam interface using the cheap (and often hated) $9 EasyCap USB video adapter which I got from &lt;a href=http://goo.gl/NZaoM target=0&gt;Amazon.&lt;/a&gt;  I used these &lt;a href=http://goo.gl/Vcdp3 target=2&gt;drivers&lt;/a&gt; and installation was a breeze.  I'm using &lt;a href=http://goo.gl/JC4Dx target=3&gt;Motion&lt;/a&gt; to provide a webcam interface.  Right now, it's connected to one of my old, unused surveillance cameras.  Finally, I found a &lt;a href=http://goo.gl/2lMXL target=4&gt;Linksys PAP2T&lt;/a&gt; on Craiglist for $15.  I've installed Asterisk on this dock and want to use it to set up an intercom so we can call the kids from downstairs.  I may do some VOIP integration.  We'll see how far I get with that.&lt;br /&gt;&lt;br /&gt;The 2nd dock is also being used as a webcam with Motion and another old camera.  This one I'm actually using the motion detection to generate events when an area has activity.  Motion divides a screen into 9 zones and I've specified 2 of them.  It's sending out xPL messages with xPL Perl's xpl-sender app.  It works really well, much better than the motion sensor I have in that location, which picks up bushes blowing in the wind.  It also has a bluetooth dongle.&lt;br /&gt;&lt;br /&gt;I also picked up a couple WRT54G routers from Craigslist, loaded them with Tomato firmware and I'm using them as bridges for the cheap Squeezeboxes I found earlier.  Since the gen 1 squeezeboxes don't support WPA, I needed the bridges so I wouldn't have to run a router with WEP "security".&lt;br /&gt;&lt;br /&gt;Finally, there is no Black Friday aftermath this year for me.  Surprisingly, there really wasn't anything I wanted to get.  It's the first time in many years where I didn't get up at 3AM to do some online shopping or hit stores in the wee hours of the morning.  I do want to upgrade our cellphones, but there's no hurry.  Plus, I'm holding out for some decent Android tablets.  The Pandigital Novel got returned again as I just couldn't stand how slow it was, even for $80.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3113673755996738045?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3113673755996738045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-surveillance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3113673755996738045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3113673755996738045'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-surveillance.html' title='Dockstar Surveillance'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3997925644431397833</id><published>2010-11-07T21:39:00.000-08:00</published><updated>2010-11-07T21:39:01.665-08:00</updated><title type='text'>Dockstar USB Sound Tip</title><content type='html'>Just wanted to add a quick post with some of the problems I had with getting a USB soundcard working reliably after rebooting the dock.  Make sure to install alsa-base and the supporting modules using apt-get.  Also, in /etc/modprobe.d/alsa-base.conf, look for the line that says &lt;i&gt;options snd-usb-audio index&lt;/i&gt; and change its value from -2 to -1.  This makes sure it will assign the USB device as soundcard 1.  Otherwise, you may have issues with applications like mpg123 using it.  Another thing that may cause problems for you is a missing /dev/dsp.  Squeezeslave needs this to work.  I found a site that said to do &lt;i&gt;apt-get install oss-compat&lt;/i&gt;.  I did this, the install won't work, but /dev/dsp gets created.  Hope this helps some avoid headaches getting sound working.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3997925644431397833?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3997925644431397833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-usb-sound-tip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3997925644431397833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3997925644431397833'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/dockstar-usb-sound-tip.html' title='Dockstar USB Sound Tip'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7780617721752221834</id><published>2010-11-02T19:36:00.000-07:00</published><updated>2010-11-02T21:35:33.795-07:00</updated><title type='text'>My Now Daily Dockstar Update</title><content type='html'>I've now gotten Bluetooth proximity working.  It appears the xPL-bluetooth code isn't right so I've made my own changes and now it works.  Also, after installing mpg123, the dock is now an MP3 player.  It was using about 50% of the CPU and sounded pretty bad until I found &lt;a href=http://goo.gl/ZChd4 target=1&gt;this post&lt;/a&gt;.  I made the suggested changes and the CPU utilization dropped to 2-3% and it sounds just fine.  I also installed the Squeezebox emulator &lt;a href=http://goo.gl/tWYJH target=9&gt;Squeezeslave&lt;/a&gt; (there is a native binary) and it works great.  I can stream last.fm to it, but Pandora refuses to stream to Squeezeslave (a old, known issue).&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7780617721752221834?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7780617721752221834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/my-now-daily-dockstar-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7780617721752221834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7780617721752221834'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/my-now-daily-dockstar-update.html' title='My Now Daily Dockstar Update'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3926853341613362724</id><published>2010-11-01T20:48:00.000-07:00</published><updated>2010-11-01T21:29:24.491-07:00</updated><title type='text'>Voice Recognition on the Dockstar??</title><content type='html'>Yup.  It works too!  I've connected an old USB SoundBlaster to the Dockstar and installed &lt;a href=http://goo.gl/RZ7n target=0&gt;Sphinx&lt;/a&gt;, an open source VR program.  Installation was straight forward and worked right away.  VR is a little much for the Dockstar, especially long sentences, which can peg the CPU at nearly 100% for a few seconds.  Simple commands, however, work fairly well.  Hopefully, I can find out how to restrict the subset of VR commands to reduce the load on the CPU.  In any case, it's a great start.&lt;br /&gt;&lt;br /&gt;However, I didn't have much luck getting bluetooth proximity working with xpl-perl's xpl-bluetooth.  My testing with webcams was mixed.  I have 1 UVC camera and 2 old Logitechs and none of them would come up using &lt;a href=http://goo.gl/IU7gs target=1&gt;mjpg-streamer&lt;/a&gt; and one of the Logitechs worked with &lt;a href=http://goo.gl/JC4Dx target=2&gt;motion&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I ended up ordering 2 more Dockstars.  In the meantime, I'm going to keep playing around with Sphinx.  Oh, and how about those World Series Champion San Francisco Giants!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3926853341613362724?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3926853341613362724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/voice-recognition-on-dockstar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3926853341613362724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3926853341613362724'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/11/voice-recognition-on-dockstar.html' title='Voice Recognition on the Dockstar??'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5065683434040075012</id><published>2010-10-31T10:27:00.000-07:00</published><updated>2010-10-31T11:00:12.107-07:00</updated><title type='text'>xPL Dockstar</title><content type='html'>Installing xPL-Perl was uneventful.  I wanted to install the Linux::Joystick package for Perl, but that required make and some other Linux tools.  That wasn't much of a problem since using apt-get to install everything worked flawlessly.  Installation was quick and the joystick package compiled fairly fast.  Even installing the full Emacs distribution was easy.  This is unlike my experience with the Linksys NSLU2 (aka slug), which has a processor that's 4.5 times slower than the Dock.  With Linux::Joystick installed, a cheap $5 USB gamepad from DealExtreme and a free 4GB flash drive, I now have a $30, 10 input IP based contact closure device. Best of all, it uses only 3 watts of power.  I am contemplating replacing my 2 Slugs with Docks and maybe getting a few more to have just in case I find something to use them for - so you better buy some before I do! ;)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5065683434040075012?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5065683434040075012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xpl-dockstar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5065683434040075012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5065683434040075012'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xpl-dockstar.html' title='xPL Dockstar'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1128105618562526523</id><published>2010-10-30T11:26:00.000-07:00</published><updated>2010-10-30T11:26:13.168-07:00</updated><title type='text'>New Toy - Seagate Dockstar</title><content type='html'>Just received the Seagate Dockstar that I got for &lt;a href=http://goo.gl/FO6M target=0&gt;$25 shipped&lt;/a&gt;.  It's another one of those devices looking for a problem.  Not exactly sure what I'm going to use it for, but it's getting hacked first.  I've installed Debian on it via &lt;a href=http://goo.gl/cXGh target=1&gt;this method&lt;/a&gt;.  Obviously, the first thing I'm going to try to get running on it is xPL and xPL-Perl looks like the way to go.&lt;br /&gt;&lt;br /&gt;I also just received a Pandigital Novel 7" EReader/Android tablet.  This is my second go-round with this device.  I did buy it when it first came out and played around with it, but ultimately returned it as it's a bit sluggish.  Since then, there's been a lot of work done on custom firmware mods that may make it a little more bearable.  So, that's something I plan on testing out on it.  I got it from Kohl's for about $85+tax.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1128105618562526523?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1128105618562526523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/new-toy-seagate-dockstar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1128105618562526523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1128105618562526523'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/new-toy-seagate-dockstar.html' title='New Toy - Seagate Dockstar'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4077597544922608553</id><published>2010-10-24T13:31:00.000-07:00</published><updated>2010-10-24T13:31:20.466-07:00</updated><title type='text'>xPLGMail Now Sends Mail</title><content type='html'>The next logical evolution for xPLGMail is to expand from checking to sending email.  Version 1.1 does just this and is available now.  Now, you don't need to install an SSL gateway like Stunnel to send short email messages through GMail - just issue an xPL command to xPLGMail and it takes care of the rest.  More details available &lt;a href=http://goo.gl/RhBD target=1&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4077597544922608553?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4077597544922608553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgmail-now-sends-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4077597544922608553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4077597544922608553'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgmail-now-sends-mail.html' title='xPLGMail Now Sends Mail'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2066285292344608625</id><published>2010-10-16T13:04:00.000-07:00</published><updated>2010-10-16T13:04:19.124-07:00</updated><title type='text'>xPLGPower - Interface to Google powermeter Released</title><content type='html'>I've released &lt;a href=http://goo.gl/N918 target=0&gt;xPLGPower&lt;/a&gt;, which lets you upload your power measurements to Google powermeter using simple xPL control.basic messages.  Check it out and &lt;a href=http://www.doghouselabs.com/software/index.cgi target=1&gt;donate&lt;/a&gt; if you like it :)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2066285292344608625?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2066285292344608625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgpower-interface-to-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2066285292344608625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2066285292344608625'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgpower-interface-to-google.html' title='xPLGPower - Interface to Google powermeter Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4252157306498499493</id><published>2010-10-12T18:45:00.000-07:00</published><updated>2010-10-12T18:45:59.680-07:00</updated><title type='text'>xPLGMail Application Released</title><content type='html'>I had &lt;a href=http://goo.gl/s8jq target=0&gt;originally hacked&lt;/a&gt; up a Python script to use as a GMail notifier.  I finally decided to write an app to do it instead.  The app will check up to 5 accounts.  Version 1.0 is &lt;a href=http://goo.gl/RhBD target=2&gt;available here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4252157306498499493?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4252157306498499493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgmail-application-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4252157306498499493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4252157306498499493'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/xplgmail-application-released.html' title='xPLGMail Application Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3076556512145764694</id><published>2010-10-09T12:00:00.000-07:00</published><updated>2010-10-09T12:00:50.529-07:00</updated><title type='text'>Consolidation and Clean Up</title><content type='html'>It's been about 10 years since I started using the first beta copies of StarCOM with our home automation system.  That was when I learned how to build ASP pages to communicate with StarCOM.  About 3 years ago, I started building our floorplan GUI using AJAX and MySQL, which required running Apache web server.  So the last few years I've had Apache and IIS running, but this week, I decided it's time to get rid of the ASP stuff.  I've been converting 10 years worth of ASP pages (it's not really &lt;i&gt;that&lt;/i&gt; much) over to CGIs running on Apache.  Last night, I finished converting all the heavily used ASP pages and pulled the plug on IIS.  As a result, the server gained about 100-150 MB of free RAM in addition to a little more stability and simplicity.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3076556512145764694?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3076556512145764694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/consolidation-and-clean-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3076556512145764694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3076556512145764694'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/10/consolidation-and-clean-up.html' title='Consolidation and Clean Up'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-946397899078267152</id><published>2010-09-26T21:20:00.000-07:00</published><updated>2010-09-26T21:20:19.639-07:00</updated><title type='text'>A Productive Weekend Home Sick</title><content type='html'>I spent the weekend cooped up inside with a cold, but I actually got some things done.  The wife's laptop was hit by a drive-by virus, so I took the drastic measure of installing Ubuntu on it.  She doesn't actually use any Windows apps and all her docs are done on Google Docs anyway.  I set up all her Windows shares with CIFS and installed her printer driver and that's all she needs.  She seems happy with it.  I liked it so much I loaded my old Acer Aspire One netbook with Ubuntu Netbook Remix.  The kids' netbook has already been running a flavor of Ubuntu - they've been using Jolicloud on their Dell Mini 10.  So it was easy to add the printer driver and network shares to their machine.  I don't really like Jolicloud a whole lot, especially since version 1.0 seems to have slowed everything down.  I would have preferred Ubuntu Netbook Remix, but for some reason, it can't deal with the Dell Mini's graphics chip.  Jolicloud works flawlessly with the Mini's graphics and even supports an external monitor.  Couldn't do that with the Remix.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-946397899078267152?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/946397899078267152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/productive-weekend-home-sick.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/946397899078267152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/946397899078267152'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/productive-weekend-home-sick.html' title='A Productive Weekend Home Sick'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5351122025279256154</id><published>2010-09-20T20:47:00.000-07:00</published><updated>2010-09-20T20:47:06.729-07:00</updated><title type='text'>xPLGVoice is Out</title><content type='html'>Ok, I've decided to toss it to the masses.  Go get &lt;a href=http://bit.ly/bvpKMe target=0&gt;it!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5351122025279256154?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5351122025279256154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/xplgvoice-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5351122025279256154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5351122025279256154'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/xplgvoice-is-out.html' title='xPLGVoice is Out'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5928398078520624583</id><published>2010-09-20T08:33:00.000-07:00</published><updated>2010-09-20T08:34:01.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>Quick Post - xPLGVoice Preview</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_6j7jH_mJZvQ/TJd-W2s1LsI/AAAAAAAAATI/rQR8qn-0Hpc/s1600/gv.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_6j7jH_mJZvQ/TJd-W2s1LsI/AAAAAAAAATI/rQR8qn-0Hpc/s320/gv.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Here's a quick screenshot of my new xPLGVoice app.  It allows control of some aspects of Google Voice via xPL messages - specifically, sending SMS, initiating calls and enabling/disabling your forwarding numbers.  I hope to release it soon.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5928398078520624583?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5928398078520624583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/quick-post-xplgvoice-preview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5928398078520624583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5928398078520624583'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/quick-post-xplgvoice-preview.html' title='Quick Post - xPLGVoice Preview'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6j7jH_mJZvQ/TJd-W2s1LsI/AAAAAAAAATI/rQR8qn-0Hpc/s72-c/gv.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2173285631415338540</id><published>2010-09-18T13:33:00.000-07:00</published><updated>2010-09-18T13:33:22.366-07:00</updated><title type='text'>BlueBlabber Released</title><content type='html'>The first release of our hybrid bluetooth tracker with IM is available &lt;a href=http://bit.ly/9WTfgH target=0&gt;here&lt;/a&gt;.  Follow the link for more information.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2173285631415338540?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2173285631415338540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/blueblabber-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2173285631415338540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2173285631415338540'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/blueblabber-released.html' title='BlueBlabber Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3652152869878323021</id><published>2010-09-14T21:39:00.000-07:00</published><updated>2010-09-14T21:39:11.203-07:00</updated><title type='text'>BlueBlabber Coming</title><content type='html'>I just wanted to post an update on something new I'm working on called BlueBlabber.  I &lt;a href=http://twitter.com/doghouselabs target=0&gt;tweeted&lt;/a&gt; about it earlier today.  It's a bluetooth proximity app like &lt;a href=http://bit.ly/8zw3eb target=1&gt;BlueTracker&lt;/a&gt; and &lt;a href=http://bit.ly/8Rhb6B target=2&gt;BlueTrackerScript&lt;/a&gt;.  BlueBlabber mixes BlueTracker and &lt;a href=http://bit.ly/dnUmt5 target=3&gt;Blabber&lt;/a&gt; together, removing the xPL component, and communicating via IM.&lt;br /&gt;&lt;br /&gt;I built this to use at work.  At my previous job, I used BlueTrackerScript and scripted up HTTP GETs to my webserver - one URL for when it detects my phone and another for when my phone disappears.  I figured I'd try out this method since I've been IMing status between homes.  I've been tweaking it the last couple days and I should be releasing it shortly.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3652152869878323021?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3652152869878323021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/blueblabber-coming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3652152869878323021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3652152869878323021'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/blueblabber-coming.html' title='BlueBlabber Coming'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6123156711285988685</id><published>2010-09-13T20:44:00.000-07:00</published><updated>2010-09-13T20:48:42.329-07:00</updated><title type='text'>EventGhost Disappearing From Our System</title><content type='html'>Given my latest effort to bridge our remote network via IM, I've started scaling back our usage of EventGhost on the remote thin client and our HA server.  This weekend, I started converting the automation code on the remote thin client over to &lt;a href=http://bit.ly/9DxXSA target=0&gt;xScript&lt;/a&gt;.  I've had it running overnight and it's been working so well I've shutdown EG.  It hasn't been running on the HA server for a few weeks since I extracted the network sender/receiver plugins to Python scripts.  The server actually seems more stable.  I've always suspected EG of having memory leaks that force me to reboot the HA server and remote thin client periodically.  At one point, I had 3 machines running EG and now I don't have any.  EG is also facing an uncertain future as the developer is planning to stop work on it, and now seems like a good time to transition away.  This also means I will probably stop maintaining the xPL plugin.  There aren't any outstanding problems with it and I haven't touched it in over a year, so it's not a  big deal.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6123156711285988685?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6123156711285988685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/eventghost-disappearing-from-our-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6123156711285988685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6123156711285988685'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/eventghost-disappearing-from-our-system.html' title='EventGhost Disappearing From Our System'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6462214192789077518</id><published>2010-09-08T21:51:00.000-07:00</published><updated>2010-09-08T21:51:47.205-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>Bridging xPL Revisited</title><content type='html'>I originally talked about bridging xPL across the Internet using EventGhost &lt;a href=http://bit.ly/d22Z7a target=0&gt;in this post&lt;/a&gt;.  More recently, I wrote about pulling the sender/receiver plugins out of EventGhost &lt;a href=http://bit.ly/dvHeqU target=1&gt;here&lt;/a&gt;.  I did that but haven't gotten around to cleaning up the code.  The problem with either of solution is that it's not very secure, so I've always tunneled them through SSH.  If either Internet connection goes down, I have to manually restart the SSH session (since leaving my password and keys lying around so I can automate the login probably isn't a good idea).&lt;br /&gt;&lt;br /&gt;Instead, I've decided to bridge the connection using IM with our &lt;a href=http://bit.ly/dnUmt5 target=2&gt;Blabber&lt;/a&gt; app.  I just set up 2 GMail accounts, one for each house, and added one to the other's chat list and fired up the local and remote Blabber apps.  I wrote a script to capture certain xPL messages and embed them in an xPL message sent to Blabber.  On the receiving end, the xPL message generated by Blabber is parsed out in my xPLSCU scripting engine.&lt;br /&gt;&lt;br /&gt;The big advantage is there's no need to manually set up SSH tunnels as the messages go over Google's chat server encrypted with TLS.  If the link goes down, Blabber will just keep trying to send messages until the link comes back up.  No manual intervention necessary.  I've had it running for a day now and it seems to be working out well.  I've already had the remote ISP connection go down for about an hour, and when the cable modem was automatically restarted, the Blabber conversations continued on their own.  Very cool!  For added security, you can also encode your messages before sending them to Blabber.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6462214192789077518?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6462214192789077518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/bridging-xpl-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6462214192789077518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6462214192789077518'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/09/bridging-xpl-revisited.html' title='Bridging xPL Revisited'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8888656563510493091</id><published>2010-08-19T10:38:00.000-07:00</published><updated>2010-08-19T12:11:59.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>More Tracking</title><content type='html'>I continue to tweak the map resulting from the tracking info (see my updated &lt;a href=http://bit.ly/bYPYbZ target=t&gt;video&lt;/a&gt;).  I implemented a suggestion in &lt;a href=http://bit.ly/a29EKH target=0&gt;this thread&lt;/a&gt; to grab the "address" corresponding to the longitude/latitude of a sample.  That now shows up as the location when mousing over a marker.  The mouseover kicks off an AJAX fetch of the geolocation info from Google Maps, which processes the JSON data and fills the popup. Clicking the marker brings updates the popup to show 3 nearby items and clicking it again brings up the original data.&lt;br /&gt;&lt;br /&gt;A major change is I'm now using the Google Maps direction service and renderer to do the actual distance calculations between two markers and to draw the line connecting them.  This ends up being a lot more accurate than my original straight line calculation and, of course, the line actually follows the road traveled.  The more accurate distance calculation means a better speed estimate for that interval as well.&lt;br /&gt;&lt;br /&gt;Right now, the code is a disaster, but I plan on putting it on my website after I clean it up.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8888656563510493091?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8888656563510493091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/more-tracking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8888656563510493091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8888656563510493091'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/more-tracking.html' title='More Tracking'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1615851487869086989</id><published>2010-08-17T08:49:00.000-07:00</published><updated>2010-08-17T09:01:18.771-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>Google Latitude Tracking Live</title><content type='html'>Today, I've fully deployed our tracking scheme using Google Latitude.  My wife and kids have started their road trip and I'm tracking their progress.  &lt;a href="http://bit.ly/cMoHL7" target="0"&gt;Here's how things look so far.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using the Latitude data, I can determine their position in the past 2 minutes (it appears to update only every 2 minutes).  Using two points and their timestamps, I can estimate the approximate speed they were driving between the two points.  As I mentioned in a previous post, I'm storing the locations in a MySQL table and through AJAX, I'm able to update a map with their path and show information bubbles over each point with some information, which is what you see in the video linked above.  You can see an occasional large gap between points as they move in &amp;amp; out of 3G coverage, but it's not too bad since we don't use AT&amp;amp;T. HA!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1615851487869086989?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1615851487869086989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/google-latitude-tracking-live.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1615851487869086989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1615851487869086989'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/google-latitude-tracking-live.html' title='Google Latitude Tracking Live'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2349659164156175775</id><published>2010-08-15T11:04:00.000-07:00</published><updated>2010-08-17T09:44:13.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>Jobless Still...But "Work" Continues</title><content type='html'>The deal with the early stage startup (which recently closed a Series A round from 2 firms) fell through.  It left a bad taste in my mouth.  They dragged the whole process out over a week only to email me this: "Thanks for taking the time to speak to us. Unfortunately, your background is not a good fit for the current position we have open."  It's odd they came to this conclusion after I nailed the technical screenings with their engineers, and they thought I was good enough to talk with the VP of Engineering and the CTO.   They even asked for my references, but in the ensuing 5 days, they never called a single one.  I also had an inside person there who said everyone was impressed by me and it was pretty much a done deal.  However, their Director of ASICs admitted to having difficulty with the compensation package given where I was at.  After doing a little research on my own, it looked like I would be offered a 25% cut.  So, to save face and not be called cheap, they chose to say my background was not a good fit rather than saying they wasted everyone's time because they can't afford me.   What a joke.&lt;br /&gt;&lt;br /&gt;Instead of long hours at the early stage startup with a menial salary, I've accepted a consulting gig at a large, public company.  I won't have to cut back on my gadget spending and I'll only work 40 hour weeks, leaving plenty of time for my own projects.&lt;br /&gt;&lt;br /&gt;On that note, my Google Latitude project is progressing nicely.  Still, not yet at the point to post screencaps, etc.  Another project I started yesterday was creating an xPL bridge in Python.  I had already created a rudimentary way to &lt;a href="http://bit.ly/d22Z7a" target="0"&gt;link xPL networks across the Internet&lt;/a&gt; using EventGhost and the Network Sender &amp;amp; Receiver plugins.  I'm still using EG at our other house, but I don't really need to use EG on my HA server, so I stripped out the Network Sender &amp;amp; Receiver plugins and made them into standalone Python scripts.  I've also gone one step further and made the receiver script capable of re-sending the bridged xPL messages as if they were sent by the original source.  Now, I can fully view the remote xPL network and configure the remote apps as if they were local.  There's still a lot of tweaking and clean up to do, and I am pondering building a C# xPL bridge just to make things less of a hack.  The thing is, I still use EG on the remote network and the thin client it runs on is rather limited, so I don't really want to add another app on that machine.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2349659164156175775?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2349659164156175775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/jobless-stillbut-work-continues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2349659164156175775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2349659164156175775'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/jobless-stillbut-work-continues.html' title='Jobless Still...But &quot;Work&quot; Continues'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1229672222682411500</id><published>2010-08-09T08:27:00.000-07:00</published><updated>2010-08-17T19:27:05.504-07:00</updated><title type='text'>August Already?? and Google Latitiude</title><content type='html'>I was figuring I'd spend a lot of time on the house and the automation system while I was job hunting, but it didn't turn out that way.  It's been about 6 weeks and I really haven't done a whole lot.  I did finish up most of the trim for the flooring, but I had to stop and find some flexible quarter-round to go along the bottom of our staircase (which has a full 180 degree curve on one side).    I did pick some up from &lt;a href="http://www.trimster.com/" target="0"&gt;Trimster&lt;/a&gt;, but I haven't thought much about how to stain it, so it's sitting around.&lt;br /&gt;&lt;br /&gt;As for automation stuff, I've been revamping our AJAX based floorplan GUI.  Given all my free time, I've been reading up on CSS3 and jQuery and have completely re-written large portions of the code.  My HTML page used to have markup, JavaScript and CSS all mixed together, but now I've gotten everything updated to typical coding standards, with the HTML page containing only the markup, and the CSS and .js files have grown significantly.  It's definitely much neater to read now and should make maintaining and updating it easier as well.  I figure at some point, I will migrate it to HTML5 and that will be another major overhaul, but for now, I'm very pleased with the new CSS and jQuery things I've learned.&lt;br /&gt;&lt;br /&gt;When Google Latitude first came out, I put a placeholder &lt;a href="http://bit.ly/cjZ8Dv" target="ot"&gt;at the bottom here&lt;/a&gt;, but had so many things going on, I forgot all about it. &lt;a href="http://bit.ly/a29EKH" target="hs"&gt;This thread&lt;/a&gt; reminded me about Latitude tracking and with the wife planning a 5-day roadtrip with a girlfriend, I  finally decided to get off my butt and implement some tracking (with her permission of course! :)&lt;br /&gt;&lt;br /&gt;First off, we need to get a public badge for Latitude - you can find out more &lt;a href="http://www.google.com/latitude/apps/badge" target="5"&gt;here&lt;/a&gt;.  We already have Google Maps on our cells so we just need to enable Latitude on the app.  Next, we need an automatic trigger to start Latitude tracking.  We use RFID tags in the cars and bluetooth on our phones for tracking, so when someone's phone and a car are gone, we can start the Latitude tracker.&lt;br /&gt;&lt;br /&gt;The tracker is just a perl script that periodically fetches the Latitude badge's JSON feed and parses its information (latitude, longitude, timestamp, reverse geocode info).  That information is stored in a MySQL table that is reset for every new trip.  Finally, I've written an AJAX page that fetches the location data from MySQL via PHP and shows each data point on Google Maps with a line connecting the points.  I plan to post more details as I debug this new feature.&lt;br /&gt;&lt;br /&gt;Finally, I am about to close a deal to join an early stage startup.  The company is in a very promising space and is at the right stage for me to be able to contribute a great deal to the product development.  However, early stage equals long hours, but I'm ready for another startup.  HA stuff will just have to be put on the backburner...&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1229672222682411500?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1229672222682411500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/august-already-and-google-latitiude.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1229672222682411500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1229672222682411500'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/08/august-already-and-google-latitiude.html' title='August Already?? and Google Latitiude'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6879834691096690777</id><published>2010-07-07T13:39:00.000-07:00</published><updated>2010-07-30T08:32:17.355-07:00</updated><title type='text'>Charmed Quark Controller Going Open Source</title><content type='html'>Dean Roddey, the creator of CQC, has &lt;a href="http://bit.ly/9h3aIT" target="0"&gt;thrown in the towel&lt;/a&gt;, but is planning on releasing CQC as open source.  It's very unfortunate as CQC is an incredibly powerful (and incredibly complex) software package.  I am looking forward to checking it out for building touchscreen interfaces, but I really like the platform independence of my AJAX GUI.  I will, however, try to add xPL support to CQC.  In any case, it makes you wonder how the makers of HAL can possibly survive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; The link above has been updated by Dean.  He is no longer planning on open sourcing CQC...&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6879834691096690777?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6879834691096690777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/07/charmed-quark-controller-going-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6879834691096690777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6879834691096690777'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/07/charmed-quark-controller-going-open.html' title='Charmed Quark Controller Going Open Source'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1172254146252002156</id><published>2010-06-18T13:38:00.000-07:00</published><updated>2010-07-07T13:38:46.572-07:00</updated><title type='text'>I Am Still Here</title><content type='html'>No, I have not fallen off the face of the earth.  I've been working on some upgrades, but nothing related to automation.  I've been replacing our downstairs carpet with laminate flooring, and while that's been going on, the wife &amp;amp; kids have been helping me repainting too.  I know, there are hardwood snobs out there who think laminate flooring is like linoleum.  Granted it's not hardwood, but we already have engineered hardwood in the kitchen &amp;amp; nook areas, and it's been gouged to death by our previous and current dog.    I'm not going to pay $20,000 to have the rest of the house done in hardwood, only to see it gouged up in days.&lt;br /&gt;&lt;br /&gt;I've finished about 700 square feet and I'm down to the last 100-150 square feet, but have been delayed by the uneveness of the concrete subfloor.  So, I've been using leveling compound on the floor, and it's been a 2 week hit to my project.  I hope to finish it up this weekend.&lt;br /&gt;&lt;br /&gt;One thing I discovered when looking into laminate flooring is that they all tend to have formaldehyde, which will emit gas (off-gas) after the floor is installed.  One of the reasons I ripped out the carpet is that my son has asthma, so anything making the air quality worse isn't going to work.  I discovered DuPont's &lt;a href="http://bit.ly/bJPSmk" target="0"&gt;RealTouch laminate flooring&lt;/a&gt;, which is GreenGuard certified as having a minimal impact on indoor air quality.  It's held up great so far even with our Australian Shepherd racing around the house with the kids.  Not a scratch or gouge.&lt;br /&gt;&lt;br /&gt;We also went with GreenGuard certified paint, &lt;a href="http://bit.ly/9IeJVP" target="1"&gt;Dutch Boy Refresh&lt;/a&gt;.  Again, this means it will emit a minimal amount of noxious gasses while it dries, while at the same time, minimizing noxious gasses in the bathroom ;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 6/24/10&lt;/b&gt;&lt;br /&gt;Finally, I was laid off yesterday as expected.  As soon as I walked in, I saw facilities and HR people in the building, so I went straight to packing up the last of my stuff.   It's good timing since the weather's great, I can spend time with my kids and besides, I've got a floor to finish and walls to paint.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.doghouselabs.com/kj.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1172254146252002156?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1172254146252002156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/06/i-am-still-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1172254146252002156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1172254146252002156'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/06/i-am-still-here.html' title='I Am Still Here'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5587542269707341923</id><published>2010-05-21T15:11:00.000-07:00</published><updated>2010-05-21T15:39:40.787-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telcos suck'/><title type='text'>Goodbye AT&amp;T You SUCK</title><content type='html'>At our 2nd house, we've had AT&amp;T DSL and phone for 4 years.  It has steadily gone up in price every year and the service still sucked just as bad as the year before.  &lt;a href=http://bit.ly/dmWTDV target=0&gt;Three and a half years ago&lt;/a&gt;, they raised the price for caller ID to $8/month from an already inflated $6/month.  That was practically as much as the phone service itself cost.  A little over 2 years ago, they &lt;a href=http://bit.ly/bTDZnu target=1&gt;jacked up&lt;/a&gt; the cost of DSL by 25%.  More increases later, our latest bill for 1.5 Mbps service hit $28/month and with the land line, the total ended up over $43/month.&lt;br /&gt;&lt;br /&gt;I gave them a call to see if they had any promotions for existing customers.  Nope.  Then I asked to cancel the landline and run naked DSL.  The customer service rep tried her best to sell a load of bullshit.  She said "Oh don't do that.  This is what all of us here have - the landline and the DSL."  "Well, to do that we'd have to disconnect your DSL and landline and we're not sure if we'd be able to reconnect your DSL to the same circuit."  What the f*ck does that mean?  Do they have some 5 year old kid pulling and connecting DSL lines for them?  She tried to discourage that option.  I said "So I'd be better off just canceling all my AT&amp;T services.", to which she replied "No, you're better off leaving everything alone."&lt;br /&gt;&lt;br /&gt;I gave AT&amp;T the boot yesterday after we got Comcast 12Mbps service.  To replace the landline, I picked up a second Magic Jack.  Of course, I'm just trading one evil (AT&amp;T) for another (Comcast), but then paying $35/month to run 1.5Mbps naked DSL would be just stupid - &lt;span style="font-style:italic;"&gt;if &lt;/span&gt;AT&amp;T would have actually been able to figure out how to connect it in the first place.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5587542269707341923?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5587542269707341923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/05/goodbye-at-you-suck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5587542269707341923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5587542269707341923'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/05/goodbye-at-you-suck.html' title='Goodbye AT&amp;T You SUCK'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2909163191170603825</id><published>2010-04-30T22:54:00.000-07:00</published><updated>2010-05-05T19:16:12.561-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>First Full Month of Solar</title><content type='html'>As April ends, I can now assess the results of our first full month of having solar power.  Specifically, I was very interested to see if my projections for solar production were even close.  If you remember, I wrote this blog &lt;a href=http://bit.ly/a11QVi target=0&gt;entry&lt;/a&gt; back in October 2009 as I was trying to determine how big a system to get, what sort of output I could expect and what my savings would be.  I created this Google Docs &lt;a href=http://bit.ly/3fUc1O target=1&gt;spreadsheet&lt;/a&gt; to help with all these calculations.&lt;br /&gt;&lt;br /&gt;For the month of April, the spreadsheet predicted for the 3.68kW system we got, production of 513 kWH (this actually comes from the PVWatt tool mentioned in the spreadsheet).  It didn't look like we'd get there as the 27th and 28th were overcast and rainy days, but the last 2 days of April turned in the highest production so far.  Actual production came in at 538 kWH.  Based on this, it looks like the analysis I did in the spreadsheet turned out very accurate and as a result, I'm very pleased with our purchase so far.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2909163191170603825?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2909163191170603825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/first-full-month-of-solar.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2909163191170603825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2909163191170603825'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/first-full-month-of-solar.html' title='First Full Month of Solar'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5926559403694419651</id><published>2010-04-19T14:41:00.000-07:00</published><updated>2010-04-20T16:27:31.787-07:00</updated><title type='text'>Dog Sitters: Don't Shortchange Customers With Automated Homes</title><content type='html'>We recently went on vacation for a few days and had a dog sitter/walker take care of our dog while we were gone.  We had the sitter visit our dog during the day to walk, play with, feed and clean up after him.  We chose the duration of the visits and were billed accordingly.  To get to our dog, the sitter had to open the side gate, which of course, is monitored and logged by our system.  I used that information to gauge when a visit started and when it ended.  Our security cameras, which are recorded, could also provide an extra confirmation if needed.  &lt;br /&gt;&lt;br /&gt;Unfortunately, the results are not good.  There was not a single visit where the sitter stayed for the duration we paid.&lt;br /&gt;&lt;br /&gt;Visit #1: 18% short&lt;br /&gt;Visit #2: 50% short!&lt;br /&gt;Visit #3: 33% short&lt;br /&gt;Visit #4: 26% short&lt;br /&gt;Visit #5: 23% short&lt;br /&gt;Visit #6: 28% short&lt;br /&gt;&lt;br /&gt;Overall, we were billed for 28% more than the actual number of minutes.  My wife and I were stunned by how the sitter consistently shortchanged our pooch and not just by a couple minutes.  For example, a 30 minute visit was really only 15 minutes and a 1 hour visit was cut short by 20 minutes.  All those 5 star reviews on Yelp must have been written by friends or completely clueless people (AKA normal people without automation systems).&lt;br /&gt;&lt;br /&gt;Our dog is a very important part of our family, and it bothers us more that he was shortchanged on attention than us being ripped off. Needless to say, rather than confront the sitter, we are going to cut our losses and find a new service (and put up a review on Yelp).  This brings up the question, is it really possible to find a sitter who actually stays for the agreed upon durations?  You are really at the whim of the sitter's honesty and it seems really easy to cheat.  How do you guarantee you get what you pay for?&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5926559403694419651?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5926559403694419651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/dog-sitters-dont-shortchange-customers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5926559403694419651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5926559403694419651'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/dog-sitters-dont-shortchange-customers.html' title='Dog Sitters: Don&apos;t Shortchange Customers With Automated Homes'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1715831257621526106</id><published>2010-04-01T20:34:00.000-07:00</published><updated>2010-04-09T11:53:28.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Overcast Day Has Greater Solar Intensity???</title><content type='html'>It seems counter-intuitive, yet on a cloudless, sunny day, our panels peaked at a lower electricity output than on a day with overcast.  In fact, on the cloudy day, our panels maxed out the inverter, causing it to clip.  See the graph below where I combined the charts of 2 different days.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6j7jH_mJZvQ/S7Vl50iKz_I/AAAAAAAAASc/6Rrox_ySwvA/s1600/solarcloud.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 100px;" src="http://1.bp.blogspot.com/_6j7jH_mJZvQ/S7Vl50iKz_I/AAAAAAAAASc/6Rrox_ySwvA/s200/solarcloud.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5455378567658131442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The red line shows the nice production curve on a cloudless day, but the green line shows the output on a cloudy day.  The green line maxed out earlier in the day and even later in the day than the red line.&lt;br /&gt;&lt;br /&gt;The sunlight hitting earth must be reflecting back up to the sky, but the overcast is causing it to reflect back down again.  This results in more solar energy hitting the panels.  I would assume that the glass over the panels is like this as well - allowing the sunlight to pass, and some light that reflects off the panels would get reflected back to the panels by the glass.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1715831257621526106?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1715831257621526106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/overcast-day-has-greater-solar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1715831257621526106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1715831257621526106'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/04/overcast-day-has-greater-solar.html' title='Overcast Day Has Greater Solar Intensity???'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6j7jH_mJZvQ/S7Vl50iKz_I/AAAAAAAAASc/6Rrox_ySwvA/s72-c/solarcloud.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4932351623234266748</id><published>2010-03-30T08:48:00.001-07:00</published><updated>2010-03-30T15:52:20.615-07:00</updated><title type='text'>Waiting for the Axe to Fall</title><content type='html'>It's been a quiet several weeks.  There have been rampant rumors at work that the company is planning on shuttering my group.  It's something that we've been expecting at work for the last 3-6 months, but as quarter end nears, it's possible that it may be right around the corner.  So I've been a little preoccupied to do any HA stuff other than mindlessly monitoring the production of our solar panels.  According to the latest rumors, the axe was to fall last Friday, but upper management had to delay it since they're waiting for our group to finish up some work before they'd be comfortable canning us all.  As I sit here contemplating impending joblessness, I wonder what my next career move will be.  I'm an &lt;a href=http://bit.ly/c6z5JL target=1&gt;ASIC&lt;/a&gt; design and verification engineer, but I'm burnt out on it and a change of career may be in the cards.  I've got an unused MBA, some .NET programming skills and experience with AJAX, PHP and MySQL, so I have some options to explore.  In the meantime, feel free to &lt;a href=http://www.doghouselabs.com/system/ target=0&gt;donate!&lt;/a&gt; ;).&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4932351623234266748?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4932351623234266748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/waiting-for-axe-to-fall.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4932351623234266748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4932351623234266748'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/waiting-for-axe-to-fall.html' title='Waiting for the Axe to Fall'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-4416588605610529111</id><published>2010-03-17T18:54:00.000-07:00</published><updated>2010-03-17T18:58:39.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLBattWatch - A Battery Charge Monitor</title><content type='html'>This is the first release of xPLBattWatch.  This app is used to monitor the battery level and charge status of a laptop.  It issues sensor.basic messages based on changes in the charge level and status.  It may be a little rough, but I thought I'd throw this out there and let you play with it.  More details and download &lt;a href=http://bit.ly/aRXDcN target=bat&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-4416588605610529111?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/4416588605610529111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/xplbattwatch-battery-charge-monitor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4416588605610529111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/4416588605610529111'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/xplbattwatch-battery-charge-monitor.html' title='xPLBattWatch - A Battery Charge Monitor'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3547052324612913687</id><published>2010-03-12T08:31:00.000-08:00</published><updated>2010-03-16T10:27:47.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Solar Array Powered Up and Some Graphs</title><content type='html'>The installer powered on the solar array on Tuesday after the inspection.  After he left, I installed current sensors for the solar breakers and ran those along Cat-5 back to the ECM-1240.  I was debugging the charting and got it pretty much sorted out by Wednesday night.  Here's the first few RRDTool graphs from Thursday.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6j7jH_mJZvQ/S5puUIWU67I/AAAAAAAAASU/WeC48b1-Cdo/s1600-h/solarkwh.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_6j7jH_mJZvQ/S5puUIWU67I/AAAAAAAAASU/WeC48b1-Cdo/s200/solarkwh.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447787991375604658" /&gt;&lt;/a&gt;&lt;br /&gt;You can see it generated nearly 21 kWH yesterday.  I'm really happy with that as we typically use 22-25 kWH/day.  I didn't expect to get that much production in March.  Does this mean the assumptions I made in my &lt;a href=http://doghouselabs.blogspot.com/2009/10/solar-spreadsheet.html target=0&gt;Solar Spreadsheet&lt;/a&gt; may have been a little pessimistic?  There's still a lot of rain &amp; overcast in March (of which we're seeing today), so it will probably average out.  We'll have to wait for April to get a good full month to compare.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6j7jH_mJZvQ/S5puToTMXJI/AAAAAAAAASM/SPD6vG2aIGg/s1600-h/solar.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_6j7jH_mJZvQ/S5puToTMXJI/AAAAAAAAASM/SPD6vG2aIGg/s200/solar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447787982772526226" /&gt;&lt;/a&gt;&lt;br /&gt;With a southeast facing roof, you can see we catch the morning sun very early.  The array woke up around 6:22AM and peaked around 11AM.  Once the sun passed over the top of the roof around noon, production started to drop and around 2PM it started to decline rapidly.  By then, it produced about 80% of the total for the day.  I wish I had room on the west facing roof to catch the afternoon sun, but it would only fit maybe 4 panels - good for another 1kW.  Maybe when we get an EV ;) Production stopped almost exactly at 6PM.  You can see some of the spikes in production as the sun was behind some clouds.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S5puTQIqdVI/AAAAAAAAASE/kzn6exXsWcU/s1600-h/test.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S5puTQIqdVI/AAAAAAAAASE/kzn6exXsWcU/s200/test.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5447787976285910354" /&gt;&lt;/a&gt;&lt;br /&gt;This is just a net usage graph.  Solar production for the day caught up to our daily usage by noon.  Between 3-4PM, production fell below our usage and about 9PM, all our credits were used up.  For yesterday, we basically paid the utility for electricity for the 3 hours from 9PM-12AM.  Pretty cool.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3547052324612913687?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3547052324612913687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/solar-array-powered-up-and-some-graphs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3547052324612913687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3547052324612913687'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/solar-array-powered-up-and-some-graphs.html' title='Solar Array Powered Up and Some Graphs'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6j7jH_mJZvQ/S5puUIWU67I/AAAAAAAAASU/WeC48b1-Cdo/s72-c/solarkwh.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8171968925704944890</id><published>2010-03-07T11:46:00.000-08:00</published><updated>2010-03-07T11:50:54.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLWebControl Released</title><content type='html'>I released an xPL interface for CAI's WebControl.  The app communicates with the WebControl via its web interface since it has no other means of control.  You can read more about it and download it &lt;a href=http://bit.ly/cuU3r6 target=0&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8171968925704944890?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8171968925704944890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/xplwebcontrol-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8171968925704944890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8171968925704944890'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/xplwebcontrol-released.html' title='xPLWebControl Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-616938523617034092</id><published>2010-03-05T10:15:00.000-08:00</published><updated>2010-03-05T10:17:24.804-08:00</updated><title type='text'>New Toy: CAI WebControl and Random Updates</title><content type='html'>So I finally broke down a bought a &lt;a href=http://bit.ly/d45nBH target=0&gt;WebControl&lt;/a&gt; device.  It's a network enabled IO device that's been discussed heavily at &lt;a href=http://bit.ly/9JDeKn target=1&gt;CT&lt;/a&gt; and &lt;a href=http://bit.ly/d8pP5b target=2&gt;HS&lt;/a&gt; message boards.  I got it from &lt;a href=http://bit.ly/aMcD1t target=3&gt;this seller&lt;/a&gt; on eBay.  I'm surprised it actually powers on.  It was shipped in a USPS Flat Rate Priority envelope.  The device itself was in a small bubble pack pouch - just a single layer of bubble pack to protect the sharp corners of the device's components.  The corners of the ethernet jack poked through the bubble pack, puncturing the envelope in several places.  For $8.71 in shipping, is it too much to ask for 2 or 3 layers of bubble pack????&lt;br /&gt;&lt;br /&gt;Anyway, I powered it on, assigned it a static IP address and new login info, but didn't get much further than that.  I hope to test out the digital IO and 1-Wire interface this weekend before I'll believe it's undamaged.  I have no idea what I'm going to use it for.  I am planning on building an xPL app to interface to it, but I'm not in any big hurry.  Still feeling a bit burned out on HA.&lt;br /&gt;&lt;br /&gt;It's been 10 days since the solar installation was completed and I haven't heard from the city about inspections nor has the utility swapped out my meter.  It was frustrating waiting nearly 4 months from signing the contract to the installation (due to weather &amp; backlog), but this is even more frustrating because I just want to flip the switch!&lt;br /&gt;&lt;br /&gt;This week I did update &lt;a href=http://bit.ly/7aZ9Hg target=5&gt;xPLTweet&lt;/a&gt; and &lt;a href=http://bit.ly/cT22gj target=6&gt;Jab2Twit&lt;/a&gt; to use OAUTH for Twitter authentication.  That way there's no stored username &amp; password and has the added benefit of my apps showing up as sources for tweets :)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-616938523617034092?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/616938523617034092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/new-toy-cai-webcontrol-and-random.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/616938523617034092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/616938523617034092'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/03/new-toy-cai-webcontrol-and-random.html' title='New Toy: CAI WebControl and Random Updates'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7747550238606992997</id><published>2010-02-25T20:35:00.001-08:00</published><updated>2010-03-07T11:58:57.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Solar Panels Installed!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6j7jH_mJZvQ/S4dQJtIKzSI/AAAAAAAAARE/y8De5aRkP7Y/s1600-h/P1000749.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_6j7jH_mJZvQ/S4dQJtIKzSI/AAAAAAAAARE/y8De5aRkP7Y/s200/P1000749.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5442406802363436322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S4dP0IuCpII/AAAAAAAAAQ8/G8ICujFSyjc/s1600-h/P1000758.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 116px;" src="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S4dP0IuCpII/AAAAAAAAAQ8/G8ICujFSyjc/s200/P1000758.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5442406431812920450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S4dPzgA089I/AAAAAAAAAQ0/BhiPnBw-dHg/s1600-h/P1000753.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 92px;" src="http://4.bp.blogspot.com/_6j7jH_mJZvQ/S4dPzgA089I/AAAAAAAAAQ0/BhiPnBw-dHg/s200/P1000753.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5442406420885861330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is this final product - a Sunny Boy inverter and 16 230W Sharp panels.  Installation took only 1 1/2 days.  It's all ready to go, just waiting on the utility to swap out the meter and for the city inspector.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7747550238606992997?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7747550238606992997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/solar-panels-installed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7747550238606992997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7747550238606992997'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/solar-panels-installed.html' title='Solar Panels Installed!'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6j7jH_mJZvQ/S4dQJtIKzSI/AAAAAAAAARE/y8De5aRkP7Y/s72-c/P1000749.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8323333019937917779</id><published>2010-02-20T10:38:00.000-08:00</published><updated>2010-02-20T10:44:18.615-08:00</updated><title type='text'>ChromeOS on Acer Aspire Netbook</title><content type='html'>Just tried out &lt;a href=http://bit.ly/ajYj4i target=0&gt;this&lt;/a&gt; build of ChromeOS.  It boots fast, but doesn't work well with my netbook.  The trackpad barely tracks and the tap to click trackpad feature doesn't work.  ChromeOS really is just the web, but I &lt;span style="font-style:italic;"&gt;need&lt;/span&gt; Remote Desktop to access my servers.  I see no reason why ChromeOS can't have an RDP client - my Nokia N800 does.  I liked &lt;a href=http://bit.ly/bJSvjU target=1&gt;Jolicloud&lt;/a&gt; on the netbook better, as it's really more of an OS than ChromeOS.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8323333019937917779?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8323333019937917779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/chromeos-on-acer-aspire-netbook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8323333019937917779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8323333019937917779'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/chromeos-on-acer-aspire-netbook.html' title='ChromeOS on Acer Aspire Netbook'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1795829015033900978</id><published>2010-02-15T19:20:00.000-08:00</published><updated>2010-02-15T19:50:35.577-08:00</updated><title type='text'>New NAS</title><content type='html'>I just bought a &lt;a href=http://bit.ly/dg26xb target=0&gt;DLink DNS-321&lt;/a&gt; NAS.  I'm hoping to use this for SageTV recordings, which are currently stored on the media server.  I want to do this since I hibernate the SageTV server a lot, but would like the recordings available.&lt;br /&gt;&lt;br /&gt;I'm going to be evaluating whether or not I can dump 4 HDHomerun streams to it while playing from 2 HD200s.  I'm guessing no, but it's going to be an interesting experiment.  While I was copying the existing recordings over, the maximum bandwidth I was able to achieve was 100 Mbps over gigabit links.  An existing 1 hour HD recording took 5.5 GB, so that's about 12.5 Mbps.  Four streams would be half of the maximum bandwidth I've seen and that doesn't include playback.  If it doesn't work out, I play on using it for backups.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1795829015033900978?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1795829015033900978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/new-nas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1795829015033900978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1795829015033900978'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/new-nas.html' title='New NAS'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5433354519008073239</id><published>2010-02-12T09:22:00.000-08:00</published><updated>2010-02-12T15:00:49.640-08:00</updated><title type='text'>Dog Feeder Demo</title><content type='html'>There was a recent thread on Cocoontech about pet related automation and this is a rehash of my post there about our &lt;a href=http://bit.ly/djvLxc target=0&gt;automated pet feeder&lt;/a&gt;.  Here's a snippet from a screencast I did that demo'd some parts of our HA system. &lt;a href=http://bit.ly/9ctTow target=1&gt;This clip&lt;/a&gt; shows the automated dog feeder and how it's controlled from our GUI, including calling our dog over using TTS and watching the result via a camera popup.  (The TTS audio is dubbed in for effect - it's what was pushed out of the garage MP3 player to the backyard speakers.)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5433354519008073239?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5433354519008073239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/dog-feeder-demo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5433354519008073239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5433354519008073239'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/dog-feeder-demo.html' title='Dog Feeder Demo'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2075942214180787419</id><published>2010-02-11T15:25:00.001-08:00</published><updated>2010-02-11T15:27:41.272-08:00</updated><title type='text'>Jab2Twit - IM your Tweets</title><content type='html'>I've just released Jab2Twit, a small app that shows up in your chat client friends list, and lets you IM your tweets.  Read more and get it &lt;a href=http://bit.ly/cT22gj target=0&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2075942214180787419?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2075942214180787419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/jab2twit-im-your-tweets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2075942214180787419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2075942214180787419'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/02/jab2twit-im-your-tweets.html' title='Jab2Twit - IM your Tweets'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2605164173930390295</id><published>2010-01-29T11:05:00.000-08:00</published><updated>2010-01-29T11:07:01.560-08:00</updated><title type='text'>A GUI Scripting Engine</title><content type='html'>&lt;a href=http://bit.ly/9MxeUt target=b&gt;This&lt;/a&gt; is very cool.  Sikuli is a scripting engine that allows you to automate almost any interaction with a GUI.  It can find visual elements on your screen given screen captures of what you're looking for.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2605164173930390295?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2605164173930390295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/gui-scripting-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2605164173930390295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2605164173930390295'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/gui-scripting-engine.html' title='A GUI Scripting Engine'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1866114511567227342</id><published>2010-01-27T17:13:00.000-08:00</published><updated>2010-01-27T17:42:19.088-08:00</updated><title type='text'>iPad Thoughts</title><content type='html'>I don't use Apple products, but I was interested in their iPad announcement as I'm eagerly waiting for cheap tablets to use as home automation control panels.  I have to admit, the $500 starting price is a lot lower than I expected, but I don't think they really had any choice.  CES was filled with so many cheap tablets that Apple didn't have much pricing room, even with the Apple premium.  The low iPad price should mean a very competitive tablet market.  I'm hoping for some $200ish tablets in the near future.&lt;br /&gt;&lt;br /&gt;In the meantime, I haven't done much HA work lately.  I tend to do stuff in spurts and this is one of those idle periods.  &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1866114511567227342?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1866114511567227342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/ipad-thoughts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1866114511567227342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1866114511567227342'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/ipad-thoughts.html' title='iPad Thoughts'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1066343430932788928</id><published>2010-01-16T12:31:00.001-08:00</published><updated>2010-01-16T12:37:43.342-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLWav Enables Remote Controlled WAV Playing</title><content type='html'>I've released another app, xPLWav, which allows you to make a remote computer play a WAV file.  I'm using this in combination with our &lt;a href=http://bit.ly/7g9IOr target=n&gt;Noise app&lt;/a&gt; to automatically scold our dog when he's barking and we're not home :)  This app is necessary since the closet PC to where our dog usually barks (and where Noise is installed) is not the HA server.  To do this, I've recorded WAV files of us saying corrections ("Quiet!", "Stop that!", etc.) and upon a short period of no noise, an automatic praise is played ("Good dog!", etc.)  So far it's working.  Anyway, &lt;a href=http://bit.ly/5PlLgr target=0&gt;give it a try&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1066343430932788928?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1066343430932788928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplwav-enables-remote-controlled-wav.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1066343430932788928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1066343430932788928'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplwav-enables-remote-controlled-wav.html' title='xPLWav Enables Remote Controlled WAV Playing'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1959595794233948712</id><published>2010-01-08T20:34:00.000-08:00</published><updated>2010-01-08T20:42:53.589-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>Noise 1.1 A Complete Rewrite</title><content type='html'>I wasn't really happy with the XAML based GUI of my original Noise app.  It required .NET 3.5 which limited what machines it could run on.  I didn't like the configuration method I chose either.  So, I completely rewrote it.  Same &lt;a href=http://bit.ly/7g9IOr target=0&gt;link&lt;/a&gt; as before.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1959595794233948712?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1959595794233948712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/noise-11-complete-rewrite.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1959595794233948712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1959595794233948712'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/noise-11-complete-rewrite.html' title='Noise 1.1 A Complete Rewrite'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-3989542507955624406</id><published>2010-01-05T20:04:00.000-08:00</published><updated>2010-01-05T20:20:27.976-08:00</updated><title type='text'>Using Google Visualization API for Power Monitoring</title><content type='html'>I just started playing around with the Visualization API today and it's pretty cool.  &lt;a href=http://bit.ly/8DfzTz target=0&gt;Here's&lt;/a&gt; a short screencast I just did showing real-time power usage from our Brultech ECM-1240 power monitor.  Every second, data from the ECM-1240 is stored in MySQL.  The gauges are in a simple HTML page with a little AJAX to fetch the power data each second from MySQL.  The API takes care of the graphics and updating them.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-3989542507955624406?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/3989542507955624406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/using-google-visualization-api-for.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3989542507955624406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/3989542507955624406'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/using-google-visualization-api-for.html' title='Using Google Visualization API for Power Monitoring'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2381338788005686193</id><published>2010-01-04T20:19:00.000-08:00</published><updated>2010-01-04T20:30:40.451-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLGPix connects xPL to Google's Picasa Web Albums</title><content type='html'>Continuing with my Google tangent, I've just created a new app called xPLGPix.  If you send it an xPL message specifying an album and JPG file, it will upload the picture to the specified album on Google's Picasa.  You can read more about it &lt;a href=http://bit.ly/5YmF4d target=0&gt;here&lt;/a&gt;.  I've tested it just a little, so it may be a little rough around the edges.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2381338788005686193?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2381338788005686193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplgpix-connects-xpl-to-googles-picasa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2381338788005686193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2381338788005686193'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplgpix-connects-xpl-to-googles-picasa.html' title='xPLGPix connects xPL to Google&apos;s Picasa Web Albums'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-464848339294862790</id><published>2010-01-02T18:06:00.001-08:00</published><updated>2010-01-04T20:30:56.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLGSheet: An xPL interface to Google Doc Spreadsheets</title><content type='html'>I'm welcoming in 2010 with a new app called xPLGSheet.  It allows you to query and edit a GDocs spreadsheet using xPL messages.  Aside from the typical use of automated updates of a database, this app opens up possibilities of syncing remote systems via a shared spreadsheet.  For more, go &lt;a href=http://bit.ly/5XWrVV target=0&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-464848339294862790?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/464848339294862790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplgsheet-xpl-interface-to-google-doc.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/464848339294862790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/464848339294862790'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2010/01/xplgsheet-xpl-interface-to-google-doc.html' title='xPLGSheet: An xPL interface to Google Doc Spreadsheets'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5711081230161395025</id><published>2009-12-30T13:53:00.000-08:00</published><updated>2009-12-31T10:08:41.996-08:00</updated><title type='text'>Most Downloaded of 2009</title><content type='html'>Since 2009 is the first full year I developed applications, I thought it would be interesting to see which ones were most popular.  I know 2009 isn't over yet, but the #1 app certainly won't be unseated by year's end.  Here are the 10 most downloaded DoghouseLabs applications for 2009. &lt;br /&gt;&lt;br /&gt;1. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=EventGhost+xPL+Plugin&gt;EventGhost xPL Plugin&lt;/a&gt; - 125 times&lt;br /&gt;2. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=BlueTracker&gt;BlueTracker&lt;/a&gt; - 33&lt;br /&gt;3. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=Blabber&gt;Blabber&lt;/a&gt; - 24&lt;br /&gt;4. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPL+Plugin+for+SageTV&gt;SageTV xPL Plugin&lt;/a&gt; - 20&lt;br /&gt;5. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xScript&gt;xScript&lt;/a&gt; - 18&lt;br /&gt;6. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSerial&gt;xPLSerial&lt;/a&gt; - 17&lt;br /&gt;6. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xEKG&gt;xEKG&lt;/a&gt; - 17&lt;br /&gt;8. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLAudreyTTS&gt;xPLAudreyTTS&lt;/a&gt; - 15&lt;br /&gt;9. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLGCal&gt;xPLGCal&lt;/a&gt; - 11&lt;br /&gt;10. &lt;a target=0 href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=OSDBuffer&gt;OSDBuffer&lt;/a&gt; - 9&lt;br /&gt;&lt;br /&gt;Looking at the numbers, other than the EventGhost plugin, that's not a lot of downloads.  Volume has never been my aim - these are things that I use in my home automation system and sharing them is my way of giving back for all the cool software and ideas I've benefited from over the past 15 years.  I am surprised by how popular the EventGhost plugin is compared to all the other xPL apps.  Also, I'm curious if anybody really uses the SageTV plugin besides me - as only one person has ever asked anything about it.  Anyway, thanks for using my apps and reading my blog in 2009 and happy automating in 2010.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5711081230161395025?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5711081230161395025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/most-downloaded-of-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5711081230161395025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5711081230161395025'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/most-downloaded-of-2009.html' title='Most Downloaded of 2009'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1800608537004565460</id><published>2009-12-27T22:13:00.001-08:00</published><updated>2010-03-16T13:02:33.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>New App: Noise</title><content type='html'>No, I haven't fallen off the face of the earth, but I admit that it's been a while since I last posted.  I've been taking a break from automation stuff over the holidays, but I did work on something I've always wanted to implement...&lt;br /&gt;&lt;br /&gt;Have you ever wanted to be automatically told that the baby is crying or the dog's barking?  Introducing my latest xPL app, Noise.  It uses your PC's mic (or possibly other input device), samples the input for a period of time, and issues an xPL sensor.basic message with information about the noise it detected, if any.  You can read more about it &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=Noise target=noise&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1800608537004565460?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1800608537004565460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/new-app-noise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1800608537004565460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1800608537004565460'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/new-app-noise.html' title='New App: Noise'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5785496470218805252</id><published>2009-12-08T09:55:00.001-08:00</published><updated>2009-12-10T20:38:40.275-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPL Tweeting</title><content type='html'>I'm not sure why this hasn't been done earlier, but it looks like I'm the first to integrate xPL and Twitter.  It was really easy to do and only took a few hours.  A lot of the time was just figuring out what API to use and investigating OAUTH.  I ended up using &lt;a href=http://bit.ly/6m1sEI target=0&gt;twitterizer&lt;/a&gt;'s API, which doesn't support OAUTH.  That's fine because I want this app to run standalone without any user interaction required for login, which OAUTH requires.  The downside is the tweet source will show Twitterizer and not xPLTweet.  Twitter no longer takes registrations for apps that do not use OAUTH, so there's no free publicity for my app in your Twitter streams.  Bummer.&lt;br /&gt;&lt;br /&gt;xPLTweet grabs OSD.BASIC messages explicitly targeting it (ie doghouse-xpltweet.yourinstance).  It grabs the text portion of the message and tweets that.  That's pretty much all it does.  A future enhancement I may do will be to monitor who you're following and issue OSD.BASIC messages when they update their streams, but it could be messy if you follow many active Twitterers.&lt;br /&gt;&lt;br /&gt;In any case, you can grap xPLTweet &lt;a href=http://bit.ly/7aZ9Hg target=t&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5785496470218805252?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5785496470218805252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/xpl-tweeting.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5785496470218805252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5785496470218805252'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/xpl-tweeting.html' title='xPL Tweeting'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5139215078766566383</id><published>2009-12-03T14:11:00.000-08:00</published><updated>2009-12-03T14:27:17.871-08:00</updated><title type='text'>Debugging ECM-1240 Setup</title><content type='html'>I've made some good progress on my ECM-1240 interface.  It's a good thing I'm running it on xPLserial, where I can easily make changes to the script instead of having to recompile if it were an application.  I found some problems in my script that caused it to miss a byte here or there and seems to be the source of the instability I was seeing.  The current script has been running for 5.5 hours (since a power outage ended this morning) without having to reset the counters.  &lt;br /&gt;&lt;br /&gt;My script is no longer sending the readings over xPL, instead it's doing direct writes to MySQL.  It was a pain trying to get ODBC working with XP Embedded, but eventually I did find an &lt;a href=http://bit.ly/7AnlXw target=0&gt;ODBC add on&lt;/a&gt; for HP thin clients.  It doesn't say it supports the T5700, but it works anyway.  Now, I'm updating power usage everytime it changes instead of whenever the xPL message was received.&lt;br /&gt;&lt;br /&gt;As for this morning's blackout, it was quite a racket.  I was awaken around 4AM to a symphony of beeping UPS's - 9 of them to be exact.  I really need to open up a few of them and cut the buzzer wires.  Some are really way too loud.  I also discovered a couple with dead batteries.  Good thing I got a couple more UPS's on Black Friday.  It's actually cheaper to replace the low end ones instead of buying new batteries.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5139215078766566383?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5139215078766566383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/debugging-ecm-1240-setup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5139215078766566383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5139215078766566383'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/debugging-ecm-1240-setup.html' title='Debugging ECM-1240 Setup'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6965539819392588107</id><published>2009-12-01T15:35:00.000-08:00</published><updated>2009-12-01T15:55:03.164-08:00</updated><title type='text'>Random Progress</title><content type='html'>I was having some problems talking to the ECM-1240 through a virtual serial port and Lantronix MSS-100.  It would occasionally lose its connection.  I ended up deploying my leftover HP T5700 thin client, connecting it directly to the ECM-1240.  I've got xPLSerial running on the thin client and it issues xPL messages every 60 seconds with the current power consumption.  I'm still getting some weird problems with the ECM-1240 where the counters get out of whack on an Aux channel and exceed the usage on the main channel.  This causes me to have to reset the counters and lose the cumulative statistics.  I need to figure out how to work around this issue so I can get some valid full-day consumption readings.&lt;br /&gt;&lt;br /&gt;I've also moved some xPL and xAP applications off my other 2 servers onto the thin client since it's not really doing a whole lot.  It's chugging along at around 10% CPU utilization with about 5 apps running.  I tried to run xPLSys on it, but it's crashing.  There doesn't appear to WMI in the XPe build on the thin client.  I may have to figure out a different method of getting the statistics.&lt;br /&gt;&lt;br /&gt;Ironically, I've also been working on my automation interface GUI in expectation of buying some touchscreens.  However, as the world found out yesterday, the Crunchpad &lt;a href=http://bit.ly/4ZO8qX target=0&gt;died before birth&lt;/a&gt;.  I was planning on buying several of those for touchpanels around the house.  Hopefully, there will be some ChromeOS or Android tablets in the near future.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6965539819392588107?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6965539819392588107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/random-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6965539819392588107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6965539819392588107'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/12/random-progress.html' title='Random Progress'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7196957273139958363</id><published>2009-11-24T20:09:00.000-08:00</published><updated>2009-11-26T11:55:57.314-08:00</updated><title type='text'>First Power Graph</title><content type='html'>I got around to putting the data into &lt;a href=http://oss.oetiker.ch/rrdtool/ target=1&gt;RRDTool&lt;/a&gt;.  I just updated the post with some better looking graphs.  I used &lt;a href=http://oss.oetiker.ch/rrdtool-trac/wiki/OutlinedAreaGraph target=2&gt;this guide&lt;/a&gt; for creating stacked, outlined area graphs.&lt;br /&gt;&lt;br /&gt;&lt;a target=day onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6j7jH_mJZvQ/Sw7c8Dnq0YI/AAAAAAAAAPU/BQOcYhzffoU/s1600/ecm_day0.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_6j7jH_mJZvQ/Sw7c8Dnq0YI/AAAAAAAAAPU/BQOcYhzffoU/s200/ecm_day0.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5408503126840496514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target=week onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6j7jH_mJZvQ/Sw7dDFzE-RI/AAAAAAAAAPc/YA25w6kFYSM/s1600/ecm_week0.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_6j7jH_mJZvQ/Sw7dDFzE-RI/AAAAAAAAAPc/YA25w6kFYSM/s200/ecm_week0.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5408503247684303122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7196957273139958363?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7196957273139958363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/first-power-graph.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7196957273139958363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7196957273139958363'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/first-power-graph.html' title='First Power Graph'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6j7jH_mJZvQ/Sw7c8Dnq0YI/AAAAAAAAAPU/BQOcYhzffoU/s72-c/ecm_day0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1898071699787845755</id><published>2009-11-22T09:57:00.000-08:00</published><updated>2009-11-22T16:50:14.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>Back to Juggling Multiple Projects</title><content type='html'>Earlier this week, I started work on a new xPL app, currently called xPLSys.  It monitors disk space, memory and cpu utilization and sends xPL messages containing the data.  I'm not exactly sure how I want to package those messages as there really isn't a schema to hold the info I want to send - so either I make up my own schema or send multiple messages - one for each stat being watched.  It's been running for a few days now but has been pushed aside for something else.&lt;br /&gt;&lt;br /&gt;&lt;a target=1 onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6j7jH_mJZvQ/Swl8jL78tgI/AAAAAAAAAO8/rClI56rV4LY/s1600/picture020.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 96px;" src="http://4.bp.blogspot.com/_6j7jH_mJZvQ/Swl8jL78tgI/AAAAAAAAAO8/rClI56rV4LY/s200/picture020.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406989771576489474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Brultech ECM-1240 power monitor arrived Friday, and I started installing it that evening.  I finished up most of the wiring Saturday morning and have been deciphering the serial protocol for real-time updates.  I've been using our &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSerial target=0&gt;xPLSerial&lt;/a&gt; app to interface to it and code up the interactions with the built in scripting engine.  I have to say, it's a very cool app and you should download it and donate ;).  Despite being distracted by CAL's upset of Stanford (HOORAY), I figured out the serial protocol last night and have now been fine tuning my script.  I've been thinking about rolling this into an app, but there is virtually no cpu utilization with the script running in xPLSerial.&lt;br /&gt;&lt;br /&gt;&lt;a target=z onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6j7jH_mJZvQ/SwncLg5_wsI/AAAAAAAAAPE/gEwodoQu8ic/s1600/picture021.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 58px;" src="http://1.bp.blogspot.com/_6j7jH_mJZvQ/SwncLg5_wsI/AAAAAAAAAPE/gEwodoQu8ic/s200/picture021.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5407094918004851394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I did make a change to xPLSerial to assist with debugging and that change will get pushed out eventually.  I'm also considering removing the xPL from the name and calling it something else.  It's really a serial port scripting engine with built in xPL functionality, but doesn't require xPL. In the meantime, I need to figure out what I'm going to do with the power data I'm getting every second.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1898071699787845755?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1898071699787845755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/back-to-juggling-multiple-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1898071699787845755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1898071699787845755'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/back-to-juggling-multiple-projects.html' title='Back to Juggling Multiple Projects'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6j7jH_mJZvQ/Swl8jL78tgI/AAAAAAAAAO8/rClI56rV4LY/s72-c/picture020.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6454109428974564841</id><published>2009-11-14T19:22:00.000-08:00</published><updated>2010-03-07T12:01:15.075-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Solar Contract Signed &amp; ECM-1240 Ordered</title><content type='html'>We signed the contract a couple days ago with Real Goods Solar (Regrid Power) for a 3.68kW system.  Projected install date is late February and power on in March.  Might as well have it come online when there's more sunlight.&lt;br /&gt;&lt;br /&gt;I also ordered the ECM-1240 power monitor from Brultech.  I decided to put current transformers on the lines from the solar array, but I will have to extend those via Cat-5.  They should be able to go 100 feet, but it looks like it will be very, very close to 100 feet or possibly more.  Hopefully, it will work.  I've already opened up a hole in the wall next to the sub-panel, installed a mudring and drilled through the stud next to the subpanel so I can pass CT wires from the subpanel to the mudring.  I also ran a couple Cat-5 wires through the wall behind the subpanel to a closet in the adjacent bedroom.  I'll need those to connect to the Cat-5 drops in that room to extend the solar array's CTs and possibly get the ECM-1240 on the network via a Lantronix MSS-100.  With luck, it'll get here before the Thanksgiving break so I'll have time to work on it.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6454109428974564841?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6454109428974564841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/solar-contract-signed-ecm-1240-ordered.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6454109428974564841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6454109428974564841'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/solar-contract-signed-ecm-1240-ordered.html' title='Solar Contract Signed &amp; ECM-1240 Ordered'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5613634141758179864</id><published>2009-11-10T09:22:00.000-08:00</published><updated>2009-11-10T09:46:54.548-08:00</updated><title type='text'>Power Monitoring</title><content type='html'>As we get ready for the solar panel installation, I've been looking into power monitoring systems.  I'm going with the &lt;a href=http://bit.ly/2FgsG1 target=0&gt;Brultech ECM-1240&lt;/a&gt;.  This is their 2nd generation energy monitor and has been very popular with the &lt;a href=http://bit.ly/3aQnX8 target=1&gt;Cocoontech&lt;/a&gt; crowd so it has been well tested in the real world.  Brultech Support has been very helpful responding to my emails with timely replies.  I am looking at purchasing Package A, which comes with the monitor, 2 200A split core current transformers (CTs) and 5 MicroCTs.  I'll also need 8 more MicroCTs and possibly a couple of the 80 amp MicroCTs (for our AC unit).  &lt;br /&gt;&lt;br /&gt;We have a main panel with the electric meter that services the AC unit and a sub-panel inside our house.  Everything else is fed from the sub-panel, so that's where the ECM-1240 will be.  It will be easier because I can shut off the main breaker to the sub-panel, whereas the main panel has no shut off.  The less I muck around in there, the better.  I will have to connect the CTs from the AC breakers to the ECM-1240 upstairs by the sub-panel.  The CTs can be routed over Cat-5, I just need to figure out how to get the CT wires out from the main panel and into my garage, but that can wait until the solar guys do the install.  Maybe their electrician can help me out.&lt;br /&gt;&lt;br /&gt;As for the solar install, we've finally decided on an array size, an inverter &amp; an installer, but I'm waiting for the data access to be finalized before signing the contract.  I've chosen not to use the ECM-1240 to monitor the solar array as I am working with the solar installer on getting access to the inverter via an RS232 add on board.  They've been very responsive so far and hopefully this item will be resolved soon.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5613634141758179864?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5613634141758179864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/power-monitoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5613634141758179864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5613634141758179864'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/power-monitoring.html' title='Power Monitoring'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6628798330531000206</id><published>2009-11-06T07:12:00.000-08:00</published><updated>2009-11-06T13:28:04.056-08:00</updated><title type='text'>BlueTrackerScript Released</title><content type='html'>I figure everybody is tired of reading about solar and wants me to get back to automation stuff.  I'm releasing BlueTrackerScript, an app that I use at work to tell if I'm at my desk (this affects forwarding for &lt;a href=http://doghouselabs.blogspot.com/2009/08/google-voice-automation.html target=0&gt;Google Voice Automation&lt;/a&gt;).  Of course, you'll need a bluetooth adapter for your PC, leaving bluetooth running on your cellphone, and you'll need to add some actions to the included sample script, blue.js.&lt;br /&gt;&lt;br /&gt;Since I use this on my work PC, I want it to be able to communicate with my home server without any interaction necessary (setting up ssh tunnels, etc.).  So I created two special URLs on my public webserver, one for detection and one for timeout.  The script will fetch the appropriate URL using &lt;a href=http://gnuwin32.sourceforge.net/packages/wget.htm target=w&gt;Wget&lt;/a&gt;.  On the webserver, it watches the access log for access to those specific URLs from a specific IP address (my work IP), and passes a message to the automation server if it detects those URLs have been accessed.  The automation server then adjusts Google Voice forwarding.&lt;br /&gt;&lt;br /&gt;BlueTrackerScript is available &lt;a href=http://www.doghouselabs.com/downloads/BlueTrackerScript.zip target=b&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6628798330531000206?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6628798330531000206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/bluetrackerscript-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6628798330531000206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6628798330531000206'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/bluetrackerscript-released.html' title='BlueTrackerScript Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7993300510711180772</id><published>2009-11-05T08:29:00.001-08:00</published><updated>2010-03-07T12:01:07.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Cleaning Solar Panels Uneccesary?</title><content type='html'>Yup, I'm still on my solar tangent.  Getting close to deciding on a contractor, but not yet.  I ran across &lt;a href=http://bit.ly/EZNz9 target=0&gt;this Google study&lt;/a&gt; on their solar installation.  Their study shows that tilted panels, like virtually all residential rooftop mounted systems, don't need to be regularly washed.  Rain does a good job of cleaning off the dust.  This would discount SunRun's solar panel washing benefit.  Panels that are installed horizontally do benefit greatly from a cleaning, however.  To see more details on the Google study, check out their &lt;a href=http://bit.ly/1x83nq target=1&gt;slides&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7993300510711180772?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7993300510711180772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/cleaning-solar-panels-uneccesary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7993300510711180772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7993300510711180772'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/11/cleaning-solar-panels-uneccesary.html' title='Cleaning Solar Panels Uneccesary?'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-470467811598451340</id><published>2009-10-30T13:37:00.000-07:00</published><updated>2010-03-07T12:00:58.857-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Solar Spreadsheet</title><content type='html'>A lot of the solar quotes I've gotten will take your current usage to show a cost-benefit analysis.  What I want to see is what happens to that benefit when my usage changes.  When sizing our prospective array, I want to see how much more electricity I can use before the costs really blow up.  Ideally, I want to keep grid usage in the lowest 3 tiers.  So I created &lt;a href=https://spreadsheets.google.com/ccc?key=0ApxpxOpuM4_WdGc5V2o5X0J2TG4xcjZUNnZlWVQwYkE&amp;hl=en target=0&gt;this spreadsheet&lt;/a&gt; to help with planning.&lt;br /&gt;&lt;br /&gt;It's based in Google Docs.  It's read-only but if you go to File-&gt;Make a Copy, you can save yourself an editable copy.  There is a 2nd sheet in the spreadsheet called 'info' that contains instructions on how to get the data for your specific scenarios.  The information is based on California's PG&amp;E standard residential service.  You can adjust the formulas, tiers, rates, etc. based on your situation.  Also note that many solar households go to the time of use rate schedule instead of the standard schedule, so that will affect calculations.  For simplicity, I've chosen the standard schedule.  Let me know if I've mucked anything up.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-470467811598451340?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/470467811598451340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/solar-spreadsheet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/470467811598451340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/470467811598451340'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/solar-spreadsheet.html' title='Solar Spreadsheet'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2431999399885896311</id><published>2009-10-29T09:00:00.000-07:00</published><updated>2010-03-07T12:00:28.672-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Ladders &amp; Solar Financing</title><content type='html'>Our home is two stories and you need at least a 15' ladder to reach the lowest part of the roof.  So far, of the 2 companies that have done a roof survey, both of them have showed up with a 13' adjustable ladder.  When the first guy visited, I saw him pull out his little ladder and I figured it wasn't going to be high enough.  After a couple minutes of watching him reposition his ladder, I offered my 17' ladder.  When the other installer came, I was in the house watching him on our cameras while he tried to figure out how he was going to get up on the roof with another 13' adjustable ladder. Again, I came to the rescue and offered my ladder.  These guys seriously need to think about carrying a longer ladder.  If I didn't have a long enough ladder, these guys would have really pissed me off.  I would have taken time off from work for nothing and would have had to reschedule.&lt;br /&gt;&lt;br /&gt;Anyway, all these solar installers are pushing this long term lease thing - the most common is by a company called &lt;a href=http://www.sunrunhome.com target=0&gt;SunRun&lt;/a&gt;.  There are a couple different options - but they both have an 18 year term.  The idea is they pay the installer for the system after its installed - so they own it.  Then, they lease it to you over an 18 year period.  At the end of the 18 years you can sign another lease, ask them to remove the system or purchase the system at some yet to be determined amount.  You can pay either a lump sum amount or monthly.  Its lure is that your initial outlay, if you do the lump sum, will be less than your cash purchase price before the federal tax credit.  &lt;br /&gt;&lt;br /&gt;So for example (assuming you live in California like me), if you purchased a $22,000 system, you would receive about a $3500 state rebate.  Typically, you sign the rebate over to the installer and the out-of-pocket cost would be $18,500.  Then a 30% federal tax credit shaves the net cost down to about $12,500.  &lt;br /&gt;&lt;br /&gt;With SunRun, you would pay a lump sum of about $13,000 for 18 years.  Of course, they throw in a few more goodies.  They extend the warranty of the system from the 10 year installer warranty to cover the entire 18 years.  They provide monitoring for the duration of the lease (some installers offer it for 10 years and others charge for it).  If they detect something wrong, they'll send a crew over to fix the problem.  They'll also come out and wash the panels once a year.  Finally, they'll replace the inverter since they typically have a 10-12 year lifespan.  They want you to believe this is an added $6200 worth of goods.&lt;br /&gt;&lt;br /&gt;They say monitoring is worth $2000, but since we've already got a home automation system &amp; server running, I can get a &lt;a href=http://www.brultech.com/price2c.html target=1&gt;Brultech&lt;/a&gt; monitor for about $250 and monitor it myself.  Maintenance is supposedly a $2700 value, but that's hard to quantify.  The system is supposed to be maintenance free, and I suppose I can climb up on our roof and hose the panels down once a year (but will I do that when I'm 50 or older???).  Finally, they peg the inverter replacement at about $1500.  If these inverters are $1500 in 10-12 years, to me, it assumes that there have been no technological advances in that time span.  In all, I would derate the maintenance costs by 50% and say the inverter will cost $500 when it needs replacing.  For our situation, this gives SunRun's perks a value of $250 (monitoring) + $1350 (maintenance) + $500 (inverter) = $2100, about 1/3 of what they claim.&lt;br /&gt;&lt;br /&gt;If we take those "perks" and add it to the net purchase cost of $12,500, we get $14,600.  Compared to SunRun's $13,000 cost, the purchase will cost $1600 more, but I get years 19-30 for "free."  With SunRun, after 18 years, I could either fork out some unknown amount for a new lease or to buy the system from them.  Either way, it's going to cost more than a purchase.  Otherwise, how would they make money?&lt;br /&gt;&lt;br /&gt;They really push the upfront cost advantage of SunRun vs. purchasing, and that really gets people interested.  Then they throw in their perks/scare tactics, to help push you over the edge, which seems to work because solar systems are not very common (and people still buy extended warranties for tv's and other household items).  It seems like an OK way if you don't have the cash for a purchase, but you could probably do a home equity loan and get the tax write off for that.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2431999399885896311?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2431999399885896311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/ladders-solar-financing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2431999399885896311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2431999399885896311'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/ladders-solar-financing.html' title='Ladders &amp; Solar Financing'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-1138909212989399432</id><published>2009-10-26T10:33:00.001-07:00</published><updated>2010-03-07T12:00:21.285-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>More Solar Thoughts</title><content type='html'>The system I'm currently leaning toward consists of 16 Sharp 230W panels and a Sunny Boy 3kW inverter.  Apparently, due to what's called stringing limitations, I cannot install a Sunny Boy 4kW inverter with 16 panels.  If I chose 14, 20 or 22 panels, it would work.  That changes my expansion plans.&lt;br /&gt;&lt;br /&gt;One suggestion would be to install 16 Enphase micro-inverters instead of a central inverter.  The microinverters would allow each panel to turn on individually, instead of having to wait for the array voltage to reach a certain level before a central inverter turns on.  Microinverters could possibly boost output 5-10% because the panels will generate sooner and stay on later and are supposed to work better in shade and on hazy/cloudy days.  Also, if one dies, the rest of the array will still produce.  However, there appears to be a $2000 premium based on my system size and they are relatively new technology (but have a 15 year warranty).  There is also the issue of replacement in case of failure - someone would have to hike up to the roof and possibly remove panels to get access to a failed microinverter (depending on how they do the installation).  I have also been told that around 10-12 years, normal inverters will probably need replacement, so I assume around 15 years, the microinverters will need to be replaced - and there is extra labor associated with their replacement.  Finally, with so many microinverters, there is an increased number of points of failure vs. a single regular inverter.&lt;br /&gt;&lt;br /&gt;Panel brands is another topic of interest.  One installer is very high on Evergreen Solar and how their panels are rated 0-10% above spec vs. other brands which can be +/- 5% or so.  Sunpowers are high end, high efficiency, but somewhat restrictive with their installation.  Perhaps this is why none of the 5 quotes I received used Sunpower.  Sanyos are also high efficiency and high priced, but are manufactured/assembled all over the place.  Obviously, each dealer will tout the panels whose manufacturer they have deals with or which provides them the largest profit margin.  &lt;br /&gt;&lt;br /&gt;For the consumer, it ultimately comes down to cost, wattage and size (room for future expansion) - at least it does for me.  When you start to use the more exotic panels, it's hard to justify the longer breakeven period.  I chose the 16 230W panels instead of 20 175W panels due to density - I want to have room on the roof for future expansion.  The 20 175s would nearly occupy the entire back roof.  I could get 16 Sanyo 215W panels for a $2000 premium (and 240W less output) vs the Sharp 230W.  The Sanyo's are about 8" narrower so I could squeeze 2 extra columns - or 4 more panels - in the space of the 230W Sharps.  Overall, I could squeeze up to 27 Sanyo's vs 20 Sharps - 5.8kW vs. 4.6kW output - a pretty large difference.  &lt;br /&gt;&lt;br /&gt;I am leaning toward the 3kW inverter at this point.  In the future, if we need more capacity, I could then go with microinverters for the additional 4-6 panels that there's room for.  With today's panels, I have room to go from 3.7kW to 4.6kW, but in 5 years, panel density will be better - so I should be able to get more power out of the remaining roof space.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-1138909212989399432?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/1138909212989399432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/more-solar-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1138909212989399432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/1138909212989399432'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/more-solar-thoughts.html' title='More Solar Thoughts'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6336067001297897855</id><published>2009-10-21T15:19:00.000-07:00</published><updated>2010-03-07T12:00:13.442-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Planning to go Solar</title><content type='html'>I just had a site evaluation with an installer we're considering.  He checked a few things out - the roof - and it's in great shape and the electrical panel - which can easily accommodate the extra amperage.  Then he ducked into the attic to check the structure and take a few pictures.  While on the roof, he took measurements and made note of obstructions like vents.  Some short vents can be cut even shorter and panels can be installed over them.  The lowest efficiency we'll have would be about 98% due to our back neighbor's Italian Cypress, which will cause some shading in the early morning.  I may ask the neighbor if we can cut it down a little.  Our back roof has a SE facing, while not optimal, is still very good in terms of sun exposure.  Based on this, we should qualify for 92% of the California solar rebate.  Next step is for the installer to send a couple plans with different panels and outputs.  We're looking at a 3.5-4 kW system which will reduce our yearly electricity bill by about 72%.  I also need to think about future needs and roof space for expansion like an EV car or 40" LCD touchpanels for automation ;)  The installer has a bit of a backlog, combined with the winter weather and holidays, the soonest they could start would be January.  Power on might not happen until March due to inspections from the city &amp; utility.  I have 3 other installers to look at, but I'm leaning toward this one as they did a great job on my co-worker's array several months ago and have had an answer for every one of my questions (I ask tough questions! ;)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6336067001297897855?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6336067001297897855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/planning-to-go-solar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6336067001297897855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6336067001297897855'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/planning-to-go-solar.html' title='Planning to go Solar'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5300783876398014840</id><published>2009-10-20T09:42:00.000-07:00</published><updated>2009-10-20T09:45:40.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLSerial Released</title><content type='html'>It's been a while since I released an app.  xPLSerial gloms together a generic serial port interface, xPL and a scripting engine.  Read more about it and download it &lt;a href=http://www.doghouselabs.com/software/index.cgi?cat=xpl&amp;app=xPLSerial target=0&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5300783876398014840?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5300783876398014840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/xplserial-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5300783876398014840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5300783876398014840'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/xplserial-released.html' title='xPLSerial Released'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8086002782011303728</id><published>2009-10-19T13:51:00.000-07:00</published><updated>2009-10-19T14:44:17.978-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xPL'/><title type='text'>xPLSerial</title><content type='html'>I've decided I needed to code up something to deal with serial port devices I may want to interface with.  I've put serial device handling into my starCOMUltra hosted script as well as in my sCU-xPL bridge (xPL sCU), but while I'm debugging stuff, I don't want to keep reloading those apps as much of the HA system relies on it functioning correctly.  There doesn't appear to be an xPL app that allows generic serial port interfacing, so I figured this would be a good (and easy) app to write.  A majority of the code comes out of xPL sCU since it already does serial &amp; xPL as part of its features.  Because of this, I've already got a prototype running.  It relies on an internal scripting engine to set up the serial port, send data to it and parse data from it.  You can then issue xPL messages as necessary.  Right now, I'm working on interfacing to an Ocelot I just acquired.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8086002782011303728?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8086002782011303728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/xplserial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8086002782011303728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8086002782011303728'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/xplserial.html' title='xPLSerial'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-879463566318992355</id><published>2009-10-15T10:43:00.000-07:00</published><updated>2009-10-15T10:52:59.517-07:00</updated><title type='text'>Cheap Low Tech Home Security</title><content type='html'>Recently, I've gotten tired of coming home from work to find random flyers attached to my front door.  Aside from the hassle of having to toss the papers in the recycle bin, the flyers are an obvious hint to thieves that there's probably nobody home.  I stuck a "No Solicitors" sign on the front door a couple months ago and have had good luck so far.  Our security cameras have captured a number of these spammers walking up the driveway, but once they get close to the porch and see the sign, they turn right around leaving nothing.  No flyers and no door-to-door solicitors makes the WAF high and makes this a high bang for the buck "project." &lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-879463566318992355?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/879463566318992355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/cheap-low-tech-home-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/879463566318992355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/879463566318992355'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/cheap-low-tech-home-security.html' title='Cheap Low Tech Home Security'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2453824782097035087</id><published>2009-10-12T10:28:00.000-07:00</published><updated>2009-10-12T10:41:59.197-07:00</updated><title type='text'>Updated Cellphone to Windows Mobile 6.5</title><content type='html'>I finally got around to updating my HTC Touch Pro from WM 6.1 to 6.5 using &lt;a href=http://forum.xda-developers.com/showthread.php?t=516509 target=0&gt;this&lt;/a&gt; build.  I've been playing around with it this weekend reloading and re-customizing.  It seems a little snappier than 6.1.  I like it.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2453824782097035087?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2453824782097035087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/updated-cellphone-to-windows-mobile-65.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2453824782097035087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2453824782097035087'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/updated-cellphone-to-windows-mobile-65.html' title='Updated Cellphone to Windows Mobile 6.5'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-2276109442498837773</id><published>2009-10-11T19:28:00.000-07:00</published><updated>2009-10-11T21:19:32.237-07:00</updated><title type='text'>Homemade Avermedia Quad Viewer</title><content type='html'>I've been working on more web pages for our user interface (much cheaper than constantly buying hardware!)  I thought I'd share some code on a simple quad viewer I coded up.  I previously had single camera views on our floorplan GUI so this was really easy to add.  Since our floorplan is web based, it will work on all platforms, which is great since the Avermedia software only works on Windows.&lt;br /&gt;&lt;br /&gt;The Avermedia software has special URLs where you can view compact images of each camera.  With a little JavaScript, you can have them refreshed at periodic intervals.  First off, you start off with an HTML shell that defines the cameras - let's call it cam.html:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;  &amp;lt;head&gt;&lt;br /&gt;    &amp;lt;SCRIPT SRC="cam.js" language="JavaScript"&gt;&amp;lt;/SCRIPT&gt;&lt;br /&gt;  &amp;lt;/head&gt;&lt;br /&gt;  &amp;lt;body onLoad="refreshCam();"&gt;&lt;br /&gt;    &amp;lt;img src=images/blank.png id=livecam0 style="position: absolute; left: 263px; top: 15px;"&gt;&lt;br /&gt;    &amp;lt;img src=images/blank.png id=livecam1 style="position: absolute; left: 620px; top: 15px;"&gt;&lt;br /&gt;    &amp;lt;img src=images/blank.png id=livecam2 style="position: absolute; left: 263px; top: 255px;"&gt;&lt;br /&gt;    &amp;lt;img src=images/blank.png id=livecam3 style="position: absolute; left: 620px; top: 255px;"&gt;&lt;br /&gt;  &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A few key things are the reference to the JavaScript file, cam.js and the call to refreshCam() when the HTML loads.  Each img tag defines a camera view for each of the 4 cameras (you would put more if you have an NV5000 with more cameras).&lt;br /&gt;&lt;br /&gt;The JavaScript file, cam.js, is below:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var camNum=0;&lt;br /&gt;function refreshCam() {&lt;br /&gt;    t=0.2;&lt;br /&gt;    if (camNum==0) {&lt;br /&gt;        document.getElementById('livecam0').src="http://10.10.10.10:5550/mobile/channel01.jpg";&lt;br /&gt;    } else if (camNum==1) {&lt;br /&gt;        document.getElementById('livecam1').src="http://10.10.10.10:5550/mobile/channel02.jpg";&lt;br /&gt;    } else if (camNum==2) {&lt;br /&gt;        document.getElementById('livecam2').src="http://10.10.10.10:5550/mobile/channel03.jpg";&lt;br /&gt;    } else {&lt;br /&gt;        document.getElementById('livecam3').src="http://10.10.10.10:5550/mobile/channel04.jpg";&lt;br /&gt;    }&lt;br /&gt;    camNum=(camNum+1)%4;&lt;br /&gt;    refreshCamId=setTimeout("refreshCam()", t*1000);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Every time refreshCam is run, one of the camera views is refreshed depending on the camNum variable.  The URL given is the special Avermedia URL - and each image in the HTML is associated with a camera's URL.  Every iteration, camNum is incremented and the sum has a modulo 4 operation done on it - resulting in a value that changes from 0 to 3.  The setTimeout function causes refreshCam() to be run every 0.2*1000 milliseconds.  That's pretty much it.  You can use any camera server you want - just substitute the URLs in the JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-2276109442498837773?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/2276109442498837773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/homemade-avermedia-quad-viewer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2276109442498837773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/2276109442498837773'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/homemade-avermedia-quad-viewer.html' title='Homemade Avermedia Quad Viewer'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6123831879852828199</id><published>2009-10-05T21:20:00.000-07:00</published><updated>2009-10-05T21:31:01.069-07:00</updated><title type='text'>Snagged Free Win7 Ultimate</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6j7jH_mJZvQ/SsrHTVHxj9I/AAAAAAAAAOc/sPeCxCSFflg/s1600-h/win7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://3.bp.blogspot.com/_6j7jH_mJZvQ/SsrHTVHxj9I/AAAAAAAAAOc/sPeCxCSFflg/s200/win7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5389339039003414482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I went to Microsoft's &lt;a href=http://www.microsoft.com/business/thenewefficiency target=new&gt;The New Efficiency&lt;/a&gt; Event and got a free copy of Windows 7 Ultimate.  I don't have a machine to install it on though.  I'd like to eventually port my apps to Win 7.&lt;br /&gt;&lt;br /&gt;Other than that, I've just been re-theming and updating my ASP pages and doing some reading on PHP &amp; MySQL.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6123831879852828199?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6123831879852828199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/snagged-free-win7-ultimate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6123831879852828199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6123831879852828199'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/10/snagged-free-win7-ultimate.html' title='Snagged Free Win7 Ultimate'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6j7jH_mJZvQ/SsrHTVHxj9I/AAAAAAAAAOc/sPeCxCSFflg/s72-c/win7.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-8287238329511251070</id><published>2009-09-25T08:18:00.000-07:00</published><updated>2009-09-25T08:49:24.979-07:00</updated><title type='text'>A Search Engine for the HA System</title><content type='html'>As I've mentioned many times before, all system status (server status, starCOMUltra variables, TimeCommander+ devices, etc) is mirrored in a MySQL database.  Many times when I'm debugging stuff, I sift through a logfile to find values or open up an ASP page containing flags, variables, etc.  As a twist on this, I decided to make a search engine of sorts, where I could specify a portion of a name in the database and have all matches and their values returned.  My initial try focused on writing some JScript to work with our IM interface and that's what I'm going to write about.&lt;br /&gt;&lt;br /&gt;Each table in the Autohouse database is a category, like flags and variables.&lt;pre&gt;&lt;br /&gt;mysql&gt; show tables;&lt;br /&gt;+---------------------+&lt;br /&gt;| Tables_in_autohouse |&lt;br /&gt;+---------------------+&lt;br /&gt;| ai                  |&lt;br /&gt;| calendar            |&lt;br /&gt;| debug               |&lt;br /&gt;| di                  |&lt;br /&gt;| flag                |&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Typically, each table consists of a device and its corresponding value:&lt;pre&gt;&lt;br /&gt;mysql&gt; select * from locals;&lt;br /&gt;+-------------------------+------------+&lt;br /&gt;| device                  | value      |&lt;br /&gt;+-------------------------+------------+&lt;br /&gt;| AirQualityO             | 27         |&lt;br /&gt;| AirQualityP             | 46         |&lt;br /&gt;| BWDownDaily             | 0.246      |&lt;br /&gt;| BWDownMonthly           | 46.297     |&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Not all the column names are the same, so we have to parse them out.  For example, the database records the past 10 temperature readings for all temp sensors:&lt;pre&gt;&lt;br /&gt;mysql&gt; select * from lrtem&lt;br /&gt;+------+---------+&lt;br /&gt;| id   | value   |&lt;br /&gt;+------+---------+&lt;br /&gt;|   10 |  73.625 |&lt;br /&gt;|    9 | 73.5125 |&lt;br /&gt;|    8 | 73.5125 |&lt;br /&gt;|    7 |  73.625 |&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In scripting this up, we'll need the MySQL commands to get the data we want.  First off, &lt;i&gt;show tables&lt;/i&gt; gives the table names.  Next, we'll iterate through each of the tables and grab their column names with &lt;i&gt;show columns from &amp;lt;table name&amp;gt;&lt;/i&gt;.  Finally, we'll do a case insensitive search in that table for the matching device: &lt;i&gt;select * from &amp;lt;table name&amp;gt; where device like '%&amp;lt;name to match&amp;gt;%'.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Here's the code snippet I've implemented in my xPL scripting engine to handle queries via the IM interface.  This sets up the MySQL access from JScript:&lt;pre&gt;&lt;br /&gt;mysql=new ActiveXObject("ADODB.Connection");&lt;br /&gt;strConnectString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost; \&lt;br /&gt;                    DATABASE=autohouse; UID=user;PWD=password; OPTION=3";&lt;br /&gt;mysql.Open(strConnectString);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And this is the actual code to handle everything:&lt;pre&gt;            &lt;br /&gt;            } else if (Mycmd[0] == "query") {&lt;br /&gt;                // Mycmd[0] is the command, Mycmd[1] is what we're looking for&lt;br /&gt;                txtBody = "\n";&lt;br /&gt;                var fieldArray=new Array();&lt;br /&gt;                // get all table names&lt;br /&gt;                query="show tables";&lt;br /&gt;                rs=mysql.execute(query);&lt;br /&gt;                while (!rs.EOF) {&lt;br /&gt;                    // iterate through each table finding their column names&lt;br /&gt;                    query2="show columns from "+rs('Tables_in_autohouse');&lt;br /&gt;                    rs2=mysql.execute(query2);&lt;br /&gt;                    var i=0;&lt;br /&gt;                    while (!rs2.EOF) {&lt;br /&gt;                        fieldArray[i] = ""+rs2('Field');&lt;br /&gt;                        rs2.MoveNext;&lt;br /&gt;                        i++;&lt;br /&gt;                    }&lt;br /&gt;                    // now search the table for a matching name in the first column&lt;br /&gt;                    query3="select * from "+rs('Tables_in_autohouse')+" \&lt;br /&gt;                            where "+fieldArray[0]+" like '%"+Mycmd[1]+"%'";&lt;br /&gt;                    rs3=mysql.execute(query3);&lt;br /&gt;                    while (!rs3.EOF) {&lt;br /&gt;                        // build the output text&lt;br /&gt;                        txtBody = txtBody + " " + rs('Tables_in_autohouse') + &lt;br /&gt;                                  " - " + rs3(fieldArray[0]) + "=" + &lt;br /&gt;                                  rs3(fieldArray[1])+"\n";&lt;br /&gt;                        rs3.MoveNext;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;br /&gt;                    rs.MoveNext;&lt;br /&gt;                }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The text gets passed back to the IM interface and the result is something like this:&lt;pre&gt;&lt;br /&gt;me:  query ring&lt;br /&gt;autohouse: &lt;br /&gt;  di - Ring=0&lt;br /&gt;  flag - RingFlag=0&lt;br /&gt;  flag - RingFlag2=1&lt;br /&gt;  timer - ring_timer=0&lt;br /&gt;  var - ring_cnt=226&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The resulting search returned the names and values of a digital input, two flags, a timer and a variable.  This can be easily extended to a webpage so you can build your own Google for your home automation system.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-8287238329511251070?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/8287238329511251070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/search-engine-for-ha-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8287238329511251070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/8287238329511251070'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/search-engine-for-ha-system.html' title='A Search Engine for the HA System'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-5467513834962785949</id><published>2009-09-23T13:35:00.000-07:00</published><updated>2009-09-23T13:42:53.408-07:00</updated><title type='text'>Excellent, Free MS SAPI Voice for XP</title><content type='html'>Check out this &lt;a href="http://www.cocoontech.com/forums/index.php?showtopic=14601&amp;hl=" target=0&gt;CT thread&lt;/a&gt; on how to get the Microsoft Anna voice running on XP.  The tip about Universal Extractor is also a great idea.&lt;br /&gt;&lt;br /&gt;And don't forget to get the latest &lt;a href=http://picasa-readme.blogspot.com/2009/09/picasa-35-now-with-name-tags-build-7967.html target=1&gt;Picasa&lt;/a&gt;, which has auto face tagging.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-5467513834962785949?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/5467513834962785949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/excellent-free-ms-sapi-voice-for-xp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5467513834962785949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/5467513834962785949'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/excellent-free-ms-sapi-voice-for-xp.html' title='Excellent, Free MS SAPI Voice for XP'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-7349902373436190233</id><published>2009-09-19T13:39:00.000-07:00</published><updated>2009-09-19T13:44:29.760-07:00</updated><title type='text'>A Little Lull</title><content type='html'>I haven't been working on too much the last couple weeks.  I think I've run out of things I want to do.  One thing I've contemplated is automating opening/closing the vertical blinds in our family room, but it's not used very much anyway.  I also thought about adding a magnetic lock on a gate, but they are a little pricey and I haven't found any that would default to locked on a power outage (can they even do that without power?).  In the meantime, I'm just kicking back doing a little reading and watching some football.  I think I deserve a break ;)&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-7349902373436190233?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/7349902373436190233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/little-lull.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7349902373436190233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/7349902373436190233'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/little-lull.html' title='A Little Lull'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3098906125359025983.post-6269693805690123368</id><published>2009-09-14T08:07:00.000-07:00</published><updated>2009-09-15T10:14:07.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>First Rain Brings Death (Of UPS)</title><content type='html'>Last night, we had our first rain of the fall (well it's almost fall) and it was enough to cause brownouts.  This proved fatal for the UPS in the wiring closet.  Fortunately, the TimeCommander+, a couple routers &amp; switches and the NSLU2, which were on the UPS, were spared.  The NSLU2 doesn't power itself back on when power is restored so I just realized it's resting quietly in the wiring closet instead of serving up http://www.doghouselabs.com.  That's now fixed and a temp UPS has been installed.  I'm not having luck with power related gear lately.&lt;br /&gt;&lt;br /&gt;&lt;img src=http://www.doghouselabs.com/kj.png&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3098906125359025983-6269693805690123368?l=doghouselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doghouselabs.blogspot.com/feeds/6269693805690123368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/first-rain-brings-death-of-ups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6269693805690123368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3098906125359025983/posts/default/6269693805690123368'/><link rel='alternate' type='text/html' href='http://doghouselabs.blogspot.com/2009/09/first-rain-brings-death-of-ups.html' title='First Rain Brings Death (Of UPS)'/><author><name>R</name><uri>http://www.blogger.com/profile/13562527987211965545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
