After playing with my Zigbee-controlled IKEA FYRTUR Blinds, I wanted to experiemnt with automated lighting. Despite already having a functional Zigbee network, I wanted to choose high quality, reliable lighting components. After spending a ton of time researching on the internet, I decided to start a new Z-Wave network, using Inovelli dimmer switches. This project is my first attempt to get the network functioning.

The Choice of a Network

After my (somewhat poor) experience with Zigbee, I wasn’t eager to use Zigbee hardware again for something critical like lighting. I know hardwired devices behave better overall than battery powered ones as they don’t have to be woken up to change settings, but I’d been spending some research time comparing Zigbee with Z-Wave and Lutron Caseta, and I decided to try setting up a Z-Wave network for this project. Lutron Caseta has a fantastic reputation, but it’s pretty expensive for what you get compared to the newest generation of Z-Wave products, and has a 75 device limit. I don’t need 75 devices currently, but at this point in my life I’m already planning on my first new house build and I could easily run up on that 75 device limit in that application, so I’d like to experiment with technologies I’d actually put in my house build.

I started with my bedroom combined fan and light. I am planning on adding additional lighting in the future, but that is another project. For now, I selected the Inovelli Red Series Fan + Light Switch (LZW36). As of this writing it’s out of stock, but I was able to snag two by closely following the forums. It uses Z-Wave Plus, sports a double button plus double up/down toggle control, and two of the RGB indicator bargraphs that Inovelli is famous for. The Fan + Light switch has a remote module which actually controls the fan and light, and mounts like an RF fan remote module would.

Setting Up the Network

For the Z-Wave controller, I got an Aeotec Z-Stick Gen5+ because the Gen7 was out of stock. My existing raspberry pi in the laundry room (located in the center of all of the bedrooms) which is running Zigbee2MQTT is an old Raspberry Pi 2, which is too old to run the latest versions of Node.JS required for ZWaveJS. So, time to track down a newer Raspberry Pi. I’ve been involved with Raspberry Pi’s for a long time and I’ve gotten most of my older ones embedded into projects by this point, but I bought 10+ of them in the ARMv6L days, so most of them are still older. Given the current Raspberry Pi shortages and the lack of software to run on ARMv6L, I’ll probably have to start slowly buying Model 3 and 4’s as I can. I was able to find a Raspberry Pi 3 not involved in a project, and set it up as my Z-Wave master using ZWaveJS2MQTT. I chose to use ZWaveJS2MQTT to use it’s good web UI, and ran it remotely from Home Assistant to keep it running when I restart the HA server and locate it in a better place for coverage than the depths of the basement lab.

Automating my Lights

After setting up the Z-Wave controller, adding the ZWaveJS integration to Home Assistant and pointing it to my ZWaveJS2MQTT installation on the Raspberry Pi, I paired the LZW36 in my bedroom to the network. I was instantly impressed by the breath of configurationability of the LZW36, compared to my Zigbee network where all of my devices have essentially no configuration ability. I played with the dimming ramp rates, default levels, and even set the LEDs to different colors for fun. Super easy with ZWaveJS2MQTT.

I already bought an IKEA TRÅDFRI Motion Sensor when I bought my blinds, since it was really cheap and didn’t cost extra to ship, and I decided to try that in my bedroom instead of buying a new Z-Wave motion sensor. This means I won’t get all of the features of something like the Inovelli LZW60, but it’s functional and 1/3 the price. There are no settings to adjust on the motion sensor, it returns a boolean sensor in Home Assistant with a 90 second turn off delay. I configured the lights with the Home Assistant built-in ‘motion controlled lighting’ blueprint, matching the motion sensor with the light device. It works pretty well, and I’m generally happy with it.

After living with it for a few days, I found that the automation is perfect during the day, but can be irritating at night. The motion sensor also doesn’t have a great view of my bed, so sometimes it turns itself off if I’m using my laptop in bed. My solution to this is to expand the sunset automation I started in my Smart Blinds Project, making a pair of automations for sunrise and sunset tasks. I change the default brightness of the switch (parameter 12 for local and 13 for Z-wave ‘on’ command) to 66% after sundown and back to 100% after sunrise, and disable the motion sensing automation between sunset and sunrise so the lights don’t accidentaly turn on at night. I’ll have to suffer with only manual or app control in those situations, which is still better than what I had before this, so I’m pretty happy overall.

I haven’t experimented with Inovelli’s RGB indicator for notifications yet other than manually changing the color for fun, but that’s certainly a project for the future. I already love the look and function of my automated light switch, and I’ve ordered a 10-pack of switches and a few dimmers to automate a whole bunch of other stuff in my house.

The Project Files and Parts List

Here are all of the files and parts required to replicate this project.