Howto: установить DOSEmax как приложение на телефон (PWA)¶
DOSEmax можно поставить на главный экран Android-телефона как обычное приложение. После установки появится иконка, открывается fullscreen без браузерной обвязки. Под капотом — обычная веб-страница.
В проекте две разные DOSEmax PWA, для разных сценариев:
| Иконка | Откуда устанавливать | Когда работает | Что умеет |
|---|---|---|---|
| Oper DOSEmax (жёлтая 🟡) | https://awdc.nikolaev.world/ |
везде где есть интернет | управление парком через MAX-бота |
| Admin DOSEmax (зелёная 🟢) | http://awdc.local/ (в зоне Wi-Fi мойки) |
только когда телефон в Wi-Fi контроллера | полный интерфейс одной мойки (настройки, дозаторы, OTA, диагностика) |
Можно поставить обе — цветовая кодировка иконки сразу даёт понять оператору, на каком уровне он работает: жёлтый — управление парком (операторский режим), зелёный — администрирование конкретного устройства (admin-режим).
iOS Safari не поддерживается — в парке iOS-операторов нет, ярлык вручную через «На экран „Домой“» теоретически работает, но как best-effort.
Oper DOSEmax (cloud, через MAX-бота)¶
- Открыть в Chrome
https://awdc.nikolaev.world/. - Дождаться загрузки формы «Управление парком».
- Меню Chrome (три точки сверху справа) → «Установить приложение» (на некоторых прошивках — «Добавить на главный экран»).
- Подтвердить имя — по умолчанию «Oper DOSEmax».
- Иконка появится на главном экране.
- Тап → fullscreen без адресной строки.
Если Chrome не предлагает «Установить приложение» — сайт открыт по
http:// или сертификат не валиден. Должна быть зелёная иконка замка
слева от URL.
Первое использование cloud-PWA¶
При первом запуске Mini App откроет настройки (⚙) и попросит:
- Токен бота — скопировать из web-UI контроллера: Сеть → MaxBot → Чат-доска → «Данные для Mini App» → «Показать токен и chat_id» → кнопка копирования у поля «Токен бота».
- chat_id чата-доски — оттуда же, второе поле.
Это те же настройки, что используются в Mini App внутри MAX-клиента. Если уже настраивали Mini App через MAX — данные те же, можно переписать вручную. После «Сохранить и закрыть» — готово.
Admin DOSEmax (local, одна мойка по Wi-Fi)¶
Этот сценарий — для техника или владельца, который стоит рядом с конкретным контроллером и хочет полный интерфейс (настройка, диагностика, OTA, бэкап).
- Подключиться к Wi-Fi:
- либо к точке доступа контроллера (
AWDC_Setupили ваш SSID, если меняли), - либо к общей сети, где есть и контроллер, и ваш телефон.
- Открыть в Chrome
http://awdc.local/илиhttp://192.168.x.x/. - Войти
admin/ ваш пароль. - Меню Chrome → «Добавить на главный экран» → подтвердить имя.
Внимание: «Установить приложение» НЕ появится для local-варианта.
Chrome требует HTTPS или localhost для полноценной установки PWA. ESP32-контроллер раздаёт по
http://(HTTPS не реализован — большая отдельная задача с самоподписанными сертификатами и mDNS-доверием).Поэтому для Admin DOSEmax доступен только режим «Добавить на главный экран» — Chrome создаст ярлык-bookmark, открывающий URL в обычной вкладке (без fullscreen, без splash). Иконка та же drop-логотип AWDC.
Если нужен полный PWA с локального контроллера — нужен HTTPS на ESP32. Это отложенная задача (см. project-context/tasks/local-https-ca.md), возвращаемся к ней когда соберутся реальные пользователи с конкретной жалобой на отсутствие fullscreen/splash в локальном сценарии.
Что работает и что нет¶
| Сценарий | Cloud (max-webapp) | Local (web-ui) |
|---|---|---|
| Отправка команды контроллеру | да, через MAX-бота (~30-60 с) | да, мгновенно по HTTP |
| Получение ответа | да | да |
| Удалённый доступ (из любой точки с интернетом) | да | нет |
| Управление несколькими контроллерами | да (парк через бот-чат) | нет (только один) |
| Доступ к OTA, бэкапу, диагностике | нет (только команды) | да |
| Если интернет у телефона есть, но MAX упал | нет | да (если в Wi-Fi) |
| Если интернет у телефона нет | нет | да (если в Wi-Fi мойки) |
| Без MAX-клиента на телефоне | да, это и есть смысл PWA | не зависит |
| Push-уведомления о тревогах | пока нет | пока нет |
Удаление¶
- Android Chrome: долгий тап по иконке на главном экране → «Удалить».
- Удаление иконки не стирает данные (токен / сессионные cookies в
DeviceStorage браузера). Чтобы полностью очистить — Chrome →
Настройки → Конфиденциальность → Очистить данные → сайт
awdc.nikolaev.worldили ваш контроллер.
Если что-то не работает¶
| Симптом | Скорее всего |
|---|---|
| Нет «Установить приложение» в меню Chrome | Cloud: сайт открыт по http:// вместо https. Local: URL — голый IP, попробуйте awdc.local |
| Иконка ставится, но открывается «как обычная вкладка» | manifest.json не отдаётся сервером — проверьте curl <url>/manifest.json |
| Команды отправляются, но ответ не приходит | См. troubleshooting в setup-mini-app.md (cloud) или api/diagnostics.md (local) |
| После сетевого обрыва приложение пустое | Service worker отсутствует (мы его отложили) — нормально, при возврате сети откроется заново |
См. также¶
- setup-mini-app.md — Mini App в MAX (основная инструкция cloud-сценария)
- setup-maxbot.md — настройка бота и парка
- setup-wifi.md — настройка STA / попадание в одну сеть с телефоном
- tasks/pwa-mini-app.md — план реализации
- ADR-011 — обоснование (две PWA как entry-point'ы, не транспорт)