Страница 2 из 3
Re: Включение насоса от разницы температур
Добавлено: Сб сен 26, 2020 10:39 pm
Chainik
Да, пишите, что получилось. Кстати, строчку очистки таймера можно убрать.
Лишняя она.
Re: Включение насоса от разницы температур
Добавлено: Пн сен 28, 2020 11:32 pm
Ignatnet
Почему-то не считывает датчик Т2, хотя он показывает верно
Данные:
- Вода в бойлере 42.45
- Вода в системе 34.35
Код: Выделить всё
<span style="font-size:22px;">Вода в бойлере %Temp_Water.value% °C</span>
<span style="font-size:22px;">Вода в системе %Temp_Nasos.value% °C</span>
Вот так скрипт отрабатывает включение насоса на 10 сек через 1 мин (специально сократил), если закомментировать
Код: Выделить всё
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"";}
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 8:33 am
ZyaK
я бы делал такие вещи не на сервере умного дома а на железном контроллере, будь то ЕСПи или Ардуино, это будет надежней да и обработка будет проще.
если надо включать в определенный период времени, то по таймеру с умного дома на контроллер слать разрешающий сигнал или 1 или 0.
что там за насос у вас такой, что его приходится отключать и включать? у меня на отоплении стоит Wilo yonos дак он жрет всего 6 ватт я даже летом не парился его выключать.
А вообще для насосов не особо хороши постоянные стартстопы
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 8:47 am
Chainik
Ignatnet писал(а): Пн сен 28, 2020 11:32 pm
Почему-то не считывает датчик Т2, хотя он показывает верно
Значит в Temp_Nasos.value по каким-то причинам не попадает значение с датчика.
Я бы в этом случае временно сделал опрос датчика непосредственно в скрипте. Вместо строки
вставил бы фрагмент
Код: Выделить всё
say("Т2=".$T2);
$T2 = file_get_contents("http://192.168.0.14/sec/?pt=31&cmd=get"); //тут ВАША команда для получения значения температуры с датчика
say("Т2(факт)=".$T2);
Тогда сможете хотя бы сравнить фактическое значение с датчика с тем, что у вас записано в Temp_Nasos.value.
Кстати, какой датчик используется и к какому порту он подключен?
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 5:19 pm
Ignatnet
ZyaK писал(а): Вт сен 29, 2020 8:33 am
я бы делал такие вещи не на сервере умного дома а на железном контроллере, будь то ЕСПи или Ардуино, это будет надежней да и обработка будет проще.
если надо включать в определенный период времени, то по таймеру с умного дома на контроллер слать разрешающий сигнал или 1 или 0.
что там за насос у вас такой, что его приходится отключать и включать? у меня на отоплении стоит Wilo yonos дак он жрет всего 6 ватт я даже летом не парился его выключать.
А вообще для насосов не особо хороши постоянные стартстопы
Летом котел (двух-контурный) отдыхает. Я его включаю - осень-зима-весна, на крайний случай летом, когда долго нет солнца, и то на 30 минут для нагрева бойлера с водой. Ставить просто таймер для включения прокачки воды в системе - это убийство для насоса, для этого я и хочу сделать так, чтобы насос включался от температуры, потому-что он может за день включиться 10 раз, а может и не разу. Делать его на постоянку - нет смысла, гонять воду по кругу ночью.
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 5:29 pm
Ignatnet
Chainik писал(а): Вт сен 29, 2020 8:47 am
Ignatnet писал(а): Пн сен 28, 2020 11:32 pm
Почему-то не считывает датчик Т2, хотя он показывает верно
Значит в Temp_Nasos.value по каким-то причинам не попадает значение с датчика.
Я бы в этом случае временно сделал опрос датчика непосредственно в скрипте. Вместо строки
вставил бы фрагмент
Код: Выделить всё
say("Т2=".$T2);
$T2 = file_get_contents("http://192.168.0.14/sec/?pt=31&cmd=get"); //тут ВАША команда для получения значения температуры с датчика
say("Т2(факт)=".$T2);
Тогда сможете хотя бы сравнить фактическое значение с датчика с тем, что у вас записано в Temp_Nasos.value.
Кстати, какой датчик используется и к какому порту он подключен?
Код: Выделить всё
say("Т2=".$T2);
$T2 = file_get_contents("http://192.168.0.3/sec/?pt=1&cmd=get"); //тут ВАША команда для получения значения температуры с датчика
say("Т2(факт)=".$T2);
17:29 Алиса: Т2(факт)=20.81
17:29 Алиса: Т2=
17:29 Алиса: Т2(факт)=20.81
17:29 Алиса: Т2=
17:28 Алиса: Т2(факт)=20.81
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 5:50 pm
Chainik
Значит моя догадка подтвердилась. У вас элементарно в Т2 не сохраняется значение с датчика.
Еще раз повторюсь. Не пользуйтесь вы модулем MegaD для получения значения с датчиков. Опрашивать своими командами будет гибче и надежнее.
Re: Включение насоса от разницы температур
Добавлено: Вт сен 29, 2020 10:39 pm
Ignatnet
Пока не могу изменить конструкцию, нужно будет покупать альтернативу Меги.
Заработало, почему-то изменил Т2 на ТN.
Код: Выделить всё
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 стал выше, то скрипт не запускается
}
Может есть еще какие-нибудь рекомендации?
Re: Включение насоса от разницы температур
Добавлено: Ср сен 30, 2020 8:49 am
ZyaK
какое напряжение питания датчиков? датчики я так понимаю ds18B20? были тут случаи кто то мучался тоже с мегой и этими датчиками, питались они от 3.3 вольта, им этого напряжения мало.
питание датчика 5 вольт и конденсатор керамический прям на ноги датчика.
Re: Включение насоса от разницы температур
Добавлено: Ср сен 30, 2020 8:55 am
Chainik
Ignatnet писал(а): Вт сен 29, 2020 10:39 pm
Может есть еще какие-нибудь рекомендации?
Главное, чтобы алгоритм в полной мере решал поставленную задачу. Если все работает как надо, то и нечего портить хорошее ненужными улучшениями.
Я бы, единственное, изменил строчку с таймером на такую:
Код: Выделить всё
SetTimeOut("PumpOff","callMethod('OUT_13.turnOff');setGlobal('OUT_13.status',0);",60); //таймер отработал 60 секунд и отключил насос
Ведь вам же надо видеть в интерфейсе, что насос выключился.
А по поводу датчиков DS18B20 надо сказать, что всяких китайских клонов их развелось видимо-невидимо. Лучше всего брать оригинальные. Те вообще на коротких линиях спокойно работают на паразитном питании.