2023-02-12
md
Contrôle local de deux interrupteurs Sonoff
<-Contrôle local des Sonoff

Une de mes premières réalisations en domotique a été conçue pour l'utilisation pratique de deux lampes de chevet. L'idée était que l'un ou l'autre des occupants du lit pourrait allumer ou éteindre les deux lampes sans avoir à tendre le bras au-dessus de quelqu'un qui pourrait être endormi ou avoir à sortir du lit et le contourner pour éteindre la lampe la plus éloignée. Ce n'était en aucun cas un nouveau concept; j'ai vu cela dans des chambres d'hôtel fait avec quatre interrupteurs à trois voies. Parce que les lampes de chevet étaient contrôlées par des commutateurs Wi-Fi Sonoff Basic, j'ai mis en œuvre l'idée d'une manière différente. L'image suivante montre comment cela a été accompli en 2017.

schema et photo des contrôles à distance

Le micrologiciel Sonoff-MQTT-OTA-Arduino, maintenant obsolète, permettait de contrôler le relais du Sonoff avec l'entrée-sortie GPIO14 du microcontrôleur ESP8266. J'avais ajouté deux boutons-poussoirs normalement ouverts en parallèle à cette broche. La même chose pourrait être faite avec le micrologiciel de remplacement Sonoff-Tasmota, renommé Tasmota (voir Updating Sonoff Switches with Local Controls d'octobre 2017). Au cours des nombreux mois qui se sont écoulés depuis la mise en service de ce dispositif, quelques observations s'imposent.

De vaines tentatives de résolution du problème avec l'ajout de circuits R-C et la variation des paramètres de synchronisation des boutons ont été remplacées par un nouvel arrangement qui fonctionne sans problème depuis quelques mois.

schema et nouveaux contrôles à distance

Sans le long câble Ethernet de 2,3 mètres entre les deux commutateurs Sonoff, qui était probablement une antenne sensible à toutes sortes d'émissions électromagnétiques parasitiques, il n'y a pas eu de faux basculement de l'une ou l'autre des lampes de chevet.

connexions sur la carte du Sonoff

Les connexions GPIO14 et de masse (GND) sont disponibles sur l'en-tête de programmation de la première révision du Sonoff Basic. La connexion à l'entrée-sortie GPIO0 peut être réalisée en soudant un fil à l'une des broches du bouton-poussoir tactile intégré. J'ai collé un connecteur Dupont femelle sur le dessus de la carte et percé une fente dans la moitié supérieure du boîtier en plastique de l'interrupteur pour permettre le passage d'un connecteur Dupont mâle. Des connecteurs Dupont à quatre broches ont été utilisés pour fournir une clé pour assurer l'appariement correct des connecteurs. Le réceptacle NC est obturé et il n'y a pas de broche correspondante dans le connecteur mâle. Autant que je sache, GPIO14 n'est pas facilement accessible dans les révisions ultérieures du Sonoff Basic, ce qui est regrettable.

Il ne reste qu'à décrire la configuration du micrologiciel du ESP8266. La version 9.1.0 de l'excellent Tasmota de Theo Arend est installée sur l'ESP8266 même si ce n'est pas la version la plus récente. Ce choix correspond à ce qui est déjà en place sur tous les autres appareils similaires de la maison. L'astuce consiste à modifier la configuration Sonoff Basic en ajoutant un deuxième bouton connecté sur GPIO14 et un relais correspondant connecté sur GPIO4. Ce deuxième relais, évidemment inexistant, est nécessaire pour s'assurer que Tasmota fait quelque chose quand le bouton sur GPIO14 est activé.

Tasmota configuration

Voici la commande backlog que j'utilise pour configurer rapidement le Sonoff dans la console Web plutôt qu'avec les deux pages de configuration montrées ci-dessus.

Backlog Devicename lampe-michel; Hostname lampe-michel; Topic lampe-michel; FriendlyName lampe-michel; mqtthost 192.168.1.22; loghost 192.168.1.22; syslog 1; template {"NAME":"Sonoff Mod","GPIO":[32,1,1,1,225,0,0,0,224,320,33,0,0,0],"FLAG":0,"BASE":1}; Module 0; DzIdx1 6; DzIdx2 5;

Utilisez cette commande comme guide, il sera nécessaire d'ajuster les différents noms du dispositif, l'adresse IP des serveurs MQTT et syslog (si l'on veut la journalisation des erreurs à distance) ainsi que les numéros d'index des capteurs virtuels dans Domoticz (DzIdx1 et DzIdx2).

Voici en gros ce qui se passe lorsque le bouton supplémentaire est enfoncé. Tasmota bascule l'état du faux relais et envoie un message MQTT qui sera lu par Domoticz. Ce dernier utilisera ce court message, dont le sujet est domoticz/in pour mettre à jour l'état de la deuxième lampe de chevet virtuelle comme indiqué ci-dessous. Ensuite, Domoticz envoie un message avec domoticz/out comme sujet. Ce message beaucoup plus long est un rapport complet sur l'état de la deuxième lampe de chevet. Il est interprété par Tasmota fonctionnant sur l'interrupteur Sonoff de la deuxième lampe comme une instruction de fermer son relais et ainsi d'allumer la lampe de chevet.

[domoticz/in] - {"idx":5,"nvalue":1,"svalue":"","Battery":100,"RSSI":8} [domoticz/out] - { "Battery" : 100, "LastUpdate" : "2023-02-13 14:39:44", "RSSI" : 8, "description" : "", "dtype" : "Light/Switch", "hwid" : "2", "id" : "00014055", "idx" : 5, "name" : "Lampe Helene", "nvalue" : 1, "stype" : "Switch", "switchType" : "On/Off", "unit" : 1 }

S'il n'y a pas de serveur MQTT sur le réseau local, cela peut être accompli avec des messages HTTP (voir WebQuery et WebSend dans commands sur le site Tasmota) en utilisant une règle (voir Two-way light switches without MQTT interrupteurs d'éclairage bidirectionnels sans MQTT).

<-Contrôle local des Sonoff