Commande Domotique avec SIRI Apple sur Raspberry Pi Commande Domotique avec SIRI Apple sur Raspberry Pi
Menu

Commande Domotique avec SIRI Apple sur Raspberry Pi

19 novembre 2017 - Domotique, Python, Raspberry Pi
Commande Domotique avec SIRI Apple sur Raspberry Pi

Comment commander sa domotique avec la voix par son téléphone Apple et SIRI ?

Rien de plus simple avec un petit script en python à installer sur un raspberry pi !

Je vais vous expliquer commence cela fonctionne et ensuite comment l’installer.

Le fonctionnement:

Vous ne le savez peut être pas !  SIRI peut écrire des notes sur vos notes de téléphone. Il faut lui dire « note » et ensuite dicter la note. Essayez c’est cool.

Ensuite le téléphone peut gérer plusieurs systèmes de note soit sur le téléphone soit sur une adresse mail donc il est possible d’écrire une note avec SIRI sur le notes d’une adresse Gmail. Nous allons utiliser cela!

Une fois la note écrite sur Gmail un petit script en python va la récupérer et la décrypter pour savoir si le texte correspond à une commande de domotique. Simple non !

Donc il nous faut SIRI, une adresse mail pour stoker nos notes et un rapsberry pi pour lire les notes et des modules différents pour chaque ordre avec la commande domotique (ou autre).

La pratique : 

Une adresse mail sur Gmail

Je vous conseille de créer une nouvelle adresse mail sur Gmail spécifique car il va falloir une adresse peut sécuriser pour donner l’accès au script python donc n’utilisez pas votre adresse perso ou pire pro !

Une fois l’adresse créer quand vous être connecté à cette adresse allez sur la page : https://myaccount.google.com/lesssecureapps sécurité gmail

Il vous faut autoriser les applications moins sécurisées pour laisser l’accès à votre script en python. Attention sur ce compte de pas ajouter de double autentification. Vous devez pouvoir vous connecté de n’importe ou avec votre adresse mail créé et un mot de passe.

Configurer votre téléphone

Il vous faut maintenant ajouter cette nouvelle adresse sur votre téléphone. Sur IOS11 Faire « Réglages », « Comptes et mots de passe », et en bas « Ajouter un compte ». Vous pouvez choisir Google, compléter votre adresse mail et votre mot de passe. A la fin de l’installation il vous demande si vous voulez utiliser cette adresse pour différent services (mails, contacts, calendriers et notes) garder juste « notes ». Voilà votre adresse est configurée pour envoyer vos notes sur Gmail.

Maintenant il faut dire à SIRI que les nouvelles notes doivent partir sur votre adresse gmail. Toujours dans « Réglages » du téléphone aller dans « Notes » et dans compte par défaut choisir votre adresse mail.

On test !

Avant d’aller plus loi on peut faire un test. Ouvrir SIRI dite « note ». SIRI vous invite à dire votre texte ‘bla bla bla bla » Si tout va bien SIRI vous annonce que votre texte est placé dans une nouvelle note. Rendez-vous sur votre adresse mail avec votre navigateur et dans les notes (menu à gauche) vous devez voir votre note écrite. Première étape réussit ! 

Notes Gmail

Installation sur le Raspberry Pi

Maintenant il faut passer du coté du Raspberry pi pour récupérer les notes (la dernière) et faire une action si la note corresponds à une commande domotique.

Pour l’installation je vous invite à passer par un « git clone … »

sudo apt-get update

sudo apt-get install git-core

git clone https://github.com/theraspberryguy/SiriControl-System

Cela va télécharger les scripts python dans le dossier SiriControl-System. Dans ce répertoire un fichier siricontrol.py et un dossier « modules » qui va contenir tous les modules. Une commande un module.

Pour commencer il faut ouvrier le fichier siricontrol.py pour ajouter (juste au début) votre adresse mail (créée plus haut) et le mot de passe.

##########################################

# Add your gmail username and password here

username = "votre mail@gmail.com"
password = "le mot de passe"

##########################################

Comment créer un module ?

Dans le répertoire module vous avez un modèle « life.py » et un modèle templateModule.py

#You can import any required modules here

#This can be anything you want
moduleName = "templateModule"

#All of the words must be heard in order for this module to be executed
commandWords = ["xyz"]

def execute(command):
    #Write anything you want to be executed when the commandWords are heard
    #The 'command' parameter is the command you speak
    return

C’est très simple:

Il faut donner un nom au module avec moduleName = » » (mettre un nom parlant par rapport à votre commande ex : allumerLampeSalon)

Ecrire le ou les mots qui correspondes à la commande dans commandWords = » » ex : [« allume », « lampe »,  « salon »]. Dans cette exemple il faut que la note du mail contienne ces trois mots pour activer ce module. Attention aux accents !!! Les retours de note ce fond sans les lettres accentuées donc par exemple pour la commande éteins la lampe du salon il faut mettre : commandWords = [« =c3=89teins », »lampe », »salon »]. Le programme écrit sur la console les retour de note (bonne ou mauvaise) et vous pouvez recopier le retour de la note avec accent.

Et pour finir il faut définir la commande dans la fonction def execute(command): Là tout dépend de vos commandes domotiques, dans mon cas j’envoie une requête sur une adresse IP par exemple : requests.get(« http://xz.xyz.xy.zx:port/?lampe2=ON). Mais vous pouvez par exemple faire répéter la commande reçu a votre Raspberry PI. La valeur est dans la variable command.

Vous pouvez trouver les articles sur la domotique : 

Pour tester vous pouvez simplement dans la fonction mettre un print command ou un print « votre texte ». Et ce texte doit s’afficher sur votre console à la réception de la bonne note.

Une fois votre (vos) module configuré il faut lancer dans la console python siricontrol.py Il va reconnaître vos modules (vérifier s’il n’y a pas d’erreur) et le système attends une nouvelle note.

Le système est plutôt réactif et c’est sympa d’allumer les lumière avec son téléphone !!!

Pour plus de sécurité et éviter d’avoir votre mot de passe en dur dans un fichier il existe une version un peu plus sécurisé : ICI Dans cette version il faut créer un fichier .siricontrolsecret (attention le point devant est important). Dans ce fichier il faut juste écrire son mail et son mot de passe sur deux lignes. A la première lecture le mot de passe sera codé.