Своими руками Создание интеллекта

Программируем

Олег Штурм

Так как интеллект будущего Умного Дома целиком и полностью зависит от знаний и умений специалистов его создающих, настало время поговорить о самом загадочном и таинственном — программировании KNX-устройств. Примитивную работу мы освещать здесь не будем и сразу перейдём к наиболее востребованным дополнительным функциональным возможностям.

Несмотря на то, что производством оборудования для Умного Дома занимаются самые передовые компании, очень многое приходится делать вручную, т.к. задачи, стоящие при «обучении» строящегося объекта, оказываются гораздо шире стандартной функциональности их продукции. Для этих целей в последнее время во многие устройства стали закладываться возможности свободного программирования при помощи встроенных логических модулей. Преимущество их использования в условной «бесплатности» — они уже всегда имеются в самих покупаемых устройствах. Т.е. отпадает необходимость покупки сервера или дорогих специализированных модулей для осуществления простых математических и логических операций. И в этой статье мы будем учиться работать с этими «бесплатными» модулями, грамотное использование которых позволит вам многократно увеличить возможности создаваемого интеллекта.

Вы не увидите теорию — мы практики, и поэтому приводим только реальные примеры, которые помогают в нашей работе.

В качестве «подопытного кролика» выступает двухканальный диммер от Zennio (Испания), способный работать со всеми типами компактных ламп и имеющий в своём составе модуль с десятью логическими функциями. Заметим, что встроенный логический модуль к самому диммеру отношения не имеет — их объединяет только общий корпус — и вы можете использовать его мощные возможности для любых целей.

ПреобразованиеСамое популярное использование — это преобразование 1-битных значений в 1-байтные и обратно, которое используется при установке датчиков движения (ДД) и выключателей в систему Умного Дома. Многие существующие ДД могут выдавать в шину либо значение яркости, либо управляющий сигнал включено-выключено, а нам необходимо при появлении в помещении людей вызывать определённую сцену, сигнал которой является 1-байтным.

Настроим логический модуль на преобразование значений сразу пяти независимых датчиков:

Создадим групповые адреса для этого преобразования — вход и выход логического модуля. На вход мы подадим бинарный сигнал от ДД, а на выход подключим диммеры или релейные модули, работающие в режиме сцен:

В этом простом примере при значении 0 на входе будет вызываться Сцена 1 (свет выключен), а при значении 1 — в помещении появились люди — Сцена 2 (наиболее востребованная в автоматическом режиме).

Усложним задачу: произведём дополнительные вычисления — теперь при срабатывании ДД будет вызываться сцена с определённым номером — к примеру, Сцена 3. Для этого настроим логический модуль и создадим четыре групповых адреса — один для входного сигнала, один для выходного и два для промежуточных вычислений — здесь задаются номера обеих сцен. Всего мы займём для одного датчика четыре логических функции из десяти имеющихся.

Этот же пример поможет вам грамотно реализовать режим Toggle (переключатель) у выключателей — при первом нажатии будет вызываться первая сцена, при повторном нажатии — другая сцена. Как задавать их номера вы теперь знаете.

ТаймерЗдесь всё просто — создаётся задержка на включение и/или выключение. Хотя большинство релейных модулей имеют встроенные таймеры, может возникнуть необходимость, к примеру, блокировать ДД в ванной комнате нажатием клавиши на определённое время — появилось желание принять ванну или побриться в душевой кабине.

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

Другой пример: при срабатывании ДД включается, к примеру, сцена ON (яркий свет), если движение в помещении прекратилось, то через 5 минут включается сцена STBY (ожидание) с минимальным значением яркости источников света и запускается таймер. Если движение не возобновилось — через 1 минуту вызывается сцена OFF (выключение). Зачем это нужно? Представьте, что вы читаете книжку и у вас внезапно полностью гаснет свет — вы в кромешной темноте! Очень некомфортная ситуация. Промежуточная сцена STBY позволяет избежать этого — достаточно снова пошевелиться и система освещения возобновит свою работу.

Добавим в один из предыдущих примеров ещё один обработчик сцен, который мы наделим функцией задержки по времени:

