docs review

This commit is contained in:
2026-10-11 01:27:15 +03:00
parent e460ca647c
commit f787a16270
77 changed files with 1408 additions and 957 deletions
+7 -7
View File
@@ -1,4 +1,4 @@
# LightHub: Модуль многоканальной системы полива (out_sprinkler)
# LightHub: Модуль многоканальной системы полива (out\_sprinkler)
Данный модуль реализует многозональную систему полива
## Система состоит из следующих компонент:
@@ -19,9 +19,9 @@
* SP\_DREN\_EMPTY - дренажный насос выключился встроенным поплавком - колодец пуст
* SP\_VIN - включено наполнение из водопровода
* SP\_FULL - бак наполнен
* SP\_DRYING - режим осушения системы: налив перекрыт, работает насос полива для слива бака (SP\_DRYING=7, out_sprinkler.h:34)
* SP\_DRYING - режим осушения системы: налив перекрыт, работает насос полива для слива бака (SP\_DRYING=7, out\_sprinkler.h:34)
Строковые значения, публикуемые в топик `$state` (out_sprinkler.cpp:263-308): `OFF`, `DREN_ON`, `DREN_OPERATE`, `DREN_EMPTY`, `VIN`, `FULL`, `DRYING`, `FAULT_VIN`, `FAULT_DREN`, `UNKNOWN`.
Строковые значения, публикуемые в топик `$state` (out\_sprinkler.cpp:263-308): `OFF`, `DREN_ON`, `DREN_OPERATE`, `DREN_EMPTY`, `VIN`, `FULL`, `DRYING`, `FAULT_VIN`, `FAULT_DREN`, `UNKNOWN`.
граф переходов конечного автомата системы налива воды
@@ -38,7 +38,7 @@ VIN|fbDren|DREN\_OPERATE|вылючить клапан vIN для набора
VIN, DREN\_OPERATE|vMax|FULL | выключить vIN, rDren - бак полон|
VIN|таймаут 1200 сек | FAULT\_VIN| выключить vIN - бак так и не наполнился|
DREN\_OPERATE|fbPump (качает основной насос)|DREN\_OPERATE|сброс таймера (@timer = now) — не считать ошибку, пока качает основной насос (L562)|
DREN\_OPERATE|таймаут 4000 сек |FAULT_DREN|выключить rDren - не смотря на продолжительную работу насоса бак не наполнен|
DREN\_OPERATE|таймаут 4000 сек |FAULT\_DREN|выключить rDren - не смотря на продолжительную работу насоса бак не наполнен|
FULL|! wMax|DREN\_ON|дренаж перезапускается при опустошении бака (L609-617)|
FAULT\_VIN, FAULT\_DREN|wMax|FULL|сброс ошибки при наполнении бака (L619-635)|
@@ -195,7 +195,7 @@ root/name/sprinkler/val -> -1 //система перейдет в режим FR
Дополнительно к перекрытию поступления воды в бак (заблокирован автомат пополнения бака из дренажного насоса и водопровода) данная команда включает помпу.
- DRY переопределяет ON: если система находится в режиме `@state==SP_DRYING` и приходит команда ON, она исполняется как CMD_DRY, а не ON (out_sprinkler.cpp:837-841).
- DRY переопределяет ON: если система находится в режиме `@state==SP_DRYING` и приходит команда ON, она исполняется как CMD\_DRY, а не ON (out\_sprinkler.cpp:837-841).
- Режим DRY персистентен: `@state=SP_DRYING` хранится в конфиге и переживает перезагрузку контроллера; реле восстанавливаются из `@lastVals`, после рестарта в топик публикуется `DRYING`.
Далее, требуется слить бак включением выбранных зон полива или через водяные розетки.
@@ -207,7 +207,7 @@ root/name/sprinkler/val -> -1 //система перейдет в режим FR
При старте (первый Poll) контроллер принудительно публикует все ключевые статусы: `$wMax`/`$wMin`/`$fbDren`/`$fbPump`/`$rPump`/`$rDren`/`$rVIN` + `$state`/`$fault` (L474-487). Повторно `$state`/`$fault` публикуются при командах ON/OFF (L842, L848).
**Ошибки (onFault / $fault):** при каждом переходе состояния публикуется код ошибки в топик `$fault`: 0 — без ошибки, 1 — FAULT_VIN, 2 — FAULT_DREN (L311-315). Вместо публикации в `$fault` можно задать EXEC-объект `onFault` в корневом (`""`) объекте — в этом случае при срабатывании ошибки исполняется он с кодом ошибки аргументом (L260-262, L311-314).
**Ошибки (onFault / $fault):** при каждом переходе состояния публикуется код ошибки в топик `$fault`: 0 — без ошибки, 1 — FAULT\_VIN, 2 — FAULT\_DREN (L311-315). Вместо публикации в `$fault` можно задать EXEC-объект `onFault` в корневом (`""`) объекте — в этом случае при срабатывании ошибки исполняется он с кодом ошибки аргументом (L260-262, L311-314).
**Примеры выдачи в топики:**
@@ -267,7 +267,7 @@ sensor:
state_topic: "root/s_out/sprinkler/nord/val"
- name: "Полив капельный выполнено"
state_topic: "edem/s_out/sprinkler/trees/val"
state_topic: "house/s_out/sprinkler/trees/val"
- name: "Поливаем юг"
state_topic: "root/s_out/sprinkler/south/$state"