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
|
|
|
|
}
|