DiyУмный дом

Начало работы с OpenHAB Home Automation на Raspberry Pi

Начало работы с OpenHAB Домашняя автоматизация на Raspberry Pi

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

Это руководство доступно для скачивания в формате PDF. Загрузите Начало работы с OpenHAB Home Automation на Raspberry Pi прямо сейчас . Не стесняйтесь копировать и делиться этим со своими друзьями и семьей.

К сожалению, это почти то, что вы можете получить от дружественного к потребителю — но, как и всегда, именно здесь и появляется : мы покажем вам, как начать работу с совершенной системой умного дома, которую не нужно покупать за деньги (потому что OpenHAB является 100% бесплатно — просто поставьте оборудование).

В первой части этого руководства особое внимание уделено тому, как настроить 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 — это сложная система, которая часто требует доработки для ваших нужд, и лучший способ обеспечить успех — это работать медленно и делать по одному кусочку за раз.

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

Установка OpenHAB

Для OpenHAB предварительно настроенного образа нет, поэтому установка выполняется по старинке через командную строку. Я предлагаю вам работать без поддержки RPi — накладные расходы на управление графическим интерфейсом, которым вы будете редко пользоваться, не стоят того.

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

sudo raspi-config 

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

 sudo apt-get update sudo apt-get upgrade 

Самый простой способ установить среду выполнения OpenHAB — через apt-get , но сначала нам нужно добавить безопасный ключ и новый репозиторий:

 wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' |sudo apt-key add - echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list sudo apt-get update sudo apt-get install openhab-runtime sudo update-rc.d openhab defaults 

Любопытно, что все было установлено как принадлежащее «root». Нам нужно исправить это с помощью следующих команд.

 sudo chown -hR openhab:openhab /etc/openhab sudo chown -hR openhab:openhab /usr/share/openhab 

Далее мы установим Samba и поделимся папками конфигурации и пользователей — это облегчит установку дополнений и удаленное изменение карты сайта.

 sudo apt-get install samba samba-common-bin sudo nano /etc/samba/smb.conf 

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

 wins support = yes 

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

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

 [OpenHAB Home] comment= OpenHAB Home path=/usr/share/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no [OpenHAB Config] comment= OpenHAB Site Config path=/etc/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no и [OpenHAB Home] comment= OpenHAB Home path=/usr/share/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no [OpenHAB Config] comment= OpenHAB Site Config path=/etc/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no 

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

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

 sudo smbpasswd -a openhab 

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

Благодаря читателю Дэвиду Л. — похоже, метод перезапуска Samba изменился в последнем Raspian. Вот обновленные инструкции:

 sudo update-rc.d smbd enable sudo update-rc.d nmbd enable sudo service smbd restart 

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

 smb://openhab@raspberrypi.local 

Авторизуйтесь, используя имя пользователя openhab и выбранный вами пароль, затем откройте обе свои папки, чтобы осмотреться. Вы даже можете открыть http: //raspberrypi.local: 8080 / в своем веб-браузере, но вы столкнетесь с ошибкой, потому что мы еще не создали карту сайта. Это нормально.

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

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

 tail -f /var/log/openhab/openhab.log 

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

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

Прежде чем мы углубимся в тонкости конфигурационных файлов, добавления устройств и привязок и т. Д .; давайте проверим, что все работает, добавив демонстрационный контент. Вы найдете «Demo Setup» в разделе загрузок OpenHAB.org.

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

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

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

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

На данный момент это немного упрощенно, но открытость OpenHAB означает, что мы можем установить прекрасную новую тему позже или полностью альтернативный интерфейс. Сейчас нам просто нужно было знать, что все работает. Обратите внимание, что то, что мы смотрим, называется картой сайта (не имеет ничего общего с картой сайта). Карта сайта описывает пользовательский интерфейс — не фактические устройства в вашей сети или датчики — только интерфейс для их просмотра. Каждая его часть полностью настраивается. Чтобы посмотреть, как он был создан, откройте файл sitemaps / demo.sitemap в общей папке OpenHAB Config.

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

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

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

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

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

Предметы — это инвентарь каждого контрольного устройства, датчика или информационного элемента, который вы хотите использовать в своей системе. Это также не должно быть физическое устройство — вы можете определить веб-источник, такой как погода или цены на акции. Каждому элементу можно присвоить имя, назначить несколько групп (или ни одной) и связать с определенной привязкой. (Совет для начинающих: заглавные буквы важны, когда речь идет о привязках. Я потратил много времени, пытаясь понять, почему мои лампочки «Hue» не работали; это было потому, что вместо этого они должны были быть «hue»).

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

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

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

