HA-Contrôlez votre climatiseur Daikin avec un ESP32-D1-MINI et ESPHome


Intro

Dans cet article, je vous explique comment utiliser un ESP32-D1-MINI pour piloter un climatiseur Daikin via l’interface S21, en intégrant le tout dans Home Assistant avec ESPHome. Ce projet utilise un module MP1584 pour gérer l’alimentation et permet de contrôler la température, surveiller les capteurs, et assurer une communication stable. Suivez ce guide pour reproduire ce projet sur votre système domotique.

Les climatiseurs Daikin équipés d’une interface S21 peuvent être contrôlés via une connexion UART. Avec un ESP32-D1-MINI, un abaisseur de tension MP1584, et ESPHome, vous pouvez transformer votre climatiseur en un appareil connecté, pilotable depuis Home Assistant. Ce projet est économique et parfait pour ajouter des fonctionnalités intelligentes à votre climatisation.


Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Un ESP32-D1-MINI (basé sur un ESP32-WROOM-32).
  • Un climatiseur Daikin avec une interface S21 (connecteur avec VCC, GND, TX, RX).
  • Un module MP1584 (abaisseur de tension) pour alimenter l’ESP32.
  • Résistances : 2 x 1.2kΩ (pour limiter le courant des signaux UART, si nécessaire).
  • Une LED avec une résistance de 2kΩ (connectée aux sorties du MP1584 pour indiquer la tension).
  • Un accès Wi-Fi et une IP statique réservée (ici, 192.168.0.179).
  • ESPHome installé et configuré sur votre serveur.
  • Les identifiants Wi-Fi stockés comme secrets dans ESPHome (wifi et mdpwifi).

Raccordement

Schéma:

Voici le schéma ajusté pour connecter l’ESP32-D1-MINI au climatiseur Daikin :

  • ESP32-D1-MINI :
  • GPIO3 (TX) : Transmission UART vers le climatiseur.
  • GPIO1 (RX) : Réception UART depuis le climatiseur.
  • Climatiseur Daikin (S21) :
  • TX → GPIO1 (RX) de l’ESP32 (via une résistance de 1.2kΩ si nécessaire pour limiter le courant).
  • RX → GPIO3 (TX) de l’ESP32 (via une résistance de 1.2kΩ si nécessaire).
  • GND : Relié au GND de l’ESP32.
  • VCC (5V) : Non connecté directement à l’ESP32 (3.3V), voir alimentation ci-dessous.
  • Module MP1584 (abaisseur de tension) :
  • Entrée : Connectée à une source 5V (par exemple, via le connecteur S21 ou une alimentation externe).
  • Sortie : Réglée à 3.3V pour alimenter l’ESP32-D1-MINI (broche 3V3).
  • LED : Connectée entre la sortie positive (3.3V) et la sortie négative (GND) du MP1584, avec une résistance de 2kΩ, pour indiquer la présence de tension.
  • Alimentation :
  • L’ESP32-D1-MINI est alimenté en 3.3V via la broche 3V3, fournie par le MP1584.
  • Le MP1584 peut être alimenté par une source 5V (par exemple, le VCC du connecteur S21 ou une alimentation externe).

Brochage de l’ESP32-D1-MINI

  • GPIO1 (U0 TX) : Transmission UART.
  • GPIO3 (U0 RX) : Réception UART.
  • 3V3, GND : Alimentation et masse.

Configuration ESPHome

Voici le fichier YAML complet pour configurer l’ESP32-D1-MINI avec ESPHome.

substitutions:
  device_name: "esp179-daikin-clim-salon"
  friendly_name: esp179
  adress_ip: "192.168.0.179"
  time_timezone: "Europe/Paris"

esphome:
  name: ${device_name}

esp32:
  board: esp32dev  # ESP32-D1-MINI (ESP32-WROOM-32)
  framework:
    type: arduino

# Enable Home Assistant API
api:

ota:
  platform: esphome

wifi:
  networks:
    - ssid: !secret wifi
      password: !secret mdpwifi
  reboot_timeout: 5min
  manual_ip:
    static_ip: ${adress_ip}
    gateway: 192.168.0.254
    subnet: 255.255.255.0

captive_portal:

web_server:
  port: 80

logger:
  baud_rate: 0  # Désactive le logger UART pour libérer GPIO1 et GPIO3

external_components:
  - source: github://joshbenner/esphome-daikin-s21@main
    components: [ daikin_s21 ]

