Fun with Bali ZWave Motorized Shades

Back in May 2025, I finally ordered and replaced the manual shades in our home with a combination of motorized and manual shades. After communicating with folks here and after doing some further research, I chose to go with Bali (part of Graber) since I could see samples at my local Lowes, but ultimately placed the order through Costco which has a special relationship with Bali (also a Costco shareholder). The process was seamless and they all arrived VERY WELL packaged, undamaged, missing no parts, and the order was exact. My particular order was packaged in Mexico, and each shade was individually wrapped and contained a note from the person who packed it. A nice touch.

When placing your order, they provide detailed instructions on how to take measurements to ensure a perfect fit and how to install. The also provide a form where you can enter all your measurements in one place, along with a LABEL that they actually put on the packages so you know which shade is for which window. Installation was very simple (mine were all inside mount) and were fairly large windows (which has an impact on battery life). I chose the rechargeable Li-Ion battery pack over the pack that takes replaceable batteries. I bought 6 chargers (inexpensive) so I could do bulk recharge if needed. They are basic plug bricks with a USB-C connector. Charging takes 3-5 hours depending on depletion.

Prior to committing, I spent a LOT of time communicating with the guy who works with BALI’s motorization technical support who is most familiar with Home Assistant. He and I discussed at length the integration with HA, how it all works, which shades work best, battery life, what is reported to HA, and all the capabilities it supports; he was extremely helpful. Only after I was satisfied did I place the order. I chose the battery hanger that hangs from the top rail of the shades behind it, out of sight (from the inside), versus the one that attaches to the window frame (for external mounted shades). The battery can be seen from the outside, which bugged me, so I decided to buy some frosted window sheeting that you put on with water and a squeegee, and really liked the result. You can see it in this photo.

These shades are added just like any other ZW device. The only difficulties I had were with the most distant shades. I had to keep waking them up repeatedly so HA could finalize the initial interview and integration due to the long, multi-hop routes. The appear as shades in HA, and HA reports both Open/Closed status as well as intermediate, and they update as they are moving, intermittently (it is not a smooth display). If I stop the shade at 35% open, that is what HA will show. I have found occasionally that HA will show the incorrect state of the most distant shades (the same ones I had trouble adding initially. I contribute this to the extreme range). I talk more about this later. Here is my dashboard:

From this point forward, I will only be discussing the motorized shades I bought. I purchased the 1/2" double cell cellular shades, with smart shade motorized lift, Z-Wave & Bluetooth, with the rechargeable Li-Ion battery pack, 6 chargers, and 1 Premium Remote. The total for these was just shy of $3k. given the quality of the shades, the motorization, the -Wave integration, and ease of order/installation, they were worth every penny, and I’d do it again.

I’ve waited before posting my experience to assess the battery life so I could report on it. Bali (and the tech support guy) note that battery life depends on a number of factors, such as how often articulated, size of shade, type of shade, and distance from the controller. The most optimistic values I saw ere 2 years, with 1 year being ā€œtypicalā€. The tech guy said that his experience was more like 6 months if you use them every day. I typically open all of them every morning and close them all again every night, so on average, one cycle per day. They are all the same material, although their sizes vary sometimes considerably. So, I suspect the major factor affecting my battery life is distance from controller, at least my battery data seems to indicate that.

In the table below, I’ve listed each window along with the battery levels at two different dates, along with the estimated distance the shade is from the controller, the width and height of each shade, and the number of floors and walls between the shade and the controller. They are either 1 floor or 2 floors below the floor where my ZW controller is. I recharged 3 of them on 8/6, which I’ve indicated by shading. I don’t know what to make of the DS Middle, other than it is probably the furthest away from any solid powered repeater, like an in-wall light switch (which are all over the house). But it does seem to bear out the theory that the length of route and number of hops plays a roll in the battery drain. Although, it also could have nothing to do with it. But the data is here:

One last thing: the Premium Remote is very nice, with 12 channels that you can program to any combination of shades. Below I show how I programmed mine, which just fits with my number of shades. As you can see below, I can control any shade individually, or as a group, for example all upstairs or all downstairs, or just those in the master bedroom.

