Термостат для бассейна

Добрый день.
Ранее все сценарии делали в нодред для контроллера wirenboard, сейчас стоит задача автоматизации бассейна и с точки зрения отказоустойчивости хотим сделать все на движке правил. Прошу помочь так как с правилами работаю первый раз. Взяли за основу пример вашего описанного правила для термостата:

defineVirtualDevice(“Termostat”, {
title: “Termostat”,
cells: {
// =============== Прихожая теплый пол
“R01-TS16-1-mode”: {//режим 0-ручной 1-по расписанию
type: “switch”,
value: false,
},
“R01-TS16-1-setpoint”: {//уставка
type: “range”,
value: 25,
max: 35,
readonly: false
},
“R01-TS16-1-lock”: {//блокировка в визуализации 0-снята 1-заблокирована
type: “switch”,
value: false,
},
}
})

Вопросы:
1 Можно ли установить минимальное значение для уставки?
2 Вместо реле мы будем использовать димер для плавной регулировки. Как сделать чтоб при отклонении к примеру на 0.1 градус димер открывал привод на 20%? при отклонении на 0.2 открывался на 30% и так далее…
У нас стоит задача сделать температуру максимально близкую к уставке.

Добрый день. Мне кажется вам изначально стоит смотреть в сторону ПИД регулятора. Посмотрите темы Управление отоплением 0-10в / ПИД регулятор - #36 от пользователя BlackBox и Pid регулятор.

Да. “min” параметр для контрола типа “range” уже в testing, скоро (две недели) в релизе.

Коллега прав, тут лучше ПИД (в принципе даже ПИ) регулятор, именно интегральныя состоавляющая обеспечит равномерную температуру.

А какой смысл в плавной регулировке? Для плавной регулировки нужно, чтобы постоянно работала рециркуляция и котел (если источник тепла - котельная). Это и потери энергии (насос рециркуляции достаточно мощный), и издевательство над котлом в летнее время. Я еще не встречал человека, который был бы недоволен точностью поддержанию температуры воды в бассейне при управлении по гистерезису.

У нас не котел, у нас термальная горячая вода прямо со скважины. То есть мы ее не греем, а только регулируем подачу воды, а дальше она через перелив уходит в канализацию. И количество подаваемой воды в летнее и зимнее время нужно разное. Да и несколько бассейнов у нас, поэтому и принято решение чтоб алгоритм сам подстраивался под условия окружающей среды. То есть летом хватит на поддержание 20% открытие клапана, а когда начинает холодать и температура в бассейне “выходит” за рамки гистерезис то клапан должен открыться на 30%, и так далее.

Ну и еще важный момент хотим сделать плавной регулировку, чтоб не получилось так что вода то на максимум включена то отключена. Есть проблема что если на максимум включаешь начинает идти грязь со скважины, поэтому нужно максимально оптимальная подача воды.

Тогда конечно.

Так если все-таки вернуться к первоначальному вопросу, можно описать правило так чтоб было несколько условий, к примеру гистерезис 0.5 градуса, и каждое последующее отклонение от уставки на 0.1 градус открывает дополнительно клапан на 10%?
Вообще я вижу это так:
Я ставка к примеру 38 градусов
Гастерезис 0.5
При этом при 38 градусов открыт клапан на 20% (20% это примерно мы сейчас понимаем что столько в среднем нужно открыть клапан чтоб поддерживалась температура)
Если температура стала 38 - гистерезис, то включить 30%
Если температура стала 38 - гистерезис - 0.1, то включить 40%
И так далее…
В процессе получения статистики мы уже подберем нужные нам параметры.
Итого я думаю что кран должен будет найти оптимальное свое местоположение и быть почти всегда зафиксирован на уровне к примеру 20-30%

Если температура стала 38 + гистерезис, то закрыть клапан.

Не проще ли такую логику построить нежели пид регулирование?

Возьмите в таком случаее за пример код Не работает правило на контроллере - #9 от пользователя Pavel_Sukhotin, поправьте под свою задачу.

То что вы описали - как раз и называется “подбор коэффициентов ПИД-регулятора”. Используйте готовый код, не стоит пытаться переписать его с нуля.

малость не в тему вопрос, но все-же
а чем надежность node-red не устраивает?
что именно в этом решении смущает?

node-red это все таки стороннее ПО, были случаи когда оно может не запуститься к примеру. В моем случае нужно чтоб алгоритм работал всегда.

Несколько спорное утверждение имхо
Стороннее ПО для чего?
Для дебиана набортного видимо?
Дык тогда и модули и ПО WB - они тоже сторонние по факту.

Три года на NodeRed работает система управления климатикой
в теплице круглогодичной, включающая в себя управление
угольным котлом автоматом, газовым резервным котлом,
тепловым аккумулятором на 9 кубов, контурами фанкойлов,
теплого пола. Ну и вентиляция там, освещение и прочее такое.

Пока ничего сказать плохого про связку Node-Red и WB не могу
в части надёжности и устойчивости решения.

Зато в плане реализации алгоритмов и правки каких сценариев - решение крайне гибкое оказалось и удобное.

Понятно что все ИМХО

1 лайк

Ну, тут 90% процентов успеха зависит все ж не от движка а от того как его приготовить, то есть “от повара”.
Неоднократно видел как решения на NR, в которых используются сторонние (третьих разработчиков) модули текли, вешали систему, просто переставали работать.

это да. это возможно.
собственно как обычно - можно любой продукт испортить
неумелой готовкой :slight_smile: