Hack ZIGBEE de Philips HUE (partie 1)

Vaste programme ..

J’écrirai dans un autre poste pourquoi je considère la solution Philips HUE efficace : nous partirons donc ici du postulat qu’elle l’est.

Il faut d’abord distinguer deux installations : celles avec pont HUE et celle sans. Et oui ce n’est pas la même chose. Il faut savoir que si vous utilisez le pont pour commander une ampoule alors vous ne pourrez plus utiliser la télécommande comme avant. En effet, quand le pont commande une ampoule celle ci rejoint le réseau du pont. Si vous voulez qu’une télécommande pilote l’ampoule il faut que celle-ci rejoigne le même réseau. La télécommande ne parle alors plus directement à l’ampoule mais au pont HUE, qui parle à l’ampoule. Ca n’a l’air de rien mais il y a un gap d’efficacité : je n’ai jamais rencontré le moindre problème quand il n’y avait pas le pont HUE. A chaque appui sur les télécommandes, l’action était immédiate. Après mise en place du pont, ce n’est plus la même chose. J’ai notamment constaté qu’en cas d’utilisation de la bande passante internet (un téléchargement très long), le pont n’arrive pas à commander les ampoules (ni depuis le téléphone, ni par l’intermédiaire des télécommandes).

Je parlerais ici de l’installation avec pont HUE. En effet, sans lui, vous ne pourrez pas parler aux ampoules/prises depuis votre téléphone ou votre raspberry. Mise à part ce problème qui relève plus de la performance que de la fiabilité (j’entends par la qu’on arrive toujours à allumer ou éteindre, c’est juste le délai qui peut être de plusieurs secondes), je trouve la solution vraiment bonne dans la mesure ou elle est très bien documentée. Il y a toutefois un manque qui est cruel pour moi : on ne peut pas réagir à un événement (ie changement d’état) à la volée (trigger). C’est affreux nan ?

Nan ? Mais si mais si .. rendez-vous compte, pour avoir le statut d’un appareil (lampe ou prise), il faut le demander au pont. AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!! non ? Cela ne vous effraie toujours pas ?! Mais quand même, pour avoir le statut en temps réel (je déteste cette appellation qui a le bon gout d’être toujours fausse) il faut interroger en boucle le pont .. c’est à dire générer du trafic réseau, manger du CPU de raspberry .. nan nan nan cela ne va pas du tout.

C’est la raison pour laquelle j’ai voulu écouter sur le réseau zigbee dans l’espoir d’intercepter à la source le message qui dit “Lampe 1 ON”. Pitié, s’il y avait un autre moyen, ne me le dites pas ! 🙂

Fort de cette volonté j’ai fait quelques recherches et en grand radin que je suis j’ai arrêté mon choix sur un dongle équipé d’une puce texas instrument CC2531 dont voici la datasheet

https://www.ti.com/product/CC2531

On trouve le produit sur amazon à 30€ (https://www.amazon.fr/Zigbee-CC2531-Antenne-Bo%C3%AEtier-Coordinator/dp/B0843SL7WM) environ mais surtout, sur leboncoin à 10€ ..

Coté firmware, vu que je suis passé par leboncoin, je n’ai pas eu le choix > zboss

https://zboss.dsr-wireless.com/projects/zboss/wiki/What_is_ZBOSS

Pour les premiers tests, je suis passé par Windows. En effet, zboss propose un sniffer qui fonctionne sans rien faire dans cet environnement et, cela va nous être utile plus tard, Il faudra juste s’enregistrer. Il vous faudra le célèbre analyseur de paquets Wireshark qui est gratuit (et qui fonctionne sous Windows et raspberry).

Vous voila fin prêts .. mais si vous foncez comme je l’ai fait, vous allez, comme moi perdre du temps pour rien. En effet la première information à récupérer c’est le canal ZIGBEE que votre pont utilise !

Pour cela, il y a plusieurs moyens :

  1. sur l’application philips HUE de votre téléphone en allant dans le menu “Ponts Hue” puis en affichant les informations (petit “i” entouré à droite) puis tout en bas dans “Modification du canal Zigbee” >> sans le modifier bien sur, il est affiché.
  2. via l’utilitaire html qui intérroge l’API REST >> http://IPHUE/debug/clip.html : en mettant l’url /api/votreid/config vous obtiendrez une réponse commencant par : { “name”:”Pont Hue”, “zigbeechannel”:24, …. vous l’avez !
  3. via un curl depuis votre raspberry >> curl -s http://IPHUE/api/votreid/config | jq -r ".zigbeechannel"

Voila, on va pouvoir commencer.. La suite au prochain épisode

Hack SONOFF T4EU1C

Hack de l’interrupteur sans Neutre T4EU1C de SONOFF.

Description de la partie électronique

Le T4EU1C se compose de 2 parties reliées par un connecteur header 2×4 pins. (Récupéré sur le site SuperHouse.tv)

La partie commande avec le touch sensor pad et l’ESP8285 :

La partie 230V avec le relais et l’alimentation 1 fil AC-DC 230VAC/12VDC.

Reprogrammation avec le firmware Tasmota

Il s’agit de remplacer le firmware constructeur par un firmware Tasmota SONOFF basic tasmota.bin à récupérer ici :

https://github.com/arendst/Tasmota/releases/tag/v8.3.1

Utiliser l’outil FlashESP8266 basé sur une version de esptool pour programmer l’ESP8285, que l’on peut récupérer ici dans la release de ESPEASY ici (ou tout autre Flasheur, Tasmotizer …) :

https://github.com/letscontrolit/ESPEasy/releases/tag/mega-20200608

Préparation de la carte de commande :

Préparer la carte de commande avec 2 boutons poussoir qui agiront sur le Reset et GPIO0 (il est important d’utiliser des 2 boutons pour que le touch sensor pad fonctionne correctement au final).

Gratter la piste pour souder GPIO0, Reset sur R3 entre R3 et R4 et GND sur C21 côté plan de masse.

Souder un header 4 pin sur J1 pour le programmateur.

Programmation :

Copier le fichier tasmota.bin dans le répertoire bin du programme FlashESP8266.exe.

Lancer le programme FlashESP8266.exe.

Brancher le programmateur FTDI au PC, choisir tasmota.bin dans la liste à programmer et le port COM adéquat.

Débrancher le programmateur. Côté PC et le connecter côté SonOff.

Maintenir les 2 boutons poussoir.

Brancher le programmateur au PC.

Attendre 2s

Relâcher le Reset

Attendre 2s

Relâcher GPIO0

La programmation est lancée, attendre la fin.

Faire un Reset de la carte ou débrancher/rebrancher le programmateur pour relancer le SONOFF.

Dans la liste des réseaux WIFI, rechercher l’appareil portant un nom de SSID « tasmota_XXXXXX-####».

Connecter ce réseau.

L’interface de configuration de Tasmota est accessible à l’adresse 192.168.4.1

Configuration de Tasmota :

Renseigner ssid et password WIFI  perso.

Sauver et redémarrer le module 

Ouvrir la console Tasmota : 

Saisir une adresse IP fixe : 

Saisir : IPAddress1 192.168.11.xx 

Mise à l’heure : 

Saisir : TimeZone 99 

Sauver et redémarrer le module 

Configuration MQTT : 

Configuration Domoticz : 

Ouvrir Domoticz : 

Créer un nouveau Matériel – Dummy 

Récupérer le numéro Idx dans la liste Dispositifs. 

Configurer le HA bridge pour inclure le switch dans Alexa. 

Configurer Alexa pour insérer le switch dans les appareils Alexa.