Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierDomotique

Passerelle ZWave – Ethernet (détournement de la ZiGate-Ethernet part 2)

Nous l’avons vu dans l’article précédent, la ZiGate-Ethernet est un « couteau suisse » de la domotique. Initialement destiné à être une passerelle PiZiGate Réseau, il donne la possibilité d’être compatible aussi avec ses concurrents. Par exemple, vous pouvez désormais créer une RaspBee Ethernet si vous le souhaitez.

Toujours en gardant le firmware par défaut, nous allons voir comment créer une passerelle ZWave / Ethernet.

Vote :

 

Utilisation de OpenZWave

Pour résumé, le ZWave est un protocole radio qui utilise la fréquence 868Mhz (en Europe) dédié à la domotique. Il y a quelques temps, il semblait être le principal canal de communication pour la domotique chez les particuliers mais l’évolution du ZigBee a freiné son déploiement.

Pourtant réputé fiable, il n’a pas su prendre le tournant pour s’imposer principalement à cause des tarifs élevés des appareils, son évolution lente et sa licence contraignante. Cependant, il reste encore très répandu et beaucoup de maisons sont encore pilotés avec les dispositifs ZWave.

Côté matériel, il existe des clefs USB mais aussi des modules pour Raspberry Pi. Dans notre cas, nous allons utilisé le module Razberry pour RPI piloté par la librairie OpenZWave.

Razberry_module

J’utilise une vieille version du Razberry mais le principe est le même pour les nouvelles versions.

Pour piloter le module, le principe est toujours le même, le contrôleur ZWave reçoit et envoie les commandes par l’intermédiaire d’un port série (UART TTL).

Cependant, comme il n’existe pas à ma connaissance de passerelle ZWave Ethernet, les outils domotiques n’ont pas été développé pour permette d’attaquer une adresse IP et port TCP.

C’est pour cette raison qu’il est nécessaire de faire des modifications côté box domotique.

Paramétrage

Côté ZiGate-Ethernet

Par défaut, tout est paramétré correctement sur la ZiGate-Ethernet.

Il suffit juste de brancher correctement le module ZWave sur les GPIOs comme suit : (Comme sur un Raspberry Pi)

ZiGate-Ethernet_ZWave

Ensuite, vous pourrez alimenter, brancher sur le réseau et suivre le tutoriel pour le paramétrage du réseau.

Côté Box domotique

C’est dans cette partie que cela se corse. En effet, que ce soit sur Jeedom ou domoticz, il n’y a pas d’options pour utiliser le ZWave au travers d’une adresse IP. Seul le paramétrage d’un port série est possible.

L’objectif va être alors de créer un port série virtuel qui redirigera le trafic vers l’adresse IP et le port de la ZiGate-Ethernet.

Connectez-vous sur votre box domotique (sous linux) en ligne de commande:

Installation de socat

socat est un outil permettant de manipuler des sockets. Dans notre cas, il permet de faire le lien entre des sockets et un port série. Tous les flux (de manière bidirectionnelle) entre le port série virtuel et un port TCP seront alors relayés.

$ sudo apt-get install socat

Une fois installé, il suffit de lancer la commande suivante :

$ (sudo socat pty,link=/dev/ttyUSB2,user=pi,group=dialout,mode=660,ignoreof,waitslave tcp:<IP_de_la_ZiGate-Ethernet>:9999) &

/dev/ttyUSB2 : doit être un port non utilisé
<IP_de_la_ZiGate-Ethernet>correspond à l’adresse IP de la ZiGate-Ethernet

Une fois la commande lancée, il suffit d’aller sur Jeedom ou Domoticz par exemple.

Jeedom

Pour Jeedom, il faut installer le plugin Z-Wave.

zwave

Ensuite, il faut aller dans le panneau : Configuration

Jeedom_configuration

Sélectionner le port Z-Wave (celui que vous aurez créé) puis sauvegarder

razberry_jeedom

Il suffit ensuite de procéder comme pour une clef ou module classique.

Domoticz

Dans le cas de domoticz, il faut aller dans le menu Configuration –> Matériel puis sélectionner le type openZWave USB

domoticz_openzwave

Enfin sélectionner le port série /dev/ttyUSB2 (port virtuel de socat) puis cliquer sur Ajouter

domoticz_razberry

Une fois ajouté, il est possible d’aller dans la configuration et observer que la communication se fait.

Conclusion

Bon bin voilà, après la gestion des modules ZigBee, il est désormais possible de piloter un contrôleur ZWave à travers Ethernet.

