KINDOT ADMIN
Столы
➕ Добавить стол
Привезли новый стол — подключите его к сети заведения и добавьте в зал.
Ноутбук не нужен: всё делается отсюда.
1. Стол уже в сети — найти и добавить
2. Стол ещё не в сети — передать ему WiFi
Стол раздаёт свою точку KINDOT-XXXX. Подключитесь к ней с этого
устройства, затем впишите сеть заведения и адрес стола (по умолчанию 192.168.4.1) —
стол сохранит сеть и перезагрузится уже в неё.
Живой статус столов
Отчёты по столам
Журнал по столу
загружаю…
События
скорость
Информация о подключении
Успешно
—
—
MAC-адрес
—
Объём Flash
—
Особенности чипа
—
Кварцевый резонатор
—
Производитель Flash
—
Flash ID (JEDEC)
—
Сведения о порте
—
Прошить = записать + сброс + авто-проверка: монитор сам покажет, что плата стартовала (версия) и вышла в сеть (IP). ESP32-C6: для прошивки используй порт CH343 (не USB-JTAG/UART0). Если запись срывается — снизь скорость до 230400/115200. WebSerial — только по https:// или http://localhost.
Сохранённые сети
загружаю…
Плата подключена по USB (как для прошивки). Команда сохранит WiFi/номер в память платы и перезагрузит её. Пароли хранятся локально в wifi_profiles.json.
Обычная сборка использует кэш (минуты). «С нуля» стирает кэш платы
целиком, включая ESP-IDF — используй после странных ошибок или битой прошивки.
По дням
Кто рассчитал
По столам
Топ позиций
Персонал
Приглашение уходит на почту ссылкой: человек сам задаёт
себе пароль, вы его не знаете и не передаёте.
Менеджер паролей
Логины и пароли хранятся зашифрованными (keystore). Пароль
показывается только по кнопке и пишется в аудит-журнал.
Новая запись
Безопасность
Сессия входа
Вы можете завершить текущий сеанс на этом устройстве. Это удалит авторизационный cookie-токен.
Фоновый режим
интервал
Управляющий бот KINDOT ADMIN
Отдельный бот для владельца и администрации заведения
(не публичный @kindotbot для гостей). Владелец — полный доступ; администрация
из списка ниже — урезанный вид (только столы и управление).
Администрация заведения (урезанный доступ)
По одному Telegram-id на человека. Свой id узнать: написать боту
@userinfobot
или /start управляющему боту — он ответит твоим id.KINDOT PANEL — программа сотрудников
PANEL — отдельная программа (порт 8080, start-panel.bat) со своим
паролем и своим Telegram-ботом. Сотрудники видят только столы: пароль ADMIN к
PANEL не подходит, полного доступа через панель не получить.
Создай бота в
@BotFather (/newbot) и вставь токен —
больше ничего настраивать не нужно: ты станешь управляющим бота, сотрудники из
списка ниже получат доступ сразу. Новых добавляй командой /approve <id>.Токен бота PANEL
Пароль входа в PANEL
Пароль сотрудников, не твой. Пустое поле — пароль
не меняется. Пароль ADMIN к PANEL не подходит.
Сотрудники (Telegram-id, доступ к боту PANEL)
Гостевой доступ (QR стола)
Здесь настраивается то, что видит гость за столом, когда сканирует
QR-наклейку. Это НЕ управляющий бот: админка живёт в @kindot_admin_bot (секция выше),
а гостям показывается публичный бот @kindotbot.
Если ничего не менял — значения по умолчанию уже рабочие, трогать не нужно.
1 · Бот гостей (username)
Имя гостевого бота без @. Сюда НЕЛЬЗЯ вставлять токен
(длинную строку с двоеточием) — только короткое имя, например
kindotbot.2 · Имя мини-аппы
Короткое имя Mini App из BotFather. Вместе с ботом даёт ссылку
гостя:
t.me/kindotbot/kindot.3 · Публичный веб-адрес — обычно ПУСТО
Оставь пустым: внутри заведения QR открывает
stolN.local
автоматически. Заполняется ТОЛЬКО если у тебя есть свой домен и столы выставлены в
интернет, например https://stol{no}.kindot.kz — {no} заменится
на номер стола. Токен бота сюда вставлять нельзя.Как настроить гостевого бота с нуля (пошагово)
- В Telegram открой @BotFather → команда
/newbot→ придумай имя и username (напримерkindotbot). Токен, который он выдаст, для этой секции НЕ нужен — токен живёт в прошивке стола. - Там же:
/newapp→ выбери своего бота → задай имя мини-аппы (напримерkindot), описание и картинку. - В поле «Web App URL» укажи адрес стола (внутри сети —
http://stol1.local, из интернета — свой домен). - Впиши сюда username бота (шаг 1) и имя мини-аппы (шаг 2) → «Сохранить».
- Готово: QR на столе поведёт гостя в
t.me/<бот>/<аппа>?startapp=t<номер>.
Доступ из интернета
HTTPS-туннель Cloudflare: трафик зашифрован, вход — по паролю.
Ссылка временная (trycloudflare) — работает, пока приложение запущено.
Постоянный домен и связь со столами через интернет — этап Pi-Host.
Хаб
Перезапускает ОБА процесса — ADMIN (этот кабинет, порт 8000) и
PANEL (зал/персонал, порт 8080) — разом, даже если нажали здесь, в ADMIN.
Столы работают независимо от хаба и не пострадают — просто на несколько
секунд пропадут из реестра, пока супервизор (24/7-цикл) поднимает оба
процесса заново.
ИИ-рисование
Персонал пишет «нарисуй мандалу» — хаб превращает текст в G-код и
отправляет на стол (кнопка «🎨 ИИ-рисунок» в карточке стола). Ключ
хранится ТОЛЬКО здесь, в зашифрованном виде: ни в прошивке, ни в браузере его нет.
Столы в интернет не выходят — рисунок приходит к ним по локальной сети.
Подходит любой из двух ключей — провайдер определяется сам:
sk-ant-… — Anthropic (console.anthropic.com, подписка Claude Pro/Max не годится),
sk-or-… — OpenRouter (openrouter.ai/keys).
Эта модель отвечает за рисунок на песке. По умолчанию
anthropic/claude-haiku-4.5 — единственная из проверенных, кто прошёл
оба тестовых рисунка (≈$0.016 за рисунок). Дешёвые модели заворачивают спираль
за борт поля. Для беседы с гостем ставьте модель попроще — поле
«Модель диалога» ниже (беседа на ling-2.6-flash ≈ $0.0002 против
$0.019 на Haiku). Модели с суффиксом :free бесплатны, но работают
только после галки на openrouter.ai/settings/privacy — а это разрешение
провайдерам обучаться на ваших промптах, то есть на переписке гостей.
Модель:
ИИ-помощник гостя
Гость пишет живым текстом — в гостевого бота или в пузырь на
странице стола — и помощник отвечает: советует по меню, собирает заказ, зовёт
официанта, рисует узор на песке. Заказ уходит на кухню только после кнопки
«Подтверждаю» у гостя; цены всегда берутся из меню, а не из слов ИИ.
Работает на том же ключе, что и ИИ-рисование.
Лимиты:
запросов/сутки
сообщ./час на стол
рисунков/час
Бесплатный тариф OpenRouter: 20 запросов в минуту и
50 в сутки, а после разового пополнения на $10 — 1000 в сутки. Одна беседа
с гостем — это 3–10 запросов. Когда лимит выбран, помощник не ломается: он
отвечает кнопками «Меню» и «Позвать официанта».
Модель диалога:
Болтовня идёт постоянно, рисунок — редко. Поставьте сюда дешёвую
модель (например
inclusionai/ling-2.6-flash): сто бесед в день обойдутся
в 2 цента вместо $1.9 на модели для рисования. Главное — чтобы она поддерживала
инструменты, иначе помощник не покажет меню и не соберёт заказ.Обновления столов (план)
OTA-доставка прошивок на столы — через Telegram-бот или Pi-Host
(подписанные и шифрованные релизы, см. tools/sign). Канал выбирается на следующем
этапе — скажи, каким мессенджером/каналом пользуешься, и заложим его.
Открытые и недавние заказы
Добавить позицию
Меню общее для ADMIN и KINDOT PANEL — правки видны сразу в обоих приложениях.
Экран выбора блюд на самом столе появится отдельным обновлением прошивки.
Оценки гостей
Рейтинг блюд — что заказывают и как оценивают
Столбик — сколько раз блюдо попадало в оценённый заказ (популярность);
цифра справа — средняя оценка еды в этих заказах. Низкая оценка при высокой
популярности = блюдо тянет впечатление вниз.
Последние отзывы
💵 Касса
смена закрыта
Размен в ящике, ₸
Сумма, ₸
Пересчитано в ящике, ₸
Ожидаемые наличные — это размен плюс внесения минус изъятия.
Выручка по чекам в них пока не входит: у чека ещё нет способа оплаты,
и складывать в ящик оплаченное картой значило бы показывать недостачу
каждый вечер. Выручка смены — это ОПЛАЧЕННЫЕ чеки; открытые висят
отдельной строкой, потому что еда на столе деньгами ещё не стала.
🧾 Открытые чеки
0 ₸
Стол №
Закрытые за смену
🧾 Последний Z-отчёт
🟢 Сейчас на смене
0
👥 Сотрудники и графики
График считается от даты старта: 2/2 — два через два, 5/2 — пятидневка,
4/3, 6/1, 3/3, 1/3 или свободный. Telegram-ID нужен, чтобы сотрудник открывал смену
прямо из бота командой
/shift.📈 Месяц: люди, часы и оценка сервиса
По каждому: сколько смен и часов отработал, сколько заказов прошло
в его смены и как гости оценили обслуживание именно тогда. Это показывает не «кто виноват»,
а где сервис проседает — по людям, дням и нагрузке.
📅 По дням месяца
Столбик — выручка дня, точка сверху — средняя оценка обслуживания.
Провал оценки в загруженный день = не хватало людей на смене.
Свои станции
Кухня, бар и официант есть всегда. Добавь свою станцию —
например «Кальянная» или «Кондитерская». Вместе с ней появится
категория меню: блюда этой категории пойдут на её экран, а не на кухню.
Название
id (латиницей)
Категория в меню
Назначить станцию
Telegram-id сотрудника — из списка сотрудников бота PANEL
(Настройки → KINDOT PANEL), либо командой
/stations прямо в боте.Киоск станции — тач-дисплей (опционально)
Отдельный экран для кухни/бара/официанта — без Telegram и без
пароля. Откройте ссылку в браузере планшета/моноблока на кухне или у бара — заказы
станции появятся сами, с крупной кнопкой «Готово». Не нужно — просто не открывайте.
Каналы станций (кухня/бар/официант)
Уведомление официанта
Дублировать уведомления
📱 Как гость за столом получает доступ
Это меняет то, что закодировано в QR на экране стола. Работает на
любой уже прошитой кафе-версии — перепрошивать столы не нужно.
Отзыв гостя после подачи
через
мин после подачи
🌐 Доступ к кабинету из интернета
Внутри заведения кабинет открыт по локальной сети. Чтобы заходить
из дома или в дороге — включите HTTPS-туннель: трафик шифруется, вход остаётся по
паролю. Ссылка временная и меняется при перезапуске; актуальная всегда приходит
в ваш бот KINDOT PANEL и доступна там командой
/link.Наружу не пустит, пока стоит пароль по умолчанию — сначала смените его.
Ежедневный отчёт
час автоотправки (XLSX управляющему PANEL)