Об этом проекте
hestia обеспечивает локальное управление без облака для умных устройств Keemple — контроллеров жалюзи/роллет, выключателей, диммеров, термостатов, умных розеток и датчиков на базе Wi-Fi модулей Hi-Flying и Ethernet последовательных мостов WCH. Эти устройства обычно связываются с облаком вендора через незашифрованный, собственный бинарный протокол с кадрированием 0x7e. hestia переопределяет этот протокол локально, чтобы устройства общались с ним вместо облака вендора, устраняя зависимость от облака, стороннего CDN или публичного IP-адреса.
Он может работать в двух режимах: как прозрачный прокси, который ретранслирует трафик в облако, одновременно декодируя всё, или как автономный сервер, полностью заменяющий облако вендора. В автономном режиме он работает полностью вне сети. Устройства перенаправляются на hestia через локальные DNS-переопределения или iptables PREROUTING редиректы на порт 8925.
Кодек протокола был создан с использованием методологии чистой комнаты: одна группа вывела спецификацию протокола из пассивного наблюдения за трафиком шлюза в локальной сети в открытом виде, а вторая группа реализовала кодек, серверы и инструментарий исключительно на основе этого документа спецификации. Никакой прошивки, декомпиляции или бинарного анализа не использовалось.
Возможности включают:
- Полное декодирование и создание протокола: кодек кадрирования и TLV, все команды исполнительных устройств (жалюзи, диммеры, выключатели, термостаты, кнопки сцен/функций), все отчёты датчиков и состояний (двери, движение, дым/затопление, измерение мощности умных розеток), вход в систему/рукопожатие и список устройств.
- Живая веб-панель (TypeScript + Vite SPA через Server-Sent Events) с домашним видом, сгруппированным по комнатам, управлением термостатом/кондиционером/жалюзи/сценами, состоянием каждого узла, измерением мощности умных розеток, уровнями заряда батарей, встроенным именованием и управляемым редактором локальных правил.
- Многопользовательская аутентификация с ролевым доступом (администратор, оператор, зритель), полный журнал аудита/активности и 45 локалей интерфейса, включая поддержку RTL.
- Движок автоматизаций, поддерживающий события, время, cron, солнце, присутствие и глобальные поля с условными, защищёнными от дребезга действиями.
- Локальные входы датчиков через RTL-SDR: фидер rtl_433 транслирует датчики температуры и влажности 433 МГц локально без шлюза или интернета.
- Опциональные интеграции: LAN-клиент Tuya v3.3 для температурного устройства, опросчик наружной температуры Open-Meteo и ИК-управление через последовательный передатчик (Flipper Zero).
Бэкенд написан на Python с веб-уровнем aiohttp и опциональным хранением SQLite (SQLAlchemy + Alembic) для состояния устройств, пользовательских настроек и учётных записей. Кодек протокола Keemple остаётся чисто стандартной библиотекой, собственным кодом; внешние библиотеки (cryptography для AES-128, pyserial для USB-CDC транспорта) предоставляют только общие примитивы. Проект сообщает о 100% покрытии строк и ветвей с использованием unittest из стандартной библиотеки. Лицензирован под GNU AGPL v3.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.