flowcool/esphome-technibel-scdf32

GitHub: flowcool/esphome-technibel-scdf32

通过逆向工程 Technibel SCDF32C5I 空调的专有红外协议,实现其在 ESPHome 和 Home Assistant 中的集成控制。

Stars: 1 | Forks: 0

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![ESPHome](https://img.shields.io/badge/ESPHome-2026.x-blue)](https://esphome.io) [![Home Assistant](https://img.shields.io/badge/Home%20Assistant-compatible-41BDF5)](https://www.home-assistant.io) [![Technibel](https://img.shields.io/badge/Technibel-SCDF32C5I-red)]() **[🇬🇧 English](#-english)** · **[🇫🇷 Français](#-français)** # ESPHome — Technibel SCDF32C5I IR Climate ## 🇬🇧 English ### 这是什么 本仓库提供了通过 ESP32 作为 IR blaster,从 Home Assistant 控制 **Technibel SCDF32C5I** 分体式空调所需的一切。 该 IR 协议是通过原始捕获完全逆向工程得出的 —— Technibel 使用的是 **专有 48 位协议**,IRremoteESP8266 无法识别它。其帧 结构、编码和 checksum 公式记录在 [`docs/protocol.md`](docs/protocol.md) 中。 **您将获得:** - `technibel_ir.h` — C++ IR 帧构建器(48 位,包含 checksum) - `ir-technibel-clim.yaml` — ESPHome 发射器配置,暴露了一个 `send_command` 服务 - `ir-clim-sniffer.yaml` — ESPHome 接收器配置,用于捕获原始 IR 帧(用于 debug) - `climate-technibel-ha.yaml` — Home Assistant MQTT climate 实体(完整 package) ### 硬件 (BOM) 有关完整的物料清单,请参阅 [`docs/bom.md`](docs/bom.md)。 | 组件 | 参考 | 备注 | |---|---|---| | MCU | ESP32 DevKit 30-pin | 任何 ESP32 开发板均可 | | IR 发射器 | Diymore PCB0100 (2-channel) | 内置 transistor 和电阻 | | IR 接收器 | KY-022 / VS1838B 38kHz | 仅 Sniffer 阶段使用,最终构建中不需要 | | 电容 | 100µF 16V 电解电容 | 在 TX 模块附近进行电源滤波 | ### 接线 有关完整的 ASCII 图表,请参阅 [`docs/wiring.md`](docs/wiring.md)。 ``` ESP32 GPIO4 ──► Diymore PCB0100 IN1 (IR transmitter) ESP32 GPIO23 ◄── KY-022 OUT (IR receiver — sniffer only) ``` ### 安装说明 1. 将 `esphome/libraries/technibel_ir.h` 复制到您的 ESPHome `config/libraries/` 目录中。 2. 将 `esphome/ir-technibel-clim.yaml` 刷入您的 ESP32。 3. 将您的 `wifi_ssid`、`wifi_password` 和 `ota_password` 添加到您的 `secrets.yaml` 中。 4. 在 Home Assistant 中,将 `homeassistant/climate-technibel-ha.yaml` 添加到您的 packages 目录中。 5. 重启 Home Assistant。`climate.clim_sejour` 实体将会出现。 ### 在 Home Assistant 中使用 安装完成后,`climate.clim_sejour` 支持: | 功能 | 值 | |---|---| | HVAC 模式 | `off`, `cool`, `dry`, `fan_only`, `auto` | | 风扇模式 | `auto`, `low`, `med`, `high` | | 温度范围 | 16°C – 30°C(步进 1°C) | | 当前温度 | 来自您的 HA 温度传感器 | 每次状态更改(模式、温度、风扇速度)都会自动通过 ESP32 向空调发送完整的 IR 指令。 ### 协议概述 Technibel SCDF32C5I 使用专有的 38kHz 48 位 IR 协议。 帧:`B0 B1 B2 B3 B4 B5`(6 个字节)。Checksum 包含环境温度。 → 完整详情请参阅 [`docs/protocol.md`](docs/protocol.md) ## 🇫🇷 Français ### 描述 Ce dépôt contient tout le nécessaire pour piloter un climatiseur **Technibel SCDF32C5I** depuis Home Assistant via un ESP32 émetteur IR. Le protocole IR a été entièrement décodé par reverse engineering — Technibel utilise un **protocole propriétaire 48 bits** non reconnu par IRremoteESP8266. C'est probablement la première documentation publique de ce protocole. **Contenu :** - `technibel_ir.h` — constructeur de trames IR en C++ (48 bits, checksum inclus) - `ir-technibel-clim.yaml` — config ESPHome émetteur, expose un service `send_command` - `ir-clim-sniffer.yaml` — config ESPHome récepteur pour capture de trames brutes (debug) - `climate-technibel-ha.yaml` — entité climate MQTT pour Home Assistant (package complet) ### 硬件 (BOM) Voir [`docs/bom.md`](docs/bom.md) pour la liste complète. | Composant | Référence | Notes | |---|---|---| | MCU | ESP32 DevKit 30 broches | N'importe quel ESP32 fonctionne | | Émetteur IR | Diymore PCB0100 (2 canaux) | Transistor + résistances intégrés | | Récepteur IR | KY-022 / VS1838B 38kHz | Phase sniffer uniquement, inutile en prod | | Condensateur | 100µF 16V électrolytique | Filtrage alim près du module TX | ### 接线 Voir [`docs/wiring.md`](docs/wiring.md) pour le schéma ASCII complet. ``` ESP32 GPIO4 ──► Diymore PCB0100 IN1 (émetteur IR) ESP32 GPIO23 ◄── KY-022 OUT (récepteur IR — sniffer uniquement) ``` ### 安装 1. Copier `esphome/libraries/technibel_ir.h` dans le dossier `config/libraries/` de votre ESPHome. 2. Flasher `esphome/ir-technibel-clim.yaml` sur votre ESP32. 3. Ajouter vos `wifi_ssid`, `wifi_password` et `ota_password` dans `secrets.yaml`. 4. Dans Home Assistant, ajouter `homeassistant/climate-technibel-ha.yaml` dans votre dossier `packages/`. 5. Redémarrer Home Assistant. L'entité `climate.clim_sejour` apparaît. ### 在 Home Assistant 中使用 L'entité `climate.clim_sejour` une fois installée supporte : | Fonction | Valeurs | |---|---| | Modes HVAC | `off`, `cool`, `dry`, `fan_only`, `auto` | | Vitesses ventilateur | `auto`, `low`, `med`, `high` | | Plage température | 16°C – 30°C (pas 1°C) | | Température courante | Depuis votre capteur HA | ### 协议概览 Le Technibel SCDF32C5I utilise un protocole IR propriétaire 48 bits à 38kHz. Trame : `B0 B1 B2 B3 B4 B5` (6 octets). Le checksum intègre la température ambiante. → Documentation complète dans [`docs/protocol.md`](docs/protocol.md) ## Protocol summary / 协议摘要 | Byte | Value | Description | |---|---|---| | B0 | `0xD0` | Device address (fixed / fixe) | | B1 | mode | COOL=`0xAC`, DRY=`0xAA`, FAN=`0xA9`, AUTO=`0xAD` | | B2 | temp+fan | hi nibble = temp encoded, lo nibble = fan speed | | B3 | `0xF8`/`0x08` | Power ON / OFF | | B4 | `0x43` | Fixed / Fixe | | B5 | checksum | Includes ambient temperature / Intègre T° ambiante | → [`docs/protocol.md`](docs/protocol.md) for full encoding tables and checksum formula.