Files
esp32-server/app/xiaozhi/__init__.py
kunthawat a582c1ff36 feat: firmware-compatible handshake (header auth, transport=websocket) + /ota onboarding endpoint
- auth from Authorization/Device-Id headers (firmware v2.5.0), frame fallback kept
- server hello carries transport=websocket + session_id (firmware ParseServerHello)
- /ota GET+POST returns {websocket:{url,token,version}, server_time:{timestamp,timezone_offset}, firmware:{version}}
- config.yaml: device registered by MAC, ota block added
- 21 tests pass (added OTA + header-auth coverage)
2026-10-03 16:35:41 +07:00

9 lines
301 B
Python

"""Xiaozhi protocol + session layer.
The only module that knows Xiaozhi wire format. Everything else talks to a
session object, never to raw frames.
"""
from .protocol import Hello, ServerHello, build_hello, build_server_hello
__all__ = ["Hello", "ServerHello", "build_hello", "build_server_hello"]