// LE RÉSULTAT
Une télécommande locale, ouverte et réparable
La télécommande infrarouge continue de fonctionner. L’ESP32 lit l’état réel de l’unité intérieure et publie une entité climate automatiquement découverte par Home Assistant.
Pilotage complet
Marche/arrêt, chaud, froid, déshumidification, ventilation, consigne, vitesse et volet selon le modèle.
MQTT standard
Découverte Home Assistant et topics utilisables depuis Node‑RED, Jeedom ou votre propre automatisation.
Mises à jour OTA
Le câble USB‑C sert au premier flash. Les versions suivantes passent par le Wi‑Fi, sans rouvrir le split.
// 01 — QUOI ACHETER
Une liste courte. Pas de kit propriétaire.
Choisissez une carte USB‑C avec des broches accessibles, un câble JST PA 2,0 mm correctement serti et une vraie alimentation secteur isolée.
Adafruit ESP32 Feather V2
USB‑C, ESP32 classique, assemblage fiable. Les GPIO 26 et 25 sont exposées sous les noms A0 et A1.
- GPIO26 = TX vers la clim
- GPIO25 = RX depuis la clim
- Prendre la version avec headers
ESP32‑WROOM‑32 DevKit USB‑C
Le choix économique. Cherchez exactement une carte 30 broches avec USB‑C, CP2102 ou CH340 et GPIO25/26 sérigraphiées.
- Éviter les cartes sans marque ni schéma
- Vérifier que le câble USB transporte les données
- Configuration YAML :
board: esp32dev
Seeed Studio XIAO ESP32‑C3
Minuscule et USB‑C. À choisir si la place est critique, en adaptant les broches du YAML.
- D6 / GPIO21 = TX
- D7 / GPIO20 = RX
- Soudure des headers nécessaire selon version
JST PAP‑05V‑S vers Dupont femelle, 5 fils
Requête d’achat recommandée : « PA 2.0 mm PAP vers Dupont 2.54 mm femelle, 5 broches, 26 AWG, 20 cm ». Le boîtier CN105 est un JST PA au pas de 2,0 mm ; la partie Dupont femelle se branche sur les headers mâles de l’ESP32.
Les couleurs changent selon le vendeur. Repérez les broches 1 à 5, jamais « le fil rouge » ou « le fil vert ».
Référence PAP‑05V‑S ↗// 02 — COMMENT CÂBLER
Deux circuits, deux niveaux de risque
Le CN105 transporte la logique de commande. S1/S2 transporte le secteur. Ils doivent rester physiquement séparés et ne se rejoignent qu’à travers la sortie isolée 5 V de l’alimentation.
ZONE 230 V AC
ISOLÉE SORTIE 5 V DC
ZONE BASSE TENSION
La règle TX/RX
On croise toujours les données : TX de la clim vers RX de l’ESP32, puis TX de l’ESP32 vers RX de la clim.
S1 et S2 uniquement
Si le manuel du modèle et l’électricien l’autorisent, l’entrée de l’alimentation isolée se raccorde entre S1 et S2 au bornier. S3 n’est ni un neutre ni une alimentation auxiliaire : c’est la communication avec l’unité extérieure.
Jamais deux 5 V
Débranchez l’alimentation du split avant de remettre l’USB‑C. Ne reliez pas simultanément deux sources 5 V au même rail sans circuit de sélection prévu pour cela.
Gardez l’antenne dehors
Ne coincez pas l’ESP32 derrière une tôle ou contre l’échangeur. Placez l’antenne hors du caisson métallique, loin des câbles secteur.
Niveaux logiques : quand ajouter un adaptateur 3,3 V / 5 V ?
Les montages CN105 directs fonctionnent sur de nombreuses unités avec la réception ESP32 tirée vers 3,3 V. Mais les variantes de cartes existent. Vérifiez le manuel de service et mesurez la ligne au repos. Si votre unité présente une sortie logique poussée à 5 V, intercalez un adaptateur de niveau adapté avant l’entrée ESP32. Ne comptez pas sur la tolérance 5 V : elle n’est pas garantie par Espressif.
// 03 — LAISSER L’IA PRÉPARER ET FLASHER
Branchez l’USB‑C. Collez ce prompt.
Codex et Claude Code peuvent travailler dans le dossier local, créer les fichiers, détecter le port série, installer ESPHome dans un environnement isolé, valider, compiler et flasher.
mkdir clim-cn105 && cd clim-cn105
codex
Tu travailles dans un dossier neuf et un ESP32 est connecté en USB-C à cet ordinateur.
Objectif : créer, valider, compiler puis flasher un firmware ESPHome qui pilote une climatisation Mitsubishi Electric par son port CN105 et l’expose en MQTT avec Home Assistant Discovery.
Matériel par défaut :
- ESP32-WROOM-32 DevKit USB-C, configuration ESPHome `board: esp32dev`
- TX ESP32 = GPIO26, relié au RX de la clim (CN105 broche 5)
- RX ESP32 = GPIO25 avec pull-up interne, relié au TX de la clim (CN105 broche 4)
- GND ESP32 relié au GND CN105 (broche 2)
- CN105 broches 1 et 3 non connectées, car l’ESP32 reçoit un 5 V externe isolé
Contraintes firmware :
1. Utilise ESPHome 2026.4 ou plus récent et le composant natif `mitsubishi_cn105`, pas un composant externe GitHub.
2. Configure l’UART à 2400 bauds, 8 bits, parité EVEN, 1 bit de stop.
3. Désactive la sortie série du logger avec `baud_rate: 0` pour ne jamais polluer l’UART CN105.
4. Active MQTT avec authentification, Home Assistant Discovery, `idf_send_async: true`, `log_topic: null` et `reboot_timeout: 0s`.
5. N’ajoute pas `api:` : cette installation est MQTT uniquement.
6. Active l’OTA ESPHome, le point d’accès de secours et `safe_mode`.
7. Ne place aucun secret dans le YAML principal. Crée `secrets.yaml`, `secrets.example.yaml` et un `.gitignore` qui exclut `secrets.yaml` et `.esphome/`.
8. Demande-moi le SSID, le mot de passe Wi-Fi, l’adresse du broker, le port, l’utilisateur et le mot de passe MQTT au moment où tu en as besoin. Ne réaffiche jamais les mots de passe ensuite.
Procédure attendue :
- Identifie le port série USB sans supposer son nom.
- Vérifie la version locale d’ESPHome. Si elle est trop ancienne, installe la version actuelle dans un environnement Python isolé dans le projet.
- Crée `mitsubishi-cn105-mqtt.yaml` et les fichiers de secrets.
- Exécute `esphome config`, puis compile.
- Montre-moi le port détecté et demande une confirmation juste avant le premier flash USB.
- Flashe l’ESP32, ouvre les logs et vérifie le démarrage, le Wi-Fi et la connexion MQTT.
- Si le CN105 n’est pas encore branché, considère `NOT CONNECTED` comme normal et donne-moi la checklist de câblage hors tension.
- Termine par les commandes exactes pour les futures mises à jour OTA et pour afficher les logs.
Ne touche pas au secteur, ne suppose pas les couleurs du câble CN105 et signale clairement que S1/S2 portent environ 230 V AC et que S3 est réservé à la communication de l’unité extérieure.
Pourquoi cela fonctionne : les outils locaux voient le dossier, le terminal et le port série. Codex peut inspecter les fichiers et exécuter les outils installés depuis le répertoire du projet ; Claude Code suit le même modèle local depuis la commande claude.
// 04 — LE YAML DE BASE
Lisible, minimal, MQTT uniquement
Le fichier téléchargeable utilise le composant CN105 intégré à ESPHome depuis la version 2026.4.
esphome:
name: clim-mitsubishi-cn105
friendly_name: Clim Mitsubishi CN105
min_version: 2026.4.0
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
level: INFO
baud_rate: 0
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
power_save_mode: none
ap:
ssid: "Clim CN105 secours"
password: !secret fallback_password
captive_portal:
mqtt:
broker: !secret mqtt_broker
port: !secret mqtt_port
username: !secret mqtt_username
password: !secret mqtt_password
topic_prefix: clim-mitsubishi-cn105
discovery: true
discovery_retain: true
discovery_object_id_generator: device_name
discover_ip: false
reboot_timeout: 0s
idf_send_async: true
log_topic: null
ota:
- platform: esphome
password: !secret ota_password
safe_mode:
num_attempts: 3
uart:
id: cn105_uart
tx_pin: GPIO26
rx_pin:
number: GPIO25
mode:
input: true
pullup: true
baud_rate: 2400
data_bits: 8
parity: EVEN
stop_bits: 1
climate:
- platform: mitsubishi_cn105
id: clim_mitsubishi
name: "Climatisation"
uart_id: cn105_uart
update_interval: 1s
current_temperature_min_interval: 60s
supported_swing_modes: VERTICAL
visual:
min_temperature: 16
max_temperature: 31
temperature_step: 0.5
// 05 — INSTALLER ET UTILISER
Du câble USB‑C à Home Assistant
-
01
Flashez sur table
L’ESP32 est relié uniquement au Mac ou au PC par USB‑C. Ne branchez encore ni CN105 ni alimentation du split.
-
02
Laissez l’agent valider
Collez le prompt. L’agent crée les fichiers, exécute
esphome config, compile, demande le port série puis flashe. -
03
Préparez MQTT
Le broker Mosquitto doit être joignable depuis le Wi‑Fi de la clim. Activez l’intégration MQTT de Home Assistant et créez un compte dédié au module.
-
04
Coupez le split
Disjoncteur ouvert, absence de tension contrôlée : raccordez l’alimentation isolée sur S1/S2, puis le câble CN105 en suivant les numéros de broches.
-
05
Remettez sous tension
Après le démarrage, Home Assistant découvre automatiquement une nouvelle entité de climatisation. Testez d’abord marche/arrêt et lecture de température.
-
06
Mettez à jour en OTA
Les changements suivants passent par le Wi‑Fi avec
esphome run mitsubishi-cn105-mqtt.yaml. Inutile de reconnecter l’USB‑C.
Si la clim ne répond pas
Inversez uniquement TX et RX dans le YAML ou sur les deux fils de données. Ne touchez pas au GND ni à l’alimentation.
Sortez l’antenne du caisson métallique, vérifiez le 5 V sous charge et rapprochez temporairement un point d’accès Wi‑Fi.
Vérifiez l’intégration MQTT, le préfixe de découverte homeassistant et les droits du compte MQTT.
Confirmez 2400 bauds et 8E1. Certaines unités utilisent 9600 bauds : ne changez qu’après consultation du manuel.
// SOURCES ET LIMITES
Documentation vérifiable, installation à adapter
Les variantes Mitsubishi sont nombreuses. Le manuel de service de votre référence d’unité intérieure reste prioritaire sur ce guide.
Contenu sous licence CC BY 4.0 — attribution : Julien Robert. Ni Mitsubishi Electric, ni ESPHome, ni les fabricants cités ne sponsorisent ce guide.