Very simple to program. The button battery life could be better IMO. Even though I have wake time set at 6 hours, I see a small LED on the remote flash every 5 minutes or so, regularly, so I don’t know what’s going on (and haven’t called in to support about it yet). But it is definitely worth having it. It stays in the MBR, and works great for the 5 on the floor below too. Pressing it makes all the shades move at (almost) the same time, whereas using HA, you can see the traffic flowing on the network (there’s a small, 1-2 second delay before each shade moves in turn).

At any rate, I hope this helps someone else struggling like I was trying to find a solid Z-Wave motorized shades solution. My experience with Bali/Costco has been fantastic, and I don’t hesitate to recommend them to anyone looking for such a solution. Just a heads up, you will initially work on the Bali website setting everything up, then you’re transferred to Costco to place the order. Costco does some weird stuff in how it groups everything together in the order, with none of the details you see on the Bali site just before being transferred. It concerned me, but was told that’s just the way it works between them. As I stated earlier, my shipment came to me as ordered and in perfect condition. Shipping was only $75 to Alaska, which was excellent for 3 fairly good-sized, heavy boxes.

Cheers!

6 Likes

I have 25 Bali blinds installed, the first in Sept. 2023, and the most recent in June 2025. Five with product code RSZ1, and 20 with code CRZB. All but one are hardwired, the other has the lithium battery.

The quality control has not been good on the blinds I received; two RSZ1 blinds failed with surface mount components that literally fell out of the blind when I opened the box (they weren’t soldered on), and multiple blinds had their cords pinched internally - the bottom rail was grossly not parallel with the header rail. I was able to fix the pinched blinds myself, and Blinds.com replaced the two defective RSZ1 blinds with new CRZB.

Here’s some comments and pointers on using them with HA.

The CRZB is the replacement for the RSZ1. The main difference is the CRZB has Bluetooth, and the RSZ1 does not. The blinds are connected to HA via Z-Wave, and the Bali Motorization app connects directly to the blinds with Bluetooth.

Bali / Graber / Spring Window Fashions does not make firmware updates available for Z-Wave OTA, but they do make firmware updates available to flash blinds via Bluetooth. HA will not notify when a firmware update, you must view the blind in the Bali app to see / flash updates.

The appear as shades in HA, and HA reports both Open/Closed status as well as intermediate, and they update as they are moving, intermittently (it is not a smooth display).

I don’t believe this statement is correct; the blinds (RSZ1 and CRZB) only send a ZW update when the blind stops moving:

This behavior persists in current v14.7 firmware. I have written some workaround code for it; I have window sensors and don’t allow the blinds to close while the windows are open. The Bali app seems to show current position while the blind is in transit; it’s worth investigating if the current position can be obtained using HA’s Bluetooth functionality.

There is a very specific order to include devices and pair the blinds with HA and additional remotes; I included it in the ZW JS device file I wrote - you should see it in the device Help section when you view the node in ZW JS UI. I may update the file to remind people to use the Bali app to get firmware updates.

There was a dramatic improvement to the HA group helper in the 2025.8 release:

I recommend using the new group helper for your blinds. This simple interface controls 12 blinds in 5 rooms, with only four HA buttons - click the icon to toggle the blinds up/down, touch the text portion to control individual blinds, or to select intermediate up/down levels.


I use the remotes only for direct physical control, but notifications that a remote button was pushed are useful for preventing the blinds from closing when the window is open. You could use the notifications to trigger other actions also, such as turn off a light.

I agree the lithium battery longevity is excellent. I bought a spare battery to swap rather than waiting to charge and then replace. There is an HACS add-on that makes dealing with batteries much easier:

I purchased my blinds through blinds.com, but I’m also a Costco member - have you complared Costco vs online pricing?

1 Like

I have 8 RSZ1 (fw 13.2) models running for a few years now under Zwave JS UI. Not sure what the newer FW adds/fixes?

Also, for these shades I use the Enhanced Shutter card, and made/shared custom YAML…

and if you want a Blueprint to alert you to low battery states…
https://community.home-assistant.io/t/battery-report-easy-customize-includes-excludes-to-do-list-notifications-more

1 Like

True. I was told this by their tech support guy. It may come in the future. But at least you can update via their app.

