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

Предыдущие главы:

Прощу прощения за задержку в публикации статьи. Времена нынче не простые…

Оглавление

  • Предисловие
  • Настройки из админки
  • Настройки через конфиг файлы
  • Логи
    • Karaf console
    • Frontail – логи в браузер
  • Заключение

Предисловие

В третьей публикации поговорим о настройке openHab и взаимодействии со внешними устройствами.

На этом этапе важно еще раз подчеркнуть, что являясь пожалуй наиболее гибкой среди подобных систем, openHab незбежно имеет и обратную сторону медали. А именно, для достижения продвинутого функционала потребуется весьма глубокое понимание происходящего как в самом openHab, так и умение конфигурировать операционную систему хоста (как привило какой-нибудь Linux), на котором, собственно, и бежит openHab. Но есть две хорошие новости. Первая заключается в том, что знания эти с большой степенью вероятности понадобятся не сразу. Общепринятые концепции разработки сложных систем всегда рекоммендуют постепенную, инкрементальную разработку, иначе говоря от простого к сложному. Так и здесь, изучая возможности системы и постепенно наращивая функционал умного дома, можно поэтапно накопить серьезный багаж знаний. Собственно в этом заключается вторая хорошая новость – практически вся необходимая информация широко представлена в сети. Потребуется лишь минимальное знание английского, для чтения тематических форумов.

openHab позволяет создавать кастомные графические интерфейсы. Впринципе там и, что называется “из коробки”, довольно много симпатичного функционала. Однако, ничего не мешает закастомизировать все донельзя, но это потребует познаний в CSS, angularJS и т.д.

Данная часть повествования начнется с простенького примера, возможно даже слишком простенького, просто чтобы показать концепцию конфигурирования openHab на базовом уровне. А вот следом сразу последуют  вещи сложнее и интереснее, в частности обещаная экосистема Xiaomi. Тем не менее, и этот простенький пример может пригодиться впоследствии, поэтому поигравшись, не удаляйте его.

Итак, приступим к настройке openHab. Традиционно, системы подобные openHab имеют как минимум два принципиально разных графических интерфейса. Первый – это админка, так называемый back end. Этот интерфейс используется для настройки и администрирования системы. Второй – это пользовательский интерфейс, front end, через который пользователи взаимодействуют с системой.

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

В любом случае, здесь важно упомянуть, что новейшие версии openHab частично поддерживают конфигурирование новых устройств и наладку взаимодействия с ними через админку. Частично, потому что этот подход сработает лишь с простыми устройствами, вроде WiFi лампочки. Кроме того, он не лишен дополнительных недостатков, в виде низкой скорости процесса конфигурирования новых и существующих устройств, сложности резервного копирования конфигурации системы, невозможности создавать комплексные схемы взаимодействия и т.п. По сути, всякая продвинутая конфигурация системы производится классически, через текстовые конфигурационные файлы. А графическая админка используется для общего администрирования системы и контроля за правильностью составления файлов конфигурации.

Продолжить чтение

Реверс-инжиниринг протокола и контрольной суммы (CRC) для Bonaire Comfort Control

Статейка эта, по сути, сводится к паре довольно полезных утилит, которые я обнаружил в процессе разбора протокола связи, имеющегося у меня пульта дистанционного управления. Одна (reveng) из них позволяет, путем хитромудрого перебора подобрать подходящий алгоритм контрольной суммы. Другая (pycrc) генерирует готовый С код, реализующий конкретный алгоритм, задаваемый пользователем.

Но, обо всем по порядку. Есть у меня дома система центрального испарительного кондиционирования воздуха, весьма популярная в Австралии. Управлению ею производится с помощью пульта по радиочастоте. Пульт один, часто теряется. Кроме того, как я упоминал в своих статьях про умный дом, я постепенно делаю «умными» все «не-умные» устройства, для централизованного управления всем и вся через смартфоны. Настала очередь испарительного кондиционера.

Итак, есть вот такой вот симпатичный пульт Bonaire Comfort Control, которому ни много ни мало 20 лет.

Bonaire Comfort Control

Вопрос в том, как наладить взаимодействие между кондиционером и openHab’ом, который управляет домом. Путей, в принципе, существует три. Первый, и самый простой, это припаяться к кнопкам имеющегося пульта, и “нажимать” их цифровым, так сказать, способом. Но тогда пульту каюк. Второй путь, это не курочить имеющийся пульт, а купить еще один, и припаяться к нему. Но покупка еще одного обошлась бы по меньшей мере в 300-400 баксов. Эти пульты давно не выпускают, они в большом дефиците, поэтому и продаются весьма недешево.

А вот третий вариант, а именно, попытаться разобраться в радио-протоколе, или на худой конец, просто воспроизводить копии радиотрансляций оригинального пульта, обещал не только решить проблемы первых двух подходов, но и порадовать интересным процессом реверсивного инжиниринга.

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

Продолжить чтение

OpenHab — Часть 2 — Установка + немного о моей системе

Другие главы:

В продолжение первой части, поговорим о том, с какими устройствами openHab работает у меня дома, для каких еще устройств существует поддержка, и научимся устанавливать систему на Debian системы (Ubuntu, Raspberry Pi и иже с ними).

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

Оглавление

  • Почему Xiaomi
  • Что я использую c openHab кроме девайсов Xiaomi
  • А какие еще устройства поддерживает openHab
  • Устанавливаем openHab (Ubuntu)

Почему Xiaomi

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

Продолжить чтение

OpenHab – Часть 1 – Мотивация

Другие главы:

Этой публикацией я хочу открыть цикл статей, посвященных системе домашней автоматизации OpenHab.

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

Моим первым проектом стало измерение температуры и влажности в разных помещениях дома, с помощью беспроводных долгоживущих сенсоров на батареях, а также температуры, влажности и давления на улице с помощью системы запитываемой от солнечной батареи и пары супер-конденсаторов (для работы ночью). Результаты измерений складывались в MySQL базу и отображались графически на самопальной PHP страничке.

Самопальные сенсоры температуры с nrf24l01

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

Примерно так выглядела мобильная версия моей системы
Продолжить чтение