[Tuto] Piloter sa pompe à chaleur MITSUBISHI en local avec une sonde déportée

Bonjour,

Chose promise, chose due.
Un petit tuto sur le fait de piloter sa pompe à chaleur MITSUBISHI en local avec une sonde déportée.
J’avais essayé avec une carte ESP8266, un clone de la WEMOS MINI D1. La carte que j’ai reçue ne dialogue pas avec l’unité, du coup je me suis rabattu sur ce qui est préconisé dans le git officiel de SwiCago, à savoir une carte ESP-01.
Les clones des cartes WEMOS MINI D1 posent problèmes. Voir ICI, d’où mon choix.

Ma clim est une MSZ-AP50VG(K) et la sonde de température déportée est une Sonoff ZigBee SNZB-02.

I/ Les pré-requis :

II/ Préparer le module ESP-01 pour sa programmation:

D’autres possibilités existent pour programmer le module ESP-01. Je vous en présente deux que j’ai utilisé et qui fonctionnent parfaitement.

  • Adaptateur USB pour ESP8266 ESP-01 :
    Pour programmer l’ESP-01 il faut le passer en mode programmation en reliant les PIN Ground et IO0. Mettre un fil sur l’adaptateur USB comme sur l’image.
    image
    Puis connecter l’ESP-01 sur l’adaptateur USB.
    image

  • FTDI USB/UART 3.3V 5.5V :
    image

III/ Programmer le module ESP-01:

Basé sur le tuto suivant : Installer ESPHome sur Home Assistant et créer votre première configuration

substitutions:
  name: clim-esphome-mitsubishiheatpump
  friendly_name: Ma Clim Mitsubishi Heat Pump


esphome:
  name: ${name}
  platform: ESP8266
  board: esp01_1m
  # Boards tested: ESP-01S (ESP8266), Wemos D1 Mini (ESP8266); ESP32 Wifi-DevKit2

wifi:
  # Éditer le ssid et le password dans la page principale de ESPHome
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: none
  
  # Vous pouvez choisir une IP Fixe. Changer les valeurs static_ip et gateway par l’IP choisie et celle de la box internet
  #manual_ip:
    #static_ip: 192.168.1.100
    #gateway: 192.168.1.254
    #subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${friendly_name} Fallback Hotspot"
    password: "1234"

# Note: if upgrading from 1.x releases of esphome-mitsubishiheatpump, be sure
# to remove any old entries from the `libraries` and `includes` section.
#libraries:
  # Remove reference to SwiCago/HeatPump

#includes:
  # Remove reference to src/esphome-mitsubishiheatpump

captive_portal:

# Enable logging
logger:
  # ESP8266 only - disable serial port logging, as the HeatPump component
  # needs the sole hardware UART on the ESP8266
  baud_rate: 0

# Enable Home Assistant API
api:

ota:
  password: "51ab42c48eeb3b3b54ca934ad0051347"

# Enable Web server.
web_server:
  port: 80

  # Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ${name} ESPHome Version
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: ${name} IP
    ssid:
      name: ${name} SSID
    bssid:
      name: ${name} BSSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: ${name} Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: ${name} WiFi Signal
    update_interval: 60s
    
  # Vous pouvez choisir une sonde extérieure depuis Home Assistant.
  # Remplacer la valeur entity_id par votre sensor de température.
  #- platform: homeassistant
    #name: "Temperature Sensor From Home Assistant"
    #entity_id: sensor.salon_temperature
    #on_value:
      #then:
        #- lambda: 'id(hp).set_remote_temperature(x);'

external_components:
  - source: github://geoffdavis/esphome-mitsubishiheatpump

climate:
  - platform: mitsubishi_heatpump
    name: "${friendly_name}"
    id: hp

    # ESP32 only - change UART0 to UART1 or UART2 and remove the
    # logging:baud_rate above to allow the built-in UART0 to function for
    # logging.
    hardware_uart: UART0

IV/ Connecter le module ESP-01 au Climatiseur Mitsubishi:

Connectez l’ESP-01 à l’unité intérieure sur le connecteur CN105 de couleur rouge, en respectant le schéma suivant :

V/ Le résultat :

A vous de jouer !!! :wink:

2 « J'aime »

Excellent! Merci pour le partage. Ca mériterait même un sujet dédié en tant que tuto ou projet diy!
J’ai exactement la même clim!

2 « J'aime »

C’est un message que je voulais faire à l’article qui parle du smart thermostat: un intégrateur est dangereux lorsque le système à commander est très lent.
En effet, lors d’un changement de consigne, on se retrouve vite en saturation des radiateurs et comme nous ne sommes pas à la consigne, l’intégrateur continue à grimper (ou diminuer)… Il faut donc bloquer les intégrateurs lorsque les radiateurs sont au max ou à zéro, sinon une fois la température atteinte, ils restent saturés et on dépasse largement la consigne.
Je suis en train de réfléchir (lentement) à une autre façon de procéder qui estime les pertes quelque soit la commande du radiateur et qui les compense. Ce genre d’estimateur ferait un très bon complément au thermostat de @Argonaute :

1 « J'aime »

Si un modo veut et peut s’en charger, on pourrait effectivement continuer à échanger spécialement pour les PAC mitsubishi. :blush:

C’est fait :wink:
Bon chauffage

1 « J'aime »

Un grand merci @Pulpy :grin::grin::grin:

1 « J'aime »

Au sujet des intégrateurs du PID, j’ai fais des simulations avec ou sans blocage de l’intégrateur lorsque le radiateur est en limite de fonctionnement (max ou sur off):

Dans le dessin ci dessus, c’est une montée en température de 10° à 20° avec un besoin de 1500W pour compenser la température extérieure. Je compare des régulateurs proportionnel-intégral:

  • PI seul
  • PI+compensation de température externe
  • PI seul + blocage de l’intégrale
  • PI+compensation + blocage de l’intégrale

Le temps est en heures.
L’idéal est de limiter l’intégrateur à ce que les radiateurs savent faire (pas montré ici) et de le bloquer lorsque le radiateur est en limite.