Преобразование содержит сопоставления значений данных с метками. Например, файл humidex.scale определяет диапазон значений индекса влажности и то, как они должны отображаться на английском языке: 29-38 — это «некоторый дискомфорт».

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

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

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

 sitemap home label="My Home" { } 

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

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

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

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

  <logger name = "org.openhab" level = "INFO" /> 

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

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

Я собираюсь начать с Philips Hue. Как и большинство вещей, с которыми вы захотите взаимодействовать в OpenHAB, лампы Hue требуют, чтобы вы установили привязку — воспринимайте привязки как драйвер устройства. На момент написания этой статьи было доступно около 160 привязок для OpenHAB 1, поэтому OpenHAB является такой мощной системой — она ​​может взаимодействовать с чем угодно, объединяя все эти разрозненные системы управления в единый унифицированный интерфейс. Вот демонстрация и краткий обзор шагов.

Сначала необходимо загрузить привязки, и самый простой способ сделать это на Pi — использовать apt-get , а затем принудительно владеть пользователем openhab.

 sudo apt-get install openhab-addon-binding-hue sudo chown -hR openhab:openhab /usr/share/openhab 

Затем вы должны указать OpenHAB, что нужно загружать эту привязку и настроить все необходимые переменные. Перейдите в папку конфигурации и создайте копию openhab-default.cfg , назвав ее openhab.cfg . Откройте его, найдите HUE и замените весь раздел следующим кодом. Единственное, что вам нужно изменить, это значение IP вашего моста — если вы еще этого не знаете, попробуйте онлайн-инструмент обнаружения . Секретное значение на самом деле не имеет значения, это просто своего рода имя пользователя, которое OpenHAB будет использовать для идентификации себя на мосту.

Совет : чтобы включить строку, просто уберите # с начала. По умолчанию строка, указывающая IP-адрес моста, отключена (или технически «закомментирована»). Кроме того, если вы пробуете альтернативную конфигурацию, может быть полезно просто скопировать существующую строку и поставить # в начале, чтобы пометить ее как комментарий, чтобы вы могли легко вернуться, если что-то пойдет не так.

 ################################ HUE Binding ######################################### 
 # IP of the Hue bridge hue:ip=192.168.1.216 hue:secret=dotcom hue:refresh=10000 

конфиг openhab

Сохранить и выйти. Как и в любом приложении Hue стороннего производителя, вам нужно одобрить OpenHAB на мосту Hue, нажав кнопку на передней панели — вам нужно сделать это только один раз. Вы увидите сообщение об ожидании сопряжения, если вы настраиваете файл журнала, но если вы забыли или пропустили обратный отсчет, просто сбросьте Pi — вы получите 100-секундный таймер с момента привязки Hue инициировано. Прежде чем продолжить, убедитесь, что вы успешно создали пару.

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

 Color Bedroom_Hue "Bedroom Hue" <hue> (Bedroom) {hue="1"} 
  • Слово « Цвет» указывает, какой контроль мы имеем над этим элементом. Лампы RGB Hue имеют «Color», так как мы имеем полный контроль над ними. Другие огни могут быть просто выключателем.
  • Далее идет кодовое имя элемента: я выбрал Bedroom_Hue , но буквально все хорошо — просто что-то описательное, что кажется вам естественным, потому что вам нужно будет помнить это позже при создании карты сайта. Кодовое имя не должно содержать пробелов.
  • Между кавычками стоит метка. В нашем случае это просто, но для некоторых элементов, таких как температура или что-то, что сообщает о значении, вы добавите специальный код, который сообщает, как отобразить это значение или с помощью какого преобразования. Метка предназначена для интерфейса и может содержать пробелы.
  • Между угловыми скобками указано название иконки. Все доступные значки вы найдете в общем ресурсе OpenHAB в каталоге webapps / images . На самом деле есть целый ряд значков оттенков, которые представляют разные яркости или вкл / выкл. Просто укажите базовое имя значка — OpenHAB будет знать, чтобы автоматически искать различные значки вкл / выкл, если это переключаемый элемент. Это необязательно.
  • В круглых скобках мы говорим, к каким группам относиться, в данном случае, просто к группе спален .
  • Наконец, что очень важно, мы связываем элемент с соответствующей привязкой с любыми необходимыми переменными. В этом случае привязка оттенка , а количество лампочек равно 1. Вы можете найти номер, открыв официальное приложение оттенка и посмотрев на вкладку огней. Каждая лампочка имеет уникальный номер.

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

 Group Bedroom Group Office Group Kai Group Living_Room Group Cinema Group Secret 
 Group Lights 
 /* Lights */ Color Bedroom_Hue "Bedroom Hue" <hue> (Bedroom,Lights) {hue="1"} Color Office_Hue "Office Hue" <hue> (Office, Lights) {hue="2"} Color Secret_Hue "Secret Hue" <hue> (Secret, Lights) {hue="3"} Color Kai_Hue "Kai's Hue" <hue> (Kai, Lights) {hue="4"} 

