Avec la sortie de Google Assistant et très bientôt Siri et (on l'espère) Amazon Alexa, les assistants vocaux ont la côte en ce moment. Il faut dire qu'ils facilitent tellement la vie que c'est tout à fait normal, surtout quand on peut piloter très facilement son système domotique grâce à eux :) Mais ils ont deux inconvénients: le plus souvent, il faut posséder un appareil comme un Google Home ou un Amazon Echo; ensuite, toutes les données transitent dans le Cloud, avec les risques que ça engendre en cas de coupure d'internet et de sécurité des données. Aujourd'hui je vous propose une méthode qui ne coute rien, et qui s'installe facilement sur la plupart des smartphones. Il ne s'agit pas de Tasker sur Android comme nous avions déjà vu une fois sur le site, mais de Workflow sur iPhone.
Je cherchais pour ma part à allumer la lumière via Siri, depuis mon iPhone. Il y a bien le contrôle des périphériques Homekit, comme la douille Koogeek Smart Socket que nous avions vue, mais le système Homekit est pour le moment trop restrictif. Ici je voulais pouvoir piloter les périphériques de ma Zipabox. Mais la méthode peut fonctionner avec toute box domotique pilotable par requête http. Même si au final ça n'est pas directement Siri qui lance la commande, c'est tout de même accessible rapidement depuis le centre de notifications de mon iPhone (widgets) et avec la commande vocale. Je ne suis pas un informaticien, et je débute en domotique, mais j'ai trouvé cette méthode pratique et facile à mettre en place, donc soyez indulgents ;-) Si certains s’aperçoivent de raccourcis ou simplifications, ne pas hésiter à commenter !
Pré requis pour piloter sa Zipabox avec Workflow
- Une box domotique (Ici une Zipabox)
- Un serveur web (ici un NAS Synology, mais n'importe quel serveur pouvant héberger une page php fera l'affaire (pages perso de votre fournisseur d'accès par exemple)
- un module à actionner (ici un dimmer)
I. Créer un module virtuel sur la Zipabox
Pour commencer, on crée donc un Virtual sensor sur la ZIpabox. Je l'ai appelé “Lumière Salon”.
On récupère l'adresse http permettant de l'activer comme ceci :
Un clic sur la roue crantée permet d'accéder à l'url recherchée:
Copiez cette adresse quelque part.
II. Créer le script php
On crée ensuite une page sur le serveur web, qui appelle cette adresse. Désolé, je n'y connais pas grand chose en programmation, donc on se contera d'une page très simple, qui contient le code suivant :
<?php
header(“location : entrer votre adresse ici”);
//header(‘Location: test.html');
//exit();
?>
Entrez l'url récupérée plus haut à cet emplacement, et pensez à ajouter le chiffre 1 à la fin de l'adresse pour actionner le module:
TRES IMPORTANT : Le nom de cette page sera le nom que vous appellerez avec votre téléphone pour actionner le module. Pour moi, Salon.php (la majuscule a son importance).
Vous pouvez ensuite créer la page qui fera l'action inverse (« Eteindre.php par exemple, avec 0 à la fin de l'adresse cette fois ci pour désactiver le périphérique).
Hébergez cette page sur votre serveur.
III. Création des règles sur la Zipabox
Il nous faut maintenant créer 4 règles
- une qui actionne le module lorsque le virtual sensor est actif.
- une autre qui éteint le module lorsque l’état est inactif.
- une règle qui remet l'état à inactif si la lumière est éteinte par l'interrupteur
- et enfin sa réciproque si la lumière est allumée par l'interrupteur
Cette capture écran vous les présente:
IV. Création de la commande vocale sur Workflow.
Dans un premier temps il vous faudra télécharger l'application « Workflow » (vous pouvez lire une présentation de cette application très intéressante si vous la découvrez).
Une fois installée, cliquez sur « Create Workflow », puis sur Actions en bas à gauche
Dans la barre de recherche, cherchez “Dictate text”
Il faut ensuite faire un glisser déposer vers la droite pour obtenir ceci :
Retournez dans Actions, puis cherchez « URL ». Idem, glisser déposer vers la droite.
Dans la barre de champ URL, entrez l'adresse où est hébergée votre page Php (pour moi la page Salon.php sur mon Synology).
Important: ne pas écrire le mot clé dans l'adresse (pour moi Salon), mais le remplacer par “Dictated text”, accessible sur l'application en raccourci au dessus du clavier. Cela permettra de récupérer la commande vocale. On obtient ainsi: https://votreadresse.com/dossier/dictatedtext.php
Ajoutez ensuite la dernière action : « get contents of URL ». Cela ouvrira la page en question, et actionnera donc le module.
Enregistrez votre workflow. Renommez le, et dans les réglages, définissez le en « today widget ». Cela le rendra disponible depuis le centre de notifications de votre iPhone. Pensez à ajouter le widget worflow (slide à gauche depuis la page d'accueil de votre Iphone, puis tout en bas, modifier)
Si vous lancez le workflow, il vous sera demandé de dicter un texte. Normalement si vous dictez votre mot clé, qui est le titre de la page défini plus tôt (« Salon » pour moi, la majuscule vient de la…) votre lumière s'allumera.
Il suffit ensuite de reproduire la manip en définissant plusieurs mots clés. A chaque mot clé doit correspondre une page sur le serveur web.
Voila, cela fonctionne chez moi. C'est du “bidouillage”, mais cela répond à ma problématique, et je peux épater mes amis en commandant ma maison avec la voix :)
N'hésitez pas si vous avez des questions, les commentaires sont là pour ça !
Ne serait-ce pas plus simple avec Homebridge et Siri ?
https://github.com/lrozema/homebridge-zipato
Hello
Ça m’intéresse. Tu as un tuto ?
Hello
Si tu as un tuto sur ca je suis très intéressé
Car c’est ce que je cherchais.
Je fais la même chose, sans avoir besoin de parler. ;-)
Plus sérieusement, le top serait de ne pas avoir besoin de toucher son smartphone, sinon ça n’a pas vraiment d’intérêt.
J’utilise workflow pour communiquer à distance avec mon enceinte sonos. Très pratique également
Je dicte un message et il est lu sur le sonos.