This integration adds support for Tuiss SmartView blinds over Bluetooth Low Energy and provides an alternative to the Tuiss app. This integration allows you to operate one or more blinds, check battery status, set movement limits, set local timers, and control speeds. For best results, I strongly recommend using ESPHome Bluetooth proxies rather than the built-in Bluetooth adapter on Home Assistant hardware or a Raspberry Pi, as the majority of connection issues are due to poor coverage of your Bluetooth network.
This integration does not support RF control (used by the Tuiss remote); for RF control you can use a device such as the Sonoff RF Bridge.
The following hardware versions have been tested and confirmed to work. Other versions may also be compatible.
- TS3000: External battery pack connected by cable; charged via a DC barrel plug.
- TS5200 / TS5300: Battery pack integrated into the blind housing; charged via USB‑C. Includes a manual control button near the charge port. Supports variable movement speeds.
- TS2600 / TS2900 / TS5001 / TS5101: Roller blinds that support variable movement speeds.
Note: Devices should be automatically discovered if they are in range of a Bluetooth adapter/proxy once you have completed steps 1-3. If your blinds are not discovered, they may be out of Bluetooth range. Please check that you can connect to them using the Tuiss Smartview app from the exact location of your Bluetooth adapters, and adjust their positions accordingly. If they are still not discovered, you can add them manually by following the remaining steps below.
- Complete the setup of your blind in the Tuiss Smartview app.
- Add the integration from the HACS marketplace (instructions here).
- Restart Home Assistant if required.
- Go to Settings > Devices & Services.
- Click the + Add Integration button.
- Select Tuiss SmartView from the dropdown.
- Enter the MAC address from the tag included with your blind, or written within the top bracket of the blind, close to where the battery is plugged in.
- Give the blind a name.
- Click Submit.
- Cover
- Battery sensor
- Signal Strength sensor (diagnostic)
- Favourite position button
- Preset selector (see Presets section below)
- Timers (see Actions section below)
- Diagnostic sensors (see Diagnostic sensors section below)
- Set position
- Open
- Close
- Stop
From the integration's Options screen you can configure:
- Reconnection attempts: number of retries before giving up on a connection.
- Check position on restart: fetch current position after Home Assistant restarts.
- Blind motor speed: for supported models (Standard, Comfort, Slow).
- Favorite position: a percentage value that can be triggered with the "Go to Favorite Position" action.
- Limits: set the upper and lower boundaries of the blind, which control how far the blind will move from open to closed.
- Battery check interval (days): number of days between automatic battery checks performed when the blind next moves. Set to
0(default) to disable automatic checks. If set, the blind will perform a battery check on the next movement when the last automatic check is older than this value. NOTE: This doesn't work alongside the Simultaneous blind positioning action. If you want to use that feature, then check for the battery using the get_battery_status action detailed below instead. - Delete all timers: remove all timers added to blind, either through this integration or the Tuiss app
Each blind exposes a set of diagnostic sensors, visible under the device page in Home Assistant. These are intended for troubleshooting and monitoring rather than everyday use.
| Sensor | Description |
|---|---|
| Signal Strength | The RSSI value (dBm) of the most recent Bluetooth connection. See the Troubleshooting section for guidance on interpreting values. |
| Model | The hardware model string reported by the blind (e.g. TS5200). |
| Blind Speed | The currently configured motor speed (Standard, Comfort, or Slow). Only available for supported models. |
| Last Battery Check | Timestamp of the last time a battery status check was performed. Survives restarts. |
| Battery Check Interval | The currently configured automatic battery check interval, shown as a human-readable string (e.g. "7 days" or "Disabled"). |
| Traversal Speed | The measured speed of the blind motor in % per second, calculated from the last movement. Useful for diagnosing unusually slow or fast travel. |
| Last Connection Error | The most recent connection error message, or "None" if the last connection was successful. Helpful for identifying intermittent Bluetooth issues. |
Presets are named position shortcuts stored in Home Assistant (not on the blind itself). They are independent of the on-blind firmware timers and the single Favourite position from the Configuration options. You can define as many presets as you like — for example "Morning", "Movie Night", or "Fully Closed".
Each blind has a Preset dropdown entity. Selecting a preset from the dropdown immediately moves the blind to the stored position. The dropdown shows the currently active preset if the blind is within 0.5% of a saved position, and clears automatically as soon as the blind moves away from that position. The entity is unavailable when no presets have been saved.
Presets are managed using the following actions, which can be run from Developer Tools → Actions or called from an automation:
tuiss2ha.save_preset— Save a named preset at a specific position (0–100). If a preset with the same name already exists it will be overwritten.tuiss2ha.save_current_position_as_preset— Save the blind's current position under a given name. Useful when you have physically positioned the blind where you want it and don't know the exact percentage.tuiss2ha.apply_preset— Move the blind to the position stored under the named preset.tuiss2ha.delete_preset— Remove a named preset.
All preset actions accept the entity_id of either the cover or the Preset select entity for that blind.
Example automation to apply a preset at a scheduled time:
alias: Morning blinds
trigger:
- platform: time
at: "07:30:00"
action:
- service: tuiss2ha.apply_preset
data:
entity_id: select.living_room_blind_preset
name: "Morning"All actions can be run manually from (Developer Tools → Actions) or included in an automation.
Tuiss blinds do not provide an accurate battery percentage. Instead, the integration exposes a binary battery state:
- Normal - battery is good
- Low - battery needs charging
Automatic battery checks can be triggered by setting the "Battery check interval (days)" option (see Configuration options). When enabled, a battery check will run on the next movement if the last automatic check is older than the configured number of days.
Example automation to check batteries and notify when low:
alias: Blinds battery notify
trigger:
- platform: time
at: "02:00:00"
action:
- service: tuiss2ha.get_battery_status
target:
entity_id:
- binary_sensor.hallway_blind_battery
- binary_sensor.study_blind_battery
- if:
- condition: state
entity_id: binary_sensor.hallway_blind_battery
state: "on"
then:
- service: notify.mobile_app_your_phone
data:
message: "Hallway blind battery is low"
- if:
- condition: state
entity_id: binary_sensor.study_blind_battery
state: "on"
then:
- service: notify.mobile_app_your_phone
data:
message: "Study blind battery is low"If blinds are moved using the Tuiss app or a Bluetooth remote, Home Assistant will not automatically know the new position. Use the tuiss2ha.get_blind_position action to request the current position (manually or via automation). Running this too frequently will drain the blind battery; hourly or less is recommended.
Use the action tuiss2ha.set_blind_position to set positions with one decimal place of precision (0.0–100.0).
Supported models allow setting the motor speed via tuiss2ha.set_blind_speed. Available speed options are: Standard, Comfort, and Slow. Default is Standard.
Use tuiss2ha.simultaneous_blind_positioning to move multiple blinds to the same position at the same time or move each blind to their defined favourite position (see Configuration options). This is useful for synchronized scenes; however, this requires sufficient Bluetooth proxies/adapters to handle multiple concurrent connections.
Timers allow the blind to store a position, time of day and day or week locally in its memory.
- Up to 16 timers can be set using this integration.
- Timers set in the Tuiss app will not be synced to Home Assistant and vice versa.
- You can add a timer using the
tuiss2ha.add_blind_timeraction and remove one using thetuiss2ha.delete_blind_timeraction. - Timers that run will not update the position in Home Assistant. You will need to run the
tuiss2ha.get_blind_positionmanually or via an automation to update Home Assistant with the correct positions.
- Weak or unreliable connections are usually caused by poor signal strength. Measured RSSI: -60 dBm or higher = Excellent; -61 to -75 dBm = Good; -76 to -90 dBm = Weak; below -90 dBm = Very weak. Improve coverage with more or closer Bluetooth adapters/proxies.
- For supported models, check that your blinds' firmware is up-to-date from within the Tuiss app.
- If adding a blind fails, some users have reported issues with Shelly Bluetooth proxies. If you have a Shelly proxy, try removing it to see if discovery improves.
- If a blind is stuck in a locked state and not actively moving, you can either restart Home Assistant or call the
tuiss2ha.force_unlockaction (Developer Tools → Actions) or from an automation.
Contributions, bug reports, new model numbers and feature requests are welcome. Please open an issue or a pull request on GitHub.