Всем привет! Наконец-то подошел к концу капитальный ремонт квартиры, и в связи с этим я хочу поделиться с вами реализованным проектом «Умная квартира» с базовыми возможностями по управлению освещением, подогревом теплых полов, контролем температуры и влажности помещений, и другие вкусности.
Описательная часть будет выполнена в виде руководства (так ее проще представить).
Оборудование
Ввиду того, что мы принципиально хотели собрать всю автоматику, используя готовые, но недорогие решения исполнительных и управляющих устройств, было принято единогласное решение (в одном лице) использовать следующий перечень оборудования: Сервер управления – Raspberry Pi 3 + OpenHAB 2 – 1 шт (3000 руб.) Многофункциональный контроллер – MegaD-2561 – 1 шт (3480 руб.
) Исполнительный блок на 14 релейных выходов – МегаД-14-Р – 1 шт. (4480 руб.
) Датчики температуры и влажности DHT22 (AM2303) – 4 шт (1960 руб.
) Датчики температуры 1-Wire DS18B20 водонепроницаемые – 2 шт (180 руб.
) Блок питания 12В ДР-60-12 – 1 шт. (1420 руб.
) Корпуса для датчиков Dsen-Box – 4 шт (1000 руб.
) Уже есть планшет для управления и отображения параметров (3000-10000 руб.
)
Большую часть списка можно приобрести на ALI.
Вводный
Одним из основных принципов работы систем автоматизации является бесперебойность и резервирование функций.То есть, даже если вся слаботочная автоматика сгорит к черту, мы не должны потерять функцию управления освещением и другими важными исполнительными устройствами.
Таким образом, решение по управлению освещением будет реализовано по так называемой «сквозной системе», т.е.
выключатели (выключатели) в помещениях будут проходными, а роль вторых выключателей (выключателей) будут выполнять реле в исполнительном блоке МегаД-14-Р.
При условии, конечно, что сами реле не сгорят, мы не потеряем функциональность при неисправности блоков автоматики.
Поэтому во всех комнатах установлены проходные 2- и 1-клавишные выключатели Legrand Etika (по сравнению с Valena они выглядят симпатично).
Связь
Датчики температуры и влажности DHT22 устанавливаются в корпусах Dsen-Box на уровне около 2 метров от пола в каждом помещении.Не забывайте, что в квартире идет капитальный ремонт и все провода тщательно проложены от панели к местам расположения датчиков и устройств.
Кабель почти везде проложен с экранировкой SFTP 4х2х0,5. Датчики температуры DS18B20 устанавливаются во время укладки полов с подогревом.
Устанавливаем устройства MegaD в панель, сопрягаем их родным 34-контактным кабелем и подключаем к сети Ethernet. Заходим в веб-интерфейс по адресу 192.168.0.14/сек.
В разделе «config» выставляем нужный адрес или оставляем по умолчанию, обязательно прописываем адрес сервера Openhab (узнаем позже, когда будем разворачивать образ Openhab на Raspberry или сразу регистрируем и меняем на Raspberry ).
Все датчики и провода от выключателей подключаем в одну линию.
В настройках портов устройства MegaD выставляем типы (OUT - если это реле, IN или Dsen - если это вход датчика).
Если мы укажем правильный тип на портах подключенных датчиков, то сразу увидим текущие показания.
Сервер
Собираем сервер.Корпус для малины сделан из вышедшего из строя блока питания для удобства монтажа на DIN-рейку (конечно для этого есть специальный корпус, но это не про нас))).
Разумеется, не забудьте подключить флэшку и Ethernet-кабель.
Чтобы не мучиться с установкой, решил скачать готовый образ.
OpenHabian — там подробно описан весь процесс установки и настройки сервера и сводится к развертыванию образа на флэшку, запуску малины и ожиданию 15-45 минут. (да давно) при первой настройке.
OpenHab готов к работе! Если мы не хотим ничего менять в конфигурации сервера (как открыть раздел настроек подробно описано на openhab.org), то подключаемся к Openhab openhabianpi :8080, выберите графический интерфейс Paper UI и начните лепить все, что вам нужно.
Настройки
Привязки
Сначала вам нужно установить соединение между сервером OH (openhab) и MegaD. Интеграция оборудования на сервере по протоколам и правилам, определенным оборудованием, осуществляется с помощью готовых файлов, так называемых «Привязок».Скачать актуальную привязку к оборудованию МегаД .
Закидываем его (можно использовать WinSCP) в папку /srv/openhab2-addons на сервере, так мы увидим эту привязку в «Привязках» Paper UI. Далее во «Входящих» создаем адаптер входящего сервера Bridge MegaD, это что-то вроде виртуального моста связи между сервером и оборудованием.
Назначаем ему необходимый порт (адрес сервера и порт необходимо прописать в «Конфиге» самого устройства MegaD).
Вещи
После создания моста также создаем «MegaD Binding Things» в разделе «Входящие».Отдельная «Вещь» — это то, как на сервере определяется конкретное физическое устройство, будь то датчик или реле, с которым мы будем взаимодействовать с помощью созданного моста.
В них специально прописываем IP-адрес устройства MegaD, пароль доступа и порт устройства (это входной порт, куда подключается датчик или выходной порт для управления устройствами).
Для удобного распределения по локациям в поле «Местоположение» указываем, где все находится – гостиная, кухня… После создания этих «Вещей» они появятся в «Конфигурация/Вещи».
Заходим в созданную «Вещь» и кликая по нужному типу (нужно было указать его в настройках порта устройства MegaD) привязываем его к «Предмету», создавая новый «Создать новый предмет».
Предметы
Отдельный «Пункт» — на сервере и в графическом интерфейсе это тот самый элемент, который служит кнопкой управления или вывода данных с датчика и других возможностей.Поле «Имя» должно быть сплошной латиницей, а «Метка» называем как хотим.
В настройках «Товар» необходимо указать тип (если это реле, то – ПЕРЕКЛЮЧАТЕЛЬ, если датчик, то – НОМЕР и т.д. Если мы хотим объединить определенные Товары в группы (чаще всего это необходимо для удобного распределения и просмотра в мобильном приложении или с помощью интерфейса Basic UI), то в поле «Группа» указываем нужную группу, которую предварительно необходимо создать в раздел «Товары» с указанием типа «Группа».
После этих манипуляций мы увидим тот самый созданный «Элемент» в разделе «Управление» Paper UI и если все сделано правильно, то при нажатии на созданный «Элемент» типа «Переключатель» будет показано связанное с ним устройство ( реле МегаД) щелкнет. Аналогичные действия проделываем для всех переключателей и датчиков, правильно называя их и настраивая.
пользовательский интерфейс
Сейчас всё это конечно хорошо и работает, но не красиво и неудобно.Берем планшет и заходим через браузер openhabianpi :8080, выберите графический интерфейс Habpanel и начните настраивать его в соответствии со своими потребностями.
Нажмите на шестеренку настроек в правом верхнем углу, нажмите «Дополнительные настройки» и в левой части настроек произведите необходимые настройки (тема, имя.
), в дальнейшем после создания готового интерфейса его необходимо сохранить.
«Сохранить текущую конфигурацию в новую конфигурацию панели».
Выходим из настроек, ползунком выбираем необходимое количество столбцов плитки в интерфейсе и нажимаем «Добавить новый дашборд».
В настройках плитки указываем цветовую схему и отображение иконок.
С помощью этих плиток мы определим расположение или группы наших устройств (например, в моем случае это комнаты).
Далее, после создания локации, переходим на нее, нажав на плитку и сверху, рядом с названием плитки, нажимаем на карандашик, мы разместим созданные плитки в системе «Предметы».
В правом верхнем углу нажмите «Добавить новый виджет».
Выбираем нужный тип плитки (подсказки будут всплывать при перемещении курсора) «Переключатель», если это переключатель, «Пустышка», если датчик.
и т.д. В настройках созданной плитки привязываем ее к существующий «Предмет» в системе и настроить отображение – значок, цвет, размер.
После создания всех необходимых плиток «Предметов» нажмите «Выполнить» в левом углу, тем самым сохранив настройки и запустив режим отображения.
Вот так мы создаем для себя интерфейс Habpanel. Очень удобно после настройки, если это делалось в Chrome, добавить страницу Habpanel на рабочий стол планшета из настроек браузера.
Правила
Правила — одинаковые правила (скрипты) для реализации логики функционирования одного устройства или взаимодействия между несколькими.Реализуем автоматическое управление вытяжкой в ванной.
Для этого в системе мы должны создать виртуальный «Товар» типа «Число», в который будем записывать значения желаемого уровня влажности.
Еще один «Пункт» типа «Переключатель» для запуска автоматического контроля уровня влажности.
Ну и собственно само правило, которое будет обрабатывать полученное значение влажности от датчика в ванной, сверять его с заданным значением нашей уставки и управлять вытяжкой.
Чтобы создать правило, мы должны создать файл с расширением .
rules с содержимым javascript в папке на сервере /etc/openhab2/rules. Вот пример контента: Auto_air.rules правило "Auto_air" когда Предмет Hum_H_T_sens получил обновление затем если (Hum_H_T_sens.state > Set_hum.state && Air_H_T_switch.state==OFF && Set_auto_air.state==ON){ Air_H_T_switch.sendCommand (ВКЛ) } еще если (Hum_H_T_sens.state < Set_hum.state && Air_H_T_switch.state==ON && Set_auto_air.state==ON){ Air_H_T_switch.sendCommand (ВЫКЛ.
) } конец Ну собственно вам нужно отображать созданные «Элементы» на экране дашборда в Habpanel. Для настройки уровня влажности «Предмет» используйте тип «Ползунок».
Графики
Еще одной приятной особенностью системы является статистический сбор данных в базы данных и отображение в виде графиков.Давайте создадим графику! Сначала необходимо настроить базу данных.
По умолчанию OpenHab предлагает работу с базой данных Rrd4j, но мне не удалось ее правильно настроить.
Поэтому я начал использовать MySQL (как-то более привычно).
Для работы с базой данных необходимо установить в систему дополнение.
На вкладке «Дополнения» пользовательского интерфейса Paper выберите в разделе «Постоянство» MySQL Persistence (установить).
Мы создали базу данных и сейчас настраиваем ее.
Для этого мы должны создать файл (если он отсутствует) в папке на сервере: /etc/openhab2/persistence/mysql.persist, в котором мы должны указать стратегию сбора данных (например, ежечасно, ежедневно, еженедельно).
.
) и указать, какие «Предметы»» применительно к какой стратегии будут храниться.
Например, вот содержимое: mysql.persist // Стратегии персистентности имеют имя и определение и упоминаются в разделе «Элементы».
Стратегии { // если для элемента ниже не указана стратегия, будет использован список по умолчанию каждую минуту: "0 * * * * ?" каждые5минут: "0 */5 * * * ?" каждый час: "0 0 * * * ?" каждый день: "0 0 0 * * ?" по умолчанию = каждое изменение } /* * В каждой строке этого раздела указано, к какому продукту(ам) следует применить стратегию(и).
* Вы можете перечислить отдельные элементы, использовать «*» для всех элементов или «groupitem*» для всех членов группы.
* элемент (кроме самого элемента группы).
*/ Предметы { // сохраняем все элементы один раз в день и всякий раз, когда они изменяются, восстанавливаем их из базы данных при запуске //*: Strategy = EveryChange, EveryDay, RestoreOnStartup // кроме того, каждый час сохраняются все значения температуры и погоды Weather_Temperature, Temp_H_LR_sens, Temp_H_BR_sens, Temp_H_T_sens, Temp_H_KT_sens, TP_H_H_sens, TP_H_KT_sens, Weather_Humidity, Hum_H_LR_sens, Hum_H_BR_sens, Hum_H_T_sens, Hum_H_KT_sens: стратегия = каждую минуту, восстановление при запуске } После создания файла система начнет сбор данных.
Нам нужно настроить панель управления Habpanel для отображения графиков.
Возвращаемся в графический интерфейс Habpanel, переходим в нужное место и добавляем новый виджет, выбрав тип «Графики».
Называем его как хотим, «Тип» выбираем «n3-line-chart (интерактивный)», «Поставщик услуг» — mysql, «Период» — день отображения периода (D).
Во вкладке «Серии» — привязываем нужный нам «Предмет».
И вуаля! Получаем красивый график!
Ну а следующий шаг чисто любительское занятие - крепим планшет на стену! О_о для этого я взял две магнитные карты формата em-marin (те, что очень тонкие) и приклеил клеем (Уху) два неодимовых магнита по краям карты.
Такие площадки с магнитами крепим на двусторонний скотч (хороший тонкий) на заднюю часть планшета и на стену.
Кстати, в розетку заранее устанавливается блок питания MeanWell 5В с кабелем microUSB. Планшет на стене!
Прошу прощения за особенность подачи материала (ничего подобного раньше не писал).
Если пост будет хотя бы столь же популярен, в следующем я опишу особенности настройки мобильного приложения.
Надеюсь, это будет полезно.
Всем умного дома))) Теги: #Сделай сам или Сделай сам #Умный дом #openhab
-
Отличные Предложения С Bluetooth-Гарнитурой
19 Oct, 24 -
Сайт Запущен
19 Oct, 24 -
Цветовые Схемы В Vim
19 Oct, 24