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.
Here’s the script that ran on Dreaming Nest, my Home Server, which has a ThinkStick USB Z-Wave controller.
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:
I’ve been making more improvements to Roomie (which I still haven’t released). Now a RoomieScript can send a RoomieScript to another computer. This makes collaborated scripts much easier. The script below gets two of my computers, the Home Server and Desktop Computer, to wake me up in the morning. The Home Server handles the Z-Wave stuff—turning the lights on and off—and the Desktop Computer handles the music.
Since school is out and work hasn’t started yet, I have finally been able to catch up on some coding. I know it’s geeky, but it’s fun! Today I made some updates to Roomie, adding variables and functions to RoomieScript, the scripting language that the Roomie desktop application interprets. Since I got a smart phone I have become in mobile development. Today I took an hour or so to develop a mobile version of the Roomie website. (Right now both websites are technically open to the public, but without the desktop application, which I have yet to release, the websites are useless to outsiders.)
Here’s a video:
I gave a presentation for my ENGE 1104 (Exploration of a Digital Future) class about home automation. My team members talked about X10, Z-Wave, ControlThink’s SDK, and some project ideas. I gave a brief overview of a project that I have been working on sporadically for a couple years, Roomie. In doing so, I for created some documentation, so I figured I’d publish some of it here. Here is an example of RoomieScript and it’s execution: