Je flashe un ESP Sonoff POW R3 avec ESPHome

Je souhaitais obtenir l’information Énergie (kWh) sur mon Sonoff POW R3, initialement flashé avec ESP Easy. En le reflashant avec ESPHome, j’ai pu simplifier son intégration dans Home Assistant et accéder à toutes les données énergétiques. Voici comment j’ai procédé, étape par étape.

Vérification des connecteurs

Lors d’un précédent retour d’expérience, j’avais détaillé la procédure de flashage de cet équipement avec ESP Easy :

À cette occasion, j’avais remarqué que les concepteurs du Sonoff POW R3 avaient déjà soudé les 4 connecteurs nécessaires (3.3V, Rx, Tx, GND), ce qui facilite grandement le processus de flashage.

Connecteurs du Sonoff POW R3

Ces connecteurs permettent de brancher un adaptateur USB-série pour flasher le firmware.

Connexion du CP2102

Contrairement à ce qui est souvent documenté, j’ai utilisé un CP2102 plutôt qu’un FTDI232. Ce module se branche directement en USB et est très simple à utiliser.

Module CP2102

Voici comment j’ai effectué les branchements :

  • Fil rouge → 3.3V
  • Fil noir → GND
  • Fil blanc → TXD
  • Fil marron → RXD

Remarque : Si la communication ne s’établit pas, il peut être nécessaire d’inverser les fils blanc et marron (Rx et Tx).

Branchement du CP2102

Connexion du Sonoff POW R3

J’ai ensuite connecté les fils du CP2102 aux connecteurs du Sonoff POW R3 :

Branchement du Sonoff POW R3
Détail des connecteurs du Sonoff POW R3
  • Fil rouge → 3.3V
  • Fil noir → GND
  • Fil blanc → ERX
  • Fil marron → ETX

Flashage avec ESPHome Builder

Pour flasher le Sonoff POW R3 avec ESPHome, j’ai suivi ces étapes :

  1. Lancer ESPHome Builder.
  2. Cliquer sur New Device pour ajouter un nouvel équipement.
  3. Renseigner les informations de base (nom, type de carte, etc.).
  4. Brancher le CP2102 en USB tout en maintenant le bouton du Sonoff POW R3 enfoncé (voir image ci-dessous). Les LED doivent s’éteindre, ce qui indique que le mode programmation est activé.
  5. Lancer le flashage via l’interface d’ESPHome.
Bouton pour activer le mode programmation

Configuration des capteurs dans ESPHome

La configuration du Sonoff POW R3 dans ESPHome repose sur un fichier YAML. Attention, il existe plusieurs modèles de Sonoff POW R3 (Elite 16A, Elite 20A, Origin 16A, etc.), et leur configuration peut varier. J’ai utilisé comme base la documentation officielle pour le Sonoff POW R2 et l’ai adaptée.

Voici le code YAML que j’ai utilisé pour mon Sonoff POW R3 :

substitutions:
  update_interval: 10s
  name: "esphome-chauffeau"

esphome:
  name: "${name}"
  friendly_name: ESPHome Chauffeau

esp8266:
  board: esp01_1m

logger:
  baud_rate: 0

api:

ota:
  - platform: esphome
    password: "b91495d666ba78dd3d0120f6a364e8b1"  # Remplacez par votre mot de passe OTA

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Esphome-Chauffeau"
    password: "coucoucou"  # Remplacez par un mot de passe sécurisé

captive_portal:

uart:
  rx_pin: RX
  baud_rate: 4800
  parity: EVEN

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Bouton"
    on_press:
      - switch.toggle: relay_template

sensor:
  - platform: cse7766
    current:
      name: "Courant"
      filters:
        - multiply: 0.98  # Ajuste le courant pour réduire l'écart de 2%
        - sliding_window_moving_average:
            window_size: 80
            send_every: 32
    voltage:
      name: "Tension"
      filters:
        - sliding_window_moving_average:
            window_size: 80
            send_every: 32
    power:
      name: "Puissance"
      filters:
        - sliding_window_moving_average:
            window_size: 80
            send_every: 32
    energy:
      name: "Energy Wh"
      id: energy_wh
      filters:
        - throttle: ${update_interval}

  # Capteur virtuel pour convertir les Wh en kWh
  - platform: template
    name: "Energy kWh"
    unit_of_measurement: "kWh"
    lambda: |-
      return id(energy_wh).state / 1000;
    update_interval: 60s
    accuracy_decimals: 3

switch:
  - platform: template
    name: "Jus"
    optimistic: true
    id: relay_template
    turn_on_action:
      - switch.turn_on: relay
      - light.turn_on: pow_blue_led
    turn_off_action:
      - switch.turn_off: relay
      - light.turn_off: pow_blue_led

  - platform: gpio
    id: relay
    pin: GPIO12
    inverted: true

light:
  - platform: status_led
    name: "LED bleue"
    id: pow_blue_led
    pin:
      number: GPIO13
      inverted: True

Explications du code :

  • substitutions : Définit des variables réutilisables, comme l’intervalle de mise à jour et le nom de l’équipement.
  • esphome : Configure le nom et le nom convivial de l’équipement.
  • esp8266 : Spécifie le type de carte utilisée (ESP01 1M).
  • logger : Désactive les logs série pour éviter les conflits avec la communication UART.
  • wifi : Configure la connexion Wi-Fi et un point d’accès de secours.
  • uart : Définit les paramètres de communication série pour le capteur CSE7766 (mesure de courant, tension, puissance, énergie).
  • binary_sensor : Configure le bouton physique du Sonoff pour basculer l’état du relais.
  • sensor : Définit les capteurs de courant, tension, puissance et énergie. Un capteur virtuel convertit les Wh en kWh.
  • switch : Gère le relais et la LED bleue pour indiquer l’état (allumé/éteint).
  • light : Contrôle la LED bleue du Sonoff.

Remarque : Les mots de passe et identifiants Wi-Fi doivent être remplacés par vos propres valeurs.

Résultat dans Home Assistant

Une fois le flashage terminé et l’équipement redémarré, il apparaît automatiquement dans Home Assistant avec tous les capteurs configurés :

Intégration dans Home Assistant

Vous pouvez maintenant surveiller en temps réel la consommation électrique, la tension, la puissance et l’énergie (en kWh) directement depuis votre tableau de bord Home Assistant.

Pages de références

(attention des bêtises dans certains forums)

 

Laisser un commentaire