← Назад к Wiki
Початок роботи

SelenaCore — Початок роботи

SelenaCore

Відкрите локальне ядро розумного дому для Raspberry Pi

🇬🇧 English version

Що це

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 хвилин
SelenaCore — Початок роботи | Wiki · Selena Home AI