Not exactly, but neither is the statement you quoted from OctAA, at least in my experience. It is true that the blinds don’t provide real-time moving position updates to HA, but it is not true that they only report after the blinds stop moving. I’ve found (and just tested it again) that when I open a blind (or a set of blinds using a group), that the HA slider/display on some of them immediately pop to the end state, while others wait until they finish moving to pop there. There is no intermediate, real-time moving display. I knew that before buying them, and realistically don’t require it as it is just extraneous traffic on the network. I do believe I have seen the sliders pop to an intermediate static position before finally popping to the end state after movement stops. This is also true of the Group sliders that pop to a percentage calculated by the sum of the positions of all the blinds in a group (if they aren’t all open or all closed), sometimes at the start, sometimes at the end. Note, that this is as experienced with the current tile cards I show on my dashboard. Other cards, buttons, tiles, etc., may/probably work differently.

This is all outlined well in the documentation and I had no issues; it’s pretty straightforward.

I had not yet tried these since they appeared after I created my own groups. I just created one and it looks pretty sweet. It appears you used the Mushroom Cover Card, but neither the default Button Card and Entity Card shows the percentage Opened/Closed (by default), and when it does, it’s pretty crude (on buttons it’s not even a option), and clicking anywhere on them opens the bottom dialog box you posted. With the Mushroom Card, you indicated that touching the text would bring up that dialog, but that did not work for me. Clicking anywhere on that card did a full open/close, not other control. Long press does bring up the additional dialog though.

This is very nice! I’ll give it a shot. I currently do this all myself via various methods, templates, etc., even using groups to define fast/slow reporting devices to prevent false reporting, as well as, templates to report low batteries on my dashboard. This is typically using static values on battery devices that normally aren’t static, such as temp or lux or humidity. Most of my battery powered devices report one or more of these. I’ve found that many devices don’t report battery power well at all, in most cases with HA still reporting sometimes 60% battery level even though the device is clearly dead. Others even report 0% battery level even though they continue to report correctly. This is why I chose to rely on static values in HA to determine dead batteries. Lithium batteries can go from good to dead very quickly. This is the card I use to pop up when a device stops reporting:

type: custom:auto-entities
card:
  type: entities
  title: Check Batteries
  show_header_toggle: true
  state_color: false
filter:
  template: |
    {{ expand('group.battery_sensor_overdue_normal_grp')
      | selectattr('last_changed', 'lt',now()-timedelta(hours=states("input_number.time_till_sensor_overdue_in") | float)) 
      | map(attribute='entity_id') | list  | join('\n') ~ '\n'
      ~ expand('group.battery_sensor_overdue_extended_grp')
      | selectattr('last_changed', 'lt',now()-timedelta(hours=24 | float))
      | map(attribute='entity_id') | list  | join('\n')
    }}
show_empty: true
sort:
  method: none

A time_till_sensor_overdue_in value of 3 (hrs) works well.

Since Costco directs you to Bali’s own site, which is filled with helpful instructions, documents, and videos, I didn’t look any further. But out of curiosity, I just went on blinds.com and Costco/Bali sites, and built the exact same Bali shade and the Costco shade was $435 and the blinds.com shade was $787. I double checked it multiple times. YMMV.

2 Likes

I found when setting a % open value in HA, the GUI card / slider often changes to the set value, not where it actually is. I did my testing in the ZW debug console, and found ZW messages are only transmitted by the blind when it stops moving.

When I setup my blinds in 2023, the Bali tech support told me it wasn’t possible, but I stumbled across the sequence on my own. Glad to hear they’ve updated the documentation.

It’s actually a ā€œTileā€ card in the new ā€œSectionsā€ view. Nabu Casa hired the Mushroom card developer to further develop the HA dashboards.

Did you take into account the ā€œalwaysā€ sale on blinds.com? The discount varies 40-55% of the list price. If not, it’s about the same price. I’ll definitely check Costco the next time I order a blind.

I don’t know either. The only problem I’ve had with the blinds is they sometimes freeze (both RSZ1 and CRZB - they won’t even respond to pressing the physical button on the blind frame. I put the blind power supplies on ZW switched receptacles; I restart them every night automatically, and anytime a blind stops responding.

1 Like