Как установить openhab на linux
Обновлено: 04.07.2024
Цель заметки: Составить пошаговые действия дабы развернуть на миникомпьютере Raspberry Pi 3 Model B сервис аналогичный, как заявляет производитель по организации своего «Умного дома». Этот сервис именуется, как OpenHAB. Есть и другие сервисы, к примеру MajorDoMo. Но его использование у меня почему-то не задается, может в связи с тем, что на php плохо получается описывать логику. Хочу найти то что мне будет ближе, либо же найду себя. Как я понял OpenHAB строится на Java, вот и будет плавная возможность развиваться в этом направлении.
Как всегда с основной домашней системы Ubuntu 18.04 Desktop amd64 ноутбука Lenovo E555 подключаюсь к миникомпьютеру по ssh:
$ ssh -l pi 172.40.40.36
Настраиваю систему Raspbian по своей недавно составленной заметке:
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.4 (stretch)
После по заметке устанавливаю пакет java в систему и проверяю что работает:
$ sudo apt-get update
$ sudo apt-get install openhab2-addons openhab2-addons-legacy openhab2 -y
$ sudo systemctl daemon-reload
$ sudo systemctl enable openhab2
Synchronizing state of openhab2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable openhab2
Created symlink /etc/systemd/system/multi-user.target.wants/openhab2.service → /usr/lib/systemd/system/openhab2.service.
$ sudo systemctl start openhab2
Т.к. сервис поднимается не вот прям сразу, а по прошествии нескольких минут то паниковать не обязательно. После проверяю, что порт 8080 поднялся:
$ sudo netstat -tulpn | grep :8080
tcp6 0 0 . 8080 . * LISTEN 7947/java
Итого openhab2 версии 2.3.0 успешно установлен. Не знаю, почему встречал на многих форумах что пакет openhab тяжело установить и люди имеют с ним проблемы, как я вижу из своего опыта нет ничего сложного. На этом данная часть заметки завершена, до новых встреч, с уважением автор блога Олло Александр aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
В этом посте я расскажу об opensource проекте домашней автоматизации openHAB.
openHAB переводится как "Open Home Automation Bus". Это значит, что он нацелен на создание универсальной платформы для объединения всей домашней «умной» техники в единую систему управления.
Что же это дает на практике? Под катом я расскажу о том, как с помощью этого решения можно создать настоящий интернет вещей в своем доме.
Что такое «единая платформа домашней автоматизации»?
Направление умных домов развивается уже давно. За это время появилось множество различных поставщиков «умного» оборудования (освещение, RGB подсветки, термостаты, приводы для штор/жалюзи, разнообразные датчики и т.п.) Все они работают на разных протоколах (проводных и беспроводных).
В результате, пользователь, желающий автоматизировать свое жилище, должен выбирать между продуктами от различных производителей. В конечном итоге ему приходится пользоваться разными системами (пульты, приложения) для контроля разных устройств. Вдобавок, задача создания полноценного интернета вещей (когда устройства могут быть связаны в единую цепь и управляться все вместе в результате каких-либо условий и событий) становится очень сложной.
При условии, что привод штор — это ZWave, верхний свет — KNX, а подсветка — несколько цветных лампочек Phillips Hue, надо как-то научить их «разговаривать» между собой. Не забывайте также про условие относительно темного времени суток…
Чем поможет openHAB
openHAB реализует единую шину, т.е. позволяет объединить все устройства с разными протоколами в единую сеть, абстрагируя пользователя от каждого конкретного протокола. Таким образом, можно пользоваться единственным средством управления (скажем, приложением на смартфоне) и реализовать сколь угодно сложную логику взаимосвязи между устройствами.
Что отличает проект openHAB от аналогов?
Во-первых, он развивается уже довольно давно и уже сейчас готов к полноценному использованию. По своему личному опыту (впервые я начал работать с этой системой около года назад) могу сказать, что его освоение занимает совсем немного времени. И после этого он работает действительно так, как заявлено в описании.
Сейчас разработчики трудятся уже над вторым поколением платформы, основанной на специализированном фреймворке Eclipse SmartHome.
Во-вторых, это проект с открытым исходным кодом. А это значит, что весь код создается программистами со всего мира, которые заинтересованы в теме интернета вещей и создания единой системы умного дома. Этот код доступен в репозитории GitHub.
В-третьих, в результате открытости уже сейчас openHAB поддерживает около 50 (пятидесяти!) различных протоколов «умных» устройств. Среди них ZWave, KNX, EnOcean, системы мультимедиа типа Sonos, кинотеатр XBMC, Samsung SmartTV и многие-многие другие. Это, в свою очередь, дает возможность пользователю выбирать устройства для своего дома по самым разнообразным параметрам, практически не ограничиваясь возможностями всей платформы.
Как это работает?
openHAB — это специальный сервер, который может работать на любом компьютере под управлением любой ОС (вы даже можете использовать RaspberryPi). Вся установка заключается в распаковывании дистрибутива сервера и установке Java машины. Далее начинается процесс настройки и созидания.
openHAB — это очень гибкий конструктор. Основанный на технологии OSGi, он позволяет конфигурировать каждый отдельный плагин (Binding) «налету», не перезагружая весь сервер.
Плагин (биндинг) в openHAB — это то самое связующее звено между конкретным протоколом устройства и единой системой openHAB. Пользователь может добавить в свою инсталяцию openHAB только те плагины, которые нужны именно ему. Например, если у вас есть только ZWave и Phillips Hue, то вам понадобятся только два биндинга.
После настройки связи между каждым устройством и соответствующим биндингом система сможет общаться с ним посредством простых команд, абстрагированных от конкретного протокола. Скажем, для включения/выключения есть команды ON/OFF, для открытия/закрытия UP/DOWN и т.д.
В дальнейшем, используя только такие абстрактные команды, можно будет создавать очень сложные сценарии и, что называется, программировать собственный дом.
Настройка item-ов и binding-ов
Каждое «умное» устройство в доме должно быть сконфигурировано в openHAB как один или несколько item-ов. Они описываются в специальном файле в директории configuration/items. Вот пример одного такого item-а
Dimmer Light_GF_Living_Table "Table" (GF_Living, Lights)
Здесь описан один item с именем Light_GF_Living_Table и типом Dimmer. Т.е. это некое устройство, которое может быть диммировано (включено, выключено или изменить свое значение в диапазоне от 0 до 100). Как правило, диммерами являются различные световые приборы, но также это может быть диммируемая розетка, или что-либо еще.
Важно понимать, что item в конфигурации не обязан быть отдельным устройством. Скажем, я мог бы сконфигурировать диммер для управления только одной функцией какого-либо более сложного устройства, например, громкости домашнего кинотеатра или мощностью работы конвекторов. Вот пример использования диммера для управления громкостью:
Dimmer Volume "Volume [%.1f %%]"
Как видите, openHAB дает возможность использовать разные item-ы как элементы управления для всего, что подходит под какие-либо критерии (в данном случае, что-то должно уметь включаться, выключаться и принимать значение от 0 до 100).
Имя item-а дает возможность привязывать к нему элементы UI в конфигурации пользовательского интерфейса (sitemap) и обращаться к нему в коде ваших скриптов и правил (об этом чуть дальше).
В общем случае, синтаксис описания item-а таков
itemtype itemname ["labeltext"] [] [(group1, group2, . )] []
Как видите, сперва идет тип (Switch, Dimmer, Color, String, Number, Rollershutter, DateTime, Contact, Group), затем уникальное в рамках файла имя, опциональные label (то, что будет отображено в UI), иконка (из набора openHAB), одна или несколько групп (для объединения устройств по смыслу или расположению) и собственно конфигурация самого биндинга - в фигурных скобках;
На сайте openHAB можно скачать demo конфигурацию, в которой можно увидеть, как описываются группы, item-ы и все остальное на примере довольно интересного варианта умного дома с использованием как простых устройств (выключателей, светильников), так и мультимедии.Подробное описание каждого типа и список возможных команд представлен на странице Explanation-of-Items
Binding - или как связать item с устройством
Switch Light_GF_Living_Table "Table" (GF_Living, Lights) < knx="1/0/15+0/0/15" >
У каждого биндинга свой синтаксис конфигурации. В openHAB это одна строчка в фигурных скобках, в которой необходимо указать все что нужно для связи с устройством по конкретному протоколу. Здесь указан протокол KNX и его конфигурация в виде двух адресов - 1/0/15 для управления и 0/0/15 для получения статуса от устройства.
Как я уже сказал ранее, openHAB уже сейчас содержит в своем репозитории около 50-ти биндингов для самых разнообразных устройств и систем. Любой программист может реализовать свой собственных биндинг для какого-то устройства, для которого еще нет биндинга. Весь список можно найти на странице BindingsСреди вполне конкретных плагинов есть и абстрактные, как например Bluetooth биндинг, позволяющий управлять любым bluetooth устройством.
Также не забывайте, что у каждого биндинга есть набор глобальных настроек, которые нужно указать в файле configuratnios/openhab.cfg. Например, для KNX - это IP адрес knx шлюза, который связывает knx-шину с IP сетью.
Пользовательский интерфейс
Здесь openHAB предлагает довольно интересный способ построения UI "на лету" с помощью файлов описания sitemap. В директории configuratnios/sitemaps лежат файлы, в которых нужно описать то, как должен выглядеть пользовательский интерфейс (а точнее, его layout) для управления теми устройствами, которые мы описали в items. Вот простейший пример
Здесь UI состоит только из одного "фрейма" (не путать с фреймами в терминах HTML), в котором есть 4 элемента (два слайдера для управления диммерами, выбор цвета для подсветки, простой переключатель). Список всех возможных элементов интеофейса можно найти на странице Sitemaps.
Почему UI нужно описывать именно так? Почему бы просто не использовать тот же HTML?
Дело в том, что sitemap - это абстрактное описание того, как должен выглядеть интерфейс. Любая программа (например, для смартфона) или javascript клиент в браузере может отрендерить интерфейс по такому описанию по-своему. Таким образом, openHAB абстрагирует описание интерфейса от конкретной реализации.
К слову, кроме веб-интерфейса openHAB предоставляет клиентов под Android и iOS (не учитывая того, что любой программист может написать своего собственного клиента под любую платформу). И что также важно - любое изменение sitemap приводит к измнению UI на клиенте без перезагрузки сервера.
Программируем "умный дом"
И вот наконец мы подобрались к самой интересной части - программированию поведения умного дома!
Все что было кратко описано до этого позволяет настроить связь item-ов с биндингами и правильно отобразить элементы управления в UI. Но openHAB еще предоставляет очень мощный инструмент программирования логики - скрипты и правила. С помощью них можно описать действительно умное поведение устройств в зависимости от разных условий.
Скрипты и правила описываются в файлах директорий scripts и rules соответсвенно на языке Xtend, разработанном Eclipse.
Если скрипт - это кусок кода, который может быть запущен в какой-то момент, то правила - это основной механизм автоматизации. На нем и остановимся подробнее.
И сразу пример простого правила:
При поступлении команд increase/decrease с диммера Volume срабатывает простое правило Volume control, которое увеличивает или уменьшает громкость системы, на которой работает opеnHAB сервер.
Вот еще один пример:
Здесь при включении системы каждое устройство в группе Lights включается в 30 процентах случаев.
При этом в sitemap отображается только один элемент Colorpicker
В итоге правило, преобразующее данные от Colorpicker в команды на каждый из диммеров выглядит вот так
Как видите, правила - это не только инструмент автоматизации, но и способ обойти некоторые ограничения или реализовать особенности конкретного устройства.
Да, изменение в исходнике правила также приведет к его автоматической перезагрузке без перезапуска. Подробности о возможностях правил и скриптов, а также множество примеров можно найти на странице Rules
Триггеры
- поступление команды от item-а (например, при включении Switch через UI)
- изменение состояния item-а (например, в момент открытия штор от привода последовательно приходят значения от 0 до 100)
- изменение текущего времени на сервере openHAB (например, Time is midnight )
- старт или остановка сервера opnaHAB
В итоге вы получаете средство автокомплита и подсветки синтаксиса, что несколько упрощает написание кода на Xtend. Часто пользователи воспринимают название Designer как некое средство визуализации. Это не так - никакой визуализации там нет :)
Освоить Xtend в рамках описания логики умного дома несложно. Главное понимать цель, которую хочется достичь в результате работы правила или скрипта и возможности самих устройств.
В итоге
openHAB дает действительно интересную возможность своими силами запрограммировать "умный дом", не ограничивая себя в выборе устройств и тех протоколов, на которых они работают.
Здесь я постарался очень кратко рассказать о самом основном, что несет нам весь проект. По моему личному опыту могу сказать, что автоматизация с openHAB, конечно же, не лишена недостатков, но все же превращается в очень увлекательное занятие.
Если у вас возникнут вопросы или пожелания по теме следующей статьи, с удовольствием готов более полно раскрыть какую-либо сторону использования openHAB.
В продолжение первой части, поговорим о том, с какими устройствами openHab работает у меня дома, для каких еще устройств существует поддержка, и научимся устанавливать систему на Debian системы (Ubuntu, Raspberry Pi и иже с ними).
Материал довольно объемный, поэтому разделю эту публикацию на части. Те, кто знаком с продукцией Xiaomi для умного дома, в принципе, может пропустить первую часть.
Оглавление
- Почему Xiaomi
- Что я использую c openHab кроме девайсов Xiaomi
- А какие еще устройства поддерживает openHab
- Устанавливаем openHab (Ubuntu)
Почему Xiaomi
В идеале, умный дом имеет централизованный узел управления всеми электро-потребителями. Такой узел, неизбежно внушительных размеров, как правило устанавливается рядом с электрораспределительным щитком. Таким образом, скажем, выключатель света в комнате не связан с лампой на потолке напрямую. Напротив, низковольтный настенный выключатель лишь подает команду исполнительному устройству в узле управления, и оттуда уже подается 220 на лампу. Несмотря на все преимущества данного подхода, реализация подобного проекта сопряжена с проводкой невероятно большого количества разномастной электропроводки и скрупулезной коммутации миллиона соединений в щитке. Подобную операцию возможно произвести только на этапе строительства или масштабного ремонта помещений.
На основании вышесказанного, я остановился на продукции Xiaomi. Многие устройства у меня работают уже по 2 года, и, я полагаю, будут исправно служить еще долго. Проблем с какими либо устройствами, будь то выключатели или сенсоры, не было никаких.
Что я использую c openHab кроме девайсов Xiaomi
А какие еще устройства поддерживает openHab
Устанавливаем openHab (Ubuntu)
По сути установка очень проста и сводится к рутинному запуску последовательности команд, расписанных в официальной документации (здесь и здесь).
Поскольку openHab написан на Java, именно с этого и начнем установку. Разумеется, если у вас уже установлены пакеты Java, этот этап можно пропустить.
Разработчики openHab рекомендуют 8 версию платформы Zulu Java, поэтому будем ставить ее. Кроме того, обратите внимание, что для процессоров ARM нужно в любом случает ставить 32-битную версию Java.
Начать установку, я бы рекомендовал с конфигурирования статичного IP адреса для вашего сервера, если это не было сделано раньше. В последних версиях Ubuntu это делается путем редактирования файла /etc/netplan/01-netcfg.yaml:
Итоговый вид примерно такой:
Понятное дело, что адреса указаны для примера, и в вашем случае будут другими. Применяем изменения командой:
Теперь ставим Java. Выполняем следующие команды от супер-пользователя, для того чтобы добавить репозиторий Zulu Java:
Теперь можно установить Java:
Далее, добавляем репозитории openHab:
Устанавливаем openHab и дополнения:
Запускаем openHab и добавляем его в системные службы, запускающиеся автоматом при старте операционной системы:
На этом установка закончена. Закончена и эта публикация. В следующей мы начнем учиться конфигурировать систему, определять объекты и взаимодействовать с ними. К примеру, я покажу насколько просто использовать всю гибкость openHab, и, к примеру, одним кликом выключить весь свет в доме, даже если это светильники и системы разных производителей и моделей.
Вам также может понравиться
OpenHab — Часть 3 — Базовая настройка и взаимодействие с Устройствами, Логирование
Добавить комментарий Отменить ответ
Вы должны быть авторизованы, чтобы оставить комментарий.
Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.
В конце 2020 года вышло большое обновление OpenHAB с версии 2 до версии 3. Как утверждают разработчики, OpenHAB 3 стал более простым, современным и функциональным.
Не так давно я уже писал про установку OpenHAB 2, но с выходом третьей версии решил обновить статью, заодно посмотреть какие отличия появились в сравнении со второй линейкой.
OpenHAB можно ставить на различные ОС, для Raspberry Pi есть готовая отдельная сборка OpenHABian, в комлекте которой есть всё необходимое для работы: SSH, Samba, Frontail, доступ к файловой системе.
Установка OpenHABian
Развернутая система после установки занимает более 4Гб, карты памяти на 16Гб должно хватить под систему, базу и дополнительно устанавливаемые пакеты.
Скачиваем и устанавливаем программу balenaEtcher, скачиваем установочный образ OpenHABian. Запускаем Etcher, выбираем Flash from file , в открывшемся окне выбираем скачанный образ, выбираем flash накопитель для установки, кнопка Flash! Подтверждаем повешение привилегий и ждем окончания работы программы.
После установки подключаемся к Raspberry Pi по SSH. Пользователь по умолчанию openhabian , пароль openhabian . Запускаем конфигуратор:
В меню System Settings устанавливаем:
- Change hostname - имя компьютера в сети (По желанию)
- System locale - По желанию устанавливаем язык интерфейса в консоли ru_RU.UTF-8
- Set system timezone - Устанавливаем свой часовой пояс
- Enable NTP - Включаем синхронизацию часов компьютера
- Change passwords - Меняем пароль для пользователя openhabian в сервисе Linux system
- Если необходим Wi-Fi настраиваем в меню WiFi setup , если не нужен отключаем Disable WiFi
Пароль пользователя изменяется сразу после изменения, остальные настройки применяются после перезагрузки Raspberry Pi.
Открываем в web браузере страницу:
В OpenHAB 3 полностью переработали пользовательский интерфейс, теперь при первом запуске необходимо установить учетную запись администратора и выполнить первоначальные настройки:
В мастере первоначальной настройки указываем часовой пояс:
Указываем местоположение, можно выбрать установив точку на интерактивной карте:
Первоначальная настройка OpenHAB 3 завершена:
Знакомство с OpenHAB 3
OpenHAB 3 избавился от лишних интерфейсов, теперь используется единый интерфейс с семантическими моделями. Семантическая модель подразумевает под собой то, что все элементы должны иметь семантический тэг, который позволяет OpenHAB понять, что представляет из себя элемент.
Теперь на домашней странице элементы автоматически отображаются только если в них указан семантический тэг.
В разделе оборудование устройства объединены по семантическим тэгам. К сожалению тэг «Розетка» отсутствует.
Для вызова Frontail, интерфейса Basic UI и OpenHAB Panel появилась кнопка быстрого доступа.
OpenHAB 3 становится проще и понятнее для пользователей, теперь правило можно создавать, используя графический интерфейс, который сильно уменьшает возможность допущения ошибок:
А вот код этих правил написан на YAML, синтаксис которого на любителя.
Скрипты теперь можно создавать при помощи интерактивного блочного режима, ECMAScript или Rule DSL.
Отдельным режимом добавили «Расписания». Теперь доступно и понятно можно создать расписание, как я понимаю, это обычное правило, только с тэгом Shedule . Предлагается создать расписание из двух видов:
- Ежедневный запуск в определенное время.
- Создание индивидуального расписания основанного на синтаксисе планировщика Cron, но для удобства имеющий графическую оболочку.
На первый взгляд изменения, внесенные в OpenHAB 3 очень приятны, как это будет выглядеть на реальной боевой конфигурации покажет время и тесты. Радует то, что разработчики не отказались от файловой конфигурации в пользу графической настройки и поддерживают оба варианта.
вы когда-нибудь найдете.
Это руководство доступно для скачивания в формате PDF. Загрузите Начало работы с OpenHAB Home Automation на Raspberry Pi сейчас. Не стесняйтесь копировать и делиться этим со своими друзьями и семьей.
В первой части этого руководства особое внимание уделено тому, как настроить OpenHAB с помощью Raspberry Pi 2, но в дальнейшем учебные пособия и советы можно применять везде, где установлен OpenHAB.
В этом руководстве рассматриваются три вводные темы и еще одна более сложная.
- Запуск и запуск OpenHAB на Pi и установка конфигурации демонстрационного дома для проверки работоспособности основных систем.
- Как добавить привязки и профили для устройств. Я буду работать с Philips Hue.
- Включение удаленного доступа и подключение к IFTTT.
- Добавление датчика присутствия DIY с использованием Bluetooth и введение в интерфейс REST.
- Настройка мобильного приложения OpenHAB.
Что вам нужно
По крайней мере, вам понадобится Raspberry Pi (предпочтительно v2) и адаптер Ethernet или беспроводной адаптер (предпочтительно Ethernet, в это руководство не будут включены инструкции по настройке адаптера Wi-Fi).
). Все остальное необязательно. Обратите внимание, что OpenHAB будет работать на оригинальной Raspberry Pi, но есть известная проблема с более медленной обработкой и устройствами Z-Wave. Если вам не нужна Z-Wave, вы можете спокойно проигнорировать это предупреждение и перейти к модели Raspberry Pi модели B или B +, потому что все остальное работает нормально. Вы всегда можете перейти на последнюю версию Pi, если и когда вы добавите Z-Wave.
Эта маленькая вещь может стать лучшим умным домом, который у вас когда-либо был!
На момент написания последней стабильной версией OpenHAB была версия 1.71; скоро ожидается версия 1.8, и все в этом руководстве все еще должно быть актуально, хотя некоторые привязки могут иметь больше функций. Версия 2 в настоящее время также доступна в качестве очень раннего альфа-предварительного просмотра, но принимает архитектуру, совершенно отличную от серии OpenHAB 1: это руководство не совместимо с версией 2.
Хорошая новость заключается в том, что, как только он заработает, он станет невероятно полезным и невероятно полезным.
Установка OpenHAB
Начните с самого последнего (полного) Raspbian SD-образа (не «облегченной» версии, они не включают виртуальную машину Java). Подключите сетевой кабель, затем загрузитесь и перейдите по SSH. Бежать:
Расширить файловую систему; и из расширенного меню измените разделение памяти на 16. Когда вы закончите, перезапустите и, как хорошая практика, запустите полное обновление
При необходимости измените имя рабочей группы, но в противном случае включите поддержку WINS:
(вам нужно раскомментировать строку и изменить «нет» на «да»)
затем добавьте следующее в раздел определений общего ресурса (прокрутите до самого конца длинного файла):
Я также закомментировал раздел «Принтеры». Я сделал две публикации, так как файлы конфигурации на самом деле хранятся отдельно от надстроек.
Сохранить и выйти. Наконец, нам нужно установить пароль Samba для пользователя openhab:
Я бы предложил «openhab» в качестве пароля только для простоты использования, но это не имеет значения.
После перезапуска Samba (более старые установки используют перезапуск samba службы sudo), проверьте доступ к общему диску. Это не может быть автоматически обнаружено на Mac; но вы можете использовать искатель -> Идти -> Подключиться к серверу и адрес
Сейчас самое время изучить команду для привязки журнала OpenHAB, чтобы вы могли следить за ошибками.
Продолжайте работать и открывайте его в отдельном окне SSH все время, пока продолжаете работу с руководством.
Установите демонстрационный дом
После того, как вы разархивировали его, есть две папки: аддоны а также конфигурации.
Используя сетевые ресурсы, скопируйте конфигурации к OpenHAB Config поделиться и перезаписать существующую папку. копия аддоны к другому OpenHAB Home поделитесь, опять же перезаписав существующие папки. Если вам не предлагается что-то перезаписать, вы делаете это неправильно. Если вы заметили файл журнала отладки, вы должны увидеть трепет активности, когда он замечает новые привязки и жужжание в действии. Откройте raspberrypi.local: 8080 / openhab.app? Sitemap = demo, чтобы увидеть демо.
Это довольно сложно, но по большей части вы будете копировать фрагменты кода из примеров в других местах, чтобы создать свой собственный пользовательский интерфейс. Вот технический обзор всех возможных элементов карты сайта, но пока достаточно просто подумать о том, какой интерфейс вы хотите создать, и какую информацию вы хотите отобразить.
Пока вы там, откройте элементы / demo.items тоже. Опять же, выглядит страшно, но здесь вы создаете элементы для управления и определяете датчики для отслеживания.
Так как же работает OpenHAB?
Теперь, когда вы быстро просмотрели папку «Карта сайта» и «Элементы», давайте разберем, что это за файлы, а также другие основные компоненты OpenHAB, которые объединяются для создания полноценного умного дома. Подкаталоги для каждого из них вы найдете в общей папке OpenHAB Config.
Sitemaps касается только интерфейса, который вы увидите при открытии мобильного или веб-приложения OpenHAB. Вы можете точно контролировать, как вы хотите, чтобы кнопки были расположены и информация была представлена. Вы можете определить группы верхнего уровня для каждой комнаты вашего дома; щелкнув по каждой из них, вы увидите список всех устройств в этой комнате. Или вы можете предпочесть показывать группы для каждого типа устройства: кнопка для освещения, другая для электрических розеток. Возможно, некоторые устройства вы используете так часто, что вам просто нужно переключиться на них прямо на главном экране.
правила Здесь вступает в игру аспект домашней автоматизации, где вы можете определить расписание или условия для действия, которое должно произойти. Простые события, такие как включение света в спальне в 10 вечера в теплый красный цвет; или более сложная логика, например, включение обогревателя, если температура ниже 0 и в этой комнате кто-то присутствует. Вы также найдете скрипты папка, которая предлагает функциональность, аналогичную правилам, но на более сложном уровне программируемой логики.
Карта сайта а также Предметы файлы необходимы для запуска OpenHAB; остальные не являются обязательными. У вас может быть несколько файлов Sitemap и элементов, так что вы можете сохранить демонстрационный контент и вернуться к нему в любое время, или попробовать новый макет для вашего интерфейса управления домом. Не беспокойтесь, если все это покажется ошеломляющим, мы разберем его на управляемые части, и я обещаю, что к концу этого руководства вы будете уверены, что создадите свою собственную настройку OpenHAB.
Далее мы проведем вас через добавление некоторого общего набора умного дома, начиная с нуля в новой карте сайта. В каждом из них будут представлены некоторые основные понятия, такие как установка привязок и определений элементов, поэтому я настоятельно рекомендую вам прочитать эти инструкции, даже если у вас нет этих конкретных устройств.
Начните с создания нового (пустого) home.items файл и новый home.sitemap файл в соответствующих каталогах. Открыть home.sitemap и вставьте следующий код. Это просто основной скелет, к которому мы добавим биты позже.
Вы должны увидеть уведомление о том, что OpenHAB идентифицировал новый файл Sitemap и файл элементов.
Включить режим отладки
Несмотря на то, что вы все еще пытаетесь заставить OpenHAB работать правильно, может быть полезно включить более подробный журнал отладки, в котором перечислены все, а не только важные вещи. Чтобы включить этот режим, откройте общую папку OpenHAB Config и отредактируйте logback.xml. В строке 40 измените следующую строку на DEBUG вместо INFO. Вам нужно будет перезагрузить после изменения этого.
Это глобальное изменение, поэтому вы получите гораздо больше информации, как только вы подключите файл журнала.
Добавление Philips Hue
Затем откройте home.items файл, к которому мы добавим несколько лампочек Hue. Вот пример определения элемента:
Я добавил в общей сложности четыре лампочки, а также простую декларацию групп, о которых мы расскажем позже. Вот мой полный home.items с этой точки зрения:
Код, используемый для описания интерфейса, отличается от элементов, но сейчас мы создадим новый «фрейм» и добавим пару групповых элементов управления вместе с некоторыми значками.
Нажмите на Все освещение чтобы увидеть каждый свет Хюэ, так как мы определили их всех как принадлежащих к этой всеобъемлющей группе огней.
Если вы видите больше элементов, чем вы думали, вы определили или получили ошибки о нескольких определениях, знайте, что, хотя вы можете загружать только одну карту сайта за раз на страницу, все карты сайта будут извлекать элементы из всех файлов .item, поэтому если Вы оставили там файл демонстрационных элементов, возможно, в ваших группах появятся дополнительные элементы. На этом этапе я бы предложил создать резервную копию содержимого демонстрационных элементов и переместить его из папки, чтобы избежать ошибок дублирования.
Удаленный доступ и IFTTT с My.OpenHAB
Сначала: установите привязку. Совет: если вы не знаете точного имени определенного установочного пакета, попробуйте найти его с помощью apt-cache.
Прежде чем вы сможете зарегистрироваться на сайте My.OpenHAB, вам необходимо создать секретный ключ и найти свой UUID, который однозначно идентифицирует вашу установку. Проверьте под OpenHAB Home поделиться -> WebApps -> статический и вы должны найти файл UUID, содержащий ваш уникальный идентификатор. В этот момент я обнаружил, что мой Pi использует более старую версию Java, которая неправильно создает секретный ключ. Тип
Проверять. Если он не говорит 1.7 или выше, у вас неверная версия. Как ни странно, последняя версия Raspbian поставляется с установленной Oracle Java 8, но не по умолчанию.
Обратите внимание, что я не определил значок или не привязал конкретную привязку. Это просто общий переключатель.
Затем вставьте совместимый USB-ключ Bluetooth и установите несколько основных инструментов для взаимодействия с ним.
Последняя команда должна показать ваш адаптер Bluetooth. Если ничего не указано, попробуйте другой адаптер, ваш не совместим с Linux. Следующим шагом будет поиск аппаратного адреса Bluetooth вашего устройства.
Убедитесь, что ваш телефон открыт на странице настроек Bluetooth (которая переводит его в режим сопряжения / общедоступный режим), и, очевидно, что Bluetooth активирован. Вы должны найти шестнадцатеричный аппаратный адрес в списке.
Из вашего домашнего каталога пользователя Pi создайте новый скрипт Python и вставьте этот код.
Есть несколько вещей, которые вам нужно отредактировать, начиная с вашего конкретного адреса устройства:
Как и эта строка, которая находится в двух местах (да, это, вероятно, могло бы быть структурировано лучше). Измените JamesInOffice на кодовое имя определенного вами переключателя.
Последний шаг - сказать этому скрипту запускаться во время загрузки.
Прокрутите вниз до конца и перед выходом 0 добавьте следующие строки:
знак означает «сделать это на заднем плане». Запустите скрипт, если вы этого еще не сделали, и откройте свой интерфейс OpenHAB. Если вы добавили его в группу, нажмите на эту группу. Обновление занимает около 10 секунд, но вы увидите, что значок лампочки по умолчанию включается или выключается в зависимости от того, обнаружен ваш телефон или нет. Проверьте файл журнала, если ничего не происходит, возможно, вы использовали неправильное имя элемента.
Мобильное приложение OpenHAB
Движение вперед и получение справки
). Да, это абсолютная боль в установке, но ни одна коммерческая система не может приблизиться к мощности настраиваемой системы OpenHAB.
Тем не менее, поездка была совсем не легкой для меня, именно поэтому я написал это руководство, чтобы облегчить процесс для вас. И если вы обнаружите, что система OpenHAB перегружена, есть и другие варианты, когда речь идет о домашней автоматизации Raspberry - например, использование Raspberry Pi для автоматизации ваших гаражных ворот.
Оставайтесь с нами на MakeUseOf для расширенного руководства, которое охватывает Z-Wave и другие интересные трюки, которые вы можете настроить.
Если вам нужна помощь с определенной частью этого руководства, пожалуйста, спросите в комментариях. Если вам нужна помощь с другим обязательным или некоторыми дополнительными темами, которые мы еще не затронули, официальные форумы OpenHAB - это гостеприимное место.
Читайте также: