private@homelab: ~/latest
Home Assistant · Zigbee2MQTT · local control
private@homelab:~$ cat guides/article.md
· ·
4–6 minutes
read

Tuya Zigbee Curtain Motor in Zigbee2MQTT: Which One?

Your Zemismart or Tuya curtain motor is one of three different Zigbee2MQTT device types. Here's how to tell yours apart, pair it, and calibrate it right.

Similar-looking Tuya curtain products can appear as different devices in Zigbee2MQTT. A listing photo or a Zemismart label does not tell you which converter, settings, or calibration procedure applies.

Start with the model and manufacturer identifiers reported after pairing. This guide covers TS130F controllers, TS0601_cover_1 motors, and the separately listed QS-Zigbee-C01 module. Their controls overlap, but their setup procedures differ.

Why the Same-Looking Motor Shows Up Differently

Tuya-based curtain hardware is sold by several brands and manufacturers. Zigbee2MQTT can match a device using model and manufacturer identifiers, not just the modelID. That distinction is particularly important for the generic TS0601 identifier.

Note · compatibility

After pairing, open the matched Zigbee2MQTT device page. Check the model and manufacturer identifiers against that definition before using the settings below.

TS130F: The Curtain/Blind Switch Module

TS130F is a curtain/blind switch controller, including the LoraTap SC400 variant. The documented exposes include cover state and position, motor reversal, calibration, calibration time, and indicator settings. Check your unit’s Exposes tab for the available controls.

The device page specifies holding Stop for 10 seconds to enter pairing mode. Its calibration sequence is: fully open, press Pause, enable calibration, fully close, press Pause, then disable calibration. Follow the matched device page and the motor’s limit-setting instructions.

TS0601_cover_1: The All-in-One Motor

TS0601_cover_1 covers a motor family sold under several names. It exposes cover state and position, with motor_speed and reverse_direction in a composite options object.

The following MQTT command changes speed and direction. It does not set travel limits or calibrate the motor.

mqtt set command
mosquitto_pub -t zigbee2mqtt/living_room_curtain/set \
  -m '{"options": {"motor_speed": 40, "reverse_direction": true}}'

Pairing depends on the controls fitted to the unit. The device page lists different sequences for two-button, one-button, and bead-chain motors. Match that description to your hardware before pressing buttons; one sequence can power a bead-chain unit off if started incorrectly.

A Third Variant to Know About: QS-Zigbee-C01

QS-Zigbee-C01 is another curtain module with its own supported-device entry. If neither family above matches, search Zigbee2MQTT’s device list for your exact identifiers instead of choosing the nearest-looking product.

Family Product type Common branding Config style
TS130F Switch/controller module LoraTap SC400 and others Binary toggles + manual open/close calibration
TS0601_cover_1 All-in-one motor Zemismart, Binthen, A-OK Composite options object (motor_speed, reverse_direction) via MQTT set
QS-Zigbee-C01 Curtain module Sold under its own name Separate device definition; check its own settings

Direction and position problems

Both pages document invert_cover, which reverses the reported position convention. By default, open is 100 and closed is 0. That is separate from motor direction: if an Open command physically closes the curtain, inspect motor_reversal or reverse_direction. Test movements with the track clear.

configuration.yaml
devices:
  '0x00124b00aabbccdd':
    friendly_name: living_room_curtain
    invert_cover: true

Check the result in Zigbee2MQTT and Home Assistant after changing an inversion setting. Avoid enabling both software inversion and motor reversal without testing which problem each one solves.

If the position slider disagrees with the curtain’s actual position, check travel limits, calibration, and obstruction. TS130F has the calibration cycle above. For TS0601_cover_1, use the motor manufacturer’s limit procedure; the absence of a calibration toggle does not establish that speed is the cause.

Warning

A supported coordinator does not guarantee support for the motor bundled with it. Check both devices separately before buying.

What to Check Before You Buy

Ask the seller for the exact model, Zigbee manufacturer identifier, and a matching supported-device page. “Tuya Zigbee” or “TS0601” alone is too broad. A listing photo is useful for checking the hardware form, but cannot establish converter support.

Either way, once the motor is paired directly to Zigbee2MQTT or ZHA, it bypasses the Tuya cloud entirely, the same way other Zigbee devices in the Tuya ecosystem do. Unlike Tuya’s Wi-Fi products, none of this requires extracting a local key. If you’re coming from a Tuya Zigbee gateway rather than buying fresh, the migration path to Zigbee2MQTT is a separate project worth reading before you start, since it changes how re-pairing and existing automations behave. And if your goal is confirming the whole setup stays usable with no outbound internet dependency at all, that’s covered directly here.

For a more specific model guide, see Aqara’s curtain motor line. Regional variants still deserve checking before purchase.

Common Questions

Why do similar motors appear as different devices? They may contain different firmware or hardware. Check both model and manufacturer identifiers to find the matching definition.

Does my Tuya or Zemismart curtain motor need a local key like Tuya Wi-Fi devices do? No. Zigbee devices in the Tuya ecosystem pair directly to Zigbee2MQTT or ZHA and never touch the Tuya cloud or its local-key mechanism, unlike Tuya’s Wi-Fi products.

Why won’t my curtain motor pair even though the dongle connected? A working coordinator only confirms the adapter is available. Check the motor’s pairing mode, radio protocol, and supported-device definition separately.

How do I fix reversed movement or a wrong position? Use the motor-direction setting for reversed movement, and check invert_cover for a reversed position scale. A curtain that stops short needs its travel limits, calibration, and track checked.

Can I identify the family before buying? Ask the seller for the model and manufacturer identifiers and a matching support page. Photos alone cannot establish the converter.

Check your exact variant

The linked device pages describe the exposed controls and pairing procedures. These instructions have not been tested on a motor for this article. Use the page matched to your identifiers, and check the manufacturer’s installation and limit-setting instructions before operating it.

If the frontend still does not identify the motor, save its model, manufacturer identifier, and interview details before looking for a converter. Those details are more useful than the seller’s product name.

local-firstHome Assistantno-cloud