Amazon Dash : Comment contrôler vos ampoules Philips Hue (tuto)

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 !

amazon-dash-philips-hue

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.

screenshot_20161115-190124

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.

screenshot_20161115-190622

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

Sources : Ici et

Fondateur de networkshare.fr, ce site me permet de publier tout ce que j’adore : des tests de produits, des tutoriels et des astuces ! Toujours en rapport avec le vaste monde high-tech… Le tout dans la bonne humeur !