Files
IoTManager/src/modules/exec/SmartBoiler/BoilerHeader.h

83 lines
2.7 KiB
C
Raw Normal View History

2024-02-12 20:49:36 +03:00
#pragma once
#define SLAVE true
#define TIMEOUT_TRESHOLD 5
2024-02-26 23:31:12 +03:00
namespace _Boiler_v2
{
2024-02-12 20:49:36 +03:00
// команды/установки от термостата
struct SetpointBoiler
{
2024-02-26 23:31:12 +03:00
bool cmd_chEnable = 0;
bool cmd_dhwEnable = 0;
2024-02-12 20:49:36 +03:00
float TSetCH = 0;
float TSetDhw = 0;
} set;
struct failCode
{
bool service_required = 0;
bool lockout_reset = 0;
bool low_water_pressure = 0;
bool gas_fault = 0;
bool air_fault = 0;
bool water_overtemp = 0;
2024-02-26 23:31:12 +03:00
int fault_code = 0;
2024-02-12 20:49:36 +03:00
};
// текущее реальное состояние котла
struct StateBoiler
{
2024-02-26 23:31:12 +03:00
bool antiFreezOn = false;
bool stateCH = 0;
bool stateDHW = 0;
bool fl_flame = 0;
int currentRele = 0;
bool fl_fail = 0;
2024-02-12 20:49:36 +03:00
failCode fCode;
float RelModLevel = 0;
float Tboiler = -40;
float Tret = 0;
float Tdhw = 0;
float Toutside = 0;
2024-02-26 23:31:12 +03:00
// bool r[3] = {0, 0, 0};
int numStepOn;
2024-02-12 20:49:36 +03:00
} state;
// конфигурация котла
struct ConfigBoiler
{
2024-02-26 23:31:12 +03:00
bool autoPower = true; // если false то управление только из сценария или веба
2024-02-12 20:49:36 +03:00
int antiFreez;
2024-02-26 23:31:12 +03:00
// bool pump = false; // 1- наличие реле насоса СО, 0 - мы не управляем насосом СО (в протоколе ОТ нет)
bool changeRele = false;
bool dhw = false; // 1- есть поддержка ГВС, по наличию реле(трехходовой)
2024-02-12 20:49:36 +03:00
bool ctrlType = false; // 0 - модуляция, 1- вкл/выкл
bool confDhw = false; // 1 - бак, 0 - проточная //TODO ПОКА НЕ ЗНАЮ ЧТО ДЕЛАТЬ
bool pumpControlMaster = false; // в протоколе ОТ: мастер управляет насосом ????????????????????? //TODO Команды кправления насосом от мастера не помню
int minDhw;
int maxDhw;
int minCH;
int maxCH;
int gistDhw;
int gistCH;
int countRele = 0;
2024-02-26 23:31:12 +03:00
// int relePwr[3]={0,0,0};
2024-02-12 20:49:36 +03:00
int prcOnekWt = 0; // процент одного киловата из общей мощности всех тэнев, расчитывается для модуляции
2024-02-26 23:31:12 +03:00
// int rele2Pwr = 0;
// int rele3Pwr = 0;
int numStepDhw;
float maxKW;
2024-02-12 20:49:36 +03:00
} conf;
unsigned long timeout_count = 0;
2024-02-26 23:31:12 +03:00
bool _debug = 0;
2024-02-12 20:49:36 +03:00
bool _telegram = false;
unsigned long ot_response = 0;
2024-02-26 23:31:12 +03:00
int SlaveMemberIDcode = 0;
2024-02-12 20:49:36 +03:00
}