модуль SmartBoiler v2

This commit is contained in:
Mit4el
2024-02-26 23:31:12 +03:00
parent 0baf03fccf
commit 8e7d2d6a14
7 changed files with 2167 additions and 457 deletions

View File

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