-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Zemismart ZM79E-DT (Tuya) #1159
Comments
I was able to get the from zigbee working, it reads the position and state properly now. I was also able to brute force some of the commands that are available but I'm still unsure what data I need to send. Is there a faster way to debug sending commands other than restarting zigbee2mqtt? |
@kirovilya since you know more about TuYa devices, could you help with this? |
@DomiStyle You can try to write your own command for device like here https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/toZigbee.js#L2057 |
@kirovilya Thanks, that's what I expected. I just ordered one of their hubs to sniff the traffic. Will report back once I know more. I also contacted Zemismart and Tuya, maybe they are willing to give out the protocol details too. |
Zemismart was nice enough to send me the full technical documentation (even including source code), so kudos to them for being so open about their products. For future reference, @kirovilya However, the description for dp is wrong (assuming the protocol is identical between devices). The dp is actually split into two parts, the first byte is the value type and the second part is the actual dp identifier. These are the types taken from their source code and should apply to all devices that use this protocol:
My device doesn't use strings, raw and bool so I can't test them. The second part is the actual ID for my device, I got this list from them:
The first part of the data is always the length (can be 0 for enums), followed by the actual data. So a working command for my device would be dp:
data:
I got the following working so far:
Still gotta integrate everything into Home Assistant and maybe add the available configuration options but everything is looking good so far. |
@DomiStyle can you share docs to me too? |
@kirovilya Sent you a mail with the files. |
thank you! |
Pull request was merged, closing this. Thanks for the help! |
@DomiStyle @kirovilya Would one of you mind sharing the docs with me (or posting them somewhere publicly, if there's no restriction on doing so imposed by Zemismart)? I'm working on an ESPHome component for the wifi variant, and have most stuff figured out from what's been posted here and a bit of serial sniffing, but I'd love to see the full docs if possible. |
@pauln If you can post your email address or add it to your GitHub profile I can send it to you. |
Thanks for sending it through! I'll take a proper look over the weekend - hopefully it'll let me finish my ESPHome component. |
@DomiStyle Could you send me the Zemismart documentation too? |
@artem-dudarev Sent you a mail. |
@DomiStyle Thank you! |
I also am interested in this doc if you don't mind. |
@w35l3y Sent the files to your Github address. |
Hello @DomiStyle do you have some information about shutter calibration on the documentation ? ATM I have found some documentation here https://github.com/TuyaInc/tuya_zigbee_sdk |
@Smanar Afaik the curtain doesn't support calibration via Zigbee. You need to send the 433 MHz codes from the remote for calibration. If you don't want to use the remote you could also just use a 433 MHz transmitter instead but since calibration only needs to be done once I don't see any need for it. |
Ha, the remote use 433 Mhz for a shutter that support zigbee ? |
Yes, the Zigbee/Z-wave module is just strapped to the curtain motor and communicates with it via a serial port. The 433 MHz receiver is another way to control it that the included remote uses. |
Ok so @DomiStyle I will be interested by the documentation too ^^.
|
@Smanar Can you add your email address to your GitHub profile or send me a mail to mine so I can send it to you? Could be, the information in this thread only applies to the Zemismart ZM79E-DT, which doesn't have any commands for calibration according to their documentation. |
Ha :(, I was thinking was a generic documentation for all devices. and I have different tuya devices, some of them are using tuya cluster and other covering cluster. Too bad, but in any case thx :). You have used the tuya dev site to contact them ? |
@Smanar No, I contacted Zemismart directly and asked them for documentation on the ZM79E-DT. |
Здравствуйте! Не могу подключить этот мотор к Алисе Яндекс. Кто нибудь может момочь? |
@kirovilya Can please help me a little for my Tuya smart door lock? I am currently stuck at the point after sniffing the device traffic and decrypting them. I currently only have a single CC2531 usb stick so I can't sniff my z2m instances. I read from this post that I can actually write my own command but I do not have enough example to follow (I am very new in programming) since this is a Tuya smart door lock. I've posted my decrypted payload and opened an issue but I am not sure if I am allowed to share the link here. Please do help me a little for me to get started. Thank you. |
why are you writing this here? and why me? :) |
I am writing this here because I was trying to read on how others implement their tuya devices. And I asked you because Koen referred to you on this post when he sees this tuya related topic. Anyway I've done according to the guide, and yes I already sniff the traffic and have the payload ready. The issue I am having now is how to use those payload, which is absent from the guide itself. Thank you **To make sure I made it clearer, I already have the decrypted payload of my device. (The action is unlock the smart door lock remotely) I created the issue as well if you are so kind to have a look please. |
Hi, |
@DomiStyle do you still have the documentations and if yes, would you be able to send it to me? thank you very much! |
I recently found out that there is a Zigbee variant of the Zemismart curtain motors that have the Zigbee receiver included in the motor itself instead of the switch:
I paired it with zigbee2mqtt to check what it's sending and the receiving part is simple enough.
Started moving:
Arrived at location (60% in this example):
Range goes from 0-100, 124 means it is not calibrated yet. 100 is all the way open, 0 is all the way closed.
Now for the actual question: How to figure out what to send to control it? Do I need more info from Zemismart or can I get that information from the database entry?
I saw that there is already a sendTuyaCommand function here for a thermostat. I assume I can use that for my purpose since the protocol looks identical.
A few more, smaller question:
The motor keeps sending{"appVersion":73}
10x at a time, every few minutes. Does it expect a response?There is a null terminator (\u0000) in the modelId, judging by the existing entries I just take that over to the devices.json as is?I took pictures of the motor, just for reference:
Data sheet of that chip is available here.
The motors all seem to be identical except the chip on the bottom is replaced by a Zigbee/wi-fi/Z-wave module.
The text was updated successfully, but these errors were encountered: