Monday, June 17, 2013

Major Milestones Along The Way



I was cleaning up some stuff in my office and came across the invoice for my JDS TimeCommanderPlus (TC+), and it made me think about how our HA system got where it is today. September 1995 - that's when the madness began. Although I was playing with some wireless X10 stuff a little earlier, the real automation started with the TC+. To this day, it's still chugging away, handling X10 and IR (with an IR-Xpander2), along with some digital inputs and a few relays.It was great, for a time. The TC+ native software package, WinEVM, was practically a Windows 3 program and never evolved beyond that. Not being a software guy, I was content to use the WinEVM point-and-clunk interface to write code (later dubbed "starglish" in reference to the follow on JDS Stargate) to download to the TC+. It had hooks to allow it to play sounds files on a serial connected host PC plus the ability to issue shell commands. I created a bunch of batch files to take advantage of that, but not much else.

A major leap forward came when I started beta testing a software package called starCOMPlus in 2001 (or was it 2000? I can't remember). starCOMPlus exposed all the devices in the TC+ through DCOM, allowing users to create standalone apps that can control and query all aspects of the TC+. It also gave the ability to create web interfaces, and I learned how to build ASP pages to control X10, relays and IR and read the digital and analog inputs. starCOMPlus also introduced what the developer called a "hosted" script, which also had access to the TC+ devices and would run while the app ran. It allowed offloading and expanding of functionality from the TC+ to the host computer using a "real" language (jScript or VBScript - I chose jScript). From there, the number things I could automate and interface to exploded.

In 2003, I stumbled upon xPLRioNet, an alternate server for the Rio Receiver (RR). The RR was one of the first networked MP3 players, and I had picked up a couple being liquidated around 2001. xPLRioNet (later called MediaNet), was the best of a few alternate RR servers. It featured this neat thing called xPL, that allowed status and control messages to be passed around my home LAN. As I found out, there were many xPL apps that expanded HA beyond what I had known. I could now have distributed nodes tied together by xPL. I was hooked.

Four years later, I figured out how to write an AJAX app, and put together the pieces of what became our floorplan GUI. During that process, I taught myself PHP, JavaScript, DOM manipulation and especially mySQL, which has become an integral part of our HA system. With xPL providing the first piece of a distributed HA system, mySQL became the persistent state of the system, accessible and changeable by any of the nodes. Now, I was no longer tied to having Windows nodes.

In early 2008, I started learning to write my first .NET app. I had been using a copy of HAL Deluxe that I had found on liquidation for about $10, but the user interface was a piece of crap. It was another point-and-clunker, so my first app exposed HAL's devices to a scripting engine (much like what starCOMPlus did for the TC+) and tied in xPL. While I was writing that app, I was also using that knowledge to write another app linking starCOMUltra (the sequel to starCOMPlus) to xPL & xAP, and building in another scripting engine. To that point, I had been using other apps to script xPL interactions: xPLHAL and xAP Floorplan. Neither provided the free-from scripting that starCOM* did and I craved, so I wrote my own. Once I got my feet wet in .NET, I was churning out applications like crazy & the functionality of our system took another exponential jump.

It has been been nearly non-stop HA since then (as you can see from all the blog entries), except for the work induced hiatus last year. As always, I'm on the lookout for new ideas to implement (although I'm notoriously frugal!).

No comments:

Post a Comment