Года полтора тому назад мне подарили
контроллер CCU825. Недолго думая, я его приспособил рулить дачей по мелочи - температура, нагреватель, датчик протечки, управление ночным освещением на улице, всё такое.
И, в целом, контроллер мне понравился. Для своей задачи - дистанционный мониторинг и управление через GSM, он очень даже хорош. Типовые задачи решаются элементарно. Нетиповые, впрочем, сложно или никак - но это и не общецелевой контроллер. Пожарка, сигнализация, аварийные датчики, термостаты, включить что-то дистанционно, GSM-домофон - это всё элементарно. Остальное - как повезёт.
Сейчас, проектируя комплектацию умного дома для квартиры, я захотел его применить снова. Для тех же, в общем, целей - сигналить мне об аварийных ситуациях, быть GSM-домофоном (это означает, что нажав "вызов" у входной двери можно позвонить мне на мобильный), и работать дистанционным last resort управлением - отключить всё, сбросить питание основным контроллерам и т.п. Ну и температуру дома издалека проверять. :)
Всё хорошо, но - CCU825 имеет только один интерфейс для связи с миром: GSM. А мне, конечно, хотелось завести его в локальную систему умного дома - получать данные с его датчиков температуры, сигналы тревоги и пр.
На сайте было упоминание, что есть версия CCU825-SM, в которой присутствует порт RS485 и есть поддержка ModBus.
Я позвонил в техподдержку компании-изготовителя (в Туле, кстати, сидят - на родине самоваров и микрофонов Октава, и то и другое у меня есть:), и спросил - а нельзя ли поделиться спецификациями для доступа к модбасу. Джентльмен на той стороне задумался, и предложил переключить меня на специалиста. Изложил я свои мечты специалисту. Специалист подумал, и... предложил переключить меня на разработчика системы.
Разработчик сообщил, что там всё непросто и справился, серьёзно ли я умею программировать. Я заверил, что осилю. :) Выяснилось, что modbus в этом контроллере - для мебели. То есть - он используется совершенно фантастическим образом - в группу регистров модбаса пишется пакет протокола более высокого уровня, и из неё же считывается ответный пакет.
Короче, в итоге эти замечательные люди из Rads Electronics специально для меня написали детальный документ со спецификацией протокола, и я поразминался в программировании. В принципе, на реализацию хватило пары вечеров плюс вечера на отладку - как всегда, есть тонкости. Протокол шифрованный.
Итог -
open source driver for CCU825-SM. С удовольствием рекомендую этот замечательный контроллер, который теперь можно использовать в home automation во всей полноте. Там же, кстати, коннектор для OpenHAB лежит, и пример как кидать данные из контроллера в опенхаб и команды обратно. Даже если CCU825 использовать как чистый ввод-вывод, он себя, как мне кажется, оправдывает. Особенно если входы использовать как аналоговые. До 14-ти датчиков температуры на одну железку - больше мне за вменяемые деньги не попадалось.
UPD: Забыл ссылку на драйвер:
https://code.google.com/p/ccu825modbus/