Текст / * Lights * / — это просто комментарий, он не имеет никакой функции, кроме как помочь нам просканировать файл позже, когда он станет больше. Теперь у нас есть добавленные устройства, но открытие http: //raspberrypi.local: 8080 /? Sitemap = home приводит к пустому интерфейсу — конечно, потому что мы еще не создали элементы интерфейса в карте сайта. Давайте начнем очень просто сейчас. Откройте home.sitemap .

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

 sitemap home label="My Home" { Frame { Group item=Lights label="All lighting" icon="hue" Group item=Bedroom label="Bedroom" icon="bedroom" Group item=Office label="Office" icon="desk" } } 

Группы — это полезный инструмент для быстрого тестирования, но на самом деле вам нужно больше контролировать отображение элементов. Пока этого будет достаточно. Сохраните и перезагрузите домашнюю карту сайта в браузере. Вы должны увидеть это (или любые группы, которые вы добавили).

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

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

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

Обратите внимание, что элемент Office Hue отображается с другим значком — это потому, что мой офисный свет уже включен, и OpenHAB знает об этом, когда говорит с мостом Hue, и был достаточно умен, чтобы настроить значок «включенной» версии файла. К сожалению, он не отражает цвет, но если у вас установлено мобильное приложение, оно будет отображать текущий цвет.

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

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

Прямо сейчас вам нужно быть в той же локальной сети, чтобы получить доступ к вашей системе OpenHAB, но что, если вы хотите контролировать свои устройства и проверять датчики, когда они находятся вне зоны действия вашего Wi-Fi? Для этого нам нужно настроить удаленный доступ — и мы сделаем это простым способом, с помощью веб-службы My.OpenHAB , которая обходит необходимость возиться с переадресацией портов и настройками маршрутизатора. В качестве бонуса, сервис My.OpenHAB также имеет канал IFTTT, предоставляющий вам бесконечные возможности для дистанционного управления и автоматизации.

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

apt-cache search

 sudo apt-get install openhab-addon-io-myopenhab sudo chown -hR openhab:openhab /usr/share/openhab 

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

 java -version 

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

  альтернативы обновления sudo --config java 

обновить версию Java

Выберите опцию, которая указывает jdk-8-oracle , затем перезапустите OpenHAB. Бонус: Oracle Java 8 работает быстрее, чем стандартный OpenJDK!

Теперь вы также должны найти секретный файл в папке webapps / static . Откройте секрет и uuid и будьте готовы скопировать пасту.

и тайна

Теперь перейдите к созданию учетной записи My.OpenHAB, используя эти данные, а затем вернитесь — вам также необходимо подтвердить свою электронную почту, прежде чем что-либо заработает. Есть еще пара шагов к этому. Во-первых, нам нужно установить механизм постоянства по умолчанию на myopenhab (постоянство — кое-что для дальнейшего руководства, но независимо от этого нам нужно настроить что-то базовое, чтобы «экспортировать» наши данные в онлайн-сервис и сделать его видимым для IFTTT) , Для этого откройте файл openhab.cfg и найдите переменную, которая говорит постоянство: default = и измените ее на постоянство: default = myopenhab . Сохранить.

Наконец, создайте новый файл в папке конфигурации / постоянство с именем myopenhab.persist и вставьте следующее правило.

 Strategies { default = everyChange } Items { * : strategy = everyChange } 

Вам пока не нужно понимать это, но знайте, что там написано «сохранить каждое состояние элемента при его изменении».

мои открытые предметы

