В докладе я расскажу о своём опыте написания интеграции Xiaomi Gateway 3 для open source-платформы умного дома Home Assistant, где непоследнюю роль сыграл язык Go. Именно на нём написан «демон» для нескольких шлюзов экосистемы Mi Home:
* Xiaomi Multimode Gateway (архитектура MIPS),
* Xiaomi Multimode Gateway 2 (архитектура ARM),
* Aqara Hub E1 (архитектура ARM).
GitHub проекта — https://github.com/AlexxIT/XiaomiGateway3
Мой подход при реализации проекта отличается от большинства подобных решений в мире open source. Обычно разработчики берут готовое устройство, удаляют с него заводскую прошивку и заменяют своей. Примеры таких проектов — OpenWRT для роутеров и OpenIPC для камер.
Целью этого проекта было полностью сохранить функционал оригинальной прошивки устройств, лишь дополнив его дополнительными функциями. Таким образом, нет необходимости тратить своё время на повторение функций, уже написанных авторами оригинальной прошивки устройства. И можно направить все силы на написание дополнительного функционала.
При таком подходе мы не считаем разработчиков оригинальной прошивки «врагами», а относимся к их труду с уважением, как к коллегам из соседнего отдела.