# python-mi-home **Repository Path**: david9988/python-mi-home ## Basic Information - **Project Name**: python-mi-home - **Description**: python-mi-home - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-10 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 米家设备管理 (Mi-Home Device Manager) 基于 Python 3.10 的米家设备管理程序,支持设备发现、控制和实时监控。 ## 快速开始 ```bash # 克隆项目 cd mi-home # 安装依赖 uv sync # 启动服务 uv run uvicorn mi_home.main:app --reload # 访问 API 文档 # http://localhost:8000/docs ``` ## 功能 - 设备自动发现(局域网扫描) - 手动添加设备 - 设备控制(开关、调节) - 实时状态监控(WebSocket 推送) - 设备分组管理 ## 技术栈 - Python 3.10 - FastAPI - python-miio - SQLite - WebSocket - Vue 3 + Vite (前端) ## 安装 ```bash # 使用 uv 安装 uv sync # 或使用 pip pip install -e . ``` ## 使用 ### 启动服务 ```bash # 开发模式 uv run python -m mi_home.main # 或 uvicorn mi_home.main:app --reload --host 0.0.0.0 --port 8000 ``` ### API 文档 启动服务后访问: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ### WebSocket 连接 ```javascript const ws = new WebSocket('ws://localhost:8000/ws'); ws.onmessage = (event) => { console.log('Device update:', JSON.parse(event.data)); }; ``` ## API 端点 | 端点 | 方法 | 描述 | |------|------|------| | `/api/devices` | GET | 获取设备列表 | | `/api/devices` | POST | 添加设备 | | `/api/devices/{id}` | DELETE | 删除设备 | | `/api/devices/{id}/state` | GET | 获取设备状态 | | `/api/devices/{id}/command` | POST | 发送命令 | | `/api/discover` | POST | 发现设备 | | `/api/groups` | GET | 获取分组 | | `/api/groups` | POST | 创建分组 | | `/ws` | WebSocket | 实时状态推送 | ## Frontend 前端位于 `frontend/` 目录,提供现代化的 Web 用户界面。 ### 技术栈 - **框架:** Vue 3.5 + Composition API - **状态管理:** Pinia 3.0 - **构建工具:** Vite 6.0 - **语言:** TypeScript 5.0 ### 快速开始 ```bash # 进入 frontend 目录 cd frontend # 安装依赖 pnpm install # 启动开发服务器(带热重载) pnpm run dev # 构建生产版本 pnpm run build ``` ### 开发服务器 开发服务器运行在 `http://localhost:5173`,已配置 API 代理: - `/api` → `http://localhost:8000` - `/ws` → `ws://localhost:8000` ### 功能 - 设备列表与管理 - 设备发现面板 - 分组管理 - WebSocket 实时状态更新 ## 开发 ```bash # 运行测试 uv run pytest # 代码格式化 uv run black src/ tests/ uv run ruff check src/ tests/ # 类型检查 uv run mypy src/ ``` ## 许可证 MIT