103e24e5fa
- Backend: async MQTT service (aiomqtt) to fetch Z2M networkmap via bridge API - Backend: FastAPI router at /api/v1/zigbee with /import and /test-connection - Backend: Pydantic v2 schemas for request/response validation - Backend: coordinator → router → end-device parent_id hierarchy builder - Frontend: ZigbeeImportModal with MQTT config form, Test Connection, Fetch Devices - Frontend: device list grouped by type (coordinator/router/enddevice) with checkboxes - Frontend: ZigbeeCoordinatorNode, ZigbeeRouterNode, ZigbeeEndDeviceNode canvas nodes - Frontend: Zigbee Import button in sidebar alongside Scan Network - Frontend: handleZigbeeAddToCanvas wires selected devices + edges onto canvas - Tests: full unit test suite for parser, hierarchy builder, MQTT mocks - Tests: API endpoint tests for /zigbee/import and /zigbee/test-connection - Tests: Vitest component tests for ZigbeeImportModal - Docs: docs/zigbee-import.md with full usage, MQTT config, troubleshooting guide - Docs: README.md Zigbee2MQTT Import section Co-authored-by: CyberKeys <noreply@openclaw.ai>
28 lines
540 B
Plaintext
28 lines
540 B
Plaintext
# Requires Python 3.13+ (3.14 not yet supported by pydantic-core)
|
|
fastapi==0.135.1
|
|
uvicorn[standard]==0.30.6
|
|
sqlalchemy[asyncio]==2.0.35
|
|
aiosqlite==0.20.0
|
|
alembic==1.13.3
|
|
pydantic==2.9.2
|
|
pydantic-settings==2.5.2
|
|
python-jose[cryptography]==3.5.0
|
|
passlib[bcrypt]==1.7.4
|
|
bcrypt==4.0.1
|
|
python-multipart==0.0.26
|
|
apscheduler==3.10.4
|
|
python-nmap==0.7.1
|
|
pyyaml==6.0.2
|
|
types-PyYAML==6.0.12.20240917
|
|
websockets==13.1
|
|
httpx==0.27.2
|
|
zeroconf==0.131.0
|
|
aiomqtt==2.3.0
|
|
|
|
# Dev
|
|
ruff==0.6.9
|
|
mypy==1.11.2
|
|
pytest==9.0.3
|
|
pytest-asyncio==1.3.0
|
|
pytest-cov==5.0.0
|