# WESP Admin

WESP
▶
Назад в рецепты
—%
CPU —
—%
RAM —
—%
swap —
—%
disk —
WESP
OK
version v—
first_run —
warranty_until —
warranty_days —
Ops
log tail; WESP_ADMIN_LOG_PATH
config rollup → section System
backup SQLite→ZIP; restore writes *.restore-bak-*
service WESP_ADMIN_STOP_CMD / WESP_ADMIN_RESTART_CMD
nx throughput (instant)
tx
↑ —
rx
↓ —
nx cumulative
bytes tx
☁↑ —
bytes rx
☁↓ —
host addrs (L3)
—
loadavg 1/5/15
—
uptime · sockets
host: — wesp: — TCP — · UDP —
users
-
recipes
-
components
-
Sync queue, pending
-
instance rollup
Runtime
CONFIG_MODE —
DEBUG —
version —
sync.role —
first_run —
warranty_until —
warranty_days —
DB row counts
users —
recipes —
ingredients —
components —
feeders —
feed_periods —

—

Система

Базы данных

Киоск Pi — всё сразу

Одна кнопка: `wesp.env` + `myscript.service` + киоск Chromium без рабочего стола + перезагрузка. Во время настройки — та же анимация, что на `/starting`.

—

Настройка Pi (systemd + wesp.env)

Отдельные шаги — если нужно только env/systemd без киоска.

То же, что `install_fresh.sh`: `/etc/wesp/wesp.env` (restart, OTA, автоперезагрузка, киоск) и `myscript.service`. Нужен WESP от root. После применения служба перезапускается (~2 с).

—

Радужный экран Pi (firmware)

Большой цветной квадрат до Plymouth — splash GPU в `/boot/firmware/config.txt`. Добавляет `disable_splash=1` в секцию `[all]` (нужен sudo).

—

Заставка загрузки (Plymouth)

Анимация логотипа WESP при включении (800×600, тёмная тема), как в setup/login с тёмной темой. Нужны `plymouth`, `python3-pil` и sudo для установки темы.

—

Киоск: Chromium при входе

Для первой настройки удобнее кнопка «Настроить киоск Pi» выше. Chromium kiosk: сначала тёмный `/starting` с подписями, затем `/scales`. Без перевода страницы (расширенные флаги Chromium). WESP обычно работает от root (`myscript.service`) — запись в `~/.config/autostart/` без пароля.

—

Без рабочего стола (патч `/etc/xdg/labwc/autostart` — нужен root/WESP)
Сброс данных

Удаляет содержимое `data/` (БД, JSON настроек, бэкапы, клиентские каталоги). Исходный код и статика не затрагиваются. После сброса перезапустите WESP и пройдите `/setup`.

- —Загрузка…

ZIP копия SQLite в data/backups/ перед сбросом
Не удалять data/logs
Фраза подтверждения
Обновления (Gitea)

Проверять обновления
Интервал проверки (сек)
Gitea URL
owner
repo
Полный URL репозитория (опционально)
Токен API Gitea
Логин API (basic auth)
Пароль API
Удалить секреты из `.secret/gitea_secrets.json`
Идёт первая синхронизация с сервером. Прогресс — по успешной записи в локальную БД, не только по получению пачек с сервера. Дождитесь завершения (флаг `first_bootstrap_done` в состоянии узла).

Диагностика синхронизации

Загрузка… Метрики runtime относятся к этому процессу воркера (см. блок Runtime).

Runtime (process-local)

Очередь (серверная БД)

Bootstrap / первая синхронизация

Push отчётов (локальная очередь на клиенте)

Проблемные задачи
Конфликты

Consistency (digest)

Клиенты и доставки

Действия

Опасные операции могут повлиять на очередь; подтверждайте осознанно.

Роль и сервер синхронизации

Роль узла
Адрес сервера

Поля ниже пишутся в `data/sync_client_state.json` (полевой `sync_client.py`).

client_id (UUID)
client_name
first_bootstrap_done
Orchestrator (VPS upstream)

Pairing с оркестратором: код из ЛК предприятия → подтверждение на hub.

Upstream URL
hub_site_id
API key

Очередь синхронизации

Ошибки синхронизации

Только ошибки валидации/очереди. Transport (TCP, DNS, timeout) — отфильтровано.

Подключённые клиенты

Этот узел

Роутер настраивать не нужно, если все устройства в одной LAN без изоляции клиентов (guest Wi‑Fi).

Имя и адрес в LAN
Загрузка настроек сети…
Имя в LAN (mDNS)

Пример для фермы: `komton_srv_1.local`, `komton_srv_2.local`…

Публичный базовый URL

Start URL киоска и QR; пусто — автоопределение по запросу.

mDNS: выкл.

Журнал сети

Сохранение настроек, запуск/остановка mDNS, ошибки объявления имени в LAN.

Безопасность и киоск

- MAC-адрес
- Ограничить доступ по списку MAC
  ACL по L2 MAC; только перечисленные интерфейсы.

- Разрешённые MAC
  Список через запятую; формат EUI-48.
- Киоск
- Только сопряжённые терминалы
  Доступ к /scales и kiosk API только с cookie привязанного терминала или Start URL. Выключите для отладки без привязки.

- Срок legacy pair-token
  TTL старого одноразового pair-token (legacy), с [30; 86400]. Start URL — постоянная ссылка.