Чтобы подключиться к IFTTT, перейдите на канал OpenHAB — вам нужно будет пройти аутентификацию и предоставить ему доступ к вашей учетной записи MyOpenHAB. Также обратите внимание, что пока ваши элементы не изменились хотя бы один раз, они не будут видны в списке элементов на IFTTT, поэтому, если он не виден, включите и выключите что-то, а затем перезагрузите. Поздравляем, теперь у вас есть полный доступ IFTTT ко всему в вашей системе OpenHAB!

канал openhab ifttt

Датчик присутствия Bluetooth с использованием REST

Некоторое время назад я показал вам, как сделать автоматическую блокировку двери офиса с помощью Bluetooth. сканирования, чтобы обнаружить присутствие пользователя — я хотел принести что-то подобное в OpenHAB.

На любой платформе, кроме Raspberry Pi, это будет просто благодаря готовой привязке Bluetooth; к сожалению, он не работает на Pi из-за критически важного файла Java, который необходимо будет перекомпилировать для архитектуры ARM, добавить в привязку и затем перестроить привязку. Достаточно сказать, что я попробовал это, и это было ужасно сложно и не сработало. Однако существует гораздо более простое решение, которое также служит хорошим введением в явную расширяемость OpenHAB: мы просто адаптируем наш предыдущий скрипт на Python, чтобы он отправлял отчет непосредственно в интерфейс OpenHAB RESTful.

Кроме того: интерфейс RESTful означает, что вы можете взаимодействовать с системой, используя встроенный веб-сервер, просто вызывая URL-адреса и передавая или выбирая данные. Вы можете посетить этот URL, чтобы увидеть простой пример этого на вашем собственном сервере: http: //raspberrypi.local: 8080 / rest / items — который выводит закодированный список всех ваших определенных элементов. Это невероятно мощный инструмент, так как он раскрывает весь потенциал OpenHAB и позволяет создавать собственные интерфейсы; или в обратном порядке, чтобы сообщить о состоянии датчиков, не имея конкретной привязки. Мы будем использовать эту возможность, чтобы сообщать о наличии определенного устройства Bluetooth, не прибегая к привязке Bluetooth.

Начните с добавления нового элемента Switch в ваш файл home.items . Я назвал мой «JamesInOffice» и сделал его переключателем, а не простым контактом включения / выключения, чтобы я мог вручную контролировать свое присутствие в случае смерти моего телефона.

 Switch JamesInOffice "James in Office" (Office) 

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

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

 sudo apt-get install bluez python-bluez python-pip sudo pip install requests hcitool dev 

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

 wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py python inquiry.py 

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

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

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

 result = bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) 

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

 r = requests.put("http://localhost:8080/rest/items/JamesInOffice/state",data=payload) 

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

 sudo nano /etc/rc.local 

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

 python /home/pi/detect.py & 

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

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

Хотя вы, конечно, можете использовать веб-интерфейс с мобильного устройства, OpenHAB имеет встроенные приложения для iOS и Android — и они выглядят намного лучше, чем интерфейс браузера по умолчанию. На экране настроек введите локальный URL-адрес в качестве внутреннего IP-адреса, который вы использовали до сих пор, включая номер порта. Для удаленного URL введите https://my.openhab.org , а также имя пользователя (адрес электронной почты) и пароль, которые вы ввели при регистрации. Если вы еще не зарегистрировались на MyOpenHAB, просто оставьте поле аутентификации и удаленного URL пустым, но вы будете получать доступ к вашей системе только с локального Wi-Fi.

openhab мобильных

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

Количество настроек и полезных функций, которые вы можете добавить к своему контроллеру OpenHAB, является действительно эпическим. Наряду с обширным списком поддерживаемых устройств с привязками, вы можете использовать интерфейс RESTful, расширения HTTP и IFTTT для чтения или контроля буквально любого типа IoT-устройства, а затем и некоторых (попробуйте некоторые из наших творческих идей освещения ). Да, это абсолютная боль в установке, но ни одна коммерческая система не может приблизиться к мощности настраиваемой системы OpenHAB.

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

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

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

Похожие посты
Умный дом

Что такое «Эхо Амазонки Авто»?

Умный дом

Что такое умный туалет и стоит ли его покупать?

Как сделатьУмный дом

Как добавить Alexa в ваше умное зеркало

Tech новостиКак сделатьУмный дом

Как контролировать свои потолочные вентиляторы в SmartHome