Перейти к содержимому

Heartbeat и состояние парка

POST /fleet/heartbeat/ примерно каждые 30 секунд, пока ваш парк на смене. Тело принимает необязательный объект summary (количество роботов, заряд — всё, что полезно вашей эксплуатации); он сохраняется для диагностики.

Если ваш последний heartbeat старше окна устаревания филиала (heartbeat_stale_seconds в снимке), парк считается офлайн: предложения тихо прекращаются, а сотрудники подают как обычно. Восстановление происходит автоматически при следующем heartbeat — без повторной регистрации и без эскалации.

И GET /fleet/, и ответ на heartbeat возвращают один и тот же снимок:

Поле Значение
filial_id Филиал, к которому привязаны эти учётные данные.
activation_status Состояние жизненного цикла активации.
confirmation_policy human_confirmed или auto_confirm.
auto_confirm_dwell_seconds Минимальный промежуток между arrived и completed при автоподтверждении.
offer_expiry_seconds Сколько предложение остаётся доступным для принятия.
heartbeat_stale_seconds Окно устаревания для живости парка.
fleet_online Свеж ли ваш heartbeat сейчас.
offers_enabled Могут ли новые предложения сейчас до вас дойти.
blocked_reasons Почему предложения остановлены, когда они остановлены (см. ниже).
server_time Авторитетные часы — используйте их для планирования отчётов, чувствительных к задержке.

Когда offers_enabled равно false, blocked_reasons называет все причины, действующие сейчас:

Код Значение
platform_frozen Sitora включила общую заморозку платформы.
no_activation У филиала нет активации робототехники.
vendor_not_certified Сертификация поставщика сейчас недействительна.
entitlement_missing Тариф ресторана не включает робототехнику.
robotics_paused Владелец, менеджер филиала или Sitora приостановили этот филиал.
activation_not_active Активация существует, но не в активном состоянии.
fleet_offline Ваш heartbeat устарел.

Считайте это диагностикой, а не сбоями: продолжайте отправлять heartbeat, припаркуйте роботов и ждите. Любое заблокированное состояние, кроме fleet_offline, решается на стороне Sitora; fleet_offline решается вашим же следующим heartbeat.