mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-06-11 04:19:18 +03:00
not lib ecto
This commit is contained in:
182
src/modules/exec/EctoControlAdapter/AdapterCommon.h
Normal file
182
src/modules/exec/EctoControlAdapter/AdapterCommon.h
Normal file
@@ -0,0 +1,182 @@
|
||||
#pragma once
|
||||
#include <Arduino.h>
|
||||
|
||||
#define comm_RebootAdapter 2u
|
||||
#define comm_LockOutReset 3u
|
||||
|
||||
struct BoilerInfo
|
||||
{
|
||||
uint8_t adapterType; // тип адаптера. 000 - Opentherm 001 - eBus 010 - Navien
|
||||
uint8_t boilerStatus; // состояние связи с котлом 0 - нет ответа от котла на последнюю команду 1 - есть ответ от котла на последнюю команду
|
||||
uint8_t rebootStatus; // Код последней перезагрузки адаптера. 0...255 - код
|
||||
uint8_t adapterHardVer; // Аппаратная версия адаптера. 0...255 - номер версии
|
||||
uint8_t adapterSoftVer; // u8 Программная версия адаптера. 0...255 - номер версии
|
||||
uint16_t boilerMemberCode; // 0x0021 R u16 Код производителя котла. Зависит от марки и модели котла. 0...65535 - код производителя
|
||||
uint16_t boilerModelCode; // 0x0022 R u16 Код модели котла. Зависит от марки и модели котла. 0...65535 - код модели
|
||||
};
|
||||
|
||||
struct BoilerStatus
|
||||
{
|
||||
uint8_t burnStatus; // бит 0 - текущее состояние горелки 0 - отключена 1 - включена
|
||||
uint8_t CHStatus; // бит 1 - текущее состояние отопления 0 - отключено 1 - включено
|
||||
uint8_t DHWStatus; // бит 2 - текущее состояние ГВС 0 - отключено 1 - включено
|
||||
};
|
||||
|
||||
// Флаги ошибок (только для котлов с интерфейсом OpenTherm)
|
||||
enum FlagErrorOT //: uitn8_t
|
||||
{
|
||||
er_SecviceReq, // 0: Необходимо обслуживание
|
||||
er_LockOut, // 1: Котел заблокирован
|
||||
er_LowWater, // 2: Низкое давление в отопительном контуре
|
||||
er_FlameFault, // 3: Ошибка розжига
|
||||
er_AirPresFault, // 4: Низкое давление воздуха
|
||||
er_OverTem // 5: Перегрев теплоносителя в контуре
|
||||
};
|
||||
|
||||
////////////////// Данные регистров второй версии адаптера котла
|
||||
//////////////////// Регистры для чтения
|
||||
|
||||
enum ReadDataEctoControl //: uitn16_t
|
||||
{
|
||||
ecR_AdapterInfo = 0x0010, // 0x0010 R bitfields бит 2...0 - тип адаптера. 000 - Opentherm 001 - eBus 010 - Navien
|
||||
// бит 3 - состояние связи с котлом 0 - нет ответа от котла на последнюю команду 1 - есть ответ от котла на последнюю команду
|
||||
// u8 Код последней перезагрузки адаптера. 0...255 - код
|
||||
|
||||
ecR_AdaperVersion = 0x0011, // 0x0011 R u8 Аппаратная версия адаптера. 0...255 - номер версии
|
||||
// u8 Программная версия адаптера. 0...255 - номер версии
|
||||
|
||||
ecR_Time = 0x0012, // 0x0012 - 0x0013 R u32 Время работы адаптера после перезагрузки 0...4294967295 - время в секундах
|
||||
ecR_MinSetCH = 0x0014, // 0x0014 R u8 Нижний предел уставки теплоносителя. 0...100 - температура уставки в град. С
|
||||
ecR_MaxSetCH = 0x0015, // 0x0015 R u8 Верхний предел уставки теплоносителя 0...100 - температура уставки в град. С
|
||||
ecR_MinSetDHW = 0x0016, // 0x0016 R u8 Нижний предел уставки ГВС 0...100 - температура уставки в град. С
|
||||
ecR_MaxSetDHW = 0x0017, // 0x0017 R u8 Верхний предел уставки ГВС 0...100 - температура уставки в град. С
|
||||
ecR_TempCH = 0x0018, // 0x0018 R i16 Текущая температура теплоносителя -100...100 - температура в 0.1 гр. С
|
||||
ecR_TempDHW = 0x0019, // 0x0019 R u16 Текущая температура ГВС 0...100 - температура в 0.1 гр. С
|
||||
ecR_Pressure = 0x001A, // 0x001A R u8 Текущее Давление в контуре 0...50 - давление в (0,1бар)
|
||||
ecR_FlowRate = 0x001B, // 0x001B R u8? Текущий расход ГВС 1...255 - расход в (0,1 л/мин)
|
||||
ecR_ModLevel = 0x001C, // 0x001C R u8? Текущая модуляция горелки 0xFF - не определено 0...100 - модуляция в (%)
|
||||
ecR_BoilerStatus = 0x001D, // 0x001D R bitfields бит 0 - текущее состояние горелки 0 - отключена 1 - включена
|
||||
// бит 1 - текущее состояние отопления 0 - отключено 1 - включено
|
||||
// бит 2 - текущее состояние ГВС 0 - отключено 1 - включено
|
||||
|
||||
ecR_CodeError = 0x001E, // 0x001E R u16 Код ошибки котла (основной). Зависит от марки и модели котла. 0...65535 - код ошибки
|
||||
ecR_CodeErrorExt = 0x001F, // 0x001F R u16 Код ошибки котла (дополнительный). Зависит от марки и модели котла. 0...65535 - код ошибки
|
||||
ecR_TempOutside = 0x0020, // 0x0020 R s8 Температура уличного датчика котла (при егоналичии). -65…+100 температура в градусах С
|
||||
ecR_MemberCode = 0x0021, // 0x0021 R u16 Код производителя котла. Зависит от марки и модели котла. 0...65535 - код производителя
|
||||
ecR_ModelCode = 0x0022, // 0x0022 R u16 Код модели котла. Зависит от марки и модели котла. 0...65535 - код модели
|
||||
ecR_FlagErrorOT = 0x0023 // 0x0023 R s8 Флаги ошибок (только для котлов с интерфейсом OpenTherm)
|
||||
// 0: Необходимо обслуживание
|
||||
// 1: Котел заблокирован
|
||||
// 2: Низкое давление в отопительном контуре
|
||||
// 3: Ошибка розжига
|
||||
// 4: Низкое давление воздуха
|
||||
// 5: Перегрев теплоносителя в контуре
|
||||
};
|
||||
|
||||
////////////////////////////// WRITE /////////////
|
||||
|
||||
enum WriteDataEctoControl //: uitn16_t
|
||||
{
|
||||
ecW_SetTypeConnect = 0x0030, // 0x0030 W u8 Тип внешних подключений (будет сохранено в постоянной памяти адаптера)
|
||||
// 0 - адаптер подключен к котлу
|
||||
// 1 - котел подключен к внешнему устройству (панель или перемычка)
|
||||
|
||||
ecW_TSetCH = 0x0031, // 0x0031 W int16 Уставка теплоносителя (будет сохранено в постоянной памяти адаптера).
|
||||
// Будет передана котлу при старте адаптера, пока главным устройством не
|
||||
// были записаны регистры уставки температуры.
|
||||
// 0...1000 - температура уставки в десятых долях градуса С (например, для
|
||||
// установки 45С нужно записать число 450). Во многих котлах необходимо до
|
||||
// подключения адаптера необходимо поднять температуру теплоносителя
|
||||
// отопления (нажимая “+” на панели котла) для согласования диапазона
|
||||
// температуры теплоносителя, в противном случае температура теплоносителя
|
||||
// может не достигнуть требуемого значения.
|
||||
|
||||
ecW_TSetCHFaultConn = 0x0032, // 0x0032 W int16 Уставка теплоносителя в аварийном режиме(будет сохранено в постоянной памяти адаптера).
|
||||
// Будет передана котлу в случае
|
||||
// отсутствия связи с главным управляющим устройством.
|
||||
// 0...1000 - температура уставки в десятых долях град. С (например,
|
||||
// для установки 45С нужно записать число 450)
|
||||
|
||||
ecW_TSetMinCH = 0x0033, // 0x0033 W u8 Нижний предел уставки теплоносителя 0...100 - температура уставки в град. С
|
||||
// Не все котлы поддерживают этот параметр. Как правило, этот
|
||||
// предел не должен быть ниже аналогичного предела,
|
||||
// установленного в настройках котла.
|
||||
|
||||
ecW_TSetMaxCH = 0x0034, // 0x0034 W u8 Верхний предел уставки теплоносителя 0...100 - температура уставки в град. С
|
||||
// Не все котлы поддерживают этот параметр. Как правило, этот
|
||||
// предел не должен быть выше аналогичного предела,
|
||||
// установленного в настройках котла.
|
||||
|
||||
ecW_TSetMinDHW = 0x0035, // 0x0035 W u8 Нижний предел уставки ГВС 0...100 - температура уставки в град. С
|
||||
// Не все котлы поддерживают этот параметр. Как правило, этот
|
||||
// предел не должен быть ниже аналогичного предела,
|
||||
// установленного в настройках котла.
|
||||
|
||||
ecW_TSetMaxDHW = 0x0036, // 0x0036 W u8 Верхний предел уставки ГВС 0...100 - температура уставки в град. С
|
||||
// Не все котлы поддерживают этот параметр. Как правило, этот
|
||||
// предел не должен быть выше аналогичного предела,
|
||||
// установленного в настройках котла.
|
||||
|
||||
ecW_TSetDHW = 0x0037, // 0x0037 W u8 Уставка ГВС (EPROM) 0...100 - температура уставки в град. С
|
||||
// Для большинства котлов эта уставка должна находиться ниже
|
||||
// предела, установленного в меню самого котла, иначе она может быть
|
||||
// проигнорирована котлом. Для некоторых котлов стоит устанавливать
|
||||
// этот параметр равным верхнему пределу уставки ГВС.
|
||||
|
||||
ecW_SetMaxModLevel = 0x0038, // 0x0038 W u8 Уставка максимальной модуляции горелки (будет сохранено в постоянной памяти адаптера) 0...100 - уровень модуляции в процентах.
|
||||
// Данный параметр поддерживается не всеми котлами. Для
|
||||
// электрических трехфазных котлов возможно задать только 3
|
||||
// уровня модуляции (в диапазоне 0…100%).
|
||||
|
||||
ecW_SetStatusBoiler = 0x0039, // 0x0039 W bitfields бит 0 - режим контура отопления (будет сохранено в постоянной памяти адаптера) 0 - отключен 1 - включен
|
||||
// бит 1 - режим контура ГВС 0 - отключен 1 - включен
|
||||
// бит 2 - “второй контур”, используется только некоторыми котлами с
|
||||
// интерфейсом OpenTherm и может отвечать за активацию бойлера
|
||||
// косвенного нагрева или встроенной функции ГВС. 0 - отключен 1 - включен
|
||||
|
||||
|
||||
ecW_Command = 0x0080 // 0x0080 W uint16 команда
|
||||
// 0 - нет команды
|
||||
// 1 - CH water filling (зарезервировано)
|
||||
// 2 - перезагрузка адаптера
|
||||
// 3 - сброс ошибок котла
|
||||
// 4..65525 - зарезервировано
|
||||
// При записи любой команды, кроме «нет команды», сразу же меняется
|
||||
// состояние регистра «Ответ на команду» - становится 2 – идет
|
||||
// обработка команжы
|
||||
|
||||
|
||||
};
|
||||
|
||||
///////////////////////////////////////// Регистры состояния:
|
||||
|
||||
/*
|
||||
0x0040…0x006F R i16 состояние данных в регистре ($addr - 0x30)
|
||||
-2 - ошибка чтения/записи в котел
|
||||
-1 - регистр не поддерживается
|
||||
0- для регистра на чтение означает, что данные из котла прочитаны и
|
||||
валидны. Для регистра на запись означает, что данные успешно приняты
|
||||
котлом.
|
||||
1- не инициализирован.
|
||||
если регистр R: чтение соответствующих данные из котла не
|
||||
приводилось,
|
||||
если регистр W: адаптеру не было задано значение для записи
|
||||
соответствующего значения в котле
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
0x0081 R int16 Ответ на команду
|
||||
-32768..-6 - зарезервировано
|
||||
-5 – ошибка выполнения команды
|
||||
-4 – неподдерживаемая котлом команда
|
||||
-3 – не поддерживаемый котлом идентификатор устройства
|
||||
-2 – не поддерживается данный адаптером
|
||||
-1 – не получен ответ за отведенное врекмя
|
||||
0 – команда выполнена успешно
|
||||
1 – не было команды (значение по умолчанию)
|
||||
2 – идет обработка команды (обмен данными)
|
||||
3..32767 - зарезервировано
|
||||
Если команда после перезагрузки адаптера не давалась, регистр
|
||||
читается как 1 - не было команды.
|
||||
*/
|
||||
Reference in New Issue
Block a user