пятница, 20 апреля 2018 г.

Что нам стоит умный дом построить

        Решил капнуть по глубже тему умного дома. Не то чтобы я прям завтра хотел запилить это у себя - просто интересовался до чего нынче дошел прогресс в этой области. Как оказалось прогресса в этой области немного. По сути есть два лагеря - компании которые смотрят на эту проблему со стороны софта и "аппаратчики".  
          "Аппаратчики" (компании в основном занимающиеся производством оборудования) - эти компании предлагают решения эффективные с аппаратной точки зрения (минимальное энергопотребление, минимальные задержки при передачи сигнала), но при этом программная сторона стека убога. Данные решения предполагает полное погружение в аппаратные протоколы, программирование на низком уровне(биты, задержки и все такое),  и специализированные протоколы связи и тд. В общем эти решения работают, но они все vendor specific, и очень не дешевые. По сути ты становишься заложником вендора которого ты выбрал. И не редко бывает что платформа умирает и ее поддержка по сути прекращается.
          С другой стороны компании с программным бэкграундом предлагают решения с очень красивой программной  обвязкой,  как например Apple HomeKit но основанные на Wi-fi и Bluetooth протоколах связи. В качестве транспорта используется TCP/IP стэк. Это очень соблазнительно для программного инженера, так как разработку под эту платформу можно вести в привычном и знакомом окружении. Поверх TCP/IP стека можно вообще все что угодно навесить. Но это будет очень неэффективно с аппаратной точки зрения - огромное энергопотребление, ограничение на количество поддерживаемых устройств, медленный отклик (wi-fi активируется не мгноовенно, да и проблему медленного старта TCP соединений никто не отменял). Да и вообще навешивать wi-fi модуль на каждый выключатель - это по-моему через чур. 
        В общем проблема построения умного дома пока не решена и ждет эффективного аппаратного протокола, поверх которого можно запустить TCP/IP стэк, и что наверное самое трудное - этот протокол должен быть поддержан как производителями оборудования, так и производителями программного обеспечения.