Unfortunately and fortunately, I have been super busy with work projects but I am excited about some of the personal projects I have been messing with.  Most of this site’s traffic is focused on open-zwave projects and Raspberry Pi Projects, so if you are one of those people and you are interested in anything I am working on, feel free to ask for the latest code or contribute your thoughts.

Open-zwave Thermostat

While I went with a wireless thermostat that is working great, I really want to add thermostat functionality to my open-zwave tcp server.  I have started with a Z-Wave USNAP module added to my existing Filtrete thermostat.  I have both the Z-wave and WiFi radio plugged in at the same time and I have not had any issues.

Pairing it with my Aeon Lab Z-stick S2 was easy from the on screen menu on the thermostat.  I clicked on the radio icon to get started on the thermostat and pushed the include button on the Z-stick.

So far,  it looks like information is flowing back and forth with a couple of exceptions.  When the thermostat is in “auto” mode for heating and cooling, I see “Off”.  Here is an example of the values I currently receive:

[name] = Undefined
 [node] = 3
 [group] = 
 [type] = General Thermostat V2
 [status] = On
 [Mode] = Off
 [Unused 3] = 0.0
 [Library Version] = 3
 [Protocol Version] = 2.78
 [Application Version] = 7.04
 [Cooling 1] = 72
 [Basic] = 255
 [Temperature] = 70.0
 [Operating State] = Idle
 [Fan Mode] = Auto Low
 [Battery Level] = 100
 [Indicator] = 0

I have been able to switch modes and set cooling set point.  I also added a very basic display to the basic open-zwave client.  Still a long way to go.

Open-zwave “Cloud” Service

Yes, I said ‘cloud’ and that is annoying.  Naturally, people want to control their devices when they are gone.  With our Raspberry Pi implementation, I want to make it simple and as secure as possible without making the user worry about firewall / port forwarding concerns.  What I envision and have been testing is a simple process that connects to the cloud mother-ship every 10 minutes and “drops off” the statuses of the devices and “grabs” waiting commands.  At worse case, the device you are trying to control doesn’t get the update for 10 minutes which I think is acceptable initially.  I have been sending the requests signed with a shared key over SSL but I am not sure on the best way to exchange initial/updated keys and link it to an account automagically.

Part of this project is cleaning up the open-zwave tcp server.  I want it to communicate with easier more mainstream messages that don’t rely on delimiters that are not properly escaped.

Counting ‘Blue’ Cars

While researching how I could make Bluetooth walkie talkies for bike riding, I stumbled onto Dream Green House’s bluetooth proximity project.  They had luck detecting if someone was home by pinging their Bluetooth device.  During the setup, they noticed that they could see several ‘discoverable’ Bluetooth devices beyond their home (and then later ping them to see if they were home – creepy).  Now, I want my walkie talkies to also try to pair with other devices that are set to discoverable so the message ‘Bicycle Close to You’ wants to pair.  I am not sure if any research studies have been completed on the subject, but I feel the people with discoverable devices are more likely to hit me while I am riding.  So far, I have only played with the range of my Bluetooth dongle and the hcitool.


  1. George B. -

    Thomas, Great site here and very exciting to read about the things that you are working on. I have a Raspberry Pi running Wheezy on which I have installed the THUM Temperature and Humidity Sensor from the Practical Design Group to monitor basement temp and humidity in a vacation home. That has worked well for about a year now. But I now need to add control for a dehumidifier to better control humidity in the home. I have just purchased a SmartSwitch 2 and USB Stick Series 2 controller by Aeon Labs to control power to a dehumidifier. I have installed the openzwave-control-panel software and can access the web page to turn on a light via the web page (test setup). My problem is that I need to have a command line capability to turn the switch on and off from a shell script once I sense the humidity is not at the level I want. So far I have not been successful in finding that capability. I freely admit that I am a newbie on the Zwave technology on the Raspberry Pi. I also freely admit that I have not done an totally exhaustive search to all corners of the internet for this solution. So I will accept any beating I must take if you could point me to a command line capability for controlling a zwave switch without going through any web interface. Thanks for your time.

    • Thomas -

      Hi George,

      With the ‘Z-wave TCP Server’ server provided here: TCP server on github, you should be able to create a quick script to turn on and off z-wave devices from the command line.

      Something simple like ‘LightON.sh’:

      echo "open 6004" 
      sleep 2 
      echo 'DEVICE~2~255~Binary Switch'
      sleep 5

      Run with lightON.sh | telnet


Leave a Reply