Zemismart Blind motor - configuring in Local Tuya

I’ve recently installed a Zemismart blind motor on a roller blind in my study and had some issues understanding which configuration options to select when integrating it into Local Tuya. I couldn’t find plain English explanations of what the settings did. This might help you.

This assumes you have obtained the Local Key from the TuyaSmart website: Tuya IOT website I won’t go through that as there are guides available on YouTube and elsewhere. It also assumes you have paired the blind motor to the Tuya app via the 2.4ghz wifi network at home.

After you have installed Local Tuya into Home Assistant (via HACS), you then need to integrate each device.

  1. Go to “Configuration” in the HA menu and select “Integrations”. Down in the bottom right-hand corner you will see the “Add Integration” button.

  2. Click on that button and search for Local Tuya. Click on that and it will offer you a “Device Discovery” box. The Tuya device should show up identified by the Device ID, IP address and/or friendly name. Select that and it will open a configuration box: “Add New Entry”.

  3. First it asks you for the "ID" and offers 5 options which are identical to the options mentioned below. To be honest I have no idea what the relevance of each option is - and it did not seem to matter which one I selected, but you cannot change this later. If someone can explain the options please enlighten me.

  4. Next you enter a friendly name eg: Blind-Lounge

  5. Then the Open_Close_Stop commands. I selected “open_close_stop”. The other options include fz_zz-stop, 1-2-3 and on_off_stop. There is no explanation as to what the others do, but open_close_stop works for me.

  6. Next you decide if you want positioning mode or timed mode. They are self explanatory - positioning as in open/closed or time as in “run the open command for 20 seconds” I selected “Positioning

  7. The next two seem the most important in terms of what the blind will do. If you selected “Positioning Mode”, it asks for “Current Position” I selected “1 (value: close)

  8. Then you enter the “Set Position”. If you select “7 (value: opening)”, you will have the option to open, close and stop the blind.
    If you select “2 (value: 100)”, you will also have the option of setting an intermediate position such as 55%. This is what I selected. Didn’t try the others because this worked for me.

  9. The Invert option changes the curtain % setting from 100=open to 100=closed.

  10. The timing number is if you selected the time mode above.

That’s it. You can come back later via the Configure option in Local Tuya to change 7 and 8. This comes up under “Cover” and the friendly name should be obvious.


Thought I would do an update after a lot of trial and error testing here.

Starting note: The options will have different numbers depending on the version of your Zemismart blind motor and the way its firmware is written.

  1. On two of mine - Model M515EGBW V2 - the options are
    2(a numeral*);
    5(False); and

  2. On an earlier version - Model M515EGB - there are five options:
    2(100 - a numeral);
    7 (opening);
    10(0 - a numeral).
    The earlier version is easier to set-up and reports its position in the Lovelace card. V2 does not report.

  3. *The “numeral” beside the option is the position of the V2 blind when you integrated it into Local Tuya (one blind in my case = “92”). The numerals in the older version are the open and close position ie: 100 and 0 of the blind.

4. These notes are based on the newer V2 model.

At point 3 where I suggested selecting “1”.
I tried the other options and the success was very limited despite trying all 16 combinations of the other commands. Update Advice: stick with "Option 1"

At point 7 "Current Position"
After trying the options (value, stop, opening, false) and looking at what they do in States reporting (under Developer Tools) the penny dropped. This tells HA how you want the Current State reported (yeah I know it’s obvious now I’ve looked at States).

If you select value, it will report the Current Position of the blind, which seems the most useful. If you select “stop” I think it is just reporting that blind is not moving etc. Update Advice - select "Value 100"

At Point 8 “Set Position” where I suggested select "Option 2 (Value - numeral eg 100)"
Update Advice unchanged This allows you to use the slider control. None of the other options appear to enable this. I’m still not sure what the other options do except I assume Option 5 means it is disabled.


Nice write up Steve. This made life super easy for getting a couple of zemismart blind rollers going.

I had used the latest version of tuya local (3.2.2) and even though it connected to the blinds it would puke and fill the logs with connection errors. Obviously showing the device and entity as unavailable

I removed 3.2.2 from HACS and re installed 3.2.1 then the blinds were connected and also the device up and down buttons were available.

And for some reason (this integration is tuya local) I had to open up ports to the tuya cloud for it to install and connect to the blind motors. After integratin installation firewall was rerun and device kept working. I don’t know if this is normal behaviour

thanks mate :+1:

1 Like

You’re welcome. I hope they continue to behave. I am running Local Tuya 3.2.2.

The only ongoing issue is that one of the blinds wrongly reports its position when the blind is not moving. At the moment it will report its position state as 29%, irrespective of where it actually is. I can reset the state, but as soon as I move them outside an automation it reverts.

On the availability issue, I had that when I was trying to connect via an Asus router set up for mesh. The connectors did not like that at all. I added an old wireless router to the network just with 2.4ghz turned on with a separate SSID and all blinds were much happier. I’ve since hooked up a TP-Link AP (EAP-225) and turned off the Asus wireless and everything is stable - still with the occasional dropout, but only for about 30 seconds.

I haven’t disconnected my blinds from the internet just yet but have disconnected an Arlec smart switch after installation without issue.

The weird thing here is, i cannot pull up the blind:



Even when i lower the blind. The button up won’t be active.

There are a couple of possibilities.

I have one blind that will not accurately report its position - at the moment it always goes back to 67%. No matter whether up or down it reports 67%.

Does your blind not offer down when it its fully open? If so on the next screen in the configuration set-up, you’ll see a check-box down the bottom that says something like “reverse 0- 100%”. Select that and say okay.