L’installation côté ZiGate-Ethernet est assez simple. Seule une petite modification est nécessaire sur les plateformes domotiques. Peut-être que les différents développeurs feront une petite modification pour permettre l’accès au ZWave directement par TCP/IP 😉

La ZiGate-Ethernet n’a pas encore délivrée tous ses secrets. Dans un prochain article, je pense que je ferai un tutoriel pour une intégration ESPHome.

A bientôt !

Détournement ZiGate-Ethernet / part 1 – Coordinateurs ZigBee

On me demande souvent de faire plus d’articles sur les détournements de produits ou hacks  électroniques/domotiques. En effet, c’est toujours sympa de voir qu’un objet peut avoir d’autres fonctions que celle pour laquelle il a été prévu.

Cette fois-ci, c’est encore plus particulier car c’est une série de  « détournements » d’un produit que j’ai moi-même conçu. (Du coup, je ne sais pas si on peut appeler ça un détournement ;))

Vote :

 

Présentation ZiGate-Ethernet

La ZiGate-Ethernet est un produit fraichement sorti qui permet de transformer une PiZiGate en ZiGate sur Ethernet ou WiFi.

Pour résumé, la ZiGate-Ethernet est née d’une forte demande de la communauté de gestion du protocole ZigBee à travers un câble réseau. En effet, la praticité de la ZiGate-WiFi (possibilité de positionner son contrôleur ZigBee stratégiquement) a beaucoup plu.

Cependant, certains utilisateurs cherchaient plus de fiabilité et une réactivité à toute épreuve. En effet, dans certains cas, le WiFi et le ZigBee ne font pas forcément bon ménage. (Pensez à changer de canal WiFi ou ZigBee si vous avez des perturbations).

Du coup, afin de mêler tous les avantages, j’ai décidé de suivre les conseils de la communauté et j’ai développé la ZiGate-Ethernet. ZiGate-ethernet-definition

Description de la ZiGate-Ethernet

Elle est munie d’un ESP32 avec 16 Mo de Flash qui pilote la partie Ethernet avec un LAN8720 (très utilisé sur les anciens modèles de Raspberry Pi).

L’objectif a été d’utiliser le même « form factor » que le Raspberry Pi 4 B afin de permettre d’utiliser les boitiers compatibles.

De plus, je me suis dit qu’utiliser les mêmes fonctions (alimentation, masse et IOs) que le Raspberry Pi serait une bonne idée. Du coup, le GPIO de la ZiGate-Ethernet correspond à celui du RPi. GPIO_zigate_ethernet Cette configuration permet donc d’utiliser/recycler une PiZiGate pour la transformer en ZiGate-Ethernet.

Pour avoir plus d’informations détaillés, vous pouvez aller sur les pages suivantes :

https://zigate.fr/documentation/descriptif-de-la-zigate-ethernet/

Firmware d’origine : https://github.com/fairecasoimeme/ZiGate-Ethernet

Maintenant que vous avez une idée de comment fonctionne une ZiGate-Ethernet voici comment la « détourner ».

Utilisation avec Deconz / Elelabs / TI

Le premier « détournement » est bien entendu de tester les produits concurrents à la ZiGate. Du coup, je me suis procuré 3 produits différents (technologies différentes) pour les tester.

  • le Raspbee I (Deconz)
  • le ELR023 (Elelabs – EZSP)
  • le CC2652P2 (TI – Z-stack3.x)

pizigate_elelabs_deconz_cod.m ZiGate-Ethernet-Raspbee ZiGate-Ethernet-ELR023 ZiGate-Ethernet-CC2652P2 ZiGate-Ethernet-PiZigate

L’objectif est d’utiliser le firmware d’origine de la ZiGate-Ethernet pour voir si cela fonctionne et rendre accessible par Ethernet une RaspBee par exemple. (la RaspBee 2 n’a pas été testée mais il n’y a pas de raison que cela ne fonctionne pas).

Pour effectuer les tests, j’ai utilisé 2 plateformes domotiques : Jeedom et Home-Assistant.

En effet, c’est deux plateformes utilisent la technologie Zigpy permettant de rendre compatible les technologies ZigBee.

Rappel : L’objectif n’est pas de donner un avis sur les plateformes mais juste valider le fonctionnement du détournement.

Avant de passer à l’étape suivante, il faut que vous ayez paramétré votre ZiGate-Ethernet pour qu’elle soit accessible à partir d’une adresse IP. Du coup, suivez le tutoriel prévu.

Paramétrage Jeedom

