Проект ESPectre — это датчик движения, который анализирует изменения Wi-Fi сигнала (технология CSI — Channel State Information). Когда человек двигается в комнате, он буквально «мешает» волнам между роутером и сенсором — ESP32 это замечает и сообщает в Home Assistant через ESPHome.
Что нужно для старта
Железо:
- Обычный 2.4 ГГц роутер — тот, что уже стоит дома
- ESP32 с поддержкой CSI: рекомендуются ESP32-C6 и ESP32-S3, также поддерживаются C3 и оригинальный ESP32
- Цена вопроса — около €10 за девайс
Софт (всё бесплатно):
- Home Assistant
- ESPHome (встроенный или standalone)
Скиллы: базовый YAML. Программировать не нужно, лезть в настройки роутера — тоже.
Время на настройку: 10–15 минут.
Как это работает
ESP32 слушает CSI-данные от роутера и отслеживает их флуктуации. Движение тела искажает Wi-Fi волны — примерно как рука перед фонариком меняет тень. Пайплайн обработки сигнала выглядит так:
- Gain Lock — стабилизация AGC/FFT (~3 секунды при старте)
- Auto Calibration — автовыбор 12 оптимальных субнесущих (NBVI), один раз при загрузке
- Adaptive Threshold — авто: P95 × 1.1 | min: P100, или фиксированное ручное значение
- Hampel Filter — удаление выбросов-турбулентностей (включён по умолчанию)
- Low-pass Filter — сглаживание шума (опционально, выключен по умолчанию)
- Detection Evaluation — MVS или ML-скор каждые
evaluation_intervalпакетов - Hit Filter —
motion_on_hits/motion_off_hits, переключение IDLE ↔ MOTION - Home Assistant — бинарный сенсор движения + периодический Movement Score / Threshold
Экспериментальный ML-детектор
Есть снапшот-сборка с нейросетевым детектором движения: не требует калибровки, работает прямо на устройстве. Фича экспериментальная — при сборке выбирай ассеты с суффиксом -ml.
Где ставить сенсор
Оптимальное расстояние от роутера — 3–8 метров. Высота крепления: 1–1.5 м от пола (уровень стола).
- ✅ Не нужна прямая видимость с роутером
- ✅ Сигнал проходит сквозь стены
- ❌ Избегай металлических препятствий (холодильники, шкафы)
- ❌ Не ставь в углы и закрытые ниши — теряется multipath-разнообразие
- Внешняя антенна через IPEX-коннектор даёт заметно лучший результат
Зачем это вообще нужно
Несколько практических сценариев:
- Безопасность — уведомление о проникновении, пока тебя нет дома
- Уход за пожилыми — мониторинг активности, обнаружение долгой неподвижности
- Умный дом — свет и отопление только в занятых комнатах
- Экономия энергии — автоотключение устройств в пустых помещениях
- Контроль климата — обогрев/охлаждение только там, где есть люди
Плюсы подхода 🦆
- Никаких камер — полная приватность
- Никаких носимых устройств
- Работает через стены
- Можно поставить несколько ESP32 на разные комнаты и объединить в одном Home Assistant
Полная документация по настройке — в SETUP.md, по тюнингу — в TUNING.md, технические детали CSI — в ALGORITHMS.md.

