SelenaCore — Початок роботи
SelenaCore
Відкрите локальне ядро розумного дому для Raspberry Pi
Що це
SmartHome LK Core — відкритий (MIT) хаб розумного дому, який встановлюється на Raspberry Pi 4/5 або будь-який Linux SBC. Працює повністю офлайн — голосовий асистент, автоматизації, керування пристроями — без підписки та без хмари.
Три принципи:
- Ядро незмінне — SHA256-захист усіх файлів ядра, Integrity Agent перевіряє кожні 30 сек
- Модулі ізольовані — лише HTTP/localhost:7070, без прямого доступу до даних ядра
- Агент спостерігає — IntegrityAgent: стоп модулів → повідомлення → відкат → SAFE MODE
Швидкий старт
Вимоги
- Raspberry Pi 4/5 (4–8 GB RAM) або будь-який Linux SBC
- Docker + Docker Compose
- Python 3.11+
Запуск
git clone https://github.com/dotradepro/SelenaCore.git
cd SelenaCore
cp .env.example .env
# Відредагуйте .env за потребою
docker compose up -d
Core API: http://localhost:7070
UI (PWA): http://localhost:80 або http://smarthome.local:80
Перший запуск — Onboarding Wizard
При першому старті (або без Wi-Fi) ядро піднімає точку доступу:
SSID: SmartHome-Setup
Password: smarthome
Підключіться з телефону → відкрийте браузер → 192.168.4.1 → пройдіть 9-кроковий wizard.
Архітектура
smarthome-core ~420 MB FastAPI, Device Registry, Event Bus,
Module Loader, Cloud Sync, Voice Core,
LLM Engine, UI Core
smarthome-modules 180-350 MB Усі користувацькі модулі (Plugin Manager)
smarthome-sandbox 96-256 MB Тимчасовий контейнер для тестування (--rm)
smarthome-agent systemd Integrity Agent — незалежний процес
Core API
Base URL: http://localhost:7070/api/v1
Auth: Authorization: Bearer <module_token>
| Метод | Шлях | Опис |
|---|---|---|
| GET | /health | Статус ядра (без авторизації) |
| GET | /devices | Список пристроїв |
| POST | /devices | Реєстрація пристрою |
| GET | /devices/{id} | Конкретний пристрій |
| PATCH | /devices/{id}/state | Оновлення стану |
| DELETE | /devices/{id} | Видалення |
| POST | /events/publish | Публікація події |
| POST | /events/subscribe | Підписка на події (webhook) |
| GET | /modules | Список модулів |
| POST | /modules/install | Встановлення модуля (ZIP) |
| POST | /modules/{name}/start | Запуск модуля |
| POST | /modules/{name}/stop | Зупинка модуля |
| GET | /integrity/status | Статус Integrity Agent |
| GET | /system/info | Інформація про пристрій |
| POST | /wizard/step | Крок onboarding wizard |
Повна документація: http://localhost:7070/docs (Swagger UI, автогенерація FastAPI).
Голосовий асистент
Повністю офлайн — STT та TTS працюють без інтернету.
Wake-word (openWakeWord)
→ Запис аудіо
→ Whisper.cpp STT ~0.8–2 сек
→ Speaker ID (resemblyzer) ~200 мс
→ Fast Matcher (YAML) ~50 мс
→ LLM Fallback (Ollama) ~3–8 сек (лише Pi 5, 8GB)
→ Piper TTS ~300 мс
→ Історія (SQLite)
Підтримувані мови: uk, en.
SDK для розробників модулів
smarthome new-module my-module # створити структуру модуля
smarthome dev # mock Core API на :7070
smarthome test # запустити тести
smarthome publish # упакувати та завантажити в SelenaCore
Безпека
- Integrity Agent — SHA256-перевірка файлів ядра кожні 30 сек
- AES-256-GCM — усі OAuth-токени зашифровані в
/secure/tokens/ - API proxy — модулі ніколи не отримують токени напряму
- Біометрія — зберігається лише локально, синхронізація в хмару заблокована
- Core API — недоступний зовні localhost (iptables)
- Rate limiting — 100 req/sec на токен; PIN: 5 спроб → блокування 10 хвилин