5.2 KiB
5.2 KiB
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 Schedule0x01: Get Weekly Schedule0x02: Clear Weekly Schedule
Команды настройки точек уставки (Setpoint):
0x00: Setpoint Raise/Lower0x01: Setpoint Set0x02: 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)
Последовательность обработки команд:
- Получить команду через Zigbee ZCL
- Преобразовать в формат MideaUART Control structure
- Отправить по UART в кондиционер
- Получить статус от кондиционера
- Отправить обновление по Zigbee (если изменились параметры)
Пример обработки команды охлаждения
// Получено через 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);