Pour piloter la ZiGate-Ethernet, il faut installer le plugin ZigBee  plugin_zigbee Une fois installé, il faut utiliser les paramétrages suivant selon votre module zigbee.

NB : sur les captures d’écrans, c’est le « Contrôleur 2 » car sur le « Contrôleur 1 », il y a bien entendu une ZiGate. 😉

NB2 : l’adresse IP : 192.168.0.45 correspond à l’adresse IP de ma ZiGate-Ethernet. Bien entendu, il faut que vous mettiez votre propre adresse IP.

CC2652P2 RPi serial

Jeedom_config_cc2652P2

Deconz RaspBee I ou II

jeedom_raspbee_config

ELR023 elelabs

Jeedom_elr023_config Une fois paramétré, il suffit de relancer le daemon et vous verrez dans les logs le dialogue de Jeedom avec votre coordinateur ZigBee.

Ensuite procédez, comme vous avez l’habitude, pour piloter vos appareils ZigBee.

Paramétrage HomeAssistant

Pour Home-Assistant, il faut installer l’intégration ZHA zha_nouvelle_integration Ensuite, il faut rentrer les paramètres manuels zha_enter_manually Puis sélectionner le type radio (choisir le bon) ZHA_choose_radio_type Selon le type de radio, la configuration diffère mais un seul paramètre est à changer : le périphérique série ZHA_parametrage_port Comme sur la capture d’écran et peu importe le type radio, il faut rentrer dans le chemin du port série : socket://<IP_de_la_ZiGate-EThernet>:9999

Ensuite, il suffit de cliquer sur « soumettre » pour valider l’installation.

Une fois, effectué, vous aurez l’intégration ZHA présente sur votre dashboard et vous n’aurez plus qu’à procéder normalement pour gérer vos appareils ZigBee.

Spécificités selon les modules ZigBee

Pour faire fonctionner les différentes plateformes, il suffit d’utiliser le firmware de la ZiGate-Ethernet.

Ce firmware a été conçu pour fonctionner directement sorti du carton avec une PiZiGate. Cependant, pour certains modules, il est nécessaire de changer un paramètre.

Deconz RaspBee I

Par défaut, la ZiGate-Ethernet est configurée pour dialoguer avec le port série à 115200 bauds.

Cependant, la RaspBee, communique à 38400 bauds.

Il faut donc modifier la vitesse du port série de la ZiGate-Ethernet.

Pour cela, il faut utiliser son navigateur préféré et lancer la page de configuration : http://<IP_de_la_ZiGate_Ethernet

Ensuite il faut aller dans la page de configuration du port série :

Config_serial_zigate_ethernet Puis changer la vitesse par défaut config_serial_zigate-ethernet

ELR023 elelabs

Pour cette carte, qui est très bavarde, ce n’est pas la vitesse du port série qu’il faut changer mais il peut arriver qu’il y ait des coupures de connexions (reset by peer).

Pour corriger le problème, il suffit de couper toutes connexions web vers la ZiGate-Ethernet ou cocher l’option « Disable web server when ZiGate is connected » qui se trouve dans Config –> General

config_general_zigate-ethernet Cette option, coupera l’interface Web lorsque celle-ci sera connecté à votre plateforme domotique.

Conclusion

Nous venons de voir qu’il est possible d’utiliser tous les modules ZigBee compatible Raspberry PI avec la ZiGate-Ethernet et son firmware par défaut. Cependant, il est possible d’aller encore plus loin. Le prochain « détournement » concernera le ZWave.

En effet, à ma connaissance, il existe pas ou peu de passerelle ZWave – Ethernet et pourtant, à l’aide d’un Razberry, nous verrons qu’il est possible de piloter le ZWave (open zwave) par Ethernet à l’aide de la ZiGate-Ethernet.

PS : Pour ceux qui diront que … gnagnagna … utiliser une Raspberry Pi directement est une meilleure solution et moins couteuse, vous oubliez l’instabilité et la lourdeur d’un système d’exploitation, vous avez surement plein d’alimentations 5V- 3A et votre budget en carte SD est surement illimité 😉

PS2 : Je plaisante bien entendu 😉 chacun voit midi à sa porte.

A très bientôt !

Hack -Détournement de la passerelle Lidl silvercrest

Alors au départ, je voulais faire un article de tests sur les nouveaux produits Lidl dans la gamme domotique. Cependant, il en existe tellement et n’ayant pas la réactivité nécessaire, j’ai changé mon fusil d’épaule.

D’autant plus que tous les produits Lidl smart home silvercrest sont compatibles ZiGate ou avec les autres passerelles universelles.

