假行僧 发表于 2025-3-20 16:49:44

通过脚本启停设备

/*
此脚本实现通过脚本启停设备,在rc19版本测试成功,其他版本未测
*/
var fmt= import("fmt")
var strings = import("strings")
var io = import("io/ioutil")
var http = import("net/http")
var time = import("time")
var regexp = import("regexp")

func ismlogin () {
        url = "http://127.0.0.1:8081/login"
        //Username字段为登录的用户名,请确保有该权限,password字段需自行抓包获取
        payload = strings.NewReader("{\"Username\":\"admin\",\"password\":\"ef775988943825d2871e1cfa75473ec0\",\"appid\":\"\"}")
        req, _ = http.NewRequest("POST", url, payload)
        req.Header.Add("content-type", "application/json")
        res, _ = http.DefaultClient.Do(req)
        body, _ = io.ReadAll(res.Body)
        str = fmt.Sprintf("%c", body)
        str1 = strings.Replace(str," ","", -1)
        str2 = strings.Replace(str1,"]","", -1)
        token = strings.Replace(str2,"[","", -1)
return token
}

func devenable (dev_uuid, status) {
        token = ismlogin()
        url = "http://127.0.0.1:8081/SetDeviceStartOrStop"
        reader_1 = "{\r\n\"uuid\": \""
        eader_2 = "\",\r\n\"editData\": {\r\n\"IsEnable\": "
        reader_3 = ",\r\n\"deviceType\": 2\r\n}\r\n}"
        reader_str = reader_1 + dev_uuid + reader_2 + status +reader_3
        payload = strings.NewReader(reader_str)
        req, _ = http.NewRequest("POST", url, payload)
        req.Header.Add("Accept", " application/json, text/plain, */*")
        req.Header.Add("Accept-Language", "zh-CN,zh;q=0.9")
        req.Header.Add("Authorization", token)
        req.Header.Add("content-type", "application/json")
        res, _ = http.DefaultClient.Do(req)
}
//调用函数 参数1为需要启停的设备uuid,通过数据库查找获得 参数2为状态,1为启动设备,0为停止设备
devenable("44170d95-aa94-023a-92a1-395aafc23095","1")

页: [1]
查看完整版本: 通过脚本启停设备