Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Системный инженер, Разработчик приложений
Младший
C++
Разработка программного обеспечения
Алгоритмы и структуры данных
Visual Studio
C++ stl
C++ boost
Cmake
Многопоточность
Объектно-ориентированное проектирование
Минус потому что не было желания повторять чьё-то решение, а насчет надежности я соглашусь, тем более проект писался после перерыва в кодинге и предназначался изначально для портфолио
Сложно сравнить с Home Assistant, слишком много различий, проще кратко описать особенности:
весь сервер представляет из себя бинарник (собирается под linux и windows) + yaml файл настроек
графический интерфейс отсутствует, управление идет через mqtt: предполагается использование готовых mqtt панелей под iOS или Android
до запуска сервера в файле настраивается порт для cc2530(2531), учетка mqtt брокера и колличество/тип точек автоматизации (освещение, отопление, сигнализация)
используется только протокол zigbee
при сопряжении устройства zigbee пользователь выбирает только точку автоматизации для привязки, тип, роль и настройки устройства сервер выбрает сам
Я так не считаю. По моему мнению zigbee - лучший беспроводной протокол для бюджетной домашней автоматизации. Но есть одно но. Дело в том, что zigbee не работает сам по себе, над ним есть более высокоуровневая надстройка Zigbee Cluster Library (ZCL), которая определяет что, как и когда определенный тип устройств должен передавать и эта вещь в теории должна стандартизировать работу всех однотипных устройства разных производителей, что свело бы к минимуму проблемы и привело бы к полной совместимости между оборудованием разных фирм. А на практике в API беспроводных устройств творится полный хаос, причем изменения настолько нелогичные, что они, скорее всего, внесены специально с целью несовместимости с оборудованием других производителей.
Датчики от Xiaomi (возможно и других производителей тоже, но с другими я не работал) действительно засыпают. Дело в том, что устройства с батарейным питанием большую часть времени находятся в выключенном состоянии: радочасть обесточена, а практически весь контроллер спит и просыпается либо по таймеру, либо по сигналу переферии (например при физическом нажатии кнопки) и только после пробуждения происходит передача данных по zigbee. Скорее всего, несколько раз проснувшись, отправив данные на координатор и не получив подтверждение о их получении датчик температуры понимает, что сети больше нет и перестает просыпаться. Конкретно датчики температуры и освещенности Xiaomi обратно подключаются к сети при кратковременном нажатии на кнопку сопряжения (для выключателей работет нажатие на основную кнопку, для датчика открытия - манипуляция с магнитом) и продолжают работать дальше. Но есть нюанс: при повторном подключении на координаторе происходит индикация подключения(
ZDO_TC_DEV_IND) устройства как при сопряжении, и вот тут zigbee2mqtt может некорректно обрабатывать этот момент (в моей библиотеке такая ситуация учтена).