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

5.2 KiB
Raw Blame History

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 (если изменились параметры)

Пример обработки команды охлаждения

// Получено через 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);