Hey hey, every now and then I publish a product video. I only do this if I find the product interesting or useful and if it can be integrated with Home Assistant for example. Zemismart sent me their Zigbee Smart Super Curtain Robot motors. I must say, they are super easy to install on your existing curtains. These motors can now also be integrated into Home Assistant with some manual work. Here’s the product review of the ZEMISMART Smart Super Curtain Robot Motor!
โญโญโญ NOTE: โญโญโญ
This article accompanies a YouTube video. I wrote it for people who would rather read than watch a video. To keep doing this, I want to ask you to check out the video, leave a comment under the video, give the video a thumbs up, and subscribe to my YouTube channel. This means that the video is offered more often to new visitors so that they also stay informed of the latest Home Assistant tutorials.
Thank you for your support!
Ed
You can buy this Smart Curtain Robot Motor here: https://s.click.aliexpress.com/e/_Dd5REeL
Before I start with this product review, let me tell you that I am not getting paid for this article or video. If you like, you can order this curtain robot motor at https://s.click.aliexpress.com/e/_Dd5REeL. I will get an affiliate fee for it, so you will support me a little bit too.
ZEMISMART sent three packages to me:
- one curtain motor for curtains
- one curtain motor for roller blinds
- one Smart Zigbee Hub
This tutorial shows the curtain motor for curtains in detail because I don’t have roller blinds in my house.
Let’s see what’s in the box.
In the box, you will find an English manual which is handy. You will also find two micro USB cables to charge your curtain motor. There is no adapter in the box. You will have to use one you have lying around somewhere.
Then there is the curtain motor itself, which feels very sturdy and heavy. I’ll go into more detail about this curtain motor later. The curtain motor also works with Homekit and the Tuya App. This video shows how it works with the Tuya App, but pairing it with Homekit shouldn’t be a problem.
A remote control is included with which you can operate the curtain motor. You can also operate it via an app or Home Assistant.
And then there are several connectors in the box with which you can connect the curtain motor to different types of curtain rails. In this video, I show you how to connect the curtain motor to a curtain rod, but you can use the other connectors for different types of curtain tracks such as u-rail and i-rail curtain tracks. Would this work with your curtain rails? Let me know in the comments of the video!
The Curtain Motor
The curtain motor has three buttons that allow you to open, close, and stop the curtains from opening or closing. At the bottom of the curtain motor, you will find the connection point for the micro-USB cable. There’s also a button to turn the curtain motor on and off and a button to pair the curtain motor with a Zigbee Hub or the supplied remote control. A rubber wheel at the top turns along the curtain rail, and with that, the curtain motor moves along the curtain rail. As you can see in the video, the wheel spins as soon as I press the open and close buttons.
Let’s connect the connecting arms for the curtain rod and see how the curtain motor moves along the curtain rod. You can simply press the connecting arms into the curtain motor and you can adjust the rubber wheel tightly against the tube because the connectors are equipped with a coil spring. This allows the curtain motor to move the curtain properly along the curtain rails. You can remove the arms with a small screwdriver that comes in the box.
As you can see in the video, the curtain motor runs nicely back and forth along the curtain rod.
Connect the curtain motor to the curtain
The curtain motor takes the curtain along nicely. You can operate this with the remote control, the Tuya app, Homekit, or Home Assistant.
ZEMISMART also sent me a curtain motor for a roller blind with which you can operate the bead chain. This curtain motor is of the same sturdy quality as the curtain motor. You can see in the video, that this curtain motor contains a gear along which the bead chain is guided. There are different types of gears with this curtain motor so that you can choose the right gear for your bead chain of your roller blind. Furthermore, it works in exactly the same way as the other curtain motor.
I need your help!
You will be doing me a huge favor if you subscribe to my channel if you haven’t already. And, you will help me a lot if you also give this video a thumbs up and leave a comment. This way, YouTube will present this video to new people, making the channel grow! In the video description, you will also find information about how you can sponsor me so that I can continue to make these tutorials for you.
Thank you!
The remote control
The remote control has a number of buttons. There is an open and close button on the remote control and a button to stop opening or closing. In addition, the remote control has three buttons to open the curtains at 20%, 50%, or 80%. The limits for open and closed can be set in the Tuya app.
The Tuya app
To use the Tuya app you need to connect the curtain motor to the Zemismart Zigbee Hub, or any other Tuya Zigbee hub. But, if you want to use this curtain motor with Home Assistant, you can also use a Zigbee stick such as the Sonoff or Conbee 2 stick. With the Tuya app, you can set the limits for opening or closing the curtains and you can open or close the curtains remotely.
Connecting the ZEMIMART Super Curtain Robot Motor to Home Assistant
At the time of recording the product review in this video, this curtain motor was not yet well supported by the Tuya integration in Home Assistant, nor by Local Tuya, ZHA, or Zigbee2MQTT. Still, I managed to get it to work in Zigbee2MQTT by creating an external converter. This thread on Github helped me a lot with that. See the link in the description of this video. I expect this ZEMISMART Curtain Motor to be supported by Zigbee2MQTT in the near future, but if you want to get it working in Home Assistant now, you have to do the following:
Open the configuration.yaml file from Zigbee2MQTT, not from Home Assistant. Add the following lines:
advanced:
log_level: debug
external_converters:
- TS0601.js
Then create a file called TS0601.js and place that file in the same folder where your Zigbee2MQTT configuration.yaml is located. Put the following code in that file:
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const fzDeviceSpecific = {
cluster: 'manuSpecificTuya',
type: ['commandSetDataResponse', 'commandGetData'],
convert: (model, msg, publish, options, meta) => {
const dp = msg.data.dp;
const value = tuya.getDataValue(msg.data.datatype, msg.data.data);
switch (dp) {
case tuya.dataPoints.state: // Confirm opening/closing/stopping (triggered from Zigbee)
case tuya.dataPoints.coverPosition: // Started moving to position (triggered from Zigbee)
case tuya.dataPoints.coverChange: // Started moving (triggered by transmitter or pulling on curtain)
case tuya.dataPoints.coverArrived: { // Arrived at position
const running = dp === tuya.dataPoints.coverArrived ? false : true;
return {running}; // Position does not seem to be working, so respective code removed
}
case tuya.dataPoints.config: // Returned by configuration set; ignore
break;
case 13: // Battery; apparently only sent when triggered via hardware remote?
return {battery: value};
default: // Unknown code
meta.logger.warn(`ZM85EL-2Z: Unhandled DP #${dp}: ${JSON.stringify(msg.data)}`);
}
},
}
const definition = {
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_nw1r9hp6'}],
model: 'ZM85EL-2Z',
vendor: 'Zemismart',
description: 'Zigbee/RF curtain motor',
fromZigbee: [fzDeviceSpecific],
toZigbee: [tz.tuya_cover_control],
exposes: [
exposes.cover(),
exposes.presets.battery(),
],
meta: {
configureKey: 1,
battery: {dontDividePercentage: true}
},
};
module.exports = definition;
You can also find this code on my GitHub page. Once you’ve done this, restart Zigbee2MQTT and add the curtain motor to Zigbee2MQTT and give it a readable name like Curtain. The curtain motor is now recognized by Zigbee2MQTT. The battery status is not yet properly communicated, unfortunately, but it does not matter for operation. Now you go to Home Assistant and when you request the entity you will see that the controls for your curtain are available and working.
Conclusion of the ZEMISMART Curtain Motor
I was pleasantly surprised by this ZEMISMART Curtain Motor. It can be installed very quickly on your existing curtain rails and you can use it in Home Assistant, which I personally like very much. The latter is actually necessary to solve the biggest problem of this engine. If you have two curtains that both open or close at the same time, you need two motors that open and close at the same time. I have not found an option in the Tuya app to realize this yet. But, with Home Assistant you could of course make an automation or script that does that perfectly for you.
I hope this video and article have been of some use to you. Please let me know in the comments of the video what curtain motor you use or if this is the curtain motor that you want to buy.
Read more blog articles on the blog page!