Test Xiaomi Aqara vibration sensor

Petit article très rapide sur le nouveau venu de la gamme Xiaomi Aqara. J’ai remarqué que pas mal de personnes s’intéressaient à cette nouveauté, alors j’ai décidé de l’étudier et de partager ce que j’ai trouvé. (Ca me permet aussi de me remettre dans le bain des articles après cette longue pose).

Comme vous le pressentez surement, ce capteur est bien entendu compatible avec la ZiGate

Votre note :

[Total : 49    Moyenne : 2.8/5]

 

Achat

Voici où vous le trouverez :

Chez Gearbest

aqara vibration sensorXiaomi Aqara Smart Motion sensor

Prix : 9.67€
Coupon : Flash sale

Prix normal : 22.23€

Démontage

Alors avant de passer au démontage, je dois dire que le nom du capteur m’a rendu un peu perplexe. En effet, un capteur de « vibration », c’est assez étrange !

D’ailleurs dans la présentation du produit, on nous dit qu’il contient un/des accéléromètres 6 axes et un/des gyroscopes. (Ayant même une fonction de détection de coordonnées… )

J’avais sérieusement du mal y croire mais pourquoi pas …  Voici les raisons pour lesquelles il me tardait de démonter l’engin.

Bon, bien entendu, j’attendais pas non plus des miracles 😉

Xiaomi aqara vibration package

Xiaomi aqara vibration boite ouverte

L’emballage est toujours aussi sobre est soigné. En général, le transport abime toujours un peu les coins de la boite mais l’objet est bien protégé.

Demontage vibration sensor aqara xiaomiDemontage vibration sensor aqara xiaomi 2

Alors la première chose qui me tape à l’œil, c’est que je connais déjà ce boitier. En effet, la petite cage à gauche me rappelle étrangement la cage du capteur de température de la même gamme. Et bingo, tout le boitier hormis le haut est identique au capteur de température / humidité / pression atmosphérique. Bien joué Xiaomi ! 😉

electronique xiaomi aqara vibrationElectronique du capteur vibration Xiaomi Aqara

Bon voici ce que contient réellement ce capteur :

En rouge : Je ne sais pas si c’est encore la peine de le présenter mais c’est bien entendu le JN5169 utilisé par toute la gamme Aqara. C’est un microcontrôleur avec une chip radio ZigBee de la société NXP.

En bleu : Voici la particularité de ce capteur ! il est muni d’UN accéléromètre. Le ADXL362 est un composant apparemment très utilisé. Il est capable de gérer les 3 axes (quasi tous le font) mais ne consomme que très peu d’énergie (fonction de wakeup qui ne consomme que 270nA).

En vert : Le port de programmation pour pouvoir vous amusez.

En rose : Alors, Il y a bien un emplacement pour un gyroscope mais sans gyroscope 🙂 . En général, on mêle souvent l’accéléromètre et le gyroscope car c’est le couple idéal pour que l’objet puisse se localiser dans l’espace. (comme les drones). Du coup, cet emplacement laisse penser que Xiaomi anticipe peut-être le développement d’un autre capteur un peu plus « intelligent ». (L’histoire sur la détection de coordonnées aurait été possible mais sans gyroscope… nada)

Ce démontage est, du coup, très intéressant car on comprend mieux comment le capteur fonctionne. On est loin de l’idée de la « vibration ». Comme son nom l’indique, l’accéléromètre mesure une accélération sur un axe. Je ne sais donc vraiment pas si les vibrations sont détectables… OU alors de grosses vibrations !

Voyons maintenant comment le capteur se comporte.

Compatibilité ZiGate

Les commandes officielles

Avant d’étudier la compatibilité du produit avec la ZiGate, voyons comment il se comporte avec la passerelle officielle Xiaomi.

Xiaomi Vibration gatreway mobileAlors voilà, après avoir appairé le capteur à la Gateway Xiaomi j’ai pu observer 3 messages différents.

  • Chute de l’objet
  • Objet saisi (c’est peut-être ça leur vibration :))
  • Objet incliné

Bon comme on s’en doutait, on a pas vraiment de message de « vibration » … d’ailleurs, en tapotant sur le capteur, aucune action n’est déclenchée.

PS : J’ai vu que la sensibilité du capteur était paramétrable mais même en mettant au max, on ne peut pas dire qu’il détecte des vibrations, plutôt de grosses secousses.

