Table des matières

Automate

Cette page est une ébauche.

Automate est une application qui permet d'automatiser des choses sous Android. Par exemple activer le Wifi quand vous arrivez chez vous, prononcer à voix haute un SMS reçu quand vous êtes en voiture, ou encore prendre une photo si quelqu'un essaie de déverrouiller votre téléphone avec le mauvais code. Les possibilités sont assez étendues.

La construction ne se fait pas par programme ou script, mais en assemblant graphiquement des blocs. Voici les quelques notions qu'Automate utilise (j'essaie de mettre entre parenthèses la notion correspondante en programmation traditionnelle):

Voici un exemple simplifié : Quand on reçoit un SMS, si on est connecté au bluetooth de la voiture, alors on fait prononcer le SMS à voix haute (le bloc "SMS received" attend la réception d'un SMS):

Cet exemple est assez facile à comprendre, mais on peut bien entendu construire des choses beaucoup plus complexes. Les possibilités sont assez étendues, mais l'application n'est pas forcément simple à comprendre. Chaque bloc a son comportement particulier, mais une documentation facilement accessible est attachée à chaque bloc. N'hésitez pas à la lire.

Il est à noter que même si un bloc existe, cela ne veut pas dire que vous pourrez l'utiliser : Certains blocs ne fonctionnent que sous certaines versions d'Android (à cause des limitations de Google) ou nécessitent un téléphone rooté. Par exemple, le bloc qui permet d'activer/désactiver les données mobiles ne fonctionne que sur les anciennes versions d'Android (Dans les versions récentes d'Android, Google a interdit aux applications de toucher au status des données mobiles). Ce bloc n'est donc utilisable sur les Androids récents que si votre téléphone est rooté.

Pour savoir si un bloc fonctionnera sur votre téléphone, rien de mieux que de tester vous-même. (D'autant que chaque fabricant de smartphone bidouille Android à sa façon. Les comportements ne sont donc pas forcément les mêmes sur chaque téléphone.)

Notez que l'application est fournie avec une fonction d'accès à la communauté : Des centaines de scripts, du plus simple au plus complexe, sont accessibles directement dans l'application. C'est une très bonne source d'exemples.


Versions gratuite/payante

Automate est gratuit à la base, mais avec certaines limites:

Cela permet déjà de tout tester et de faire pas mal de choses, sans compter que la version gratuite ne vous embêtera jamais avec des popups pour vous proposer la version payante.

La version sans limite ne coûte que 3,90€. Vous aurez accès à toutes les mises à jour futures du logiciel. Il y a plusieurs mises à jour par an avec des corrections de bugs et ajouts de fonctionnalités, et cela permet de soutenir l'éditeur (c'est un petit éditeur). PS: L'application payante n'est accessible que via GooglePlay, l'éditeur ne permet de l'acheter en dehors.


Exemples de blocs

Chaque bloc a les caractéristiques suivantes :

De plus, un bloc peut être bloquant ou non-bloquant:

Certains blocs sont bloquants, d'autres non-bloquants, et pour certains c'est paramétrable.

Nous allons prendre deux blocs en exemple pour illustrer ces différences. La quasi-totalité des autres blocs fonctionnent sur les mêmes principes.

Exemple de bloc : SMS received

Ce bloc attend la réception d'un SMS: Une fois entré dans le bloc (rond "IN"), il va attendre la réception d'un SMS. Quand un SMS est reçu il sort alors par le "OK" et poursuit l'exécution du flow. Ce bloc est donc toujours bloquant.

Il possède des paramètres en entrée (Input arguments) et des données en sortie (Output variables):

Paramètres en entrée:

Données en sortie:

Exemple de récupération des données en sortie:

Cela va donc créer deux variables dans votre flow (numero et message) qui pourront être utilisées en entrée dans d'autres blocs.


Exemple de bloc : Bluetooth device connected

Ce bloc permet de tester si le téléphone est connecté à un périphérique bluetooth précis.

Il a 2 sorties différentes:

Pour fonctionner, ce bloc doit être paramétré : Allez dans la configuration du bloc et taper sur "PICK DEVICE" pour choisir le périphérique bluetooth sur lequel il doit réagir. Cela va automatiquement remplir les variables en entrée (C'est plus pratique que rentrer manuellement l'adresse MAC du périphérique bluetooth, mais cela reste possible si vous le souhaitez).

Notez que dans les paramètres de ce bloc on peut le mettre l'option Proceed en Immediately ou When changed :

Important à comprendre: Le mode When changed sert donc généralement à attendre un évènement particulier, tandis que le mode Immediately sert à tester l'état à un moment donné.


Exemples de flows

Cette liste est juste à titre indicatif, elle sera sans doute modifiée:

Activer le Wifi quand on arrive à la maison (basé sur les tours GSM)

Retrouver la position GPS du téléphone en lui envoyant un SMS

Faire sonner le téléphone en lui envoyant un SMS

Flasher à la réception d'un SMS

Prononcer un SMS à voix haute quand il est relié à un périphérique bluetooth (voiture)

Réagir à la réception d'un message Signal

Afficher une alerte si la température du téléphone dépasse un certain seuil