Hi all,
I’m sharing a new binding for Norman ShadeAuto motorized window shades (manufactured by Nien Made / Norman Window Fashions). These are sold under the “ShadeAuto” brand and use a WiFi hub that communicates with the shades over RF.
A note on how this was built: The Java implementation was written by Claude Code (Anthropic’s AI coding agent) under my continuous direction and review. I drove the architecture, feature decisions, hardware knowledge, API reverse-engineering, and all real-world testing — Claude translated that into openHAB-conformant Java code. Every commit was reviewed and validated on my live hardware before being accepted.
What it does
The binding talks to the ShadeAuto hub over the local network using its HTTP API on port 10123 — no cloud dependency. It supports:
- Hub bridge with configurable polling interval
- Auto-discovery of all shades registered to the hub, organized by room and group
- Position control — open, close, and set shade position by percentage
- Battery monitoring — battery level and low-battery alert per shade
- Command tracking — polls during shade movement to track position changes in real time, with suppression logic to prevent stale hub data from overwriting commanded positions
Hardware
The ShadeAuto system is a motorized shade product line sold through Norman dealers. The hub connects to your WiFi network and controls the shades via RF. Each shade has a battery-powered motor. The hub exposes a local HTTP API that this binding uses — all communication stays on your LAN.
I’m not aware of any existing openHAB binding for this hardware. The closest relative in the openHAB ecosystem is the Hunter Douglas PowerView binding (hdpowerview), which was used as an architectural reference.
Architecture
- Bridge thing (
hub) — manages the API client, status polling, and command tracking - Child things (
shade) — one per shade, with position (Dimmer), batteryLevel (Number:Dimensionless), and lowBattery (Switch) channels - Discovery service queries the hub’s room/group/peripheral hierarchy
Status
The binding is working on my openHAB 5.x installation with three Norman shades. Position control (UP/DOWN/percentage), battery reporting, and auto-discovery are all functional. I’ve been testing it for several weeks.
I’ll be submitting a PR to openhab-addons shortly. Happy to hear any feedback or questions about the hardware or the binding.
Cheers,
BiloxiGeek