fix: pump ID расхождение устранено, протокол актуализирован

Прошивка исправлена (aa5db288): валидация 0-7 → 1-8.
Документация обновлена — убраны предупреждения, добавлены ссылки на фикс.
This commit is contained in:
progl
2026-05-05 13:15:19 +03:00
parent e69665273c
commit cd7497b014
2 changed files with 9 additions and 15 deletions
+6 -12
View File
@@ -68,17 +68,17 @@ stateDiagram-v2
- MCP23017 → setPin(pin, state) - MCP23017 → setPin(pin, state)
### `set/pump/{id}/run` ### `set/pump/{id}/run`
- Проверить id ∈ [0, 7] ⚠️ (см. расхождение ниже), time ∈ [1, 60000] - Проверить id ∈ [1, 8], time ∈ [1, 60000]
- Включить помпу → таймер → выключить - Включить помпу → таймер → выключить
### `set/pump/{id}/dispense` ### `set/pump/{id}/dispense`
- Проверить id ∈ [0, 7] ⚠️, grams ∈ [0.1, 1000] - Проверить id ∈ [1, 8], grams ∈ [0.1, 1000]
- Рассчитать время через ml/sec калибровку помпы - Рассчитать время через ml/sec калибровку помпы
- Включить → таймер → выключить - Включить → таймер → выключить
- Обновить счётчик `total_dispensed` - Обновить счётчик `total_dispensed`
### `cmd/pump/{id}/stop` ### `cmd/pump/{id}/stop`
- Проверить id ∈ [0, 7] ⚠️ - Проверить id ∈ [1, 8]
- Немедленно выключить помпу, сбросить таймер - Немедленно выключить помпу, сбросить таймер
### `set/preferences/all` ### `set/preferences/all`
@@ -95,16 +95,10 @@ stateDiagram-v2
--- ---
## ⚠️ Pump ID расхождение ## Pump ID: единый стандарт 1–8
| Сторона | Диапазон | Код | Сервер и прошивка используют 1-based индексацию (18).
|---------|----------|-----| Исправлено в прошивке: commit `aa5db288` — валидация `0-7``1-8` в `mqtt_callbacks.cpp`.
| Сервер (API serializer) | 18 | `min_value=1, max_value=8` |
| Прошивка (валидация) | 0–7 | `pumpId < 0 \|\| pumpId > 7` |
| Прошивка (итерация mixer) | 1pumpCount | `for pumpId = 1...pumpCount` |
**Следствие**: сервер отправляет `set/pump/8/run` → прошивка валидирует `8 > 7` → команда игнорируется.
**Рекомендация**: привести к единому стандарту 1-based (1–8). Исправить валидацию в `mqtt_callbacks.cpp` строки 457, 482, 507 на `pumpId < 1 || pumpId > 8`.
--- ---
+3 -3
View File
@@ -172,10 +172,10 @@ Payload: строка `"connected"` — устройство подключил
| Топик | Payload | Ограничения | | Топик | Payload | Ограничения |
|-------|---------|------------| |-------|---------|------------|
| `{UID}/set/pump/{id}/run` | `"5000"` (мс) | id: 17 ⚠️, время: 160000 мс | | `{UID}/set/pump/{id}/run` | `"5000"` (мс) | id: 18, время: 160000 мс |
| `{UID}/set/pump/{id}/dispense` | `"50.5"` (граммы) | id: 17 ⚠️, граммы: 0.11000 | | `{UID}/set/pump/{id}/dispense` | `"50.5"` (граммы) | id: 18, граммы: 0.11000 |
> ⚠️ **Pump ID расхождение**: сервер (API) принимает id 1–8, прошивка валидирует `pumpId < 0 || pumpId > 7` — id=8 будет отклонён прошивкой. Нужно либо выровнять API на 1–7, либо исправить прошивку на 0–8. Текущее рабочее значение: **1–7**. > Pump ID: единый стандарт 1–8 (1-based). Исправлено в прошивке commit aa5db288.
### Настройки (`set/preferences/all`) ### Настройки (`set/preferences/all`)