Du coup, je suis plutôt parti sur un détournement de la passerelle.

Transformer la passerelle Lidl en ZiGate Ethernet !

L’objectif est bien entendu de faire POC (Proof Of Concept), de s’amuser mais en même temps de répondre à un besoin personnel.

 

Démontage et analyse

La première chose, quand on veut faire un détournement d’un objet, c’est de faire une analyse (ou reverse engineering) et pour cela, pas le choix, il faut démonter l’appareil pour observer ce qu’il contient.

Donc la première étape c’est de démonter la passerelle.

Le démontage n’est pas aisé, pas de vis mais des clips. Il faut alors « déclipper » le boitier mais très compliqué sans abimer (il y a un peu de colle je pense). Les non soigneux, s’abstenir 😉

Demontage_boitier_lidl

Une fois le capot enlevé, on va pouvoir analyser rapidement ce qu’il y a.

Demontage_lidl__zigbee_face

Commençons par la partie face :

En bleu : C’est le module Zigbee de chez tuya. le TYZS4 à base de Cortex-M4 EFR32MG1B232. Il permet de communiquer avec les objets en Zigbee.

En rouge : C’est le cerveau de la passerelle. Le Realtek RTL8196E. C’est lui qui va piloter le module Zigbee (par des commandes sur l’UART) et permettre la gestion complète de la passerelle.

En rose : C’est la mémoire RAM utilisée par le CPU. 32Mo de SDRAM. EM6AA160

En orange : C’est la mémoire flash utilisé par le CPU. 16Mo. GD25Q127

En bleu clair : C’est l’interface permettant de gérer l’Ethernet. H16107DF

En vert : C’est le connecteur permettant d’accéder à la console de la passerelle et de mettre à jour le module ZigBee.

Pour l’autre côté de la carte, c’est beaucoup moins intéressant… quoi que les inscriptions sont d’une aide précieuse :

demontage_pile_zigbee_lidl

En rouge : Ce sont les LEDs permettant d’avoir le statut de l’Ethernet et du ZigBee. A gauche le statut de l’Ethernet et à droite le statut du Zigbee.

On peut aussi observer sur cette partie, qu’il existe des inscriptions et on pourra remarquer les RX TX 3V3 et GND qui sont les points importants pour débuter le détournement.

Bon, du coup, en observant ce qui compose cette passerelle, on peut rapidement comprendre que nous avons à faire à un système embarqué probablement sous linux qui pilote un « modem » ZigBee.

Afin de prendre la main sur cette passerelle, il convient donc de trouver une porte d’entrée. Bien entendu, vous l’aurez compris, la console caractérisée par le RX/TX sera ce point d’entrée.

Avant de sortir l’artillerie lourde, il faut avoir le reflexe de chercher s’il n’existe pas déjà quelqu’un qui a fait le travail. Du coup, je me suis mis à chercher les travaux déjà existant sur la passerelle et je suis tombé sur l’article permettant de prendre la main sur cette passerelle.

Root de la passerelle

Un gros merci pour « PaulBanks » qui m’a fait économiser énormément de temps. En suivant scrupuleusement ces travaux, il a été très facile de prendre le contrôle de ma passerelle Lidl.

Du coup, je vous laisse aller lire l’ensemble de son œuvre et je vais résumer ce que j’ai fait afin de me permettre de casser le mot de passe root.

Tout d’abord, il faut s’occuper du connecteur pour aller chercher la console avec un convertisseur USB-TTL.

Console_lidl_gateway_zigbee

Orange = RX
Rouge = TX
Marron = GND

De l’autre côté un convertisseur USB-TTL. (n’oubliez pas de croiser RX / TX)

Lidl_Convertisseur_USB-ttl

Ensuite, une fois connecté, il suffit d’ouvrir un hyperterminal (dans mon cas putty) sur le bon port (38400baud 8N1) et de démarrer la carte.

Console_demarrage_lidl

Pour pouvoir « rooter », il faut rentrer sur la busy-box (le bootloader) et pour cela il faut rapidement appuyer sur la touche « echap ». Donc on met hors tension puis sous tension et « echap ».

lidl_busy_box

La prochaine étape consiste à lire des emplacements mémoires pour récupérer le mot de passe et la clef de chiffrement correspondante.

Vous aurez plus d’informations en suivant ce tutoriel.

Voici les premières commandes

FLR 80000000 401802 16
DW 80000000 4

Vous devriez récupérer les informations suivantes :

Clé de chiffrement (bien entendu avec des blocs différents):

