package xiaomi import "context" // Action 调用设备 Action func (c *Client) Action(ctx context.Context, did string, siid, aiid int, params []interface{}) (*ActionResult, error) { result, err := c.inner.Action(did, siid, aiid, params) if err != nil { return nil, wrapErr("Action", did, err) } return &ActionResult{ DID: did, SIID: siid, AIID: aiid, Out: parseActionResultOut(result), }, nil } // parseActionResultOut 解析 Action 返回的 out 列表 func parseActionResultOut(result map[string]interface{}) []map[string]interface{} { if outRaw, ok := result["out"]; ok { if outList, ok := outRaw.([]interface{}); ok { out := make([]map[string]interface{}, 0, len(outList)) for _, item := range outList { if m, ok := item.(map[string]interface{}); ok { out = append(out, m) } } return out } } return nil }