- Срок cookie привязки
  Срок cookie привязки терминала, сут.
- Калибровка и токен устройства
- Публичная калибровка по токену
  Калибровка без admin-session при валидном DEVICE_TOKEN в заголовке.

- Токен не отображается. Новое значение или флаг сброса ниже.

- HTTP-заголовок токена
  HTTP header для секрета устройства; default X-Device-Token.
- Новый токен устройства
  Пусто = без смены. После commit не читается из API.
- Сбросить токен устройства
  Обнуление секрета; публичная калибровка OFF до нового токена.
- Вход в веб-интерфейс
- Срок «Запомнить меня»
  PERMANENT_SESSION / «Запомнить»: срок, сут.

Нагрузка (история)

fetching…

Симуляция весов
Выключена · чтение HX711

Имитация показаний для киоска и калибровки без датчика. Текущий показ: 0 кг

кг
Ползунок (0–500 кг)
Железо и весы

обновление…

Журнал событий оборудования

HX711, GPIO, пороги CPU/RAM/диска. При замыкании или неверной обвязке смотри коды `hx711_read_error`.

Сводка диагностики

Топология узла и LAN; эвристический аудит безопасности; периферия (GPIO BCM, АЦП HX711).

Сеть: сервер и клиенты

L3 path асимметричен. Полная картина: прогон на server- и client-узле.

Дополнительные точки LAN

Персистенция в network diagnostics JSON на данном хосте; до trace — save.

Безопасность и секреты

Эвристика: только булевы индикаторы (OK / Ошибка) и текст рекомендаций. Список ниже заполняется после GET /api/admin/diagnostics/report (раздел «Диагностика» в меню слева).

Железо и весы

Добавить пользователя
Суперпользователь
Список пользователей

Локальный ассистент
—

Доступно только суперпользователю. Запросы к модели не отправляются в облако — только на ваш локальный сервер (`127.0.0.1`, OpenAI-совместимый API, чаще всего `llama-server`).

Как узнать, что с системой: включите ниже «Чат с контекстом БД» — в диалог идут среда и PRAGMA по файлам SQLite (не строки таблиц раздатчиков/рецептов; полный дамп — «Снимок диагностики»). Отчёты/склад за даты — «Сводка за период». Ещё: дашборд, журналы, Проверка БД.

- Это обычная генерация текста, не режим «размышления» (как у отдельных облачных моделей): ответ появляется сразу после обработки запроса.
- Чат — по умолчанию лёгкий (без БД в промпте). Галка «Чат с контекстом БД» — среда + PRAGMA по .sqlite, без строк справочников (тяжелее по токенам). Сводка за период — отчёты/склад. Полный дамп ORM — «Снимок диагностики». При включённых инструментах модель может вызывать slim-SQL (только SELECT, сначала preview) и анализ логов; выполнение SELECT — только в режиме «Выполнять SELECT».
- Каталог файлов моделей (GGUF): переменная `WESP_ASSISTANT_DIR`.

Управление ИИ
Включить ИИ (чат, сводки, ping, инструменты)

Флаг `admin_llm_enabled` → `data/wesp_security_settings.json`; env `WESP_ADMIN_LLM_ENABLED` имеет приоритет. При выключении API `/api/admin/llm/*` возвращает 503.

Автозапуск `llama-server` при старте WESP

Ключ `llm_autostart` в том же JSON; env `WESP_LLM_AUTOSTART`. Действует после перезапуска WESP (если ИИ включён и есть GGUF в `WESP_ASSISTANT_DIR/models`).

Чат с контекстом БД (среда + PRAGMA SQLite; без строк таблиц)

Ключ `llm_chat_db_context` в `data/wesp_security_settings.json`. Переменная `WESP_LLM_CHAT_INCLUDE_DB_CONTEXT` в окружении имеет приоритет. Полный дамп таблиц по-прежнему только в «Снимок диагностики».

Инструменты в чате (slim-SQL, логи, сводка лога)

Ключ `llm_tools_enabled` в `data/wesp_security_settings.json`. Переменная `WESP_LLM_TOOLS_ENABLED` в окружении имеет приоритет.

wesp-llm · journal 7d · JSONL
Диалог с моделью

Пока идёт запрос, в ленте показывается «Генерируется ответ…». Можно отправить сочетанием `Enter` (новая строка — `Shift+Enter`).

SQL к БД:
Показать trace инструментов
Trace инструментов (последний ответ)

    —

Сводка по данным из базы

Модель получает выгрузку отчётов/склада за выбранный период (тяжелее обычного чата).

Период с
Период по
Что включить
Результат проверки / сводки / диагностики

Проверка БД
Весы
Калибровка
Рецепты
wesp-admin · activity 72h · ui + llm + wesp.log
Журнал

Доступ к модулям

Пользователь: —

- Lab
  Zootech: рационы, нутриенты, авторацион
  Включён

У суперпользователя модуль Lab доступен всегда.

L3 path analysis

Хосты: 1 строка = 1 FQDN/IP. Backend: `traceroute`/`tracepath` (или mtr); парсинг stdout.

НЕ НАКОСЯЧ

SQLite по bind: дерево таблиц. Commit → запись в файлы на сервере; операции необратимы без бэкапа.

Каталог таблиц