The Z-Wave interface I’m working on is an inherently asynchronous beast. Callbacks abound, and the use of lambda functions makes that much easier to deal with. This fact led me to select C++11 as the language standard for the project.

And then I added automatic memory management with std::shared_ptr<>, and it all fell apart.

Why, you ask?

So there I was, all gung-ho to make some serious progress. I was going to do a bunch of reseach on Z-Wave; I was gonna write a nice little bit of software to replace OpenHAB; and I was gonna blog about it. It was gonna be great!

I was truly in the Zone.

And then my boss quit, and it all went to hell in a handbasket.

openHAB is a Java-based platform (developed in parallel with Eclipse Smarthome, on which it is based) that provides interface, control, and automation functionality for your home. It supports many devices and networks through “bindings”, including Z-Wave. A rules engine provides for automation, and several user interfaces are available.

Since HomeAssistant doesn’t support the scene control features of the HS-WD100+, I decided to give openHAB 2 a shot.

It works reliably once configured.

Until you get to that point, it’s a hot mess…

The HS-WS100+ or HS-WD100+ HomeSeer switches both support multi-way configurations. This will not work with standard three-way switches, however; instead, you need the HS-WA100+.

Note that this switch is not a Z-Wave device, does not directly control a load, and will not work without one of the aforementioned HomeSeer switches. If you’re looking for just a remote Z-Wave switch without load control, you should look elsewhere.

From Stack to Rack

April 8, 2017

I wasn’t sure what I was going to do with my small collection of servers when I moved into the house, so they ended up stacked on a folding table. While it was functional, it certainly wasn’t the prettiest thing in the world. Plus there was the mess of power strips and cables…

After procrastinating for months, I finally got around to doing something about that this weekend.

HS-WS100+ Switch

The HomeSeer HS-WS100+ is a best-in-class Z-Wave wall switch. It uses a mechanical relay, which means you can switch almost any load within reason. It even supports three-way operation with the HS-WA100+ companion switch.

And like the HomeSeer dimmer, it includes additional scene control functionality, making this a very versatile addition to your home automation system.

Denny - the mind behind

Hard as it is to believe, today marks’s first birthday. One year ago today I finally got around to putting my new blog together. My goal was to post often, and talk about fun things.

I only managed about a post and a half per month. This is post #20.

What went wrong?

I’ve been waiting for weeks now for HomeSeer to get their excellent Z-Wave dimmers and companion switches back in stock. They finally did earlier this week, and my wallet is feeling the pain…

Shipping was prompt; I ordered them on Tuesday with standard ground shipping, and — to my shock — they arrived this afternoon. Now my weekend is utterly doomed…

Sensative Strips are thin devices that you can install on a door or window to detect the open or closed state. They’re small, they’re functional, and amazingly enough, they speak Z-Wave. Install one on the frame of your door, and you have a nice little sensor without having to run wires.

I got mine from a seller on Amazon.

They’re also fiddly little things, at least when pairing with OpenHAB…

If you can’t get your hands on a HomeSeer HS-WD100+, the GE 12724 is a nice alternative. It doesn’t have a visual indication of the dim level, and it doesn’t support multi-tap scene control, but it’s comparable in most other ways.

So long as you can get beyond the crappy status reporting, that is…

Need I say more?

I’m mainly looking at OpenHAB for support of the advanced functionality in the HomeSeer HS-WD100+ in-wall dimmers. Specifically, they have multi-tap functionality supporting four commands in addition to the generic On/Off function. For example, my pool light switch is out by the shed; wouldn’t be nice if I could just double-tap the switch at the back door instead?

Here’s one way of making it work in OpenHAB 2…

I’m in the process of evaluating alternative solutions to the Wink (I really want the Central Scene functionality for the HomeSeer Switches!). After a brief foray into HomeAssistant (which doesn’t support it either), I decided to try OpenHAB 2. It’s early in that process, but so far it looks promising.

Unfortunately, ESXi has an issue or three with USB passthrough support.

The HomeSeer HS-WD100+ In-Wall Dimmer is widely recognized as one of the best Z-Wave dimmers currently available. It has the functionality one would expect of a dimmer, plus additional scene control abilities via double- and triple-tap operations on either the top or bottom paddle. Pairing is simple, but advanced features may not be available with some hubs.

DZR15 Z-Wave Outlet

February 8, 2017

The Leviton DZR15 outlet provides a convenient method of controlling loads without having a separate module cluttering things up. This unit installs in place of a standard wall outlet and provides two sockets: one switched, and one unswitched.

The unit is very easy to pair with most home automation hubs.

The Leviton DZS-15 is a Z-Wave switch designed for on/off control of 15 Amp 120VAC loads. It supports a wide range of loads, and supports 3-Way operation with the addition of a remote companion switch. Pairing with the Wink (and presumably other hubs) is simple.

I’ve always been interested in home automation. In the olden days, this meant X10 — which meant bulky, slow, and unreliable. Modern technologies have changed this, however; From Apple HomeKit to Z-Wave, the choices are endless. Most are also far faster and more reliable than X10.

The local Home Despot had the Wink 2 in stock, so I decided to give it a shot.

Home Sweet Home

November 27, 2016

For those who are actually wondering, yes, I’m still alive. I managed to get quite thoroughly distracted, and TuneControl was shoved to the back burner for a while (as were all my other projects). I simply haven’t had the time to work on anything.


Because I decided to buy a house.

I haven’t been able to dedicate as much time to TuneControl as I’d like, but I managed to work on it here and there over the past few weeks. My focus has been on developing the firmware, and this is a new approach for me. Usually I build the hardware first.

It’s early days yet, but there has been some progress.

TUN/TAP Demystified

May 21, 2016

Have you ever wondered what the Linux TUN/TAP driver is for? Wonder no more! After spending most of last weekend tweaking the NuttX Simulator network support, I now have a pretty good idea of what TUN/TAP is, what it’s useful for, and how it works.

Might as well pass it on, right?

Several years ago I built a device to help with managing my iTunes library. Fast forward to 2016, and it’s still incredibly useful. Unlike days gone by, I don’t have to dig up my iTunes window every time I want to change tracks, pause the music, or rate a song. The only catch is that it’s a tethered USB device, and only useful when I’m at the computer.

And that’s no longer good enough.

Many of my basic network services live on Raspberry Pi hosts. DNS, DHCP, my yum repository mirrors, my git server… These useful little machines make excellent utility hosts for simple tasks that don’t require much horsepower.

But if I have so many important things running on them, shouldn’t they be monitored?

In my last post, I discussed using Zabbix to monitor varnish. I said it was easy, and that was mostly true — but it also missed one detail that made the situation a bit more complex. It has nothing to do with Zabbix or Varnish really, but the way in which I run my production servers.

Specifically, I run SELinux in enforcing mode.

Yeah, it was an ugly day today. We got a few inches of rain (complete with wild tunderstorms) in just a couple of hours, and the beautiful river I live on has turned to mud as a result. A perfectly cruddy end to a perfectly cruddy week.

At least I got something accomplished this weekend, though…

It’s been a busy week. I lost many hours to the American Idol finale. Had to keep up on The Voice, of course. Then add in the massive (and very painful) project we’re in the middle of at the ever-dreaded job… The little time remaining was devoted to “final” tweaks to my internal network, and a major rework of my Amazon VPC in the hope of making my Amazon budget go a bit further.

It’s with the latter task that this story starts.