Пример с проветриванием помещения: При нажатии кнопки ОТКРЫТЬ ОКНО запускается таймер, который через 30 минут автоматически их и закроет. При наличии в системе датчика дождя включится блокировка на открытие окон, если снаружи ненастная погода.

Выключить ВсёПри покидании квартиры или дома достаточно практично будет переводить их в «спящий» режим — с принудительным отключением освещения, систем поддержания микроклимата, закрытии защитных жалюзи и т.п.

Приведём реальный пример: у выходной двери установлен кнопочный выключатель при кратковременном нажатии на который  включается сценарий ОТСУТСТВИЕ, при длительном — сценарий ОТПУСК. Чем они отличаются друг от друга? Первый сценарий хозяева используют при кратковременном отсутствии — к примеру, поехали в магазин или на работу; второй — при достаточно длительном — решили с семьёй на пару дней навестить родителей, уехали в командировку или отпуск.

Левая кнопка - ВЫКЛЮЧИТЬ ВСЁ

Левая кнопка — ВЫКЛЮЧИТЬ ВСЁ

Сценарий OFF: отключается полностью освещение, системы кондиционирования и подогрева полов принудительно переводятся в «спящий» (экономичный) режим.

Сценарий ALL OFF: отключаются  полностью — освещение, система кондиционирования, электрические тёплые полы, шторы на всех окнах закрываются.

Как это работает? Создаём универсальный механизм с несколькими групповыми адресами: отдельные для логических 0 и 1, т.к. у используемого оборудования по-разному могут реализовываться необходимые нами функции; отдельные для каждого кондиционера.

ЛогикаТ.к. нами часто в проектах используются выключатели с возможным отображением статусов, то сейчас разберём один такой пример: при открытии или закрытии окон необходимо обеспечить визуальную обратную связь — мигание светодиодов на кнопках выбора направления движения при работе приводов. Задача заключается в том, что релейное устройство выдаёт нам статусы движения и направления перемещения в несколько ином формате.

Счётчик импульсовНаиболее востребованное применение — нужно на одну кнопку «повесить» несколько световых сцен, которые можно по очереди перебирать. Разумеется, есть готовые модули бинарных входов с такой функциональной возможностью, но оборудование многих производителей по какой-то причине её не имеют. Поэтому попробуем реализовать счётчик импульсов программно — при помощи логических функций.

ШлюзИногда необходимо разрешить или запретить прохождение определённых команд — для этих целей существуют шлюзы (или ворота по-русски). Команды могут быть 1-битными, 1-байтными или любыми другими и используя управляющий сигнал 0 или 1 можно, соответственно, шлюз для них закрыть или открыть.

СравнениеФункция зима/лето: если правильно настраивать систему поддержания микроклимата в помещениях, то нужно помнить — даже в 30-градусную жару выложенный плиткой пол в доме должен подогреваться пускай и менее интенсивно, чем в зимний период. Иначе простуды, особенно маленьким детям, не избежать. Для управления температурой пола необходимо установить датчик наружной температуры воздуха и при потеплении, к примеру, выше 15°С теплые полы в доме от комфортных 27-28° будут автоматически «остывать» до экономичных 25-26° — летом этого вполне достаточно, а в некоторых помещениях выключаться.

Для добавления функции зима/лето существует возможность сравнения предустановленных значений внешней температуры воздуха с показаниями датчика, который находится на улице. Чтобы режим работы полов постоянно не переключался от каждого дуновения ветра или выглянувшего солнышка, мы дополнительно зададим так называемый гистерезис — величину «мёртвого» коридора при пересечении границ которого и будет происходить изменение режима работы полов.

Кстати, чтобы каждый раз «не городить огород» практически во всех проектах мы используем внешние метеостанции, в которых большая часть логики, связанной с внешними температурой и освещённостью, уже встроена.

{{ reviewsOverall }} / 10 Оценка (0 голосов)
Полезная информация
Интересно написано
Понятно написано
Отзывы читателей... Оцените, пожалуйста, статью и оставьте отзыв
Order by:

Ваш отзыв будет первым.

Verified
{{{ review.rating_title }}}
{{{review.rating_comment | nl2br}}}

Дальше ещё
{{ pageNumber+1 }}
Оцените, пожалуйста, статью и оставьте отзыв

Your browser does not support images upload. Please choose a modern one

Добавить Комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.