Files
ignis_app/README.md
2026-03-28 19:01:38 +07:00

4.8 KiB
Raw Blame History

Ignis App

Мобильное приложение для управления умными лампами WiZ через self-hosted сервер Ignis Core.

Возможности

  • Мульти-дом -- поддержка нескольких серверов Ignis (квартира, дача, друзья). Каждый дом -- отдельный сервер со своим URL и API-ключом.
  • Группы ламп -- создание, удаление, управление. При создании группы можно выбрать нужные лампы из списка обнаруженных устройств, пересканировать сеть.
  • Управление освещением:
    • Включение/выключение
    • Яркость 10--100% с шагом 10%
    • Цветовая температура 2700--6500K с шагом 100K
    • RGB-цвет через HSV-пикер
    • Сцены (загружаются с сервера)
    • Таймер "включить на 4 часа"
  • Расписания -- одноразовые таймеры и cron-задачи с выбором дней недели. Просмотр и отмена активных задач.

Стек

  • Flutter 3.x / Dart
  • Riverpod -- управление состоянием
  • Dio -- HTTP-клиент
  • SharedPreferences -- локальное хранение настроек

Структура проекта

lib/
├── main.dart                    -- точка входа, тема, роутер
├── models/
│   └── home_config.dart         -- модель "дома" (сервер)
├── services/
│   ├── api_client.dart          -- обёртка Dio для Ignis API
│   └── settings_service.dart    -- хранение домов в SharedPreferences
├── providers/
│   └── providers.dart           -- Riverpod-провайдеры
├── screens/
│   ├── homes_screen.dart        -- список домов
│   ├── home_edit_screen.dart    -- добавление/редактирование дома
│   ├── remote_screen.dart       -- пульт управления группами
│   ├── group_edit_screen.dart   -- создание группы
│   └── schedules_screen.dart    -- расписания
└── widgets/
    ├── group_card.dart          -- карточка группы с управлением
    └── color_picker.dart        -- HSV-пикер цвета

Сборка

# Зависимости
flutter pub get

# Debug-запуск
flutter run

# Release APK
flutter build apk --release

APK: build/app/outputs/flutter-apk/app-release.apk

Настройка

При первом запуске приложение попросит добавить "дом" -- указать адрес сервера Ignis и API-ключ. После этого откроется пульт управления группами.

Для добавления второго дома: кнопка "домик" в левом верхнем углу пульта -> экран домов -> кнопка "+".

API

Приложение работает с Ignis Core API -- self-hosted бэкенд на FastAPI для управления лампами WiZ по локальной сети. Используемые эндпоинты:

Метод Путь Назначение
GET /devices Список ламп
GET /devices/groups Список групп
GET /devices/scenes Доступные сцены
POST /devices/groups Создать группу
DELETE /devices/groups/{id} Удалить группу
POST /devices/rescan Пересканировать сеть
POST /control/group/{id} Управление группой
GET /control/group/{id}/status Статус группы
POST /schedules/once Одноразовый таймер
POST /schedules/cron Cron-расписание
GET /schedules/tasks Список задач
DELETE /schedules/{job_id} Отменить задачу

Авторизация: заголовок X-API-Key.

Лицензия

Частный проект.