Contexte et objectifs
J’avais depuis quelques temps un ZMAi-90, je n’étais jamais arrivé à l’intégrer dans Jeedom. En passant sur Home Assistant, je me demande si ESP Home ne pourrait pas l’accepter. En effet le ZMAi-90 est équipé d’un esp8266.
Je cherche sur le net, pas de tuto, pas de vidéo, rien sur la possibilité d’installer ESP Home sur un ZMAi-90. … Je me lance.
Présentation du ZMAi-90
Cet équipement qui coûte moins de 23€ est équipé d’un relais avec un pouvoir de coupure donné à 60A (le relais est un relais 80A). A ce prix, il permet de mesurer la consommation d’énergie ce qui en fait un équipement particulièrement bon marché.
Les connecteurs sont de qualité et quand je l’ai ouvert, j’ai trouvé un produit bien structuré et bien réalisé.
Flasher le ZMAi-90
Je démonte le boitier
Je commence par démonter la bête, deux vis une au milieu en haut et une au milieu en bas, simple à dévisser, simple à ouvrir.
Le module est construit autour d’une carte haute tension et d’une carte basse tension qu’on va séparer de l’autre.
J’isole la carte électronique de commande.
La qualité du montage entre ces cartes me surprend, tant mieux, c’est très bien pensé, deux fois 4 fiches emboitées et une fixation de deux fiches soudées.
Ces 2×4 fiches ne sont pas soudées :
Sur le côté gauche, ces deux connecteurs sont à dessouder :
Je les dessoude donc pour séparer la carte de commande.
J’observe la carte électronique
La carte est équipé d’un TYWE3S, c’est un module Wi-Fi intégré à faible consommation développé par Tuya. Il se compose d’une puce RF sans fil hautement intégrée (ESP8266), de quelques périphériques, d’une pile de protocoles réseau Wi-Fi intégrée et de fonctions de bibliothèque variées.
Je repère rapidement les pins qui vont m’intéresser :
De l’autre côté
Le V9821 est une puce de mesure d’énergie monophasée fabriquée par Vango. A noter qu’il ne faudra pas que je l’alimente quand je flasherai l’ESP, j’explique cela juste après.
Je soude des connecteurs dupont sur les pins
Pour flasher l’ESP, j’ai besoin d’interagir avec les bornes Gnd/VCC/Rx/TX et pour mettre l’ESP en mode programmation, il faudra que je mette GPIO0 à GND. Je vais donc souder 5 fils sur ces 5 pins :
Pour me repérer, je vais souder 3V3 sur un fil rouge, GND sur un fil marron, Tx sur un fil jaune et Rx sur un fil orange.
Sur l’autre côté, je dois faire un sorte que le microcontrôleur ne démarre pas, pour cela, je mets sa borne RSTn à GND. Je repère la borne que j’ai coloré en jaune, je pointe
J’identifie les pistes qui correspondent à cette broche car je ne suis pas équipé pour souder si petit. Les points jaunes sont reliés à la broche RSTn
Je soude un petit mal dupont dessus et je le relis au GND qui se trouve en haut à droite
Je raccorde les connecteurs dupont soudés au FDTI232
A noter que j’ai dû inverser le Tx et le RX, donc le jaune et le orange. Avec ces deux broches, c’est toujours une chance sur deux.
J’installe l’intégration ESP Home
Ici, je connecte la prise USB du FTDI232, attention il faut bien raccorder GPIO0 à GND pour que l’ESP se mette en programmation au moment de la connexion de l’USB. Pour cela, je fais toucher le fil noir à la borde GND.
Je débranche puis rebranche le connecteur USB.
Si le configuration du Wifi n’est pas proposé, je me reconnecte et je vais sur :
Je ferme web.esphome.io, retour dans Home assistant, onglet ESP Home, le device est arrivé.
J’ajoute le lien entre ESPHome et HA
Le plus simple est de passer par les notifications
Je peux le renommer.
L’appareil et son entité de mise à jour sont installés.
Je désoude et je remonte l’appareil
A ce stade, il n’y aura plus de manipulation, je dessoude tous les dupont et je remonte le boitier.
Je replace les deux vis à l’arrière et je reconnecte l’équipement sur le réseau électrique.
Je configure les capteurs du ZMAi-90 dans ESP Home
Je clique sur Edit.
La configuration du fichier Yaml du ZMAi-90 n’est pas simple mais j’ai trouvé un exemple dont je me suis inspiré.
Après plusieurs essais, voici le code de mon équipement :
substitutions: name: "ZMAi-90" node_name: zmai90 # ZMAi-90 TuyaMCU datapoints dp_switch: "1" dp_total: "17" dp_power: "19" dp_current: "18" dp_voltage: "20" esphome: name: esphome-web-1398e4 friendly_name: ZMAi-90 esp8266: board: esp01_1m # Enable logging logger: baud_rate: 0 # Enable Home Assistant API api: encryption: key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esphome-Web-1398E4" password: "xxxxxxxxxxxxxxx" captive_portal: time: platform: homeassistant id: g_time uart: rx_pin: RX tx_pin: TX baud_rate: 9600 tuya: time_id: g_time switch: - platform: "tuya" id: sw_power name: Jus switch_datapoint: $dp_switch icon: "mdi:power" sensor: # total - platform: "tuya" id: total name: "Energy" sensor_datapoint: $dp_total accuracy_decimals: 3 filters: - multiply: 0.001 unit_of_measurement: "kWh" icon: "mdi:sigma" device_class: "energy" state_class: total_increasing # active power - platform: "tuya" id: power name: "Power" sensor_datapoint: $dp_power accuracy_decimals: 1 filters: - multiply: 0.1 unit_of_measurement: "W" icon: "mdi:flash" device_class: "power" state_class: measurement # current - platform: "tuya" id: current name: "Current" sensor_datapoint: $dp_current accuracy_decimals: 3 filters: - multiply: 0.001 unit_of_measurement: "A" icon: "mdi:current-ac" device_class: "current" state_class: measurement # voltage - platform: "tuya" id: voltage name: "Voltage" sensor_datapoint: $dp_voltage accuracy_decimals: 1 filters: - multiply: 0.1 unit_of_measurement: "V" icon: "mdi:sine-wave" device_class: "voltage" state_class: measurement - platform: uptime name: "Actif depuis" device_class: duration - platform: wifi_signal name: "Signal WiFi"
Et voilà le résultat…