EDIT 1 (05/09/18) : Après quelques tests plus approfondis avec l’objet et la passerelle (ainsi que mon sniffer préféré), j’ai découvert que la passerelle émettait une trame lorsque l’on change la sensibilité à partir de l’application Mi Home.

Sensibility xiaomi vibration

Sensibility xiaomi vibration 2

Une fois que vous avez appuyé sur le bouton d’appairage voici ce que le sniffer reçoit :

mise à jour sensibilite Xiaomi vibration

On retrouve :

  1. L’envoie de la trame d’information du capteur (appuie sur le bouton)
  2. La passerelle Xiaomi envoie une commande d’écriture :
    • Cluster : 0x0000 (Basic)
    • Attribut : 0xFF0D
    • Code fabricant : 0x115F (code de Xiaomi)
    • Le type de données : 0x20 (Integer 8bit)
    • Le type d’attribut : 0x01 (0x01 pour « high sensi » 0x0B pour « medium »  et 0x15 pour « low »
  3. L’objet renvoie un « succès » à la commande pour dire qu’il l’a bien pris en compte.

J’ai bien entendu tenté de reproduire la trame avec la ZiGate et ça donne ça (testé sur TestGUI) :

Write attribut Xiaomi vibration

01 02 11 10 02 10 10 34 02 12 02 14 AE 02 11 02 11 02 10 02 10 02 10 02 11 11 5F 02 11 FF 02 1D 20 02 11 03

Tout fonctionne, côté sniffer je reçois la même trame que celle envoyée par la passerelle Xiaomi et le capteur répond bien « succès ».

En pratique et en faisant pleins d’essais, il semblerait que la sensibilité du capteur varie bien en fonction du paramétrage.

Côté ZiGate

Bon maintenant que l’on a vu ce que ça donnait sur l’application officielle, voyons ce que ça donne sur la ZiGate.

Pour tester le capteur, j’ai utilisé l’application sous Windows TestGUI.

Je vous passe bien entendu l’appairage qui est toujours la même procédure sur les capteurs ZigBee.

Voici donc les informations observé sur ce capteur :

Les clusters

EndPoint: 0x01
Profile ID: 0x0104 (ZigBee HA)
Device ID: 0x000A (Unknown)
Input Cluster Count: 4
Cluster 0: Cluster ID: 0x0000 (General: Basic)
Cluster 1: Cluster ID: 0x0003 (General: Identify)
Cluster 2: Cluster ID: 0x0019 (General: OTA)
Cluster 3: Cluster ID: 0x0101 (General: Door Lock)
Output Cluster Count: 6
Cluster 0: Cluster ID: 0x0000 (General: Basic)
Cluster 1: Cluster ID: 0x0004 (General: Groups)
Cluster 2: Cluster ID: 0x0003 (General: Identify)
Cluster 3: Cluster ID: 0x0005 (General: Scenes)
Cluster 4: Cluster ID: 0x0019 (General: OTA)
Cluster 5: Cluster ID: 0x0101 (General: Door Lock)

EndPoint: 0x02
Profile ID: 0x0104 (ZigBee HA)
Device ID: 0x5F02 (Unknown)
Input Cluster Count: 2
Cluster 0: Cluster ID: 0x0003 (General: Identify)
Cluster 1: Cluster ID: 0x0012 (Unknown)
Output Cluster Count: 4
Cluster 0: Cluster ID: 0x0004 (General: Groups)
Cluster 1: Cluster ID: 0x0003 (General: Identify)
Cluster 2: Cluster ID: 0x0005 (General: Scenes)
Cluster 3: Cluster ID: 0x0012 (Unknown)

Xiaomi utilise donc le cluster 0x0101 pour remonter les données. Normalement ce cluster (door lock) est censé être utilisé pour la gestion des serrures connectées…

Les commandes

Mode libération
Type: 0x8102 (Attribute Report)
SQN: 0x0C
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock)
Attribute ID: 0x0508
Attribute Size: 0x0008
Attribute Type: 0x25 (Unknown)
Status: 0x00

Cette trame permet d’éviter l’inondation d’actions. Tant que cette trame n’est pas lancée, on ne peut pas lancer d’autres actions.

Rotation (correspond à la commande « Tilt » officielle)
Type: 0x8102 (Attribute Report)
SQN: 0x0E
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock)
Attribute ID: 0x0055
Attribute Size: 0x0002
Attribute Type: 0x21 (UINT16)
Attribute Data: 0x0002
Status: 0x00

