Auto Sonos reboot?

I’d say Sonos over wifi in my house has < 99% uptime reliability. At first, it was because I was using 40mhz channels in the 2.4ghz bands, which meant interference city! As soon as I bumped down to 20mhz channels, things got a lot better.

Still, though, at least one of my sonos devices drops out of the network at least once a month. These devices seem also not to be very good at noticing and re-establishing the group. Usually the solution is to power cycle the device.

All this leading to a thought I had today for a very silly solution: I can uses the SoCo python library on my automation server to find all the local devices. I could do this once in a while to make sure all the Sonos devices are up and running. Should one drop out, I could wire each Sonos to a z-wave switch, and automatically turn the switch off and turn it back on to bring it back.

I believe in the enterprise they call this self-healing.


Bali Autoview and openzwave

Need to write this down before I forget. I spent a bit of time trying to figure out how to get my new Bali Autoview-powered shades to work with my python-openzwave based automation server.

I ordered mine through the Bali website, using their very weird integration. If you order the Autoview configuration, it ships with a separate remote that is pre-paired with the motor in the blinds. It takes a little work to undo this pairing and get it working with your own zwave controller.

Here were the steps I took:

  1. “network” reset on the motor side. Hold the “button” in on the top bar of the blinds until it flashes red. This makes the motor side forget about all pairings
  2. On the server side, get your controller into inclusion mode. I usually do this using ozwsh that comes as part of the python-openzwave package. You launch the tool, do a “cd controller”, then a “send add_device True”
  3. Once the controller is in inclusion mode, hold the button on the blinds until the light flashes green. After a second it should be included and it will confirm by moving the slightly up and back.
  4. You show now see the blinds as a node in your zwave network. The version of openzwave I’m using appears to not know about this device and only shows some basic command classes (dimmer). You can control the blinds using standard on/off and Level/Dim/Bright settings. “On” means the blinds go up, “off” means the blinds go down.

This is enough to get your zwave stick to control your blinds. The problem now is that small remote that shipped with the blinds is now unpaired. You need to get that to work. I tried the procedures listed in the included manual, but nothing worked. I then figured out that you have to first include the remote into your zwave network.

Here’s how I did that:

  1. On the remote, use a paper clip to push the button in the back and hold it in until the light on the front flashes red. This means a total reset and it’s forgotten all associations and inclusions.
  2. Set your zwave controller into inclusion mode
  3. Push the back-side button in again, and hold it, until the light on the front flashes green. This gets the remote onto your zwave network. (For me it shows up as a blank node)
  4. Once the remote is on the network, then the standard pairing described in the manual seems to work. On the remote you poke the back side button once to get it flashing, then you hold the button on the blinds in until it flashes green. These two then associate.

Now I can control the blinds through my home automation server / z-wave stick and also with the included remote.