Как установить 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 на Raspberry Pi 3 Model B

Итого openhab2 версии 2.3.0 успешно установлен. Не знаю, почему встречал на многих форумах что пакет openhab тяжело установить и люди имеют с ним проблемы, как я вижу из своего опыта нет ничего сложного. На этом данная часть заметки завершена, до новых встреч, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

image

В этом посте я расскажу об 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) «налету», не перезагружая весь сервер.

image


Плагин (биндинг) в 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 на клиенте без перезагрузки сервера.

image

С помощью REST API. openHAB сервер предоставляет такой API не только для посылки команд каждому item-у, но и для получения клиентом данных от устройств в режиме реального времени. Этот же REST API предоставляет информацию о 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
openHAB также предоставляет IDE для того, чтобы можно было легче писать скрипты. IDE называется openHAB Designer и распространяется для кажой отдельной ОС.
В итоге вы получаете средство автокомплита и подсветки синтаксиса, что несколько упрощает написание кода на 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, и, к примеру, одним кликом выключить весь свет в доме, даже если это светильники и системы разных производителей и моделей.

Вам также может понравиться

Read more about the article OpenHab — Часть 3 — Базовая настройка и взаимодействие с Устройствами, Логирование

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! Подтверждаем повешение привилегий и ждем окончания работы программы.

установка openhab 3 etcher openhabian 3

После установки подключаемся к Raspberry Pi по SSH. Пользователь по умолчанию openhabian , пароль openhabian . Запускаем конфигуратор:

openhabian configuration tool

В меню 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 setup wizard set administrator

В мастере первоначальной настройки указываем часовой пояс:

openhab 3 setup wizard set ntp

Указываем местоположение, можно выбрать установив точку на интерактивной карте:

openhab 3 setup wizard set location

Первоначальная настройка OpenHAB 3 завершена:

openhab 3 setup wizard complete

Знакомство с OpenHAB 3

OpenHAB 3 избавился от лишних интерфейсов, теперь используется единый интерфейс с семантическими моделями. Семантическая модель подразумевает под собой то, что все элементы должны иметь семантический тэг, который позволяет OpenHAB понять, что представляет из себя элемент.

openhab3 semantic modelling

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

openhab 3 home places

В разделе оборудование устройства объединены по семантическим тэгам. К сожалению тэг «Розетка» отсутствует.

openhab 3 home equipment

Для вызова Frontail, интерфейса Basic UI и OpenHAB Panel появилась кнопка быстрого доступа.

openhab 3 more applications

OpenHAB 3 становится проще и понятнее для пользователей, теперь правило можно создавать, используя графический интерфейс, который сильно уменьшает возможность допущения ошибок:

openhab 3 rules design

А вот код этих правил написан на YAML, синтаксис которого на любителя.

openhab 3 rules code

Скрипты теперь можно создавать при помощи интерактивного блочного режима, ECMAScript или Rule DSL.

openhab 3 scripts block

Отдельным режимом добавили «Расписания». Теперь доступно и понятно можно создать расписание, как я понимаю, это обычное правило, только с тэгом Shedule . Предлагается создать расписание из двух видов:

  1. Ежедневный запуск в определенное время.
  2. Создание индивидуального расписания основанного на синтаксисе планировщика 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.

Фотография Raspberry Pi 2, используемой в качестве контроллера OpenHAB

Эта маленькая вещь может стать лучшим умным домом, который у вас когда-либо был!

На момент написания последней стабильной версией OpenHAB была версия 1.71; скоро ожидается версия 1.8, и все в этом руководстве все еще должно быть актуально, хотя некоторые привязки могут иметь больше функций. Версия 2 в настоящее время также доступна в качестве очень раннего альфа-предварительного просмотра, но принимает архитектуру, совершенно отличную от серии OpenHAB 1: это руководство не совместимо с версией 2.

Хорошая новость заключается в том, что, как только он заработает, он станет невероятно полезным и невероятно полезным.

Установка OpenHAB

Начните с самого последнего (полного) Raspbian SD-образа (не «облегченной» версии, они не включают виртуальную машину Java). Подключите сетевой кабель, затем загрузитесь и перейдите по SSH. Бежать:

Расширить файловую систему; и из расширенного меню измените разделение памяти на 16. Когда вы закончите, перезапустите и, как хорошая практика, запустите полное обновление

При необходимости измените имя рабочей группы, но в противном случае включите поддержку WINS:

(вам нужно раскомментировать строку и изменить «нет» на «да»)

затем добавьте следующее в раздел определений общего ресурса (прокрутите до самого конца длинного файла):

Я также закомментировал раздел «Принтеры». Я сделал две публикации, так как файлы конфигурации на самом деле хранятся отдельно от надстроек.

Сохранить и выйти. Наконец, нам нужно установить пароль Samba для пользователя openhab:

Я бы предложил «openhab» в качестве пароля только для простоты использования, но это не имеет значения.

После перезапуска Samba (более старые установки используют перезапуск samba службы sudo), проверьте доступ к общему диску. Это не может быть автоматически обнаружено на Mac; но вы можете использовать искатель -> Идти -> Подключиться к серверу и адрес

ошибка при первом запуске openhab

Сейчас самое время изучить команду для привязки журнала OpenHAB, чтобы вы могли следить за ошибками.

Продолжайте работать и открывайте его в отдельном окне SSH все время, пока продолжаете работу с руководством.

Установите демонстрационный дом

После того, как вы разархивировали его, есть две папки: аддоны а также конфигурации.

демо-контент openhab

Используя сетевые ресурсы, скопируйте конфигурации к OpenHAB Config поделиться и перезаписать существующую папку. копия аддоны к другому OpenHAB Home поделитесь, опять же перезаписав существующие папки. Если вам не предлагается что-то перезаписать, вы делаете это неправильно. Если вы заметили файл журнала отладки, вы должны увидеть трепет активности, когда он замечает новые привязки и жужжание в действии. Откройте raspberrypi.local: 8080 / openhab.app? Sitemap = demo, чтобы увидеть демо.

Скриншот веб-интерфейса демонстрационного дома OpenHAB

файл демонстрационного примера карты сайта

Это довольно сложно, но по большей части вы будете копировать фрагменты кода из примеров в других местах, чтобы создать свой собственный пользовательский интерфейс. Вот технический обзор всех возможных элементов карты сайта, но пока достаточно просто подумать о том, какой интерфейс вы хотите создать, и какую информацию вы хотите отобразить.

Пока вы там, откройте элементы / demo.items тоже. Опять же, выглядит страшно, но здесь вы создаете элементы для управления и определяете датчики для отслеживания.

Так как же работает OpenHAB?

Теперь, когда вы быстро просмотрели папку «Карта сайта» и «Элементы», давайте разберем, что это за файлы, а также другие основные компоненты OpenHAB, которые объединяются для создания полноценного умного дома. Подкаталоги для каждого из них вы найдете в общей папке OpenHAB Config.

Sitemaps касается только интерфейса, который вы увидите при открытии мобильного или веб-приложения OpenHAB. Вы можете точно контролировать, как вы хотите, чтобы кнопки были расположены и информация была представлена. Вы можете определить группы верхнего уровня для каждой комнаты вашего дома; щелкнув по каждой из них, вы увидите список всех устройств в этой комнате. Или вы можете предпочесть показывать группы для каждого типа устройства: кнопка для освещения, другая для электрических розеток. Возможно, некоторые устройства вы используете так часто, что вам просто нужно переключиться на них прямо на главном экране.

правила Здесь вступает в игру аспект домашней автоматизации, где вы можете определить расписание или условия для действия, которое должно произойти. Простые события, такие как включение света в спальне в 10 вечера в теплый красный цвет; или более сложная логика, например, включение обогревателя, если температура ниже 0 и в этой комнате кто-то присутствует. Вы также найдете скрипты папка, которая предлагает функциональность, аналогичную правилам, но на более сложном уровне программируемой логики.

Карта сайта а также Предметы файлы необходимы для запуска OpenHAB; остальные не являются обязательными. У вас может быть несколько файлов Sitemap и элементов, так что вы можете сохранить демонстрационный контент и вернуться к нему в любое время, или попробовать новый макет для вашего интерфейса управления домом. Не беспокойтесь, если все это покажется ошеломляющим, мы разберем его на управляемые части, и я обещаю, что к концу этого руководства вы будете уверены, что создадите свою собственную настройку OpenHAB.

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

Начните с создания нового (пустого) home.items файл и новый home.sitemap файл в соответствующих каталогах. Открыть home.sitemap и вставьте следующий код. Это просто основной скелет, к которому мы добавим биты позже.

Вы должны увидеть уведомление о том, что OpenHAB идентифицировал новый файл Sitemap и файл элементов.

