Astuce : automatiser HomeKit depuis macOS avec Keyboard Maestro

Nicolas Furno |

Sous iOS, il existe de multiples solutions pour activer ou désactiver un appareil ou une scène HomeKit. Vous pouvez passer par l’app Maison bien sûr, mais il y a aussi un accès rapide depuis le centre de contrôle, vous pouvez utiliser Siri ou même l’app Raccourcis pour des automatisations plus avancées. Sous macOS Mojave, vous avez l’app Maison ou Siri et… c’est tout.

L’app Maison est directement issue de la version iPad et elle n’est pas très optimisée pour macOS, c’est le moins que l’on puisse dire. Outre son interface très proche d’iOS, elle n’est pas pensée pour être utilisée au clavier et encore moins pour être automatisée. Le meilleur moyen de contrôler HomeKit avec un Mac, c’est encore Siri, qui permet d’activer ou désactiver accessoires et scènes.

L’app Maison sur macOS Mojave.

Cela fonctionne très bien, mais je cherchais une méthode plus rapide et pratique pour activer ou désactiver des accessoires HomeKit avec un Mac. Je préfère éviter d’avoir à parler à Siri à chaque fois et je voulais le faire avec un raccourci clavier, ma méthode de prédilection pour lancer des automatisations sur macOS.

J’ai réussi à le faire en utilisant Keyboard Maestro et je vais détailler comment si vous voulez en faire autant. Cet exemple me permet d’allumer une prise connectée si elle est éteinte et vice-versa, mais il est possible de l’adapter pour une scène ou pour contrôler plusieurs accessoires à la suite.

Configuration : Siri en mode textuel

Pour cette automatisation, nous allons utiliser Siri qui reste le meilleur moyen de contrôler HomeKit. À défaut de parler à l’assistant vocal d’Apple, nous allons utiliser une fonction d’accessibilité qui permet de saisir du texte. Notez que vous ne pourrez plus parler à Siri, ce qui peut être un problème si vous comptiez sur cette fonction. Pour ma part, je n’utilisais jamais l’assistant sur mon Mac, donc ce n’est pas un souci, mais à vous de voir.

Pour écrire à Siri plutôt que lui parler, ouvrez les Préférences Système, puis le panneau « Accessibilité », choisissez Siri dans la barre latérale de gauche et cochez l’option « Activer Écrire pour Siri ». Désormais, toutes les interactions avec l’assistant se feront par le clavier, vous pourrez saisir les mêmes commandes plutôt que de les dicter.

Pour que l’automatisation fonctionne, la fonction « Écrire pour Siri » doit être activée dans les préférences d’accessibilité.

Second point important, il faut définir un raccourci clavier pour activer Siri. Cela se fait aussi dans les Préférences Système, panneau « Siri » cette fois. Le raccourci par défaut (⌘espace maintenu une seconde) posera un problème, mieux vaut choisir autre chose. N’importe quel raccourci fera l’affaire, dans mon cas j’ai choisi ⌘⌥espace, mais vous pouvez utiliser un autre raccourci.

Le raccourci clavier qui active Siri nous sera également utile pour l’automatisation.

Par ailleurs, je vous suggère de désactiver le retour vocal de Siri en cochant l’option correspondante sur ce panneau de réglage. Ce n’est pas obligatoire, mais cela vous permettra de ne pas entendre la réponse de l’assistant vocal, et je trouve que cela améliore l’automatisation.

La macro de Keyboard Maestro

Maintenant que Siri est correctement configuré, j’ai créé une macro dans Keyboard Maestro pour automatiser cette série d’actions :

  • Activer Siri avec le raccourci clavier ;
  • Coller une phrase qui fera l’action nécessaire dans HomeKit ;
  • Valider avec la touche entrée ;
  • Patienter quelques secondes, le temps que Siri fasse ce qui est nécessaire ;
  • Fermer Siri avec la touche ESC.

Cette app permet de réaliser très simplement ce genre d’automatisations, mais il serait possible de faire la même chose en AppleScript, sans avoir à payer des licences, on y reviendra. En attendant, voici ce que j’ai créé dans Keyboard Maestro :

Vous pouvez télécharger directement cette macro à cette adresse, et la modifier en fonction de vos besoins. Pour vous aider, voici les explications pas à pas.

En haut du fichier, vous trouverez un champ de texte pour le nom de macro, puis une zone qui détermine comment la macro est activée. J’ai choisi un raccourci clavier (⇧F19), vous pourrez le modifier en fonction de vos préférences, ou bien choisir une activation différente, Keyboard Maestro propose des dizaines d’options différentes.

Viennent ensuite les actions qui seront exécutées. La première est le raccourci clavier qui active Siri. Modifiez-le en fonction du paramètre choisi dans les Préférences Système.

On pourrait ensuite directement coller le texte qui servira dans Siri, dans mon cas ce serait soit « Allume les enceintes », soit « Éteins les enceintes ». Mais justement, je voulais que l’automatisation fonctionne en toutes circonstances et qu’un seul raccourci clavier me permette d’allumer les enceintes si elles sont éteintes, et de les éteindre si elles sont allumées.

Ce genre de logique n’est pas prise en charge par défaut avec HomeKit. À défaut, j’utilise une des fonctions de Keyboard Maestro pour obtenir le même résultat : une variable globale. L’idée est d’enregistrer l’état de la prise dans une variable, et en fonction de la valeur, l’automatisation allumera ou éteindra la prise. Première étape, il faut créer la variable dans les préférences de l’app :

Dans la macro, on ajoute une action « If Then Else » pour introduire la condition sur le contenu de la variable. J’ai choisi de faire simple : 0 si la prise est éteinte, 1 si elle est allumée. Si la valeur est à 0, alors la macro allume la prise et enregistre la valeur 1 dans la variable ; si la valeur est à 1, alors la macro éteint la prise et enregistre 0.

Cette action permet de définir la condition, puis de définir ce qui se passe si elle est vraie, puis si elle est fausse. Dans notre cas, il y a deux actions pour chaque cas :

  • l’une pour insérer un texte qui ira dans l’interface de Siri activée précédemment ;
  • la deuxième pour modifier le contenu de la variable.

Le texte à saisir doit s’adapter à vos besoins, vous pouvez essayer avant de créer la macro avec Siri, pour savoir ce qui fonctionne ou pas. L’assistant n’accepte qu’une seule commande à la fois, vous ne pouvez pas écrire « Allume les enceintes et éteins la lumière », vous devrez exécuter deux fois Siri pour cela.

Dernières étapes : envoyer la commande avec la touche Entrée, puis patienter le temps que Siri s’exécute et fermer Siri avec la touche esc. J’ai mis une pause de deux secondes, elle est suffisante dans mon cas, mais vous pourrez l’allonger en cas de besoin. Vous pouvez même ne pas fermer Siri automatiquement, et laisser macOS le faire après quelques secondes d’attente.

Contrairement à ce que l’on pourrait penser, cette macro n’est pas lente. Voici le résultat, pour vous donner une idée de la rapidité du processus. J’ai laissé l’app Maison ouverte uniquement pour montrer que tout fonctionne, mais elle n’est jamais nécessaire pour l’automatisation et vous pourrez l’oublier au fond du dossier des applications une fois que tout est en place.

Alternative avec de l’AppleScript uniquement

Keyboard Maestro est un formidable outil d’automatisation, mais c’est aussi une app payante. Si vous ne voulez pas mettre les 40 € demandés par la licence, voici une alternative gratuite, en AppleScript. Vous pouvez télécharger ce fichier à cette adresse, si vous voulez l’ajuster à vos besoins.

La plus gros défaut de cette approche, c’est qu’elle ne gère pas l’état de la prise, comme je l’ai fait précédemment. Vous devrez avoir deux scripts différents, un pour allumer et un pour éteindre l’appareil, ou bien activer et désactiver la scène. On pourrait imaginer un système similaire à celui de Keyboard Maestro, en enregistrant une variable dans un fichier, mais cela devient alors nettement plus compliqué.

