feat: 初始化小米 IoT (MIoT) 智能家居 Go 库

- 实现 MIoT 客户端核心功能(MQTT 连接、设备管理、属性读写)
- 支持云端 API 调用与局域网设备发现(mDNS)
- 集成国际化(i18n)多语言支持
- 添加 MIoT 设备规约解析器(spec_parser)
- 包含单元测试与使用示例
This commit is contained in:
2026-06-28 22:05:49 +08:00
parent ac442812b4
commit 3a44cb9e6a
118 changed files with 31630 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# 第一批审核结果
> 审核时间:2026-06-28
> 审核范围:P0 批 7 个任务
## 审核结论
| 文件 | 状态 | 说明 |
|------|------|------|
| `miot_error.go` | ✅ 通过 | 13 种子类型,完全对齐 Python |
| `const.go` | ✅ 通过 | 常量/变量/CA 证书,完全对齐 |
| `common.go` | ✅ 通过 | 全部工具函数,完全对齐 |
| `miot_cloud.go` | ✅ 通过 | OAuth + HTTP 客户端,33KB |
| `miot_storage.go` | ✅ 通过 | SHA256 校验 + 异步,27KB |
| `miot_device.go` | ✅ 通过 | 完整字段 + LoadFromCloud + SPEC |
| `miot_client.go` | ✅ 通过 | 完整结构 + Init + 设备缓存 |
---
## 修复清单
### 修复 1:删除 `errors.go`(与 miot_error.go 冲突)
**问题**:`errors.go` 和 `miot_error.go` 都在 `package miot`,定义冲突的错误码和错误类型。新文件 `miot_error.go` 已完全对齐 Python,旧文件应删除。
**操作**:
1. 删除 `D:\miot\go-miot\errors.go`
2. 检查旧文件引用(`miot_client_api.go`、`miot_client_prop.go`、`miot_client_sub.go`),如有引用 `errors.go` 的类型名需改为 `miot_error.go` 的类型名
---
### 修复 2:删除 `constants.go`(与 const.go 重叠)
**问题**:`const.go` 已完全对齐 Python,`constants.go` 只含部分旧常量,且有值重复定义。
**操作**:
1. 将 `constants.go` 中仍在使用的常量迁入 `const.go`:
- `CtrlMode` 枚举类型和常量
- `RefreshPropsDelay`、`RefreshPropsRetryMax`、`RefreshPropsRetryDelay` 等刷新常量
- `TopicProp`、`TopicEvent`、`TopicState` — 迁入 `miot_mips.go`(或保留在 const.go)
2. 检查是否有文件引用 `constants.go` 的符号,更新引用为新位置
3. 删除 `D:\miot\go-miot\constants.go`
---
### 修复 3:注释 `mips_client.go` 的错误 import
**问题**:`mips_client.go:7:2: package zo-smart-backend-user/internal/xiaomihome/mips is not in std`
**操作**:
- 注释掉错误的 import 行(P1 批移植 mips 后再恢复)
---
### 修复 4:注释 `spec_parser.go` 的错误 import
**问题**:`spec_parser.go:6:2: package zo-smart-backend-user/internal/xiaomihome/spec is not in std`
**操作**:
- 注释掉错误的 import 行(P1 批移植 spec 后再恢复)
---
## 验证方法
修复后执行:
```bash
cd D:\miot\go-miot && go vet ./...
```
预期:无错误输出。