라이브 텔레메트리 (SSE)Live telemetry
머신 한 대의 현재 상태를 Server-Sent Events 로 구독해요. 허브가 로컬 /api/live 로 내는 스트림을 클라우드가 중계하는 구조이며, 보드가 내는 값을 1 Hz 로 묶어 보내요 (추출 중에는 10 Hz).
GET /v1/public/machines/{serial}/telemetry/stream
Accept: text/event-stream
이벤트
event: state
data: {"t":"2026-10-29T12:04:01.120Z","mode":"idle","heaters":{"group_c":88.0,"brew_c":91.1,"preheat_c":80.2,"steam_c":123.0},
"setpoints":{"group_c":88.0,"brew_c":91.0,"preheat_c":80.0,"steam_c":123.0},
"duty_pct":{"group":12,"brew":9,"preheat":0,"steam":6},
"pressure_bar":0.0,"flow_ml_s":0.0,"portafilter":"present","eco":false,"faults":[]}
event: shot
data: {"t":"…","shot_id":"sh_01JB7Q","elapsed_s":4.3,"pressure_bar":3.11,"flow_ml_s":4.9,"weight_g":5.2,"paddle_deg":null}
event: alert
data: {"t":"…","code":"overtemp_latch","channel":"steam","value_c":131.2}
: keep-alive| 이벤트 | 주기 | 내용 |
|---|---|---|
state | 1 Hz | 온도 4채널·설정값·히터 듀티·압력·유량·포터필터·절전·폴트 |
shot | 10 Hz (추출 중) | 진행 중 샷의 곡선 샘플 — 끝나면 샷 레코드로 확정 |
alert | 발생 시 | 과열 래치·센서 센티넬·체크인 유실 등 |
| keep-alive | 15 s | 주석 줄 — 연결 유지 |
연결 제한
동시 연결은 티어별로 제한돼요 (Free 1 · Pro 5). 끊기면 Last-Event-ID 로 재접속하면 최근 60초 상태를 다시 받아요. 허브가 오프라인이면 event: offline 뒤 연결이 유지되고, 복귀하면 state 가 다시 흐러요.
Subscribe to one machine's current state over Server-Sent Events. The cloud relays the hub's local live stream: 1 Hz at idle, 10 Hz during extraction.
GET /v1/public/machines/{serial}/telemetry/stream
Accept: text/event-stream| Event | Rate | Content |
|---|---|---|
state | 1 Hz | four boiler temperatures, setpoints, heater duty, pressure, flow, portafilter, eco, faults |
shot | 10 Hz | samples of the running shot |
alert | on occurrence | overtemp latch, sensor sentinel, check-in lost |
| keep-alive | 15 s | comment line |