This might fix that arrow.

Another option is to install the “Blind Card” via HACS - Frontend. It’s up and down arrows remain active.

@Steve61, thanks for your work on this.

At point 7 "Current Position"
If you select value, it will report the Current Position of the blind, which seems the most useful. If you select “stop” I think it is just reporting that blind is not moving etc. Update Advice - select "Value 100"

Am I right in thinking that “Value 100” is option 2? I tried it and things aren’t quite right.

That’s it. You can come back later via the Configure option in Local Tuya to change 7 and 8. This comes up under “Cover” and the friendly name should be obvious.

I can’t seem to find 7 and 8 when I go to the “Local Tuya” instance for my blind, and click “Configure”:


I switched from the old Tuya (cloud) integration add-on to the newly internalised official Tuya integration, and none of my blinds show up, but everything else seems fine. I was hoping I could just add the blinds in using Local Tuya, until the official integration added support for covers.

I get the same issue as @leonkunst88 where the arrows aren’t always clickable, and most of the time they’re both greyed out. I wonder if it’s just a matter of editing these options. I’m running 3.2.3.

On the last thing first - about the arrows for up and down. I found that issue on some cards and no matter what I did, the results just kept changing, with the required arrow greyed out. I suspect it is because the blinds rely on an RF link and don’t really report their positions accurately, so the communication is a bit hit and miss. When I changed to using the custom “Blind-Card” in HACS, all the controls remain available, even when the blind is at the limit… but at least that is better.
Blind Card for HACS

On the options in configuration.
There is another screen after you hit submit and that is what I assume you are referring to:

Do you mean the options under “Current Position” and “Set Position”?

If that is what you are referring to there are a couple of points:

  1. The value “100” comes from the position of the blind when you linked it into Tuya Local on the Tuya IOT website. Depending on your app settings, if the blind is fully open it might register as zero, while fully closed will give you 100 - or vice versa. If the blind is half open you will get 50. I don’t think it really matters what the number is. It is just saying it will report position as a % number.
    If you select another option, aside from less functionality, it might only report that the blind is “closing” or “open”, even if it is stopped at 50%.

  2. The number of options presented depends on the model and firmware of your blind. The example above is from my first purchase - so I get 1, 2, 5, 7, and 10. On the later blinds (V2) I am offered only four options… but it still gives value: 100 (or whatever the blind was set at)

Hope that helps.

Thanks Steve.

I’m not using a Zemismart blind motor, so I imagine the setup is somewhat different (I get 1, 2, 3, 5, 7, 8, 9, 10 and 11) but the same principles should apply:


I think I have three things causing the arrow problem:

  1. My mesh wifi seems to have been a bit sub-par of late, near the blind I’m trying to setup, and it’s actually becoming unavailable if I take a look in the Tuya app.

  2. When I run the Tuya app, it connects to the blind, and that causes HA to no longer be able to connect. The blind only seems to allow one local connection at a time. Once I exited from the app, and swiped it away, things became a bit more reliable.

  3. I tweaked the DPS values I was using, and that seemed to help. For my blind, I used “1” for ID, “2” for set position, and “3” for current position.

I found that I could view the DPS strings by looking in the file config/.storage/core.config_entries. These gave me some hints as to what IDS numbers to use.

I also found that I could edit core.config_entries to tweak the values, and then reload HA. I’m assuming this is having an effect, because the up/down arrows seem to be correct. Or it might have been one of the other things I did.

I’m pretty sure the Zemismart is just a rebadged version of that. The difference would be in the firmware and maybe a variant of the board.

I was running a mesh (ASUS) and found almost all my smart items would play up with it with multiple disconnections and poor performance. I ended up disabling the ASUS wifi and hooked up a TP-Link EAP to the ASUS - left the Ethernet routing and general control to the ASUS. Everything is now very happy - no wifi dropouts.

My blinds use a wifi-to-RF bridge for each motor and that adds issues. The dongle (bridge) is plugged in and sends and receives messages via wifi, but transmits commands to the blinds via RF, so that is why the comms are not good and position reporting I think really just assumes the last command was carried out.

Hi, may I ask. Are you using the zemismart zigbee or wifi? I want to know if the M515EGB is the one you are referring to above. And does this work in homeassistant without an app or an app to (pre)configure it? Thus will your zemismart work local without cloud/internet? Thanks in advance.

Hi @sender . I’m not sure if you were asking me or @jezzaa

If it is me, my blinds are the M515EGB or a variant of it. The Zemismarts use a wifi dongle to communicate with HA, but then use an RF command (like a remote control) to send commands to the blind.

You do need the TUYA or SmartLife app to set-up the blinds initially. In using TuyaLocal in HA, my commands are local and once set up, I can block the blinds dongle from the internet and they still work. You do need to do that properly via your router - the TuyaLocal GitHub pages give some advice about settings so they don’t loop themselves in DNS requests.

Ok thanks. I have order the M515EGB which seems to be a zigbee and not a wifi variant. According to blackadder it must be compatible with 3 zigbees such a s ZHA, deconz and zigbee2mqtt. I use deconz… will let know if it works…

EDIT: Ali sucks… they sent me a wifi version…

So I am also playing with this… What a HASSLE! but I got it in hass now. Though I have some strange issues.

I have set the “physical” sart and stop via the paper manual. That works when operating locally and sometime via hass/app.

But despite having set the physcial imits, it just passes down the bottom when I operate via the app and/or home assistant?
Also up and down are reversed in home assistant and it is not easy to change that other than start over isn’t it?