package mijia import ( "encoding/json" "git.r-2.top/kunmeng/mijia/model" "strconv" ) type MiJia struct { Certificate Authorize HomeData Home } func NewMiJia(Certificate Authorize) MiJia { return MiJia{ Certificate: Certificate, } } // 获取设备列表 func (mi *MiJia) Devices() { data := map[string]interface{}{ "getVirtualModel": false, "getHuamiDevices": 0, } PostData("/home/device_list", data, mi.Certificate) } // 获取房间列表 func (mi *MiJia) Rooms() { data := map[string]interface{}{ "fg": false, "fetch_share": true, "fetch_share_dev": true, "limit": 300, "app_ver": 7, } jsonData := PostData("/v2/homeroom/gethome", data, mi.Certificate) json.Unmarshal(jsonData, &mi.HomeData) } // 获取场景列表 func (mi *MiJia) Scenes(roomIdx int) { HomeId := mi.HomeData.Result.Homelist[roomIdx].Id data := map[string]interface{}{ "home_id": HomeId, } PostData("/appgateway/miot/appsceneservice/AppSceneService/GetSceneList", data, mi.Certificate) } // 根据房间获取耗材列表 func (mi *MiJia) Consumables(roomIdx int) { HomeId := mi.HomeData.Result.Homelist[roomIdx].Id Homei, err := strconv.Atoi(HomeId) if err != nil { return } data := map[string]interface{}{ "home_id": Homei, "owner_id": mi.Certificate.UserId, } PostData("/v2/home/standard_consumable_items", data, mi.Certificate) } // 执行场景 func (mi *MiJia) RunScene(SceneId string) { data := map[string]interface{}{ "scene_id": SceneId, "trigger_key": "user.click", } PostData("/appgateway/miot/appsceneservice/AppSceneService/RunScene", data, mi.Certificate) } func (mi *MiJia) GetDeviceVar(devs []map[string]interface{}) ([]model.DeviceVarResult, error) { data := map[string]interface{}{ "params": devs, } res := PostData("/miotspec/prop/get", data, mi.Certificate) var Var model.DeviceVar err := json.Unmarshal(res, &Var) if err != nil { return []model.DeviceVarResult{}, err } return Var.Result, nil } func (mi *MiJia) SetDeviceVar(devs []map[string]interface{}) { data := map[string]interface{}{ "params": devs, } PostData("/miotspec/prop/set", data, mi.Certificate) } func (mi *MiJia) RunAction(data map[string]interface{}) { //uri = "/miotspec/action" //params = dict(params={"did": self.device_id, "siid": sid, "piid": pid, "aiid": aid, "in": values}) //result = self.http_request(uri, params) //request_code = result.get("code") //if not request_code: //data = result.get("result") //code = result.get("code") //if not code: //return dict(code=0, msg="success", data=data) //else: //return dict(code=code, msg="error", data=dict()) //return dict(code=request_code, msg="request error", data=dict()) }