Truc totalement bidouille et inutile aujourd’hui, mais qui permet de voir un truc qui n’est pas disponible largement : un émulateur pour la fonction Home Key de HomeKit (Clés de maison en français).
C’est une technologie qui permet d’employer un iPhone ou une Apple Watch our déverouiller une serrure connectée, mais elle est rare en Europe pour le moment. Et un développeur a proposé sur GitHub un petit programme en Python qui permet d’émuler une serrue compatible. C’est assez basique, mais ça permet de voir à quoi ressemble l’interface, à défaut de vraiment déverrouiller une serrure.
Sur le coup, j’ai testé parce que le matériel nécessaire n’est pas très cher. Il faut un adaptateur USB vers UART (j’en avais un, mais sinon ça vaut une dizaine d’euros) et un kit RFID. Le programme nécessite une carte avec une puce PN532 qui se connecte en UART. J’en ai acheté un pour 11 € et il y avait une carte avec une puce NFC et un badge avec. La seule chose que j’ai dû faire, c’est souder les broches dessus, mais c’est vraiment le niveau basique en soudure.
Question branchement, il faut alimenter la carte en 5V. Ce point va dépendre de votre adaptateur UART : certains ont une broche pour le 3,3V et une pour le 5V (le cas du mien), d’autres une seule broche et un cavalier pour choisir la tension. Ensuite, il faut relier la masse à la masse, la broche TX
(ou équivalent) à SCL
et la broche RX
à SDA
.
Le programme lui-même s’installe facilement sur un Mac. Vous aurez besoin du nom de l’interface série (usbserial-1460
dans mon cas) et il faudra évidemment taper quelques lignes dans le Terminal de macOS. J’ai testé sur un Mac que j’utilise régulièrement pour ce genre de choses, donc j’avais peut-être déjà installé certains trucs nécessaires avec Homebrew. Le programme fonctionne avec Python 3, donc une version récente de macOS est probablement nécessaire.
cd Downloads
git clone https://github.com/kormax/apple-home-key-reader
cd apple-home-key-reader
python3 -m venv ./venv
source ./venv/bin/activate
python3 -m pip install -r requirements.txt
Ensuite, il faut mettre le nom de votre interface série dans ce fichier, à la ligne qui commence par "port": "xxx"
. La page du projet donne quelques informations sur les réglages possibles.
nano configuration.json
Enfin, il faut lancer le programme, qui va demander un accès au réseau (c’est normal).
python3 main.py
Côté iPhone
Dans le Terminal, vous devriez voir le code pour le jumelage HomeKit. Dans mon cas, je n’ai pas eu de code QR (je n’avais pas installé la bibliothèque nécessaire) mais le programme doit pouvoir le générer. Dans Maison, il suffit d’ajouter un accessoire (avec le +
) et choisir Plus d’options… comme il n’y a pas de code QR. La serrure devrait apparaître dans la liste si vous êtes sur le même réseau. iOS va vous proposer d’activer le mode Toucher pour déverouiller (Express Mode), ce qui n’est pas obligatoire. Sans cette option, vous devrez valider l’ouverture avec Face ID ou Touch ID.
En pratique, on a donc d’abord une carte dans l’application Cartes (le Wallet d’iOS). On peut activer (ou désactiver) le mode Express. Truc sympa, on a les reflets qui bougent en fonction dy gyroscope de l’iPhone.
Quand on approche l’iPhone du lecteur, on a une petite animation dans la Dynamic Island avec la carte, et une notification de Maison qui indique qu’on a verrouillé (ou déverrouillé) la serrure virtuelle. On peut aussi le faire manuellement depuis Maison, bien évidemment, sans passer par la connexion physique en NFC.
Parfait pour la bidouille
Le programme reste assez basique et c’est de la bidouille, mais on peut faire des choses amusantes et lier l’ouverture à automatisations HomeKit, par exemple. Et si je l’ai lancé sur un Mac, il fonctionne aussi visiblement sur un Raspberry Pi par exemple. Kormax (l’auteur) a documenté le tout et il y a même de la documentation sur GymKit. Dernier point, si vous voulez tenter de jouer avec la configuration, il faut supprimer hap.state
et homekey.json
pour repartir de zéro.
Super info qui me donne envie de se lancer dans l’expérience.
Question pratique : est-ce que le module de lecture peut être alimenté par une pile ? l’idée étant d’imprimer un boîtier étanche pour le fixer devant la porte du garage et ainsi utiliser apple home key pour l’ouvrir au lieu de lancer à chaque fois l’application home pour ouvrir.
Merci en tt cas pour tes explications.
Oula, aucune idée. Eventuellement une batterie, mais il faut tout de même un appareil comme un Raspberry Pi derrière. Une batterie de smartphone avec un panneau solaire pour la charger, pourquoi pas