Files
Avtex/apps/mobile/README.md
T

92 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Avtex — Smart Sleep & Motion Engine for Home Assistant
<p align="center">
<img src="app/src/main/res/drawable/app_logo.png" width="160" alt="Avtex Logo" style="border-radius: 28px;" />
</p>
<p align="center">
<b>Легковесное Android-приложение для мгновенной фиксации сна и пробуждения с интеграцией в Home Assistant (HAC)</b><br>
<i>Оптимизировано для OnePlus (OxygenOS / ColorOS) и устройств с ненормированным рабочим графиком.</i>
</p>
---
## 🌟 Ключевые возможности
* **Мгновенная фиксация пробуждения (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
Для сборки отладочной версии:
```bash
./gradlew assembleDebug
```
Для сборки оптимизированного подписанного Release APK:
```bash
./gradlew assembleRelease
```
Файл будет создан в `app/build/outputs/apk/release/app-release.apk`.
### 2. Установка через ADB
```bash
adb install -r app/build/outputs/apk/release/app-release.apk
```
---
## ⚙️ Настройка Home Assistant (Пример Webhook автоматизации)
В файле `automations.yaml` или в визуальном редакторе Home Assistant:
```yaml
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