2017-04-26

Occasionnellement il est pratique de contrôler des dispositifs avec un téléphone intelligent ou une tablette, voir un ordinateur de bureau. Mais, très rapidement, on se lasse de devoir utiliser un appareil pour allumer une lampe. Et puis, quoi faire avec les visiteurs : leur donner un cours sur l'utilisation d'un logiciel de domotique ?

Ce billet est consacré au contrôle manuel de deux lampes de chevets, chacune étant reliée à un commutateur sans fil Sonoff de ITEAD. Le principe est d'intérêt général, les détails de fabrication ne seront pas nécessairement utilisables partout.

Table des matières

  1. Contrôle manuel des commutateurs Sonoff
  2. Un Exemple
  3. Détails de fabrication
  4. Modification du micrologiciel des Sonoff
  5. Avertissement
  6. Projet

  1. Contrôle manuel des commutateurs Sonoff
  2. Il y a le bouton-poussoir dont le bout de la tige apparaît sur la face du Sonoff. Il est minuscule, presque invisible, et pas très commode. Sur certains commutateurs, je dois utiliser un ongle pour activer le bouton, car il ne dépasse pas suffisamment. À cet égard, les modules X10 étaient intéressants, car on pouvait toujours allumer ou fermer une lampe avec son interrupteur normal. Mentionnons aussi que le bouton-poussoir du Sonoff sert à d'autres fins dans le logiciel de Theo Arends. Par inadvertance, on peut facilement changer le mode d'opération du commutateur (voir Button usage). Conséquemment, il faut souvent prévoir une autre façon d'allumer un commutateur Sonoff de façon manuelle.

    Heureusement, une broche, GPIO14, du ESP8266 est disponible sur le connecteur qu'on utilise pour le programmer et le logiciel de Theo Arends peut l'exploiter. Il est donc relativement facile d'ajouter un interrupteur pour contrôler manuellement un Sonoff d'une façon plus pratique. Le graphique ci-dessous montre où brancher un interrupteur externe sur le Sonoff:

    TASMOTA prend en charge un bouton-poussoir à contact momentané aussi bien qu'un interrupteur classique.

  3. Un exemple
  4. Pour les lampes de chevet de la chambre à coucher, j'ai disposé deux boîtiers de chaque côté du lit, chacun fixé à l'arrière d'une commode faisant office de table de chevet. Chaque boîtier contient deux boutons-poussoirs qui permettent de contrôler chacune des deux lampes. Cet arrangement simple et efficace a obtenu une meilleure cote WAF qu'avait le dispositif X10 plus ou moins fiable qu'il remplace. La photographie, plus grande que nature, montre que le boîtier est en fait une prise téléphonique avec fixation de surface que j'ai modifié.

    En fait, j'ai utilisé quatre de ces prises, deux pour servir de boîtiers comme illustré ci-dessus et deux autres fixées aux commutateurs Sonoff. Un câble de téléphone standard à quatre fils avec connecteurs RJ11 aux extrémités relie chaque boîtier à une autre prise collée au commutateur Sonoff. Ces deux prises téléphoniques collées sont reliées par un câble CAT-5 d'un peu plus de 2 mètres qui est dissimulé sous le lit et les commodes. J'ai utilisé ce type de câble simplement parce que je n'avais pas de câble téléphonique à quatre conducteurs de longueur convenable.

    B4 et B5 sont les quatrième et cinquième broches du connecteur du Sonoff (voir le graphique précédent). On peut voir que les mises à terre (0V, B4) des Sonoff sont connectées ensemble avec les quatre boutons-poussoirs. Puis chaque B5, relié à la broche IO libre du ESP8266, est connecté en parallèle à l'un des boutons-poussoirs de chacun des deux boîtiers.

  5. Détails de fabrication
  6. Les prises téléphoniques (note), sont de taille inférieure à toute les prises du genre que j'avais vu auparavant. Cette petite taille s'est avéré un atout. La photographie suivante montre les principales pièces utilisées pour fabriquer un boîtier. En plus de la prise téléphonique qu'on apperçoit ouverte, il y a deux boutons-poussoirs de 12×12mm avec capuchons (chercher « tactile push button switch 12mm » dans AliExpress ou EBay).

    Ces articles sont dans le couvercle d'un gros bocal de plastique pour noix mélangées qui est la source des deux pièces de plastique noir qu'on peut voir sur la photographie ci-dessous

    Avec un morceau de plastique noir taillé à la main et arrondi avec du papier sablé, j'ai obturer l'ouverture pour le fils de raccord téléphonique qui n'est pas utilisée. Dans la photographie, ce bouche trou n'a pas encore été taillé à la bonne longueur. Les broches des boutons-poussoirs ont été dépliées pour réduire la hauteur. J'ai même sablé un peu le fond des boutons qui ont été collé sur un morceau de plastique. Voici comment procéder.

    Il reste à faire les connexions électriques.

    Un petit fil électrique (gris foncé ici qui représente le conducteur de mise à terre) est soudé à l'une des broches de chacun des deux boutons-poussoirs puis attaché à un des terminaux du bloc de connexions de la prise. L'autre connexion de chacun des bouton-poussoir est soudé à un fil (bleu et blanc ici) qui est attaché à un autre terminal.

    Il suffit de remettre le couvercle et d'appuyer sur les boutons-pressoirs à quelques reprises pour que le tout se place comme il faut.

    Sur la photo suivant on peut voir la dernière étape. Les bloc de connexions des deux autres prises téléphoniques sont déjà reliée avec un cable qui est fixé avec de la colle chaude. Le connecteur RJ11 a été enlevé de la prise pour plus facilement coller cette dernière sur le côté du boîtier du Sonoff. On note que ce dernier est percé pour laisser passer les deux fils reliés aux broches 4 et 5 du connecteur de programmation.

    Il suffira de relier ces deux fils, le connecteur RJ11 et le câble CAT5 en utilisant le bloc de connexions de la prise téléphonique.

  7. Modification du micrologiciel des Sonoff
  8. Il aurait été préférable d'activer l'utilisation de la broche GPIO gratuite dans le microprogramme Theo Arends dès la première utilisation de ce logiciel. N'ayant pas fait cela, il fallait modifier le micrologiciel des deux commutateur Sonoff de la chambre à coucher.

    Dans la dernière version (3.2.13) du croquis sonoff.ino, il faut supprimer le '//' au début de la ligne 157 de user_config.h pour activer le conditionnel USE_WALL_SWITCH. Bien sûr, cela se fait dans l'EDI Arduino. En même, la valeur de SWITCH_MODE dans la ligne précédente devrait être changé en PUSHBUTTON.

    Puisque je prévoyais faire des changements similaires dans d'autres commutateurs Sonoff, j'ai également modifié l'URL pour la mise à jour sans fil (OTA) à la ligne 42. Je sauvegarderai le fichier d'image binaire de ce micrologiciel modifié sous le nom sonoff.sw.ino.bin dans le répertoire du serveur HTTP.

    À la fin, voici les modifications apportées à user_config.h.

    ... 42| #define OTA_URL "http://192.168.0.22/bin/" PROJECT ".sw.ino.bin" //**MD** [OtaUrl] ... 152| /*-------------------------------------------------------------------------------------------*153| * Wall switch and HC-SR501 154| \*-------------------------------------------------------------------------------------------*/ 155| #define SWITCH_PIN 14 // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV) 156| #define SWITCH_MODE PUSHBUTTON //**MD** [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state) 157| #define USE_WALL_SWITCH //**MD** Enable the use of a standard wall switch to control the relay

    Une fois que le fichier binaire modifié a été enregistré, je pouvais le téléverser sur les deux interrupteurs Sonoff avec un câble USB-TTL. Au lieu de cela, j'ai utilisé la mise à jour sans file comme décrit dans le billet précédent Mise à jour sans fil d'un Sonoff.

  9. Avertissement
  10. Quel déception lors des premiers essais! Alors que cela fonctionnait très bien sur l'établi, les lumières de la chambre s'allumaient ou se fermaient de façon capricieuse. On aurait dit que les inputs des ESP8266 flottaient plutôt qu'être tirée vers Vcc par des résistances internes. J'ai rajouter des résistances de 10k ohms entre la broche Vcc (B1) et la broche du GPIO14 (B5). Malheureusement, il n'y a eu aucune amélioration.

    Après un peu de recul, la solution est devenu évidente. J'avais donné à chaque nouveaux Sonoff le même numéro d'identité qu'avait le module X10 qu'il remplaçait. J'espérait ainsi ne pas avoir à refaire les plannings et quelques scripts dans Domoticz. Trop paresseux, je n'avais pas modifiés les scripts qui permettaient à Mochad/Heyu de contrôler les lampes. Il s'en suivait une interaction entre ces vieux scripts et les interrupteurs manuels qui donnait un résultat final qui me semblait aléatoire.

    La morale est qu'il est bien mieux de créer un nouveau dispositif virtuel dans un logiciel de domotique plutôt qu'essayer de réutiliser l'ancien quand on remplace un dispositif physique avec un autre de nature différente.

  11. Projet
  12. Le prochain billet montrera comment j'utilise un contrôleur sans fil X10, le Palm Pad, pour allumer ou fermer les lampes du salon reliées au système de domotique. C'est une solution temporaire qui remplace un vieux contrôleur programmable plug'n power de Radio Shack (l'ancêtre du MT14A de X10).


    note
    Les prises téléphoniques achetées en avril dans un Great Canadian Dollar Store étaient bon marché à 1,25$ CDN. Dernièrement j'ai voulu m'en procurer d'autres dans deux magasins de cette chaîne qui sont à proximité. Le stock avait été renouvelé, mais il n'y avait plus de prises téléphoniques. C'est malheureux, car je n'en trouve pas de semblable sur eBay ou Aliexpress. Ce qu'on trouve est de taille «normale» et coûte environ 4,00$ US.