80000000: XXXXXXXX YYYYYYYY ZZZZZZZZ AAAAAAAA

Puis :

 FLR 80000000 402002 32
 DW 80000000 8

Le mot de passe (sur 2 lignes)

80000000: BBBBBBBB CCCCCCCC DDDDDDDD EEEEEEEE
80000010: FFFFFFFF GGGGGGGG HHHHHHHH LLLLLLLL

Sauvegardez les 3 lignes puis récupérer le script python et suivez les instructions.

Vous devriez récupérer le mot de passe root en clair : Root password: b’XXXXXXXX

Une fois le mot de passe root décoder, vous avez accès à l’ensemble de la passerelle sur laquelle vous pourrez faire à peu près tout ce que vous voulez.

Une ZiGate Lidl ?

Bon, c’est une bonne chose de faite, nous pouvons désormais utiliser la passerelle Lidl.

La prochaine étape consiste à analyser et repérer comment fonctionne le module Tuya ZigBee pour le remplacer par une ZiGate

Analyse du module Tuya TYZS4

L’objectif ici est de repérer à quoi correspondent les différents PINs mais surtout l’interface UART. (En effet, pour piloter une ZiGate, on utilise une interface UART)

Pour cela, je suis allé sur le site Tuya pour récupérer la datasheet du module.

tuya_TYZS4

Une fois repéré, il faut maintenant dessouder le module.

2 solutions s’offrent à nous. En effet, ce module à deux lignes de PINs de part et d’autres donc c’est assez simple :

  • soit on utilise un pistolet à air chaud.
  • soit on charge en étain une ligne en faisant légèrement levier et ensuite on charge la 2ème ligne et le module se décolle.

Personnellement, j’ai pris la deuxième méthode mais elle est plus risquée pour les non avertis.

Ensuite on nettoie tout avec une tresse et un peu de flux et on obtient cela :

lidl_passerelle_demontage_tuya

Premiers tests avec un module ZiGate

Une fois l’analyse faite, il suffit de brancher une ZiGate sur les bons PINs et de procéder à quelques tests pour s’assurer que tout fonctionne comme il le faut.

Avant de faire l’installation finale, il convient de souder quelques straps :

lidl_zigate_strap_tests

Ensuite on se connecte sur 2 consoles de la passerelle (à l’aide de SSH).

Sur l’une on tape les commandes suivantes (réception de port série) :

$stty -F /dev/ttyS1 speed 115200 cs8
$ cat /dev/ttyS1

Sur l’autre console :

$ echo -ne '\x01\x02\x10\x10\x02\x10\x02\x10\x10\x03' > /dev/ttyS1

Une fois la commande lancée, vous devriez avoir sur la première console une réponse. Alors malheureusement, vous verrez des caractères spéciaux car c’est de l’hexadécimal et qu’il n’y a pas d’outil du type hexdump sur la passerelle.

Mais ça suffit pour valider que cela communique bien.

La passerelle Ethernet / Série

Pour que la passerelle Lidl se transforme en passerelle ZiGate, il faut procéder de la même façon que la ZiGate-WiFi. En effet, il faut que les requêtes TCP/IP soit transmises au port série et inversément. Pour cela, il faut utiliser les outils Ser2Net ou Socat mais dans notre cas, il faut développer soi-même le programme.

En soi, ce n’est pas très complexe et en plus, ça a déjà été développé.

Grâce a paulbanks et Ordspilleren, tout a déjà été fait, il n’y a plus qu’à suivre le tutoriel suivant et télécharger les sources.

Contrairement au tutoriel, j’ai utilisé la fonction tftp pour transférer le fichier serialgateway.

lidl_hack_tftpserver

On choisit, le répertoire où se trouve le fichier à transférer puis on sélectionne la bonne interface réseau.

Enfin sur la console de la passerelle on tape la commande suivante :

$ cd /tuya
$ tftp -gr serialgateway <ip de votre machine>
$ chmod +x serialgateway

Ensuite, il suffit de reprendre le tutoriel pour changer les scripts de démarrage pour l’adapter à la nouvelle passerelle. Attention, dans notre cas et pour coller à la ZiGate-WiFi, il faut changer le port par défaut : 9999

if [ ! -f /tuya/tuya_start.original.sh ]; then cp /tuya/tuya_start.sh /tuya/tuya_start.original.sh; fi

