Puther Devices

Внутренний каталог прошивок и heartbeat-агентов для лабораторных контроллеров. Документация публичная, доступ к устройствам — только из контура мастерской.

Что это

Puther Devices собирает статусы плат: версия прошивки, аптайм, CRC образа. Агент на устройстве раз в минуту шлёт компактный JSON на ingest. Ниже — актуальный контракт heartbeat, которым пользуются платы серии PD-12.

Heartbeat API

POST /v1/devices/{id}/heartbeat · Content-Type: application/json

import json, time, hashlib, urllib.request

def heartbeat(device_id: str, fw: str, ingest: str) -> None:
    payload = {
        "ts": int(time.time()),
        "fw": fw,
        "uptime_s": int(open("/proc/uptime").read().split()[0].split(".")[0]),
        "crc32": hashlib.sha256(fw.encode()).hexdigest()[:8],
    }
    req = urllib.request.Request(
        f"{ingest}/v1/devices/{device_id}/heartbeat",
        data=json.dumps(payload).encode(),
        headers={"Content-Type": "application/json"},
        method="POST",
    )
    with urllib.request.urlopen(req, timeout=8) as resp:
        if resp.status not in (200, 204):
            raise RuntimeError(f"ingest {resp.status}")

Стенды

КодПлатаПрошивкаСтатус
PD-12-ASTM32G01.4.2stable
PD-12-BESP32-C31.5.0-rc1lab
PD-09nRF528400.9.8frozen