refactor: 重构 token 管理,新增 NATS adapter 和多示例
按照 TOKEN_REFACTOR.md / FIX_CONFIG.md 方案重构核心层: - miot: Init() 优先读 storage token,新增 RefreshAuthInfo() 和刷新回调 - xiaomi: Config 改用 AuthInfo 结构体(含 UUID/UID/DataDir/OnTokenRefreshed) - xiaomi: NewClient(ctx, Config) 新签名,新增 RefreshToken(),后台自动刷新 - xiaomi/devices: 设备控制接口重构 - 新增示例 12_ac_subscribe,其余示例适配新 Config
This commit is contained in:
@@ -22,10 +22,15 @@ func main() {
|
||||
}
|
||||
|
||||
client, err := xiaomi.NewClient(ctx, xiaomi.Config{
|
||||
ClientSecret: "",
|
||||
AccessToken: cfg.AuthInfo.AccessToken,
|
||||
UID: cfg.UID,
|
||||
UUID: cfg.UUID,
|
||||
AuthInfo: xiaomi.AuthInfo{
|
||||
AccessToken: cfg.AuthInfo.AccessToken,
|
||||
RefreshToken: cfg.AuthInfo.RefreshToken,
|
||||
ExpiresIn: cfg.AuthInfo.ExpiresIn,
|
||||
ExpiresTS: cfg.AuthInfo.ExpiresTS,
|
||||
},
|
||||
DataDir: "./data",
|
||||
UUID: cfg.UUID,
|
||||
UID: cfg.UID,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@@ -96,10 +101,10 @@ func main() {
|
||||
log.Println("开启节能模式...")
|
||||
ac.SetEco(ctx, true)
|
||||
|
||||
subID, err := ac.OnStateChanged(func(state devices.ACState) {
|
||||
log.Printf("空调状态变化: power=%v mode=%s target=%.1f current=%.1f fan=%s swing=%s",
|
||||
state.Power, state.Mode, state.TargetTemp, state.CurrentTemp,
|
||||
state.FanSpeed, state.Swing)
|
||||
subID, err := ac.OnStateChanged(func(state devices.ACState, changed string) {
|
||||
log.Printf("空调状态变化: %s → on=%v mode=%s target=%.1f current=%.1f fan=%s swing=%s",
|
||||
changed, state.On, state.Mode, state.TargetTemperature, state.Temperature,
|
||||
state.FanLevel, state.Swing)
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("订阅状态失败: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user