А управление тёплым полом от другого отопления разве сильно отличается (кроме инертности)?
У меня реализовано управление газовым котлом достаточно просто. Есть датчик ds18b20 (mysensors), который установлен в целевой комнате, и есть реле, к которому через нормально разомкнутые контакты подключено управление газового котла (сухой контакт).
- Ползунки температуры
- temp.PNG (13.9 КБ) 4676 просмотров
- temp2.PNG (15.72 КБ) 4676 просмотров
- temp3.PNG (28.49 КБ) 4676 просмотров
- temp4.PNG (20.21 КБ) 4676 просмотров
Реле в данный момент включается/выключается через MegaLight, до этого было реле mysensors.
В случае отключения мажордомо, реле просто выключается и котел останавливается. Ну а если электричество отключится совсем, то котёл и работать не будет, т.к. энергозависим.
Ну и сценарий, который в "OnNewMinute" записан
Код: Выделить всё
if (gg("NobodyHomeMode.active") == 1) {
$wanted=gg('Baxi.TermoSetNobody');
} else
if (gg("EconomMode.active") == 1) {
$wanted=gg('Baxi.TermoSetEco');
} else
if ((gg("NightMode.active") == 1) &&(gg("EconomMode.active") !== 1)) {
$wanted=gg('Baxi.TermoSetNight');
} else
$wanted=gg('Baxi.TermoSet');
$now=gg('Hall.Temperature');
if ($now>$wanted) {
//надо охладить
if (gg('r25_ssr1.Status')) {
say("Жарко, выключаю котёл",0);
callMethod('r25_ssr1.TurnOff'); // $params не обязательный массив параметров
callMethod('Baxi.Led');
callMethod('Baxi.valveOff');
sg('Baxi.textstatus','off');
} else {
//say("Температура выше желаемой, но клапан уже закрыт -- ничего делать не нужно");
}
} elseif ($now<$wanted) {
//надо подогреть
if (!gg('r25_ssr1.Status')) {
say("Холодно, включаю котёл",0);
callMethod('r25_ssr1.TurnOn');
callMethod('Baxi.Led');
callMethod('Baxi.valveOn');
sg('Baxi.textstatus','on');
} else {
//say("Температура ниже желаемой, но клапан уже открыт -- ничего делать не нужно");
}
}
Код конечно кривой, но работает )