Pour bien faire, il faudrait qu’Apple ajoute de quoi automatiser HomeKit sur macOS, notamment en offrant la possibilité de connaître le statut d’un appareil. On imagine que ça ne se fera pas avec de l’AppleScript, mais peut-être que Raccourcis finira par arriver sur macOS ? D’ici là, mon bricolage avec Keyboard Maestro fait l’affaire et fonctionne mieux que je l’imaginais initialement…

avatar jala | 

Raccourcis sur Mac OS, ce serait bienvenu car l'interface de création tant sur iPad qu'iPhone est tout sauf ergonomique dès que l'on dépasse quelques actions.
L'approche KeyBoard Maestro est intéressante (peut-être ma licence va-t-elle me servir à quelque chose, je préfère Alfred et ses workflows dans de nombreux cas, même s'il n'est pas tout à fait comparable)

avatar Bigdidou | 

Keyboard Maestro, c’est vraiment top.
Mais justement..

Quelqu’un connaît un équivalent sur Windows ?
Un truc qui permet de créer ou d’enregistrer macros au sens de séquences d’actions dans les applications ?
Keyboard Maestro et des trucs comme,TestSoap me manquent cruellement.
Il a phrase express, mais 200€ &vécu la fonction macro...
Sinon, il faudrait que je trouve un truc qui me permette de comprendre et de mettre en œuvre rapidement les macros dans Word, mais je suis pas sûr de moi...

avatar françois bayrou | 

Après le contrôle d'un ordinateur entier à partir d'une bête macro Word, le contrôle d'une maison entière à partir d'une bête macro Keyboard Maestro...

avatar Bigdidou | 

@françois bayrou

« Après le contrôle d'un ordinateur entier à partir d'une bête macro Word, le contrôle d'une maison entière à partir d'une bête macro Keyboard Maestro... »

Ah, tu n’a pas compris que c’était pour différents type d’utilisation... ?

avatar françois bayrou | 

Je faisais allusion aux vulnérabilités et failles de sécurité qui s’annoncent, grosses comme une maison, si je puis dire.
Quand on voit ce qu’une macro word a permis de faire comme degats , je te laisse imaginer :)

Une au pif
https://www.zdnet.com/article/microsoft-fixes-exploited-critical-word-security-flaw/

avatar Bigdidou | 

@françois bayrou

« Quand on voit ce qu’une macro word a permis de faire comme degats , je te laisse imaginer :) »

Oui, enfin une macro world que j’aurais faite moi même pour nettoyer automatiquement une tente de ses scories, ça devrait aller, j’ai pas trop peur.

avatar françois bayrou | 

Quand on est victime d’un script malveillant, on en est rarement l’auteur :)

Je voulais juste pointer le fait que ces outils sont autant de vecteurs d’attaque supplémentaires.

avatar ovea | 

C'est bien … Basic, tout ça

avatar raphta | 

C’est quand même vachement alambiqué pour quelque chose d’aussi rudimentaire qu’un raccourci clavier...
Home sur Mac manque AppleScript, ou au moins raccourci d’ios. Mais même sur Mac AppleScript sera toujours plus puissant et lisible au delà 3 actions.
Je tolère ce statut quo la première année comme introduction. Mais j’attends beaucoup de la WWDC.

avatar Teagan Smitham | 

Well, I am glad that we are now able to control our houses from the IoT. IoT has become so enormous and will bring so much ease in people’s life. I am glad to read https://www.top10films.co.uk/51907-must-see-tv-drama-in-2019/ article for help. This will become a competition soon and I am glad that Apple has started doing it to ease people’s life.

avatar mmmgl | 

Pour ceux que ça intéresse et qui ont des accessoires / éclairages hue :

Avec phue (https://github.com/studioimaginaire/phue), on peut contrôler son éclairage/ses accessoires a l'aide d'un script python, qu'on peut ensuite utiliser avec keyboard maestro (ON/OFF avec un raccourci clavier, OFF quand ordi mit en veille, ... ) . Ca élargit les possibilité plutôt que de devoir utiliser siri. :)

avatar MadisonJones | 

C'est vraiment utile pour moi.

CONNEXION UTILISATEUR