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.

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

Continue reading

Roomie gets some CSS schooling

This week I have been furiously re-writing a few key elements of the Roomie website.  Specifically, I scrapped the old device button controls, which you can see here. They were ok, but they were very rigid in use, offering only two different pictures to back the buttons.  Zooming on mobile devices didn’t work so great either, since the images were PNGs, raster graphics.  Now I have created a button framework entirely in CSS, HTML, and ASP.NET controls.  Because of this, I can easily create new kinds of controls completely in code, and they even zoom cleanly as well.  My original vision for this was to enable the user to create “virtual device controls”, which would display next to the regular device controls.

Roomie home automation main site on an iPad

Continue reading

RoomieRemake woke me up and made me coffee!

I recently rearranged the Z-Wave modules in my house to devices that I care about controlling more.  I put one on the coffee maker so that I could preload it and either schedule it to turn on or turn it on through the Roomie website, which would be good for if I were heading home sometime and wanted a fresh cup waiting for me.  I also put a module on my computer monitors and speakers, which are in my bedroom.  This lets a script turn them off when I go to bed and back on right before a script wakes me up with music.

This morning RoomieRemake woke me up with two short scripts.  And hey, more news!  I used the recently-updated website (which I’ve apparently never directly blogged about) to write the scripts.  Here’s a screenshot of that.

 Roomie website with wake up scripts

Here’s the script that ran on Dreaming Nest, my Home Server, which has a ThinkStick USB Z-Wave controller.

Continue reading

Hey! Roomie isn’t dead either!

After completely rewriting FRI from scratch (and renaming it Arcadia), I have decided to rewrite my other big project, Roomie.  This absolutely needed to be done.  Roomie had some good functionality, but I had hit the limit for its extensibility.  Roomie’s engine was a monolithic blob of ugly code, with very little room to make it into a full scripting language with features like custom functions and if statements.  My redesign of Roomie, which I call RoomieRemake for now, is completely expandable, is properly multithreaded, and has all of the potential to be a robust, featurefull scripting language.  Just like Arcadia, I am proud to declare that RoomieRemake shares absolutely no code with its predecessor.  Not even a single copy/pasted line of code!  More on that in a bit, but first an end scenario:
Roomie Text Message

Continue reading