//собирая в конструкторе выбирать : Количество настроек - 2 настройки. Глобальные переменные - 2 . В Des code option модуля вводить настройки значений температуры умноженными на 10 !!!
int32_t znTer,znGis; // значение термостата, значение гистерезиса
bool flag = 0; // параметр изменения состояния
void ICACHE_FLASH_ATTR
startfunc()
{
digitalWrite(12,0); //установка состояния выхода 12 esp8266 на старте
znTer = valdes[0] = sensors_param.cfgdes[0];
znGis = valdes[1] = sensors_param.cfgdes[1];
}
void ICACHE_FLASH_ATTR
timerfunc(uint32_t timersrc)
{
if (sensors_param.cfgdes[0] != znTer)
{
valdes[0] = sensors_param.cfgdes[0];
}
else
{
if (sensors_param.cfgdes[0] !=valdes[0])
{
flag = 1; // проверка наличия изменений
sensors_param.cfgdes[0] = valdes[0];
} //значения термостата по мктт (значения температуры умножены на 10)
}
znTer=sensors_param.cfgdes[0];
if (sensors_param.cfgdes[1] != znGis)
{
valdes[1] = sensors_param.cfgdes[1];
}
else
{
sensors_param.cfgdes[1] = valdes[1];
} //значения гистерезиса по мктт (значения температуры умножены на 10)
znGis=sensors_param.cfgdes[1];
if (flag)
{
SAVEOPT;
flag = 0;
}
if(data1wire[0]< (znTer - znGis) )
digitalWrite(12,1); //нижняя граница термостата , включение гпио - значение уставки минус гестерезис
if(data1wire[0]> znTer )
digitalWrite(12,0); //верхняя граница термостата , выключение гпио - значение уставки
}
void webfunc(char *pbuf)
{
os_sprintf(HTTPBUFF," термостат - <b><font color=%s </font></b>,",digitalRead(12)?"'green'> ON":"'red'> OFF");
os_sprintf(HTTPBUFF+os_strlen(HTTPBUFF)," целевая <b>%s</b> ,", fltostr(valdes[0]));
os_sprintf(HTTPBUFF+os_strlen(HTTPBUFF)," гистерезис <b>%s</b> ", fltostr(valdes[1]));
}