Commence asynchronous laughter

I’ve been working on Roomie all day, fixing up things here and there. Here’s another silly demo. It uses the WebHook.SendScript and Computer.Speak commands to simulate a conversation between my laptop and my TV.

Silly.  Here’s a screenshot of the Roomie web interface displaying the script.  I did a lot of refactoring today, and I am so close to being able to un-XMLify RoomieScript and make it look like a real programming language.

Roomie Send Script demo

Happy days! The new Roomie website is usable!

Available at http://roomiebot.com, the new Roomie website works!  I use the website to turn lights and things on and off from my desktop computer, laptop, smartphone, and and old still-has-a-browser iPod touch. 

I spend most of my time on the Devices page, which lists all of the devices in all home automation networks on my account.  (Right now I only have a single Z-Wave network, but in theory I could have a potpourri of different networks that include other existing home automation frameworks, IR transceivers, and—I dunno—USB missile launchers?)

Anyway, the UI all works, and dynamically updates when a devices state changes.  Cool!

roomie_devices

More on Roomie’s website rewrite

As stated in my previous post about Roomie, I’ve been using a lot of brain juice to rewrite Roomie’s website.  I wrote the original website in ASP.NET with Web Forms, which was pretty standard for the time.  Although technology like ASP.NET MVC and the Entity Framework existed in some form, they weren’t even on my radar.  So after some coding and hacking and pushing through unfamiliar problems, I eventually got a workable website.  (This website, though not the final version, is pictured in this post.)

After merging all of Roomie’s desktop and web components into one self-aware Visual Studio solution, learning a ton of new technology, and a little trial and error, I now have the Roomie desktop client talking directly to the new website.  Best of all, I can locally debug everything which means that I can get quicker feedback on code changes and (shrug?) even develop offline.  Below I have a simple example pictured.  A more impressive example is when I tell the Roomie desktop client to say something using text-to-speech, but obviously that would not convey over a screenshot.

Roomie MVC3 Tasks working

Continue reading

Another novel (and silly) use for Roomie

I’ve been working (rather obsessively) on Roomie for the past week.  In specific, I have rewritten the XML-based protocol that allows the desktop client to communicate with the web service.  (Say “hi” to it here.)  The new library (which I call WebCommunicator) is sooo much easier to use than my old one, but still has all the nifty (and important) encryption and anti-hacking features.  I will eventually publish the protocol as an independent library.  (Give me a bit to use it more and work out all the kinks.)

But enough technical talk.  Lets get to serious business.  Here I have a little RoomieScript that I wrote, just as a proof of concept.

<RoomieScript>
  <ZWave.PowerOff DeviceName="Coffee Pot" />
  <Core.Loop>
    <ZWave.WaitForChange DeviceName="Coffee Pot" PollInterval="5 Seconds" />
    <ZWave.PowerOff DeviceName="Coffee Pot" />
    <RoomieBot.TextDavid Text="No coffee!" />
  </Core.Loop>
</RoomieScript>

Continue reading