Files
Avtex/README.md
T

4.3 KiB
Raw Blame History

Avtex — Smart Sleep & Motion Engine for Home Assistant

Avtex Logo

Легковесное Android-приложение для мгновенной фиксации сна и пробуждения с интеграцией в Home Assistant (HAC)
Оптимизировано для OnePlus (OxygenOS / ColorOS) и устройств с ненормированным рабочим графиком.


🌟 Ключевые возможности

  • Мгновенная фиксация пробуждения (0% расхода батареи): Использует аппаратный сопроцессор Sensor.TYPE_SIGNIFICANT_MOTION. Как только вы берете телефон в руки после сна, сигнал пробуждения моментально передается в умный дом.
  • Детекция сна при ненормированном графике: Связка таймера покоя (по умолчанию 20 мин при выключенном экране) и нейросетевых классификаций Google Play Services Sleep API (SleepClassifyEvent). Никаких жестких привязок к часам (23:00–07:00).
  • Полная совместимость с Home Assistant (HAC):
    • Webhook URL: отправка JSON-событий {"event": "sleep_started" | "sleep_ended", "state": "asleep" | "awake", ...}.
    • REST State API: прямое обновление сенсора binary_sensor.phone_sleep через Long-Lived Access Token.
    • Local Broadcast Intent: com.example.avtex.SLEEP_STATE_CHANGED для Tasker / Home Assistant Companion App прямо на телефоне.
  • Устойчивость к убийцам процессов OnePlus:
    • Реализован как Foreground Service с типом specialUse.
    • Интерактивный экран со вспомогательными кнопками перехода в системные настройки OxygenOS (отключение оптимизации батареи, включение автозапуска).
  • Премиальный дизайн в стиле Cyber Obsidian / Glassmorphism:
    • Jetpack Compose & Material 3.
    • Тонкие неоновые контуры, стеклянные карточки, динамический пульсирующий баннер состояния.
    • Интерактивная лента аудита событий сенсоров в реальном времени.

🚀 Быстрый старт

1. Сборка APK

Для сборки отладочной версии:

./gradlew assembleDebug

Для сборки оптимизированного подписанного Release APK:

./gradlew assembleRelease

Файл будет создан в app/build/outputs/apk/release/app-release.apk.

2. Установка через ADB

adb install -r app/build/outputs/apk/release/app-release.apk

⚙️ Настройка Home Assistant (Пример Webhook автоматизации)

В файле automations.yaml или в визуальном редакторе Home Assistant:

alias: "Avtex: Автоматизация сна и пробуждения"
trigger:
  - platform: webhook
    webhook_id: avtex_sleep
action:
  - choose:
      - conditions: "{{ trigger.json.state == 'asleep' }}"
        sequence:
          - service: light.turn_off
            target:
              entity_id: all
          - service: climate.set_preset_mode
            data:
              preset_mode: sleep
            target:
              entity_id: climate.bedroom
      - conditions: "{{ trigger.json.state == 'awake' }}"
        sequence:
          - service: scene.turn_on
            target:
              entity_id: scene.morning_lights

🛠 Стек технологий

  • Язык: Kotlin 2.3+
  • UI: Jetpack Compose, Material 3, Navigation
  • Сенсоры: Android Sensor Hub (TYPE_SIGNIFICANT_MOTION), Google Play Services Location / Sleep API
  • Сеть: OkHttp 4.12
  • Хранилище настроек: Jetpack DataStore Preferences