uart:
  - id: s21_uart
    tx_pin: GPIO3  # UART0 TX
    rx_pin: GPIO1  # UART0 RX
    baud_rate: 2400
    data_bits: 8
    parity: EVEN
    stop_bits: 2

daikin_s21:
  tx_uart: s21_uart
  rx_uart: s21_uart

climate:
  - name: "${friendly_name} Clim salon"
    platform: daikin_s21
    visual:
      temperature_step: 1.0
    room_temperature_sensor: room_temp

binary_sensor:
  - platform: status
    name: "${friendly_name}_Status"

sensor:
  - platform: daikin_s21
    inside_temperature:
      name: "${friendly_name} Temperature Unite interieure"
    outside_temperature:
      name: "${friendly_name} Temperature Echangeur Exterieure"
    coil_temperature:
      name: "${friendly_name} Temperature Serpentin Unite Int"
    fan_speed:
      name: "${friendly_name} Vitesse Ventilateur"
  - platform: homeassistant
    id: room_temp
    entity_id: sensor.temperature_salon_zb
    unit_of_measurement: °C

switch:
  - platform: restart
    name: "${friendly_name} Restart"

Explication des sections clés

  1. Substitutions : Variables comme device_name et adress_ip pour simplifier la configuration.
  2. Wi-Fi : IP statique (192.168.0.179) pour une connexion stable.
  3. UART et Daikin S21 :
  • Utilise GPIO3 (TX) et GPIO1 (RX) pour communiquer avec le climatiseur via le protocole S21.
  • Paramètres : 2400 bauds, parité paire, 2 bits d’arrêt.

Composant externe: https://github.com/joshbenner/esphome-daikin-s21

  1. Climate : Contrôle du climatiseur dans Home Assistant, avec un capteur de température ambiante externe (sensor.temperature_salon_zb).
  2. Capteurs : Température intérieure, extérieure, serpentin, et vitesse du ventilateur.
  3. OTA et Web Server : Mises à jour à distance et interface web pour la gestion.
  4. Logger : Désactivé (baud_rate: 0) pour libérer GPIO1 et GPIO3.

Installation

  • Configurez le module MP1584 :
    • Ne pas raccorder l’ESP32 sans avoir réglé le MP1584 à 3.3V auparavant
    • Connecter le climatiseur au PCB sans l’ESP32
    • Réglez la sortie du MP1584 à 3.3V (utilisez un multimètre pour ajuster la tension).
    • La LED s’allume pour indiquer la présence de tension.
  • Téléversez le firmware :
    • Copiez le YAML dans ESPHome.
    • Compilez et téléversez sur l’ESP32-D1-MINI via USB ou OTA.
  • Connectez l’ESP32 au climatiseur (si pas déja fait avec un PCB):
    • GPIO3 (TX) → RX du climatiseur (via une résistance de 1.2kΩ si nécessaire pour limiter le courant).
    • GPIO1 (RX) → TX du climatiseur (via une résistance de 1.2kΩ si nécessaire).
    • Reliez le GND de l’ESP32 au GND du climatiseur.

Carte Home Assistant

type: thermostat
entity: climate.esp179_clim_salon
features:
  - type: climate-hvac-modes
    hvac_modes:
      - "off"
      - heat_cool
      - cool
      - heat
      - fan_only
      - dry
type: entities
entities:
  - entity: sensor.esp179_temperature_echangeur_exterieure
  - entity: sensor.esp179_temperature_serpentin_unite_int
  - entity: sensor.esp179_temperature_unite_interieure
  - entity: sensor.esp179_vitesse_ventilateur
  - entity: binary_sensor.esp179_status
title: Esp179-Daikin-Clim-Salon

Résultat attendu

Une fois configuré, votre climatiseur Daikin sera contrôlable depuis Home Assistant :

  • Ajustez la température cible.
  • Surveillez les températures (intérieure, extérieure, serpentin) et la vitesse du ventilateur.
  • Vérifiez l’état de la connexion et redémarrez l’ESP32 si nécessaire.
  • La LED connectée au MP1584 s’allume pour confirmer que l’ESP32 est correctement alimenté en 3.3V.

Conclusion

Ce projet montre comment un ESP32-D1-MINI, alimenté par un module MP1584, peut transformer votre climatiseur Daikin en un appareil connecté, grâce à ESPHome et Home Assistant. Avec une configuration simple et une alimentation stable, vous pouvez désormais contrôler votre climatisation depuis votre système domotique. Essayez ce projet, partagez vos idées et vos retours en commentaire!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *