Files
ballu-remote/docs/zcl_hvac.md
2026-07-05 18:21:29 +03:00

122 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Zigbee ZCL HVAC Specification (Thermostat Cluster)
## Основные атрибуты термостата
### Обязательные атрибуты:
- `local_temperature` (int16_t): Текущая измеренная температура
- Диапазон: -1°C до 32767°C (значение -1°C означает неинициализированное/недоступное значение)
- Единицы: 0.01°C (так что значение 2500 = 25.00°C)
- `control_sequence_of_operation` (uint8_t): Последовательность управления
- 0x00: Cooling only
- 0x01: Cooling with Reheat
- 0x02: Heating only
- 0x03: Heating with Reheat
- 0x04: Cooling and Heating
- 0x05: Cooling and Heating with Reheat
- `system_mode` (uint8_t): Текущий режим работы системы
- 0x00: Off
- 0x01: Auto
- 0x02: Program (запрограммированный режим)
- 0x03: Cool
- 0x04: Heat
- 0x05: Emergency Heat
- 0x06: Precool
- 0x07: Fan Only
- 0x08: Dry
- 0x09: Sleep
### Атрибуты кондиционера (AC):
- `ACType`: Тип кондиционера
- Охлаждение только
- Тепловой насос (охлаждение/нагрев)
- Охлаждение с электрическим нагревом
- Геотермальный тепловой насос
- Максимальная эффективность
- `ACCapacityFormat`: Формат емкости
- 0x00: BTU/h (Британские тепловые единицы в час)
- 0x01: Тонны рефрижерации
- 0x02: Ватты
- 0x03: Лошадиные силы
## Критические константы
### Режимы системы (system_mode):
- `EZB_ZCL_SYSTEM_MODE_OFF = 0x00`: Выключено
- `EZB_ZCL_SYSTEM_MODE_AUTO = 0x01`: Автоматический режим
- `EZB_ZCL_SYSTEM_MODE_COOL = 0x03`: Охлаждение
- `EZB_ZCL_SYSTEM_MODE_HEAT = 0x04`: Отопление
- `EZB_ZCL_SYSTEM_MODE_EMERG_HEAT = 0x05`: Аварийный обогрев
- `EZB_ZCL_SYSTEM_MODE_PRECOOL = 0x06`: Предварительное охлаждение
- `EZB_ZCL_SYSTEM_MODE_FAN_ONLY = 0x07`: Только вентилятор
- `EZB_ZCL_SYSTEM_MODE_DRY = 0x08`: Сушка
- `EZB_ZCL_SYSTEM_MODE_SLEEP = 0x09`: Режим сна
### Типы HVAC систем:
- `EZB_ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_COOLING_SYSTEM_STAGE = 0x03`: Охлаждающая система со ступенями
## Команды управления
### Команды настройки расписания (Weekly Schedule):
- `0x00`: Set Weekly Schedule
- `0x01`: Get Weekly Schedule
- `0x02`: Clear Weekly Schedule
### Команды настройки точек уставки (Setpoint):
- `0x00`: Setpoint Raise/Lower
- `0x01`: Setpoint Set
- `0x02`: Setpoint Get
## Мониторинг состояния
### Маска тревог (AlarmMask):
- Биты 0-7: Различные типы аппаратных сбоев
- Датчик температуры неисправен
- Компрессор перегрет
- Недостаток хладагента
- Ошибка вентилятора
### Коды ошибок кондиционера (ACErrorCode):
- 0x00: Нет ошибок
- 0x01: Ошибка датчика температуры
- 0x02: Ошибка датчика влажности
- 0x03: Ошибка компрессора
- 0x04: Ошибка вентилятора
- 0x05: Ошибка системы размораживания
## Интеграция с Ballu AC контроллером
### Преобразование режимов работы:
| ZCL System Mode | Ballu AC Mode | Описание |
|-----------------|---------------|----------|
| 0x00 (Off) | MODE_OFF | Выключено |
| 0x01 (Auto) | MODE_AUTO | Авторегулировка |
| 0x03 (Cool) | MODE_COOL | Охлаждение |
| 0x04 (Heat) | MODE_HEAT | Отопление |
| 0x08 (Dry) | MODE_DRY | Сушка |
| 0x07 (Fan Only) | MODE_FAN | Вентилятор |
| 0x09 (Sleep) | MODE_SLEEP | Режим сна |
### Преобразование температуры:
- ZCL температура передается в 0.01°C единицах
- При отправке в MideaUART: значение/100 (пример: 2500 → 25.0°C)
### Последовательность обработки команд:
1. Получить команду через Zigbee ZCL
2. Преобразовать в формат MideaUART Control structure
3. Отправить по UART в кондиционер
4. Получить статус от кондиционера
5. Отправить обновление по Zigbee (если изменились параметры)
## Пример обработки команды охлаждения
```c
// Получено через Zigbee: system_mode = 0x03 (Cool), local_temperature = 2400 (24.00°C)
Control control;
control.mode = MODE_COOL;
control.targetTemp = 24.0f; // Преобразование из 0.01°C
control.modeChange = true;
control.tempChange = true;
ac.control(control);
```