docs: критические уточнения по status=connected и типичные ошибки

This commit is contained in:
progl
2026-05-07 16:44:28 +03:00
parent cd7497b014
commit f306a02b2b
2 changed files with 32 additions and 0 deletions
+27
View File
@@ -108,6 +108,33 @@ stateDiagram-v2
- MQTT: экспоненциальный backoff (1s → 2s → 4s → ... → max 60s)
- При восстановлении: публикует `{UID}/status = "connected"` → сервер снова шлёт preferences
> **Важно**: Публикация `status = "connected"` должна происходить в колбэке подключения MQTT,
> а не только при первом старте. Иначе после реконнекта устройство не получит настройки с сервера.
---
## Типичные ошибки реализации
### 1. Неверный payload в `{UID}/status`
```
❌ "online", "Online", "connected\n", "1"
✅ "connected"
```
Сервер проверяет точное совпадение байт. Неверный payload → `push_box_settings` не вызывается →
устройство работает без калибровок из БД до следующей перезагрузки.
### 2. `status` публикуется только при первом старте
При реконнекте MQTT (после обрыва WiFi, перезапуска брокера) нужно снова опубликовать
`{UID}/status = "connected"`. Иначе после восстановления связи настройки не придут.
### 3. Pump ID отсчёт
API использует 1-based индексацию (1–8). Прошивка внутренне хранит 0-based, но
MQTT-команды и HTTP API принимают 1-based. Проверять валидацию: `id ∈ [1, 8]`.
### 4. HTTP API требует `Accept: application/json`
При обращении к ponics.online API без этого заголовка сервер может вернуть 302 (редирект
на страницу логина) вместо JSON. Клиенты должны явно указывать `Accept: application/json`.
---
## Home Assistant интеграция (отдельный канал)