Перейти к содержанию

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-бота)

  1. Открыть в Chrome https://awdc.nikolaev.world/.
  2. Дождаться загрузки формы «Управление парком».
  3. Меню Chrome (три точки сверху справа) → «Установить приложение» (на некоторых прошивках — «Добавить на главный экран»).
  4. Подтвердить имя — по умолчанию «Oper DOSEmax».
  5. Иконка появится на главном экране.
  6. Тап → 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, бэкап).

  1. Подключиться к Wi-Fi:
  2. либо к точке доступа контроллера (AWDC_Setup или ваш SSID, если меняли),
  3. либо к общей сети, где есть и контроллер, и ваш телефон.
  4. Открыть в Chrome http://awdc.local/ или http://192.168.x.x/.
  5. Войти admin / ваш пароль.
  6. Меню 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'ы, не транспорт)