openhab новая карта сайта и предметы

Включить режим отладки

Несмотря на то, что вы все еще пытаетесь заставить OpenHAB работать правильно, может быть полезно включить более подробный журнал отладки, в котором перечислены все, а не только важные вещи. Чтобы включить этот режим, откройте общую папку OpenHAB Config и отредактируйте logback.xml. В строке 40 измените следующую строку на DEBUG вместо INFO. Вам нужно будет перезагрузить после изменения этого.

Это глобальное изменение, поэтому вы получите гораздо больше информации, как только вы подключите файл журнала.

Добавление Philips Hue

конфиг openhab

Затем откройте home.items файл, к которому мы добавим несколько лампочек Hue. Вот пример определения элемента:

Я добавил в общей сложности четыре лампочки, а также простую декларацию групп, о которых мы расскажем позже. Вот мой полный home.items с этой точки зрения:

Код, используемый для описания интерфейса, отличается от элементов, но сейчас мы создадим новый «фрейм» и добавим пару групповых элементов управления вместе с некоторыми значками.

openhab первая карта сайта

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

openhab группа огней Hue demo

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

Удаленный доступ и IFTTT с My.OpenHAB

Сначала: установите привязку. Совет: если вы не знаете точного имени определенного установочного пакета, попробуйте найти его с помощью apt-cache.

apt-cache search

Прежде чем вы сможете зарегистрироваться на сайте My.OpenHAB, вам необходимо создать секретный ключ и найти свой UUID, который однозначно идентифицирует вашу установку. Проверьте под OpenHAB Home поделиться -> WebApps -> статический и вы должны найти файл UUID, содержащий ваш уникальный идентификатор. В этот момент я обнаружил, что мой Pi использует более старую версию Java, которая неправильно создает секретный ключ. Тип

Проверять. Если он не говорит 1.7 или выше, у вас неверная версия. Как ни странно, последняя версия Raspbian поставляется с установленной Oracle Java 8, но не по умолчанию.

Обратите внимание, что я не определил значок или не привязал конкретную привязку. Это просто общий переключатель.

Затем вставьте совместимый USB-ключ Bluetooth и установите несколько основных инструментов для взаимодействия с ним.

Последняя команда должна показать ваш адаптер Bluetooth. Если ничего не указано, попробуйте другой адаптер, ваш не совместим с Linux. Следующим шагом будет поиск аппаратного адреса Bluetooth вашего устройства.

Убедитесь, что ваш телефон открыт на странице настроек Bluetooth (которая переводит его в режим сопряжения / общедоступный режим), и, очевидно, что Bluetooth активирован. Вы должны найти шестнадцатеричный аппаратный адрес в списке.

Bluetooth идентифицирован

Из вашего домашнего каталога пользователя Pi создайте новый скрипт Python и вставьте этот код.
Есть несколько вещей, которые вам нужно отредактировать, начиная с вашего конкретного адреса устройства:

Как и эта строка, которая находится в двух местах (да, это, вероятно, могло бы быть структурировано лучше). Измените JamesInOffice на кодовое имя определенного вами переключателя.

Последний шаг - сказать этому скрипту запускаться во время загрузки.

Прокрутите вниз до конца и перед выходом 0 добавьте следующие строки:

знак означает «сделать это на заднем плане». Запустите скрипт, если вы этого еще не сделали, и откройте свой интерфейс OpenHAB. Если вы добавили его в группу, нажмите на эту группу. Обновление занимает около 10 секунд, но вы увидите, что значок лампочки по умолчанию включается или выключается в зависимости от того, обнаружен ваш телефон или нет. Проверьте файл журнала, если ничего не происходит, возможно, вы использовали неправильное имя элемента.

Мобильное приложение OpenHAB

openhab мобильных

Движение вперед и получение справки

). Да, это абсолютная боль в установке, но ни одна коммерческая система не может приблизиться к мощности настраиваемой системы OpenHAB.

Тем не менее, поездка была совсем не легкой для меня, именно поэтому я написал это руководство, чтобы облегчить процесс для вас. И если вы обнаружите, что система OpenHAB перегружена, есть и другие варианты, когда речь идет о домашней автоматизации Raspberry - например, использование Raspberry Pi для автоматизации ваших гаражных ворот.

Оставайтесь с нами на MakeUseOf для расширенного руководства, которое охватывает Z-Wave и другие интересные трюки, которые вы можете настроить.

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

Читайте также: