[RELEASE] SOMA Smart Shades 3 (Zigbee) driver

SOMA pushed a firmware update that lets the SOMA Smart Shades 3 motor join a Zigbee 3.0 network directly โ€” no more SOMA Connect bridge required. Hubitat's built-in Generic Zigbee Shade driver mostly works, but it doesn't handle the motor's quirks around target-position echoes, does not hold opening / closing through travel, and doesn't decode the ZCL Default Response acks.

This is a purpose-built driver that fixes all of that.

Supported devices

Device Manufacturer string Model Protocol Status
SOMA Smart Shades 3 WazombiLabs SmartShades3 Zigbee 3.0 :white_check_mark: Tested
SOMA Smart Shades 3 SOMA SmartShades3 Zigbee 3.0 :white_check_mark: Fingerprint declared, same hardware

If your motor reports a different manufacturer string, please post the fingerprint line from Get Info โ†’ Logs and I'll add it.

Features:

  • Full shade control โ€” open, close, set to any position (0โ€“100%), start/stop, and refresh
  • Live movement status โ€” the tile shows opening / closing the whole time the shade is moving, not just when you press the button, so dashboards and Rule Machine can react while it's in motion
  • Instant final status โ€” when a move finishes, the tile updates to open / closed / partially open right away
  • Rock-steady position โ€” no flickering or jumping in the position value while the shade moves
  • Clear logs โ€” every command is confirmed in the log (e.g. "ack: Close -> SUCCESS")
  • Extra info on the device page โ€” motor speed (as set in the SOMA app), battery voltage, and shade type
  • Battery level via the standard Battery capability
  • Invert-position toggle for shades mounted in reverse
  • Three logging levels (descriptive / debug / trace) for easy troubleshooting

Installation

Option A โ€” Hubitat Package Manager (recommended)
Search for SOMA Smart Shades 3 (Zigbee) driver

Option B โ€” Manual install (works today):

  1. Hubitat UI โ†’ Drivers Code โ†’ + New Driver โ†’ Import โ†’ paste:
https://raw.githubusercontent.com/uDevel/hubitat-soma-shades-3/main/soma-smart-shades-3.groovy

โ†’ Import โ†’ Save.
2. In the SOMA phone app, update the motor to the latest firmware and enable Zigbee mode for each shade.
3. In Hubitat: Devices โ†’ Add Device โ†’ Zigbee โ†’ Start Zigbee pairing, then put the SOMA motor into pairing mode (long-press per SOMA's instructions).
4. If the device pairs as a generic "Device", change Type on the device page to SOMA Smart Shades 3 โ†’ Save Device โ†’ click Configure.
5. Verify with the dashboard tile or by calling refresh from the device page.

[details="Advanced: verify the fingerprint"] On the device page, click Get Info, then open the top-nav Logs page. The driver will print a fingerprint line โ€” if the manufacturer or inClusters don't match either fingerprint in the driver, it's probably a new firmware revision and I'll add yours so future pairings auto-detect. [/details]

Preferences:

  • Invert position โ€” flip if your shade reports open when it's actually closed
  • Battery report interval โ€” how often the shade reports its battery level (60โ€“1440 min; the shade's own minimum is 1 hour)
  • Motion settle timeout โ€” how long to wait after movement stops before locking in the final status (1โ€“30 s, default 3)

Commands table:

Command What it does
open Fully open the shade
close Fully close the shade
setPosition(0โ€“100) Move to a specific position (0 = closed, 100 = open)
startPositionChange("open" "close")
stopPositionChange Stop the shade mid-move
identify(seconds=30) Make the motor reveal itself (blink / buzz / jog) โ€” handy when you have several shades
readSettings Pull the shade's current settings into the logs
refresh Re-read position and battery
configure Sets up the shade's reporting โ€” click once after pairing

Source code

:package: GitHub: GitHub - uDevel/hubitat-soma-shades-3: Hubitat Zigbee driver for the SOMA Smart Shades 3 (WazombiLabs SmartShades3) ยท GitHub
:page_facing_up: Raw driver: https://raw.githubusercontent.com/uDevel/hubitat-soma-shades-3/main/soma-smart-shades-3.groovy
:identification_card: License: MIT

Issues, feature requests, and fingerprint contributions are welcome on GitHub Issues.

Related threads

Update โ€” v1.2.1 is out. Grab it through Hubitat Package Manager (it'll show as an available update), or re-import the raw driver URL if you installed manually. After updating, hit Configure on the device page if anything looks off.

What's new

  • Three new read-only values now show on the device page (and work in dashboards and Rule Machine): motor speed, battery voltage, and shade type. Heads-up: the speed is whatever you've set in the SOMA app โ€” it's shown here for reference but can't be changed from Hubitat,
    because the motor only takes its speed setting from the app.
  • New "readSettings" button โ€” pulls the shade's current settings (speed, battery voltage, type, and more) into the logs. Handy for troubleshooting or just having a look.
  • Faster status โ€” when you open, close, or set a position, the tile flips to open / closed / partially open the moment the shade arrives, instead of after a short delay.

What changed

  • The "Closed threshold" and "Open threshold" settings are gone. The driver now decides open vs. closed on its own, so there's one less thing to fuss with โ€” your shades behave exactly as before.

Under the hood

  • Some cleanup and accuracy fixes from Zigbee details SOMA shared. Nothing you need to do.