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

Salut à tous!

Tout d’abord un grand merci à tous les contributeurs de ce topic!
Je viens d’installer des clims chez moi et le fait de voir qu’il était possible de domotiser Mitsubishi via ESPHOME ça m’a aidé dans mon choix :wink:.

Je voulais faire un petit rex sur mon install car tout ne s’est pas déroulé comme prévu… si ça peut aider!

Tout d’abord :

suite aux derniers commentaires, j’ai opté pour la solution d’Eric Chavet, un grand merci à lui et aux prédecesseurs de cette solution !

Maintenant les « soucis » rencontrées :

  • problème de compilation, suite à des conflits de Bluetooth j’étais réticent à mettre à jour mon ESPHOME, et du coup j’avais des erreurs lors de la compilation du script, une fois la toute dernière MAJ faite, aucun soucis

  • Problème de communication, bien copier/coller la clé api donnée par esphome lors de l’intégration d’un nouveau module

  • dans ESPHOME, la première install du FW s’est bien déroulée, mais dès que j’ai voulu flasher le FW pour la clim il m’était impossible d’écrire sur la carte. A savoir : un simple débranchement de la carte puis rebranchement m’a résolu le soucis lors de la compilation/flash.

  • ensuite le problème le plus vicieux… sur mon modèle le RX et TX est inversée comparé au branchement évoqué dans ce tuto… ESPHOME m’indiquait que la carte n’était pas connecté

[E][CN105:032]: → Heatpump did not reply: NOT CONNECTED ←

et en inversant le RX/TX celà fonctionne ! heureusement que l’alim était ok…

voici mon code pour infos (peut être que l’inversion RX/TX est dû à la définition ci-dessous):

substitutions:
  name: clim-ch-1
  friendly_name: clim-ch-1

esphome:
  name: ${name}
  platform: ESP8266
  board: esp01_1m

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3

external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

ota:
  - platform: esphome
    password: "XXXXXXXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: none
  
  manual_ip:
    static_ip: 192.168.1.XX
    gateway: 192.168.1.254
    subnet: 255.255.255.0

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

captive_portal:


# Enable Web server.
web_server:
  port: 80

# Enable logging
logger:
  hardware_uart: UART1
  level: INFO
  logs:
    EVT_SETS : INFO
    WIFI : INFO
    MQTT : INFO
    WRITE_SETTINGS : INFO
    SETTINGS : INFO
    STATUS : INFO
    CN105Climate: WARN
    CN105: INFO
    climate: WARN
    sensor: WARN
    chkSum : INFO
    WRITE : WARN
    READ : WARN
    Header: INFO
    Decoder : INFO
    CONTROL_WANTED_SETTINGS: INFO
#  level: DEBUG
#  logs:
#    EVT_SETS : DEBUG
#    WIFI : INFO
#    MQTT : INFO
#    WRITE_SETTINGS : DEBUG
#    SETTINGS : DEBUG
#    STATUS : INFO
#    CN105Climate: WARN
#    CN105: DEBUG
#    climate: WARN
#    sensor: WARN
#    chkSum : INFO
#    WRITE : WARN
#    READ : WARN
#    Header: INFO
#    Decoder : DEBUG
#    CONTROL_WANTED_SETTINGS: DEBUG



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

# 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


# 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

# Create a button to restart the unit from HomeAssistant. Rarely needed, but can be handy.
button:
  - platform: restart
    name: "Restart ${friendly_name}"

climate:
  - platform: cn105
    id: hp
    name: "${friendly_name}"
    icon: mdi:heat-pump
    update_interval: 4s # Defaut 500ms
    visual:
      min_temperature: 15
      max_temperature: 31
      temperature_step:
        target_temperature: 0.5
        current_temperature: 0.1
    compressor_frequency_sensor:
      name: ${name} Compressor Frequency
    vertical_vane_select:
      name: ${name} Vertical Vane
    horizontal_vane_select:
      name: ${name} Horizontal Vane
    isee_sensor:
      name: ISEE Sensor
    # The remote_temperature_timeout setting allows the unit to revert back to the internal temperature measurement
    # if it does not receive an update in the specified time range (highly recommended if using remote temperature updates)
    remote_temperature_timeout: 30min
    # debounce_delay adds a small delay to the command processing to account for some HomeAssistant buttons that may send
    # repeat commands too quickly. A shorter value creates a more responsive UI, a longer value protects against repeat commands
    debounce_delay : 500ms

    
# Enable Home Assistant API
api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  services:
    # Ajouter une valeur de température comme si c'était un capteur externe
    # Créer une automatisation qui envoie la température d'un capteur
    # chaque fois qu'une nouvelle valeur est détectée
    - service: set_remote_temperature_clim_rdc
      variables:
        temperature: float
      then:
        # Select between the C version and the F version
        # Uncomment just ONE of the below lines. The top receives the temperature value in C,
        # the bottom receives the value in F, converting to C here.
        - lambda: 'id(hp).set_remote_temperature(temperature);'
#        - lambda: 'id(hp).set_remote_temperature((temperature - 32.0) * (5.0 / 9.0));'

    # Revenir à l'utilisation du capteur interne
    - service: use_internal_temperature_clim_rdc
      then:
        - lambda: 'id(hp).set_remote_temperature(0);'

En attendant de faire des scénarios plus évolués, tout semble fonctionner nickel ! Si ce petit REX peut aider certains !

Merci à tous en tout cas!

++
Seb

2 « J'aime »