Automate est une application pour ordiphone sous Android permettant de programmer des scripts ou de lancer une série d'actions à l'aide de briques à la façon de Node-Red. Cette application est très puissante et offre un éventail de possibilités inouï, notamment en domotique. Vous trouverez sur cet artcile comment je l'utilise pour piloter mon ampli Yamaha : [Yamaha Ampli RX-V677] Pilotage par le réseau via l'API xml de Yamaha.
Site officiel : https://llamalab.com/automate/
La version gratuite est limitée à 30 blocs travaillant simultanément, sans publicité ou autre désagrément, ce qui est largement suffisant pour découvrir la puissance de cette application. Je vous conseille, comme moi, de soutenir ses développeur⋅euses en payant les 3,90€ demandés 😉 pour lever cette limitation, somme très raisonnable au demeurant.
Il faut dire qu'il faut prendre le temps de rentrer dans cette application mais avec le cas de mon ampli très particulier, je me suis rendu compte de sa puissance.
Appli sur le store : https://play.google.com/store/apps/details?id=com.llamalab.automate
Je mets sur cette page des info et des liens utiles.
A- Comment accéder à des droits avec des privilèges élevés
Certaines actions nécessitent des droits avec des privilèges élevés comme par exemple "tuer" une application (commande "App Kill"). Il est donc nécessaire de paramétrer Automate pour le lui permettre.
Source : https://llamalab.com/automate/doc/adb.html.
Dans Automate, aller dans "Settings" -> "Privileged service start method" et choisir "Android Debug Bridge (ADB). Ensuite, Automate guide l'utilisateur⋅rice pour réaliser les réglages dans Android en indiquant chaque étape.
À partir d'Android 11 (comme pour mon ordiphone Xiaomi), il faut simplement activer le debugage sans fil par wifi (Wireless debugging option) dans le mode développeur. Puis appairer l'ordiphone pour lui permettre de communiquer avec Automate, en restant appuyer sur l'option "débugage sans fil".
B- Script pour piloter mon ampli Yamaha
Mon besoin : Lorsque je me trouve dans la salle de bain ou le salon, lancer automatiquement la musique (Radio Paradise, DS Audio de mon NAS Synology, Application radio France Inter, ...) diffusée de mon ordiphone par bluetooth vers mon ampli, en appuyant sur une seule icône de mon ordiphone.
J'avais bien un scénario dans Home Assistant mais ce scénario était incomplet : allumage/extinction de l'ampli en zone2 (salle de bain) ou principale (salon). Il restait donc encore à connecter le bluetooth du téléphone sur le récepteur TP-Link de l'ampli et à lancer l'application audio du téléphone : ce qui est fastidieux. Ça serait tellement mieux si on n'avait qu'à appuyer sur un bouton.
Pré-réglage : par défaut, l'input de ma "Zone 2" est sur l'entrée qui correspond à celle de l'adaptateur bluetooth de l'ampli (entrée AUDIO 2 que j'ai nommée "Bluetooth"). On pourrait tout à fait prévoir ce réglage dans le flow ci-dessous mais dans mon cas c'est inutile car je ne modifie pas l'entrée de cette zone.
Edit : j'ai rajouté la brique permettant de sélectionner l'entrée AUDIO2 avec la 7e brique BIS qui n'est pas sur la capture d'écran du flow ci-dessous.
Voici ci-contre mon "Flow" Automate intitulé "Radio Parad. SdB", obtenu non sans mal 😉 :
- Brique "Flow beginning" : il s'agit de la 1ère brique. En cliquant dessus pour la paramétrer, on a accès à l'action intitulée en bleu "INSTALL HOME SCREEN SHORTCUT" permettant de déposer une icône de raccourci sur son écran d'accueil de l'ordiphone.
- 2e brique : "Bluetooth enabled?" qui vérifie si le bluetooth est activé ou non sur son téléphone avec option "Proceed" fixée à "Immediately".
- 3e brique reliée au NO de la brique précédente : "Bluetooth set state" réglée sur 'On".
- 4e brique relié au YES de la 2e brique : "Bluetooth device connected" qui vérifie si un adaptateur bluetooth est connecté, avec option "Proceed" fixée à "Immediately" et l'appareil (choisit via le lien bleu "PICK DEVICE") réglé sur mon adaptateur bluetooth "TP-Link_Music".
- 5e brique reliée au NO de la brique précedente : "Bluetooth device connect" qui connecte l'ordiphone à mon adaptateur bluetooth "TP-Link_Music" (en le sélectionnant comme précédemment).
- 6e brique reliée aux YES des briques 4 et 5 : "Notification show" avec "Proceed" réglé sur "Immediately" (sinon il faut cliquer sur la notification pour que se poursuive l'action") et avec un message a affiché. Cette brique n'est pas tellement utile car la notification est trop rapide (invisible). Il faudrait trouver un timer...
- 7e brique reliée au YES de la brique précédente : "HTTP request". C'est elle qui allume l'ampli et c'est celle qui m'a pris le plus de temps à paramétrer car le code xml avec les instructions à réaliser est de forme particulière (voir ici : https://gist.github.com/albulescu/544f7464724d2fe08de668ff7102d302).
Voici ses arguments :
Request url -> http://192.168.1.50/YamahaRemoteControl/ctrl
Request method -> POST
Request content type -> XML
Request content body ->{ "type": "string", "default": "<?xml version=\"1.0\" encoding=\"utf-8\"?><YAMAHA_AV cmd=\"PUT\"><Zone_2><Power_Control><Power>On</power></Power_Control></Zone_2></YAMAHA_AV>" }
- Variante pour la 7e brique en passant par un fichier xml au lieu de compléter le champ "Request content body" :
Request content body -> laisser vide
Request content path -> Download/Power_On.xml (il s'agit du chemin vers le fichier .xml pour la commande à effectuer).
Voici le contenu du fichier "Power_On.xml" :
<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd="PUT">
<System>
<Power_Control>
<Power>On</Power>
</Power_Control>
</System>
</YAMAHA_AV>
- 7e brique BIS (non présente dans le schéma ci-contre) pour sélectionner l'entrée AUDIO2 (sur laquelle est branché le module Bluetooth TP_Link_Music) pour la zone 2, du type "HTTP request". Contenu du champ "Request content body" :
{"type": "string", "default": "<?xml version=\"1.0\" encoding=\"utf-8\"?><YAMAHA_AV cmd="\PUT\"><Zone_2><Input><Input_Sel>AUDIO2</Input_Sel></Zone_2></YAMAHA_AV>"}
- 8e brique reliée au OK de la brique précédente : "App start" où on choisit dans le champ "Package", l'application audio que l'on souhaite utiliser. Pour Radio Paradise, il s'agit du package "com.eartflare.android.radioparadisewidget.gpv2" (qu'on retrouve avec RP dans la barre de recherche). J'ai coché dans les paramètres "Audio Settings" la case "Auto play on launch" permettant de lancer la lecture dès l'ouverture de l'application, ce qui fait gagner un clic.
Flux téléchargeable en bas de la page.
Reste à venir ...