// // IHRoomLightService.swift // Inhealth // // Created by weclouds on 2019/12/20. // Copyright © 2019 weclouds. All rights reserved. // import UIKit import SwiftyJSON import PKHUD class IHRoomLightService: NSObject { static let share = IHRoomLightService() //调光 func individualDimming(lightId:String,light:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let url = moyaBase + "lamp/lamp_light_asy" let parameter :NSDictionary = ["username":username, "client_key":client_key, "os":os, "version":version, "token":token, "lightId":lightId, "light":"\(light)"] //connectHandle 链接成功 回掉·;; completehandle 设置成功回调 IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in requestSuccess(isSuccess) if isSuccess == false{ requestFail() } } // g_lamp_lamp_lighttHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, light: light, success: { (json) -> (Void) in // requestSuccess(true) // let info = Operation_Info.fromJSON(json) // let result = info?.result // let msg = result?.msg // self.showHUD(msg ?? "") // // }, fail: requestFail) } func setLampColor(lightId:String,color:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let url = moyaBase + "lamp/lamp_color_asy" let parameter :NSDictionary = ["username":username, "client_key":client_key, "os":os, "version":version, "token":token, "lightId":lightId, "color":"\(color)"] //connectHandle 链接成功 回掉·;; completehandle 设置成功回调 IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in requestSuccess(isSuccess) if isSuccess == false{ requestFail() } } // g_lamp_lamp_colorHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, color: color, success: { (json) -> (Void) in // requestSuccess(true) // let info = Operation_Info.fromJSON(json) // let result = info?.result // let msg = result?.msg // self.showHUD(msg ?? "") // }, fail: requestFail) } func setLampColorRGB(_ lightId:String,colorR:String,colorG:String,colorB:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let url = moyaBase + "lamp/lamp_color_rgb" let parameter :NSDictionary = ["username":username, "client_key":client_key, "os":os, "version":version, "token":token, "lightId":lightId, "type":"0", "colorR":"\(colorR)", "colorG":"\(colorG)", "colorB":"\(colorB)"] //connectHandle 链接成功 回掉·;; completehandle 设置成功回调 IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in requestSuccess(isSuccess) if isSuccess == false{ requestFail() } } // g_lamp_lamp_color_rgbHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, colorR: colorR, colorG: colorG, colorB: colorB, success: { (json) -> (Void) in // requestSuccess(true) // let info = Operation_Info.fromJSON(json) // let result = info?.result // let msg = result?.msg // // g_showHUD(msg ?? "") // }) { () -> (Void) in // requestFail() // } } ///灯控详情 func getLightInfo(_ lightId:String,requestSuccess:@escaping (LightInfodata)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_lamp_light_infoHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, success: { (json) -> (Void) in let mlightInfo = LightInfo_Info.fromJSON(json) let result = mlightInfo?.result var _data = LightInfodata() guard let data = result?.data else { return} if let name = data.name, let deviceId = data.deviceId, let floorId = data.floorId, let roomId = data.roomId, let status = data.status , let light = data.light, let color = data.color, let colorR = data.colorR, let colorG = data.colorG, let colorB = data.colorB, let alarmStatus = data.alarmStatus, let alarmInfo = data.alarmInfo, let model = data.model{ _data.name = name _data.deviceId = deviceId _data.roomId = roomId _data.status = status _data.light = light _data.color = color _data.colorR = colorR _data.colorG = colorG _data.colorB = colorB _data.alarmStatus = alarmStatus _data.floorId = floorId _data.alarmInfo = alarmInfo _data.model = model requestSuccess(_data) } }) { () -> (Void) in requestFail() } } ///设备日志 //dataType 图表类型 0 energy_consumptin 用电量统计信息表 ; 1 lighting_use_schedule 亮灯时间统计信息 // func getLampReport(_ lightId :String,dateType:String,dataType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) { if dataType == "0" { getEnergyConsumption(nil, devId: lightId, dateType: dateType, date: date, requestSuccess: { (report) in requestSuccess(report) }) { requestFail() } }else if dataType == "1"{ getLightingUseSchedule(nil, devId: lightId, dateType: dateType, date: date, requestSuccess: { (report) in requestSuccess(report) }) { requestFail() } } } private func getEnergyConsumption(_ hotelId:String?,devId:String?,dateType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_lamp_energy_consumptionHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, devId: devId, dateType: dateType, date: date, success: { (json) -> (Void) in let info = Report_Info.fromJSON(json) let result = info?.result if result?.code == .Success { let data = result?.data requestSuccess(data!) }else{ requestFail() } }) { () -> (Void) in requestFail() } } private func getLightingUseSchedule(_ hotelId:String?,devId:String?,dateType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_lamp_lighting_use_scheduleHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, devId: devId, dateType: dateType, date: date, success: { (json) -> (Void) in let info = Report_Info.fromJSON(json) let result = info?.result if result?.code == .Success { let data = result?.data requestSuccess(data!) }else{ requestFail() } }) { () -> (Void) in requestFail() } } private func showHUD(_ message: String) { HUD.flash(.label(message), delay: 0.5) { _ in print("License Obtained.") } } //教室灯的色温 -- 调 func lightsColor(lightId : String,color : String,success: @escaping((String,String)->())){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version HUD.show(.progress) IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in if isSuccess == 2 { log.debug("websocket-教室灯的色温") // guard let responeStr = responeStr else {return} success(responeStr,code) g_showHUD(responeStr) HUD.hide(afterDelay: 1.0) }else{ // guard let clientId = responeStr else{return} g_school_set_colorHttpRequest(username, client_key: client_key, os: os, version: version, token: token, id: lightId, color: color, clientId: responeStr, success: { (json) -> (Void) in log.debug("----") }) { () -> (Void) in log.debug("----") } } } } //学校灯的亮度 func lightsBright(lightId : String,light : String,success: @escaping((String,String)->())){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version HUD.show(.progress) IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in if isSuccess == 2 { log.debug("websocket-教室灯的亮度") // guard let responeStr = responeStr else {return} success(responeStr,code) g_showHUD(responeStr) HUD.hide(afterDelay: 1) }else{ // guard let clientId = responeStr else{return} g_school_set_lightHttpRequest(username, client_key: client_key, os: os, version: version, token: token, id: lightId, light: light, clientId: responeStr, success: { (json) -> (Void) in }) { () -> (Void) in } } } } //学校单个灯 - 开关 func setSchoolLightOn_off(lightId:String,status:String,success: @escaping((String,String)->())) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version // HUD.show(.progress) IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in if isSuccess == 2 { log.debug("websocket-教室单个灯的开关") // guard let responeStr = responeStr else {return} success(responeStr,code) g_showHUD(responeStr) HUD.hide(afterDelay: 1.5) }else{ // guard let clientId = responeStr else{return} g_school_single_on_offHttpRequest(username, client_key: client_key, os: os, version: version, token: token, id: lightId, status: status, clientId: responeStr, success: { (json) -> (Void) in }) { () -> (Void) in } } } } }