Fibaro Home Center 2: алгоритм управления климатом комнаты - «Умный Дом и решения»
- Рената
- 16-мая-2017, 08:32
- 0 комментариев
- 1 048 просмотров
Типичная задача управления климатом: в комнате есть два радиатора, один тёплый пол, один датчик температуры с термостатом.
Привод на радиатор Dunfoss (на батарейках):
Термостат тёплого пола Heatit:
Настенный термостат Secure C21 (на батарейках):
Датчик открывания окна Philio:
Мы реализуем следующий алгоритм:
Мы помним, что Fibaro Home Center 2 отличается от Fibaro Home Center Lite возможностью написания сценариев на языке LUA. И на 30 тысяч рублей более высокой стоимостью. Так вот, без LUA нам этот, казалось бы, простой алгоритм не реализовать.
У нас три задачи, делаем три сценария:
Создаём сценарий №1 — при изменении уставки термостата на стене передаём значения на радиаторы и теплый пол.
—[[
%% properties
53 value — сценарий срабатывает при изменении значения термостата воздуха
%% events
%% globals
—]]
local temp_set; —заданная температура воздуха
temp_set=fibaro:getValue(53, «value»); —записываем в память текущую уставку
fibaro:call(6, «setThermostatSetpoint»,»1″,temp_set); —делаем так, чтобы уставка термостата по полу стала такой же, как по воздуху
fibaro:call(8, «setMode», «1») — режим термостата пола — нагрев
fibaro:call(47, «setTargetLevel», temp_set) — уставка привода радиатора №1
fibaro:call(50, «setTargetLevel», temp_set) — уставка привода радиатора №2
При сработке этого сценария значение уставки считывается с термостата воздуха и устанавливается на пол и радиаторы.
Сценарий №2 — окно открывается и уставка везде далается 20 градусов. Мы могли бы установить уставку настенного термостата, а затем выполнить сценарий №1, но тогда мы потеряем ранее выставленное значение термостата. Делаем сценарий для простоты блоками.
Наконец, сценарий №3 при закрывании окна выполняет сценарий 1 и уставку термостата снова помещает в радиаторы и пол:
Я хотел сделать сценарий 1 без LUA кода, чтобы понять, можно ли его реализовать на Home Center Lite, но не придумал как. Загвоздка в том, чтобы уставку привода сделать такой, как уставка термостата, а блоками можно только задать её конкретное значение в градусах. Можно сделать глобальную переменную, но я не нашёл, как в неё записать уставку термостата.