cat >/tuya/tuya_start.sh <<EOF
#!/bin/sh
/tuya/serialgateway -d/dev/ttyS1 -p9999 -f &
echo 1 > /proc/led1
EOF
chmod 755 /tuya/serialgateway
if [ ! -f /tuya/ssh_monitor.original.sh ]; then cp /tuya/ssh_monitor.sh /tuya/ssh_monitor.original.sh; fi
echo "#!/bin/sh" >/tuya/ssh_monitor.sh

Une fois effectué, vous pouvez redémarrer la passerelle et faire le même test que le tutoriel pour la ZiGate-WiFi …sauf qu’il faudra mettre la bonne adresse IP (celle de la passerelle Lidl)

Modification hardware

Pour que le hack soit complet, j’avais dans l’idée de rajouter une antenne externe pour augmenter les performances et de brancher la LED de statut ZigBee à la ZiGate.

Concernant l’antenne externe, pas de problème, il suffit de prendre une module ZiGate avec connecteur uFL.

Pour la LED de statut, j’ai un peu triché, j’ai dessoudé la résistance de pull-up de la LED de statut et j’ai connecté le GPIO17 de la ZiGate sur cette dernière. J’ai du rajouter dans le script de démarrage la ligne :

echo 1 > /proc/led1

Lidl_led_status

Repérage des LEDs statut Zigbee

lidl_zigate_gateway

Montage de la ZiGate sur la passerelle Lidl

Lidl_zigate_ethernet

Ajout de l’antenne externe et fermeture du boitier

Lidl_zigate_ethernet_on

Mise sous tension et réseau de la nouvelle ZiGate Ethernet

Une fois démarré, il suffit de paramétrer votre box domotique compatible comme une ZiGate-WiFi. il faut rentrer l’adresse IP et le port 9999.

Vous avez désormais une ZiGate Ethernet compatible Jeedom / Domoticz ou Home-assistant.

\o/

Conclusion

La catégorie détournement et hack font partis de mes articles préférés et je prend beaucoup de plaisir à vous partager mes découvertes.

Cependant, ce détournement me permet aussi d’utiliser une ZiGate sur Ethernet. (utile pour mes plateformes de tests)

Alors, je vous avez déjà proposé un tutoriel pour construire la même chose avec un RaspberryPi, mais dans ce cas précis, on a une passerelle plus aboutie et qui ne risque pas de planter à cause d’une carte SD. C’est du solide !

Enfin l’objectif de cet article n’est pas de reproduire en série mais bien de s’amuser « utile » et d’apprendre comment fonctionne ce genre de matériel.

J’espère que ces travaux vous auront plu et que vous avez avez pu apprendre 2-3 trucs.

A bientôt !

Hack Ikea Frekvens panel – ESP8266

Ikea est une super enseigne, on y trouve de tout (bon ok, surtout en meuble) mais ils se diversifient de plus en plus. Notamment, vous avez pu voir qu’ils s’étaient lancés dans la domotique avec le gamme Tradfri. Dans l’ensemble, les produits qu’ils proposent sont d’un très bon rapport qualité/prix … c’est d’ailleurs leur plus gros atout… Il me semble.

Dans cet article, une fois n’est pas coutume, on va détourner l’un de leur produit pour l’adapter à nos besoins.

Comme d’habitude, le nom du produit est imprononçable et je m’y reprend à 3 fois pour bien l’écrire mais ça vaut quand même le coup de vous en parler.

Nous allons donc détourner le Frekvens panel d’Ikea afin de le piloter à travers un ESP8266.

PS : avant d’aller plus loin, je dois vous dire que ce détournement n’est pas de moi et je vous conseille d’aller visiter le github de son initiateur. D’ailleurs, je ferai référence à son travail dans la suite parce que rien ne vaut la source. 🙂

 

Achat

Pour se procurer ce magnifique objet, il suffit de se rendre sur le site marchand Ikea

ikea_frekvens_panel

Lien : https://www.ikea.com/fr/fr/p/frekvens-eclairage-a-led-multifonction-noir-30420354/
Prix : ~= 40€ (Peut être en solde parfois à (29€) )

Pour le NodeMCU, vous pouvez vous le procurer en mode pressé ici :

Prix : ~= 8€ en prime

Bon alors cet appareil est un afficheur LEDs (monochrome) qui permet « d’ambiancer » vos soirées. Il réagit selon la musique (ou le bruit) et fait clignoter ses LEDs selon le programme que vous aurez sélectionné.

Il est muni de 2 boutons. Un pour ON/OFF et l’autre pour choisir le programme lumineux.

Conceptuellement, il est très abouti et qualitatif. Même si pour nous, cela n’aura pas grand intérêt, il est prévu pour s’imbriquer avec les autres produits de la gamme. Comme avec des LEGO, vous pourrez monter votre propre architecture sonore et créer votre propre configuration pour animer vos soirées.

