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

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

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

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

Bonaire Comfort Control

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

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

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

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

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

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

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

Глава 1 — Почему Xiaomi

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

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

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

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

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

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

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

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

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