Je vous en ai parlé dans mon précédent article sur la liste de hacks à faire avec le bouton Amazon Dash. Voici un donc aujourd’hui un tuto pour vous montrer comment contrôler ses ampoules Philips Hue avec un Amazon Dash. Vous verrez, c’est assez simple à mettre en place !
Si vous souhaitez transformer votre bouton Amazon Dash en interrupteur sans-fil pour vos Philips Hue, vous êtes au bon endroit ! Ces boutons se connectent sur votre réseau WiFi et grâce à quelques manipulations, vous pourrez ainsi prendre le contrôle de vos ampoules connectées.
Pré-requis
- Un ordinateur (Linux ou Mac)
- Un bouton Amazon Dash
- Des ampoules Philips Hue connectées à votre réseau
- 10 minutes de votre temps
Préparation avec les Philips Hue
Dans un premier temps il est nécessaire d’identifier l’adresse IP de la passerelle de vos Philips Hue. Pour cela, à vous d’utiliser la méthode que vous voulez (une application telle que Fing par exemple) ou bien en passant par l’interface de votre box (http://192.168.1.1 généralement).
Une fois que l’on a l’adresse IP de la passerelle, il est nécessaire de créer un utilisateur. Pour cela :
- Appuyez sur le bouton de la passerelle pendant quelques secondes
- Tapez la commande suivante dans un terminal (en remplacant l’adresse IP avec la votre)
curl http://192.168.1.1/api -X POST -d'{"devicetype":"my_dash_button_user"}'
La commande devrait normalement vous retourner un résultat avec un nom d’utilisateur entre « ». Copiez cet identifiant et gardez le de côté pour plus tard.
Identifier les lampes
Nous avons besoin d’identifier les lampes afin de savoir quel ID sera utilisé dans notre script pour contrôler la lampe en question. Pour cela, créez un nouveau fichier python (nomDeVotreFichier.py) et collez le code suivant :
N’oubliez pas de remplacer l’adresse IP et l’utilisateur avec les informations récupérées précédemment.
#!/usr/bin/env python import requests,json bridgeIP = "192.168.1.10" #Adresse IP de la passerelle user = "votre_username" #Utilisateur généré r = requests.get("http://"+bridgeIP+"/api/"+user+"/lights/") data = json.loads(r.text) for i in data: print '"'+data[i]["name"]+'" Is light ID: ',i
Il ne vous reste plus qu’à exécuter le script dans un terminal :
python nomDeVotreFichier.py
Configurer le bouton Amazon Dash
Il est nécessaire de configurer votre Amazon Dash, mais attention : Vous ne devez pas finaliser l’étape de configuration (c’est important, sinon cela ne fonctionnera pas).
Ouvrez l’application Amazon et rendez-vous dans le menu. Descendez en bas et appuyez sur Configurer un appareil.
Suivez les étapes indiquées à l’écran (activer le Bluetooth, se connecter au réseau WiFi…).
Lorsque vous arrivez à l’étape permettant de choisir le produit qui sera automatiquement commandé lors d’un appuie sur le bouton, appuyez sur la croix afin de quitter la configuration.
Identifier l’adresse Mac du bouton Amazon Dash
La seconde étape consiste à identifier l’adresse MAC du bouton Amazon Dash. Pour cela, nous allons utiliser un petit outil développé par un sympathique utilisateur : node-dash-button.
Dans un terminal, saisissez les commandes suivantes (à adapter selon votre système) :
sudo apt-get install libpcap-dev sudo npm install node-dash-button
Lorsque l’utilitaire est installé, allez dans le dossier du module et exécutez le script findbutton :
cd node_modules/node-dash-button
sudo node bin/findbutton
Le script va alors scanner votre réseau local à la recherche d’un signal de votre bouton. Pour l’aider un peu, appuyez 2 secondes sur votre bouton Amazon Dash et patientez. Un voyant rouge devrait clignoter. Votre terminal devrait vous afficher l’adresse MAC de votre bouton. Copiez l’adresse MAC et mettez là de côté.
Script python pour les Philips Hue
On termine avec le script python qui permet « d’écouter » sur votre réseau et de déclencher une action sur vos lampes si l’adresse MAC de votre Amazon Dash est détectée.
Le script utilise un outil nommé Scapy. N’oubliez pas de l’installer sur votre machine si ce n’est pas déjà fait, sinon le script ne pourra pas fonctionner.
Voici le code (à mettre dans un fichier votrefichier.py) :
########################################################################### import time from scapy.all import * # Variables for each Dash button MAC address bedroom_dash = 'ADRESSE_MAC_AMAZON_DASH' ########################################################################### from qhue import Bridge # Connect to Hue bridge b = Bridge("ADRESSE_IP_PASSERELLE_PHILIPS_HUE", "VOTRE_NOM_D_UTILISATEUR") # Used to only trigger Dash button once execute = True # Variables for Hue lights bedroomLight = b.lights[NUMERO_LAMPE] # Get current state of each light def updateStates(): global bedroomLight_state, livingroomLight_state bedroomLight_state= bedroomLight().get(u'state').get(u'on') updateStates() ########################################################################### def arp_display(pkt): global execute, bedroomLight_state if pkt[ARP].op == 1: #who-has (request) if pkt[ARP].hwsrc == bedroom_dash: if execute: updateStates() # Flip the light state bedroomLight_state = not bedroomLight_state # Send the new light state bedroomLight.state(on=bedroomLight_state) execute = not execute print sniff(prn=arp_display, filter="arp", store=0, count=0) ###########################################################################
Dans ce script vous devez remplacer quelques variables avec les vôtres :
- ADRESSE_MAC_AMAZON_DASH
- ADRESSE_IP_PASSERELLE_PHILIPS_HUE
- VOTRE_NOM_D_UTILISATEUR
- NUMERO_LAMPE
Lorsque c’est fait, lancez le script avec la commande suivante :
python votrefichier.py
Si tout a été fait correctement, il vous suffit d’appuyer une fois sur le bouton Amazon Dash pour Allumer (ou éteindre) votre lampe !
Démonstration
AmazonDash + Philips Hue : ❤️ pic.twitter.com/unY2UOyK5l
— Adrien (@black_pearl01) 15 novembre 2016
Pour trouver l’IP du pont -> https://www.meethue.com/api/nupnp
Effectivement ! Il faut que le pont soit relié à notre compte Hue par contre !
salut comment on trouver le numero de lampe.?