Démontage du Frekvens panel

Voici la partie la plus complexe. Démonter cet appareil s’est révélé être très complexe. En effet, hormis les quelques vis à enlever, il a fallu comprendre comment accéder à la carte électronique pour l’enlever. J’ai énormément galéré et j’ai finalement réussi … mais je vous renvoie vers cette vidéo Youtube qui m’aurait bien été utile …

Avec cette vidéo, vous comprendrez mieux comment il faut faire pour tout démonter.

Je n’ai donc pas grand chose à rajouter dans cette section… Ah si … bonne chance !!! 😉

Détournement matériel avec l’ESP8266

Préparation du panel

Une fois la carte électronique sortie de son boitier, voici ce que l’on a :

Board_frekvens_ikea

Alors, dans cette image, c’est l’arrière du panel (de l’autre côté, il y a les LEDs 16×16). Le PCB blanc est composé des 16 contrôleurs LEDs et le PCB vert, c’est le « cerveau ». Il comprend le microcontrôleur et la gestion des boutons et du microphone avec un ampli op très connu (LM358).

Notre objectif est donc de se substituer au PCB vert pour le remplacer par un ESP8266. Il faut donc dessouder.

La meilleure méthode (comme souvent) pour dessouder est d’utiliser un pistolet à air chaud.

Une fois effectué, vous devait obtenir ceci :

ikea_frekvens_nude

 

Adaptation matérielle avec un ESP8266

Une fois effectué, il nous reste à câbler le panel vers un ESP8266. Pour des raisons de commodité et rapidité, j’ai donc utilisé un NodeMCU.

Voici le schéma de câblage proposé par « @frumpurino » :

cablage_frekvens

L’autre avantage du NodeMCU, c’est qu’il est muni d’un régulateur de tension qui permettra de transformer le 3.9VDC (tension peu commune 😉 ) en 3.3VDC et du coup alimenté le micro et les LEDs.

cablage_frekvens_ikea

Pour récupérer les boutons, il faut récupérer les fils rouge / noir / blanc qui étaient soudés sur le PCB vert.

PCB_vert

Pour cet article, on oubliera la gestion du micro pour 2 raisons :

  • Je n’en ai pas besoin personnellement
  • Il faudrait utiliser un ampli op que le NodeMCU n’a pas.

Cependant, ce microphone pourrait être utile pour de la détection de présence ou encore déterminer un niveau de bruit. Ce genre de besoin est demandé parfois pour les résidences secondaires.

Schéma du nodeMCU

Voyons comment on peut tout relier.

NodeMCU_schema

 

Voilà ce que ça donne au final :

nodemcu_frekvens_ikea

Maintenant que tout est câblé, il ne reste plus qu’à coder.

Bon comme d’habitude, pour des raisons de rapidité et simplicité, utilisons l’IDE Arduino.

Un firmware qui va bien

En plus d’avoir trouvé un super détournement, l’auteur de ce hack a aussi développé une librairie Arduino. Basée sur la librairie GFX adafruit, cela va largement faciliter le développement d’un firmware pour contrôler le panel 16×16.

Les fonctionnalités actuelles

  • Paramétrage WiFi en mode STA ou AP
  • Mise à jour OTA
  • Afficher du texte défilant
  • Afficher un caractère fixe
  • Accès à une API WEB

Toutes ces fonctions ne seront peut-être pas disponibles (ou buggées) à la sortie de l’article, mais je mets tout le projet sur mon github afin que vous puissiez suivre l’évolution ou que vous puissiez contribuer.

Voici à quoi l’interface WEB ressemble (Jquery + Bootstrap stockés dans la flash)

config_wifi_frekvensConfig_apiweb

Il est aussi possible de changer la configuration du panel via une API :

http://<IP>/api?text=bonjour&size=&scroll=&light=&x=&y=

La page renverra OK en retour.

Vous pourrez alors l’intégrer facilement dans votre box domotique avec un plugin HTTP REST.

Et Voilà le résultat :

frekvens_ikea_hack

Conclusion

Alors ce hack n’est pas très évident pour tout le monde car il nécessite des compétences en soudure et démontage mais, je trouve qu’il en vaut vraiment la peine car l’objet en lui même est très beau et que les fonctionnalités rajoutées (mise en mode connecté) sont un vrai plus. Bref un bon DIY WAF …

