ESP-Protokoll und JSON-Beispiele
USB Web Serial und lokaler WebSocket verwenden ein JSON-Objekt pro Nachricht. Für WLAN/Internet speichert der ESP die Basis-URL dieses Webdiensts und den ESP-PIN. Maße: Geschwindigkeit in m/s, Winkel in Grad, x_pos in Zentimetern.
{"type":"throw","id":"t-42","speed":7.4,"angle":-6,"x_pos":12}
{"type":"button","id":"b-17","button":1,"state":"pressed"}
{"type":"ack","id":"led-42","ok":true}
Das Spiel sendet type: "led" mit effect, duration_ms, brightness, speed, animation und den Zonen lane, pins, portal. Die virtuellen Seitenlinien starten denselben Effekt im selben Spieltick. Effekte: ready, throw-running, pin-hit, strike, spare, gutter, player-change und game-finished. Für eingehende Pakete mit id antwortet das Spiel mit einem Ack.
Web-Endpunkte: POST /api/esp/event für Würfe, Taster, Status und Acks; GET /api/esp/poll für LED-Befehle und Ausführungsbestätigungen. Der PIN wird bevorzugt im Header X-Bowl-King-Pin gesendet. Vollständige Beispiele stehen in ESP-WEB-PROTOKOLL.md.