Closed KiwiHC16 closed 2 years ago
Zigbee ID: "lumi.lock.v1"
https://community.home-assistant.io/t/xiaomi-vima-smart-lock-support/61494
I have fully tested this cylinder and this is my considerations:
Its a great and really cheap security system: The first line of security is premature detection, and here, the lock produces an alarm if something is inserted (even a picklock) for more than 3 secs that is not an authorized key. Its really cheap because it has similar cost as similar “not smart” lock+5 keys.
The keys seems to have some NFC mechanism
Battery after 3 months (low use) down 3%, so I suppose it can reach more than 2 years (in my case)
If battery is down, the lock works as any not-smart lock: authorized and not-authorized keys can open. and no alarm, manage, etc. is possible.
If gateway is down (i.e. shutdown all electricty due to an atack), smartlock has all the configuration and a timer inside, so authorized and and even temporary authorized keys can open, not-authorized cannot, indepedent of gateway state. Alarms are sended but nobody can receive them. For this reason is so important to has a UPS or battery system to the gateway…
6.The hardware security is like other cylinder. and a tipical force attack can destroy it (as the most robust cylinder) so you need a god external shield to become really secure. See this brute atack here https://www.youtube.com/watch?v=wqfEd-WGL10 135
In general, the system seem with enough quality, and the keys are really robust (at least until now).
Few days ago I installed zigbb2mqtt with the project to replace the Xaomi Gateway that cause me many connection alerts.
I discovered that zigbee2mqtt support VIMA smart cylinder and now it is supported by Home Assistant as a sensor.
Now in HA it show the number ok key used to open the door… 01, 02, 03… etc.
But after it show the number of key it retain persistent.
I wish to reset its state… to null.
How can I do it?
https://www.zigbee2mqtt.io/devices/A6121.html
xiaomi_lock_report: {
cid: 'genBasic',
type: 'attReport',
convert: (model, msg, publish, options) => {
if (msg.data.data['65328']) {
const data = msg.data.data['65328'];
const state = data.substr(2, 2);
const action = data.substr(4, 2);
const keynum = data.substr(6, 2);
if (state == 11 && action == 7) {
// wrong key or not success inserted
return {keyerror: true};
}
if (state == 12) {
if (action == 1) {
// successful unlock, sets everything to neutral state
return {inserted: keynum, keyerror: false, forgotten: false};
}
if (action == 11) {
// forgot the key in the lock
return {forgotten: keynum, keyerror: false};
}
}
}
},
},
Avec la version Tuya un read attribut sur FF30 (clusterId=0000&attributId=FF30&Proprio=0000&EP=01) Repond Attribut Unknown.
[2020-02-25 22:27:47][AbeilleParser][debug];type; 8043; (Simple Descriptor Response)(Not Processed); dest: Abeille1; SQN : 46; Status : 00; Short Address : 7b9f; Length : 14; endpoint : 01; profile : 0104 (ZigBee Home Automation (ZHA)); deviceId : 0051 (Smart Plug); bitField : 00; InClusterCount : 05
[2020-02-25 22:27:47][AbeilleParser][debug]In cluster: 0000 - General: Basic
[2020-02-25 22:27:47][AbeilleParser][debug]In cluster: 000A - General: Time
[2020-02-25 22:27:47][AbeilleParser][debug]In cluster: 0004 - General: Groups
[2020-02-25 22:27:47][AbeilleParser][debug]In cluster: 0005 - General: Scenes
PHP Notice: Undefined index: 0xef00 in /var/www/html/plugins/Abeille/core/class/AbeilleParser.php on line 1368
[2020-02-25 22:27:47][AbeilleParser][debug]In cluster: ef00 -
[2020-02-25 22:27:47][AbeilleParser][debug]OutClusterCount : 01
[2020-02-25 22:27:47][AbeilleParser][debug]Out cluster: 0019 - General: OTA
Version Tuya: TY0A01
[2020-02-25 22:27:44][AbeilleParser][debug];Type; 8102; (Attribut Report)(Processed->MQTT); dest: Abeille1; SQN: 55; Src Addr : 7b9f; End Point : 01; Cluster ID : 0000; Attr ID : 0005; Attr Status : 00; Attr Data Type : 42; Attr Size : 0006; Data byte list : ->TY0A01<-
https://www.domotique-info.fr/2019/05/tuya-smart-votre-maison-connectee-sans-box-domotique/
Crap pour le zigbee il faut un GW comme "Smart Gateway" TYGWZW-01 Avec ca le lock s'appaire et on le recuperer dans l appli Tuya sur tel.
WEIMA electro-mechanical cylinder has joined the App of MI, a supplier of smart home system.By operating the cylinder,you can set different scenes.For example,lamps will be turned on and curtain will be shut when the cylinder is unlocked at night.
Bonjour kiwiHC16 Un article en parle ici : https://www.dealabs.com/bons-plans/verrou-de-porte-de-securite-connecte-xiaomi-vima-smart-lock-cylindre-de-securite-intelligent-1808195
Dans les commentaires , un certain ZINZIN059 parle de la maniere dont il à intégré la serrure sur jeedom (via les couleurs de la GW) :
"Pour l'intégrer à jeedom, j'utilise un code couleur du Gateway xiaomi. Par exemple, lorsque l'alarme est active sur jeedom (plugin alarme), la couleur du Gateway est d'une couleur définie. Lorsque j'insère une clé, la couleur change et désactive l'alarme immédiatement (et la couleur s'éteint dans le scénario). Si l'alarme est désactivée, aucune couleur ne s'allume. Mais le mode alarme du Gateway peut être géré directement avec la serrure."
IL semble donc déja que la GW xiaomi intégre bien cette notion de clef .
Reponse de Kiwi:
Je veux dire que la serrure semble bien liée à la GW xiaomi est gerer les clefs sous mihome..
Oui il semble que la serrure est prise en compte par l appli Mi Home. Dans les menus je la trouve mais l integration ne fonctionne pas. L appli Mi Home ne le trouve pas alors que je vois que la GW la integrée au réseau ZigBee. Je bloque sur ce point ;-(
Je confirme, il y a deux modeles au moins, un xiaomi et un tuya. Xiomi avec MiHome et Tuya avec App Tuya.
Bonjour KiwiHC16, je possède cette serrure et je l'ai ajouté à ma gateway xiaomi et dans l'appli mi home. Quand tu cherches à l'ajouter dans mi home, tu passes par où, car pour cette serrure, c'est un peu différent que pour les autres capteurs... D'ailleurs on peut pas la trouver dans la liste du menu principal de mi home, il faut aller sur la gateway qui est dans mi home, puis faire ajouter un capteur pour l'avoir dans la liste. Si je me rappel, lors de l'intégration sur la gateway, il faut appuyer sur le bouton beige pendant quelques secondes pour que la gateway fasse l'inclusion...
Reponse Kiwi: Oui c'est ce que j'ai fait mais j'ai une Tuya pas compatible avec MiHome d apres mes tests.
Voici la méthode que j utilise: Je choisi la GW Je vais dans la page appareil Je fais le plus en bas de page Je choisi la Door Lock Je choisi la Door Lock Appuis 5s Et la rien... (mais je vois en suiffant que l appairage zigbee se fait)
une idée ?
Pourtant tu fais tout comme prévu... Moi j'ai bien réussi à l'inclure... Bizarre...
Que peux tu faire depuis l app ?
Voici ce que propose l'application...
La capture d'écran de la page des automatisme de l'application mi home ne marche pas, mais dans les déclencheurs en SI, il y a:
Il y a aussi la serrure qui sonne si on laisse une clé trop longtemps dedans
il y a deux modèles, mija ou tuya, lequel testez vous?
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1977
Interessant. Celui que j'ai s'annonce sous le nom "TY0A01" et il est livré avec une notice qui fait reference à l'application Tuya. "TY" du nom, pourrait faire reference à "TuYa". Juste une supposition. Ce qui expliquera que l'appli Xiaomi ne le reconnaisse pas.
Dans le premier lien, l equipement a pour nom: "lumi.lock.v1" ce qui est typique des noms Xiaomi: "lumi.xxx"
J'ai l'impression que c est la meme hard mais le soft est legerement different. Sur le site de Weima on peut voir qu ils ont des partenariats alors ils ont peut être des soft adaptés pour chaque.
J'ai aussi le TY0A01 version tuya
Sur la boite il est indiqué Model: A6121. Ce qui correspond a la certification FCC. Ce qui semble confirmer que c'est le même hard. Et comme il s'associe à la Zigate (probablement) la meme stack zigbee.
Dans la certif FCC c'est une doc xiaomi (et pas Tuya): 4033606.pdf
J'ai commandé avec la cagnotte une GW Tuya pour pouvoir sniffer les messages... A suivre dans quelques semaines...
Interessant mais j'ai ces infos. Ce qu'il me manque c'est le dialogue entre la clef et l appli quand par exemple il y a une alarme clef,...
https://github.com/stas-demydiuk/domoticz-zigbee2mqtt-plugin/issues/127
Kiwi: Pour moi c'est pour la version Xiaomi d'apres le code que j'ai vu dans zigbee2mqtt. Si je fais la meme chose sur la Tuya, elle m'envoie balader.
Kiwi: xiaomi_lock_report, Tuya ne repond pas a ces demandes.
J'ai recu la GW Tuya, associé la serrure, installé l'App et sniffer les messages. Probleme, je ne les decode pas encore. J'espère qu'ils ne sont pas cryptés car ils changent à chaques tests.
frederic34, d'où vient la capture d ecran (fond noir) que tu as partagé ?
Par exemple a chaque insertion d'une clef non ajouté j'ai un message de 16 bytes. Comment je decode ?
Zoom sur le 16 bytes:
salut ben,
Question bête, qu'en ai t'il quand tu ajoutes un nouvelle clef a l'application ? je vois 2 façons de fonctionnement : J'imagine que la clef renvoie un message d'identification et que ce string est consigné quelque part pour être comparé sur les opérations d'insertion/d'ouverture.. Reste à voir quand l'identification de la clef est encodée. c'est pour ça que je vois 2 modes de fonctionnement possibles: l'identification de la clef peut être encodé directement et le système ne communiquer qu'avec le message encodé ou bien communiquer avec une identification non encodé et encoder seulement pour consigner l'identification .. je pense qu'il faut comparer 3 types de messages qu'une clef peut renvoyer : clef non associé inséree association de clef clef associée insérée J'ai déjà bossé sur de l'encodage binaire et Hexa dans le passé et je veux bien aider pour cette serrure.
Demande d'ajout de clef.
Essai 1: GW->Ser : 28:f7:ed:b9:e0:ad:62:61:81:3a:ec:c8:ff:b8:cc:0e Ser->GW: ed:0c:a4:cf:96:e5:9d:c4:fe:fa:4e:17:90:7b:74:1d
Essai2: GW->Ser: 40:6c:e4:af:6e:29:09:80:fc:d1:f5:75:37:74:17:df Ser->GW: 63:3b:76:dc:18:17:19:17:64:d9:81:1a:76:f2:ea:85
Lors de l inclusion:
_TYST12_C5IaBuQl
frederic34, d'où vient la capture d ecran (fond noir) que tu as partagé ?
de mon raspberry, un module que j'essayes de mettre aupoint
sur 0x0007 c'est date heure après 1 er janv 2000
Oui c est bien le meme...
Avec un autre analyseur de protocole. Pas plus d'infos.
Demande d'ajout de clef.
- GW envoie une commande 0x02 à la serrure avec 16 bytes
- la serrure repond avec la commande 0x02 et 16 bytes
- la GW acquitte la reponse
- bit de la serrure pour demander l insertion de la clef.
- Je n'insere pas la clef
- puis apres quelques secondes, un autre echange pour arreter la transaction
Essai 1: GW->Ser : 28:f7:ed:b9:e0:ad:62:61:81:3a:ec:c8:ff:b8:cc:0e Ser->GW: ed:0c:a4:cf:96:e5:9d:c4:fe:fa:4e:17:90:7b:74:1d
Essai2: GW->Ser: 40:6c:e4:af:6e:29:09:80:fc:d1:f5:75:37:74:17:df Ser->GW: 63:3b:76:dc:18:17:19:17:64:d9:81:1a:76:f2:ea:85
Ce que j'imagine avec les infos que nous avons : La serrure sécurise les transactions avec une clefs de Cryptage de 128 bits (soucis on ne sais pas sous quelle logique). Avec ce que tu constate : GW->ser : La GW envoie la clef de cryptage en 128 bits Ser->GW reponse avec id serrure crypté Pour le vérifier, il faudait que cet id crypté ressorte lors des transactions après inclusion.
1 er truc rapide : Les deux messages que nous avons sont sur 16 mots hexa et après conversion binaires nous donnes un mots de 128bits..donc toutes les transactions sont bien en 128bits. Reste à trouver sous quelle type de clefs.
"modelId": "TY0A01"
https://zigbee2mqtt.discourse.group/t/support-new-pine-world-lock/188
(See my notes)