network-user
ко всем проектам
Бот 12 Sep 2026 бета

.око

DotEye

Одна камера или четыре, один Telegram-чат: бот сообщает о входе, выходе и тревоге только по событию.

суть

DotEye превращает камеру в локальный датчик присутствия. Он читает веб-камеру, RTSP или MJPEG, отслеживает вход и выход людей и отправляет в Telegram событие с кадром. В чате настраиваются режим охраны, тихие часы, зоны, эталоны лиц, голос и тревога. Remote-инференс вынесен в отдельный контур с AES-GCM и локальным fallback.

масштаб

размер и срок: что стоит за продуктом.

10.8k LOC строк в текущем репозитории
13 модулей тестов pytest
4 камеры максимум источников в одном запуске
3 бэкенда локальной детекции: YOLO, YuNet и motion
2 режима presence и identity
AES-256 для кадров и embeddings

архитектура

local pipeline frames commands settings optional event outbox alarm webcam · RTSP · MJPEG Telegram aiogram panel YOLO · YuNet · motion remote inference IoU tracker presence · identity siren + TTS SQLite WAL + outbox

Источники кадров, свой reader на камеру и reconnect backoff

  • YOLO · YuNet · motion frames

Команды, уведомления, кадры и админ-панель

  • aiogram panel commands

FSM-диалоги и per-camera настройки поверх Runtime

  • YOLO · YuNet · motion settings

Детекция с auto-деградацией и опциональным remote

  • remote inference optional
  • IoU tracker

Ограниченный HTTP transport, AES-GCM, HMAC и локальный fallback

Состояния enter, active и exit вместо спама по кадрам

  • presence · identity
  • siren + TTS alarm

Кроп бокса, embeddings и сравнение с эталонами

  • SQLite WAL + outbox event

Голосовой контур в отдельном потоке, не блокирует pipeline

Люди, embeddings, события, настройки и повторная доставка

  • Telegram outbox
Нажми на модуль: покажу его роль в системе.

стек

состав стека по слоям · 19
  • Язык 1
  • Фреймворк 5
  • Данные 3
  • Инфраструктура 4
  • Клиент 2
  • AI / ML 4

Язык

  • Python 3.12

Фреймворк

  • aiogram 3
  • OpenCV
  • Ultralytics YOLO
  • InsightFace
  • pyttsx3

Данные

  • SQLite WAL
  • AES-256-GCM
  • encrypted JPEG outbox

Инфраструктура

  • Docker Compose
  • systemd
  • remote inference
  • HTTPS / VPN

Клиент

  • Telegram Bot API
  • webcam / RTSP / MJPEG

AI / ML

  • YOLO
  • YuNet
  • IoU tracker
  • motion gate

что умеет

ключевые возможности продукта прямо сейчас.

Вход и выход становятся событиями

IoU-трекер хранит состояние объекта и отправляет уведомление, когда человек появляется или уходит, вместо сообщений на каждом кадре.

Кулдаун убирает дребезг. Для каждой камеры отдельно хранятся состояния входа, присутствия и выхода.

Детектор с безопасным fallback

Проект работает с YOLO, YuNet и motion. Режим auto выбирает доступный контур, а сбой remote не превращается в ложное отсутствие людей.

Модель и порог можно менять из панели, не перезапуская процесс.

Presence и identity

Presence отвечает на вопрос «кто-то вошёл?», а identity добавляет распознавание по кропу и галерее эталонов.

Кнопка «Это кто?» связывает неизвестное событие с человеком и сохраняет новый эталон. Для незнакомцев можно включить сирену и TTS.

Несколько камер и зоны

Для каждого источника работает свой reader-поток. До четырёх камер можно обрабатывать параллельно, зоны задаются в координатах 0..1, а детекторы изолированы друг от друга.

У каждой камеры свои имя, режим, кулдаун, тихие часы и уведомления. Сбой одной камеры не останавливает остальные.

Кадр с повторной доставкой

К событию добавляются бокс, имя и уверенность. Затем JPEG шифруется и попадает в SQLite outbox до отправки в Telegram.

Идемпотентность и повторная отправка переживают временный сбой Telegram, а retention ограничивает объём истории событий.

Remote без потери локального контура

Кадр отправляется на отдельную машину через AES-256-GCM, запрос подписывается HMAC-SHA256, а клиент при сбое возвращается к локальному детектору.

Allowlist хостов, лимиты ответа и HTTPS или VPN удерживают remote-контур в заданной сети.

Голос и тревога

Сирена, приветствие, прощание и TTS-фразы работают в отдельном звуковом контуре и настраиваются из панели.

Звуковой контур вынесен в отдельный поток, поэтому динамики не задерживают шаг pipeline и ручную озвучку из чата.

хронология

как продукт рос от первой версии.

  1. 12 Sep 2026

    Пайплайн и Telegram

    Собраны camera, detector, tracker, storage и бот с админ-панелью: enter/exit, identity, зоны, тихие часы и уведомления по событиям.

  2. 12 Sep 2026

    Remote и доставка

    Добавлены AES-GCM transport, HMAC, TLS, локальный fallback, WAL-prune, Docker, Compose и systemd для разных сценариев запуска.

  3. 13 Sep 2026

    Privacy, голос и харднинг

    Финальный проход добавил редактирование исходящих кадров, audit journal, per-event TTS, постоянную навигацию и remote-автодеплой с Caddy TLS.