Type: 0x8102 (Attribute Report)
SQN: 0x0E
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock)
Attribute ID: 0x0503
Attribute Size: 0x0002
Attribute Type: 0x21 (UINT16)
Attribute Data: 0x0054
Status: 0x00

Cette commande est intéressante car elle est toujours accompagnée de 2 trames. La première donne le type d’action (0x02) et la deuxième donne le degré de rotation (me semble-t-il)

Déplacement léger (correspond à la commande : objet saisi)
Type: 0x8102 (Attribute Report)
SQN: 0x0A
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock
Attribute ID: 0x0055
Attribute Size: 0x0002
Attribute Type: 0x21 (UINT16)
Attribute Data: 0x0001
Status: 0x00

Chute de l’objet
Type: 0x8102 (Attribute Report)
SQN: 0x0B
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock
Attribute ID: 0x0055
Attribute Size: 0x0002
Attribute Type: 0x21 (UINT16)
Attribute Data: 0x0003
Status: 0x00

Commande inconnu (non révélée)
Type: 0x8102 (Attribute Report)
SQN: 0x22
Src Addr: 0xCDD1
Src Ep: 0x01
Cluster ID: 0x0101 (General: Door Lock
Attribute ID: 0x0505
Attribute Size: 0x0004
Attribute Type: 0x23 (UINT32)
Attribute Data: 0x00CA0000
Status: 0x00

Impossible pour moi de comprendre cette commande. Je pense qu’il faudra plus de temps pour déceler le fonctionnement de cette commande.

Il me reste tout de même à « sniffer » le capteur et récupérer les trames envoyées par la passerelle Xiaomi permettant de changer sa sensibilité. Je suis curieux de voir ce que j’ai loupé 🙂

Maintenant, place aux développeurs pour intégrer ce capteur sur les différentes box ! 😉

Conclusion

Voilà une petite étude de ce capteur de « vibration » qui a mon sens révèle un problème de nommage. En effet, rien à voir avec cette fonctionnalité. Cependant, je m’aperçois que petit à petit son nom change sur les boutiques. Il semble que de plus en plus, on l’aperçoit sous le nom de « smart motion sensor » (qui est beaucoup plus adapté).

Maintenant que l’on a vu la qualité technique de ce capteur, il reste à savoir dans quel cas il peut être utilisé. Le cas pratique que l’on voit souvent sur les brochures, est de le placer sur une fenêtre pour détecter un bris de glace mais je trouve qu’il peut aller beaucoup plus loin et que son utilisation d’origine ne semble pas vraiment coller à la technologie du capteur.

Je vous laisse imaginer ce que vous pouvez faire avec ce nouveau joujou et n’hésitez pas à partager vos idées d’utilisation et détournement !

A bientôt !

 

[Total : 49    Moyenne : 2.8/5]

24 comments

  1. Hello,
    J’attendais avec impatience ce module.
    Je pense m’en servir pour capter les différentes phases de lavage de ma machine à laver ( assez précis ? )

    max

    1. je pense qu’une prise électrique connectée genre TP-Link HS110 qui suis la consommation électrique pourrait faire l’affaire car chaque cycle (chauffage eau, moteur normal, moteur essorage…) consomme sûrement une puissance électrique particulière qu’il suffit d’analyser justement en suivant la courbe retournée par cette prise ce qui permet en plus de faire un pierre deux coups en calculer la consommation totale d’un lavage et en faire la somme en fin de mois.

  2. Usages possibles, le mettre dans une boite pour être averti si quelqu’un y touche ! voir même dans un véhicule, une remorque située dans le jardin ou le garage pour activer une alerte mouvement basée sur une activation programmée sur plage horaire ou manuelle ?

  3. Selon moi tu passes à côté de rien pour la sensibilité.
    Selon moi c’est un réglage logiciel côté Mi omen qui selon les valeurs reçues logguera et notifiera (ou pas) et qu’en soit y’a pas de réglage réel de sensibilité. Donc je ne pense pas qu’il y ait des trames correspondantes

    1. J’ai pu effectué quelques tests avec mon sniffer et la passerelle Xiaomi. Lorsque l’on change la sensibilité à partir de l’application MI HOME, la passerelle envoie bien une trame d’écriture à l’objet pour changer sa sensibilité. (il faut appuyer sur le bouton d’appairage pour réveiller l’objet et que la passerelle puisse déclencher l’envoie)

      J’ai pu reproduire la trame (en respectant des règles) avec la ZiGate et l’objet acquitte bien la commande. En pratique, le capteur réagit conformément à la sensibilité modifiée.

      Du coup, je vais faire un « EDIT » de l’article dès que possible.

  4. Vu qu’il n’a pas l’air très sensible, on ne peut pas l’utiliser pour détecter une tentative d’effraction sur une porte à limage des capteurs somfy protect ? Dommage ça aurait été un bon remplacement, car les somfy coûtent un bras pièce !

  5. Bonjour à vous,
    recu et testé hier soir sur une baie vitrée coulissante, Sensibilité high , si je tape sur la fenêtre , il y a bien une vibration de detectée.

    1. Bonjour,
      je suis interessé par ton retour d’experience.
      Est-ce que ça a fonctionné ?

      J’ai une porte de garage à bascule et j’aimerai avoir son état (ouverte ou fermée).
      Ca me permettrait d’envoyer une alerte si elle reste ouverte trop longtemps.

      Merci

  6. Bonjour,
    Merci pour cet article.
    Juste une petite information : une vibration se mesure en réalité en quantifiant une accélération (en m.s-2), et se mesure… avec un accéléromètre !
    Ce capteur porte donc bien son nom 😉

    1. Et oui, à force d’utilisation et surtout depuis que j’ai mis la sensibilité au max, on peut dire qu’il détecte la vibration 🙂
      En tout cas merci pour le feedback et la précision 🙂

  7. Hello,

    Toujours bien tes articles, bravo et merci.

    Je penses l’utiliser en effet sur vitres, portes fenêtres et je me dis sur l’ouverture de la boîte aux lettres. Comme ça si lettre ou colis, le mvmnt est détecté.

    A tester donc

  8. Pour détecter une ouverture/fermeture de porte, cela doit être pratique (pas de problème pour mettre l’aimant en face).
    On sait que la porte a été bougée mais on ne sait pas si elle est fermée ou ouverte.

  9. En gros c’est l’équivalent du Gigaset Elements Door Sensor qui détecte ouverture de porte et vibration si on force(le door sensor émet une petite alarme d’ailleurs). Par contre, est-ce qu’il détecte une ouverture latérale comme pour une porte coulissante ? C’est le problème du capteur Gigaset qui a ressorti une version « Universal » du dit capteur pour le gérer.
    Si je résume bien c’est un capteur d’ouverture de porte sans l’aimant et avec détection de potentielle fracture de vitre. Ca serait parfait pour ma grosse porte fenêtre sur le jardin :p. Par contre,

  10. L’idée est bonne mais comment évaluer la valeur pour le fermer il faudra attendre qu’il y ait du vent ou secouer le store à la main pour refléter la valeur d’accélération qui déclenchera la fermeture ? habituellement c’est plutôt un petit anémomètre qui est utilisé avec fermeture si le vent dépasse une certaine vitesse non ?

  11. Sur jeedom, j’ai renommé le #59 en déplacement et #58 en choc. Je l’ai mis en « monitoring » sur une porte pour avoir un graphe dans une utilisation normale. Tu peux faire le même pour ton store terrasse.
    Suivant les valeurs, pour la partie choc varie peut, dans mon cas, 1.5 presque tout le temps (entre 1 et 2), mais j’ai bien les évènements d’une ouverture/fermeture de porte. Je sais qu’on passe par là, mais je sais pas si elle est ouverte ou fermée. C’est suffisant pour un éclairage de passage 😉
    Pour la partie mouvement, entre 5 et 8 pour la porte, (un déplacement rapide j’ai observé 64). Vu que ca change pas mal, suffit de faire un event la dessus pour toi faire une action pour ton store de terrasse.
    Par contre j’ai pas essayé d’augmenter la précision en l’envoyant à la sonde, dans mon cas de porte pas besoin, dans ton cas il faudrait l’augmenter pour la fluctuation plus fine avec le vent.

  12. Hello, j’en ai acheté un pour utiliser sur jeedom avec ma zigate (super produit bravo)
    Il est bien détecté mais par contre mon capteur ne réagit à rien…. je vois bien l’indicateur batterie etc.. mais par contre meme si je secoue le capteur dans tous les sens rien ne se passe…
    Mon capteur est defecteux? j’ai vu que cela pouvait venir de la sensibilité du capteur?
    Par contre je n’ai pas de gateway xiaomi… Une idée?
    je me demandais si je pouvais pas tenter via la gateway (qu’on peut me pretter) je pouvais pas changer la sensibilité et ensuite m’en servir avec zigate… une autre idée?

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.