Код: Выделить всё
clearTimeOut("PumpOff");
Модератор: immortal
Код: Выделить всё
clearTimeOut("PumpOff");
Код: Выделить всё
<span style="font-size:22px;">Вода в бойлере %Temp_Water.value% °C</span>
<span style="font-size:22px;">Вода в системе %Temp_Nasos.value% °C</span>
Код: Выделить всё
if (timeBetween('23:30','06:00')) {return"";}
$T1 = gg('Temp_Water.value');
//$T2 = gg('Temp_Nasos.value'); // НЕ РАБОТАЕТ
$T2 = 24; //РАБОТАЕТ
if ($T1 < 26)
{
file_get_contents("http://192.168.0.3/sec/?cmd=13:0");
setGlobal('OUT_13.status', 0);
return"";
//say("Скрипт прокачки воды остановлен.",5);
}
elseif ($T1 >= 34) //Включить скрипт если в бойлере вода выше 34 градусов
{
if ($T2 <= 26) // и запустить скрипт, если вода в трубе меньше 26
{
file_get_contents("http://192.168.0.3/sec/?cmd=13:1");
setGlobal("OUT_13.status",1);
SetTimeOut("PumpOff","callMethod('OUT_13.turnOff');",10);
//выключим насос через 70 секунд после включения
//SetTimeOut("PumpOff","file_get_contents('http://192.168.0.3/sec/?cmd=13:1');gg('OUT_13.status',0);",70);
//Перезапускаем скрипт через 1 минуту для проверки условий, при которых насос должен работать
//SetTimeOut("RestartPumpControl","runScript('PumpControl');",10);
//say("Скрипт прокачки воды запущен.",5);
//clearTimeOut("PumpOff");
}
}
//else {return"";}
Значит в Temp_Nasos.value по каким-то причинам не попадает значение с датчика.
Код: Выделить всё
$T2 = 24; //РАБОТАЕТ
Код: Выделить всё
say("Т2=".$T2);
$T2 = file_get_contents("http://192.168.0.14/sec/?pt=31&cmd=get"); //тут ВАША команда для получения значения температуры с датчика
say("Т2(факт)=".$T2);
Летом котел (двух-контурный) отдыхает. Я его включаю - осень-зима-весна, на крайний случай летом, когда долго нет солнца, и то на 30 минут для нагрева бойлера с водой. Ставить просто таймер для включения прокачки воды в системе - это убийство для насоса, для этого я и хочу сделать так, чтобы насос включался от температуры, потому-что он может за день включиться 10 раз, а может и не разу. Делать его на постоянку - нет смысла, гонять воду по кругу ночью.ZyaK писал(а): ↑Вт сен 29, 2020 8:33 amя бы делал такие вещи не на сервере умного дома а на железном контроллере, будь то ЕСПи или Ардуино, это будет надежней да и обработка будет проще.
если надо включать в определенный период времени, то по таймеру с умного дома на контроллер слать разрешающий сигнал или 1 или 0.
что там за насос у вас такой, что его приходится отключать и включать? у меня на отоплении стоит Wilo yonos дак он жрет всего 6 ватт я даже летом не парился его выключать.
А вообще для насосов не особо хороши постоянные стартстопы
Chainik писал(а): ↑Вт сен 29, 2020 8:47 amЗначит в Temp_Nasos.value по каким-то причинам не попадает значение с датчика.
Я бы в этом случае временно сделал опрос датчика непосредственно в скрипте. Вместо строкивставил бы фрагментКод: Выделить всё
$T2 = 24; //РАБОТАЕТ
Тогда сможете хотя бы сравнить фактическое значение с датчика с тем, что у вас записано в Temp_Nasos.value.Код: Выделить всё
say("Т2=".$T2); $T2 = file_get_contents("http://192.168.0.14/sec/?pt=31&cmd=get"); //тут ВАША команда для получения значения температуры с датчика say("Т2(факт)=".$T2);
Кстати, какой датчик используется и к какому порту он подключен?
Код: Выделить всё
say("Т2=".$T2);
$T2 = file_get_contents("http://192.168.0.3/sec/?pt=1&cmd=get"); //тут ВАША команда для получения значения температуры с датчика
say("Т2(факт)=".$T2);
Код: Выделить всё
if (timeBetween('23:30','06:00')) {return"";} //с 23.00 до 06.00 не запускаем
$TW = gg('Temp_Water.value'); //Температура воды в бойлере
$TN = gg('Temp_Nasos.value'); //Температура воды в системе
if ($TW < 26) // Если температура в бойлере ниже 26, отключаем насос
{
file_get_contents("http://192.168.0.3/sec/?cmd=13:0");
setGlobal('OUT_13.status', 0);
return"";
//say("Скрипт прокачки воды остановлен.", 5);
}
if ($TW > 34 && $TN < 30) //Если темп. в бойлере выше 34 И в системе ниже 30 выполняем
{
file_get_contents("http://192.168.0.3/sec/?cmd=13:1"); //Запускаем насос
setGlobal("OUT_13.status",1);
say("Насос прокачки воды запущен - ".$TN, 5);
//выключим насос через 60 секунд после включения
SetTimeOut("PumpOff","callMethod('OUT_13.turnOff');",60); //таймер отработал 60 минут и отключил насос
//onNewMinute через минуту опросил датчики и скрипт, если $TW стал ниже или $TN стал выше, то скрипт не запускается
}
Главное, чтобы алгоритм в полной мере решал поставленную задачу. Если все работает как надо, то и нечего портить хорошее ненужными улучшениями.
Код: Выделить всё
SetTimeOut("PumpOff","callMethod('OUT_13.turnOff');setGlobal('OUT_13.status',0);",60); //таймер отработал 60 секунд и отключил насос