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

Облачное подключение

http://<ip-платы>/cloud.html — admin-only. Привязать плату к проекту в облачном кабинете.

Это опциональная фича: если хотите удалённый доступ, расшаривание, OTA по кнопке через web — заполняйте. Если только локальная LAN — оставьте пустым.

Форма

Поле Назначение
Cloud URL Корень облачного сервиса. Для нашего — https://cloud.kavlev.ru/.
Project API key Длинная строка, генерится при создании проекта в облачном кабинете.
Heartbeat interval (сек) Как часто плата шлёт heartbeat. Дефолт 15. Меньше — быстрее доставка команд, больше трафика; больше — наоборот. Диапазон 5..300.

После сохранения плата сразу пытается отправить первый heartbeat. Если в UI облачного кабинета через 30–60 секунд плата не появилась — проверьте:

  • URL — без опечатки, со слешом на конце.
  • API key — скопировался целиком (длинный, иногда обрезается при копировании).
  • Wi-Fi подключение работает (плата в STA-режиме, не в AP).
  • Внешний интернет работает (можете в Настройках → Время увидеть source: ntp если NTP подключился).

Как это работает

плата ──── каждые 15 сек ──→ POST cloud.kavlev.ru/api/v1/devices/{uuid}/heartbeat
   ↑                                  │
   │                                  ▼
   │                          {pending_commands: [...]}
   └────── выполнение команды ───────┘

Тело heartbeat'а:

{
  "fw_version": "0.4.7-esp8266",
  "ip": "192.168.1.50",
  "uptime_sec": 3600,
  "interval_sec": 15,
  "state": { "devices": [/* relays, sensors */] },
  "tasks": [/* короткие саммари */],
  "applied_command_ids": [42, 43]
}

Подписан HMAC-SHA256 от project_api_key. Если ключ неверный — облако ответит 401 и не примет данные.

В ответ облако возвращает:

{
  "server_ts": 1778080000,
  "pending_commands": [
    { "id": 44, "type": "set_relay", "payload": {"device_id": 1, "state": true} }
  ]
}

Плата выполняет команды и на следующем heartbeat'е возвращает applied_command_ids. У каждой команды TTL 1 час — если плата офлайн, команды копятся; если её нет дольше — облако чистит просроченные.

Что можно делать из облака

Когда плата подключена:

  • Управлять реле через UI проекта (как с дашборда платы, только удалённо).
  • OTA по кнопке — обновить прошивку без USB / без локального доступа.
  • Видеть последний heartbeat-state на дашборде проекта.
  • Заметки и алерты через email когда условие срабатывает.
  • Голосовые ассистенты — Алиса / Маруся / Салют могут управлять реле платы.

Подробнее — Облачный сервис.

Отвязать плату

Очистить Project API key в форме и сохранить. Плата перестанет слать heartbeat'ы; в облачном кабинете она через ~5 минут станет "offline" и через сутки помечается как inactive (не удаляется, чтобы можно было вернуть).

Безопасность

  • API key никогда не передаётся в URL или query string — только в header.
  • Каждый heartbeat подписывается. Replay-атаки защищены X-Device-Ts (отвергается если разница с server time > 60 секунд).
  • В обратную сторону (cloud → plate) — никакой attack surface, плата сама pull'ит. Никакого port-forwarding'а на плату не нужно.

API за этой страницей

См. API → Cloud / Heartbeat.