Si ce hack intéresse énormément de personnes, je peux créer un PCB qui viendrait en lieu et place du PCB vert et qui permettrait (en plus d’être plus propre) d’ajouter un ampli op pour gérer le microphone et rajouter par exemple une photorésistance afin de gérer la luminosité automatiquement.

Bref, dites moi en commentaire s’il y a des intéressés et n’hésitez pas à contribuer !

A bientôt !

Capteur température Zigbee pour piscine – Détournement Konke

Bon, cet article n’est pas en soi une nouveauté, mais il est plutôt un complément de l’article précédent. Donc, si vous ne comprenez pas tout ou qu’il manque des choses, faites un saut sur le lien.

D’ailleurs, vous avez pu voir que le détournement en question avait un défaut. Il n’était pas vraiment adapté à la piscine mais plutôt au domaine de l’agriculture… Du coup, j’ai reacheté (grâce à vos liens … merci ) le bon capteur étanche pour le Xiaomi Aqara.

Capteur_exterieur_sht31Capteur à choisir : SHT20
URL : https://fr.aliexpress.com/item/32905069890.html
Prix : ~= 13€

En suivant, le même principe décrit dans l’article du détournement, le capteur fonctionne très bien dans l’eau.

 

Konke, un capteur plus adapté

Comme vous le lisez souvent dans mes articles, Xiaomi est pour moi une super marque que j’adore détourner. Cependant, elle a pour mon cas personnel un gros problème de stabilité de connexion. Il faut que le maillage zigbee et la distanciation soit maîtrisée. Du coup, pour mon cas personnel, par rapport à la piscine, ça ne va pas et les déconnexions sont trop nombreuses car la piscine est trop éloignée de ma ZiGate.

Pour résoudre mon problème, j’ai testé quelques autres capteurs et le capteur Konke semble mieux fonctionner (il faut juste penser à paramétrer son canal zigbee sur 15, 20 ou 25)

konke_temperature_humidite

J’ai donc suivi le même mécanisme de détournement et voici le résultat:

capteur_konke_demonte

Voici le capteur démonté, on repère en haut à droite le capteur de température / humidité SHT20. La seule « difficulté » est de dessouder ce capteur. Personnellement, je le fait avec un pistolet à air chaud.

capteur_sht20

capteur_sht20_dessoude

Une fois dessoudé, il faut repérer les pattes SDA et SCL. (en suivant la datasheet) Pour cette fois, il est possible de souder les straps (petits fils) directement sur l’emplacement du capteur.

straps_sht20

(SCL à gauche et SDA à droite)

Voilà le plus dur est fait !

Il ne reste plus qu’à souder le capteur étanche SHT20 ( vous pouvez l’acheter sur le même lien qu’en haut en sélectionnant SHT20)

Pour l’alimentation du capteur, j’utilise exactement le même principe que dans l’article précédent.

alimentation_capteur_konke alimentation_capteur_konke_pilecapteur_konke_sht20

(l’étiquette sur le capteur donne la correspondance couleur / fonction)

A partir de cette étape, il faut tester que tout fonctionne avant de figer mécaniquement l’ensemble (Appairage et remonter de température + humidité)

Si tout est OK, on bloque avec de la colle chaude.

blocage_colle_chaude_sht20

blocage_colle_chaude_alimentation

Enfin, on appaire le capteur à la ZiGate et on remet tout dans son boitier étanche.

boitier_etanche_konke

Pensez à disposer l’antenne vers le haut, c’est toujours mieux.

boitier_etanche_konke_fini

On revisse enfin l’ensemble et c’est fait ! plouf dans la piscine

piscine_capteur_sht20_konke

Conclusion

Bon finalement, cela ne s’est pas fait du premier coup. Il a fallu quelques échecs pour arriver à ses fins. Cependant, il reste encore une étape pour atteindre la « perfection », c’est rajouter un bouton étanche au boitier, pour piloter le bouton d’appairage.

Avec ce capteur Konke, je n’ai plus eu de problèmes et cela fait 2 semaines qu’il est en test sans déconnexion. (Du coup, le bouton n’est plus indispensable)

Normalement, la pile CR123A devrait tenir dans les 3 ans … je vous tiendrai au courant … si je fais encore des articles 😉

La précision du capteur est toujours bonne. Les capteurs Sensirion ont, en général, une bonne précision et j’ai pu remarqué un décalage de 0.15 °C par rapport au DS18B20 que j’utilise en parallèle.

Capture_jeedom_temperature

Bref, ce hack a souvent été demandé et c’est chose faite… A vous de jouer maintenant !

A bientôt !

❌
❌