IHRoomLightService.swift 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. //
  2. // IHRoomLightService.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/20.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import SwiftyJSON
  10. import PKHUD
  11. class IHRoomLightService: NSObject {
  12. static let share = IHRoomLightService()
  13. //调光
  14. func
  15. individualDimming(lightId:String,light:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) {
  16. let username = AppShare.username
  17. let client_key = AppShare.client_key
  18. let os = AppShare.os
  19. let token = AppShare.token
  20. let version = AppShare.version
  21. let url = moyaBase + "lamp/lamp_light_asy"
  22. let parameter :NSDictionary = ["username":username,
  23. "client_key":client_key,
  24. "os":os,
  25. "version":version,
  26. "token":token,
  27. "lightId":lightId,
  28. "light":"\(light)"]
  29. //connectHandle 链接成功 回掉·;; completehandle 设置成功回调
  30. IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in
  31. requestSuccess(isSuccess)
  32. if isSuccess == false{
  33. requestFail()
  34. }
  35. }
  36. // g_lamp_lamp_lighttHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, light: light, success: { (json) -> (Void) in
  37. // requestSuccess(true)
  38. // let info = Operation_Info.fromJSON(json)
  39. // let result = info?.result
  40. // let msg = result?.msg
  41. // self.showHUD(msg ?? "")
  42. //
  43. // }, fail: requestFail)
  44. }
  45. func setLampColor(lightId:String,color:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) {
  46. let username = AppShare.username
  47. let client_key = AppShare.client_key
  48. let os = AppShare.os
  49. let token = AppShare.token
  50. let version = AppShare.version
  51. let url = moyaBase + "lamp/lamp_color_asy"
  52. let parameter :NSDictionary = ["username":username,
  53. "client_key":client_key,
  54. "os":os,
  55. "version":version,
  56. "token":token,
  57. "lightId":lightId,
  58. "color":"\(color)"]
  59. //connectHandle 链接成功 回掉·;; completehandle 设置成功回调
  60. IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in
  61. requestSuccess(isSuccess)
  62. if isSuccess == false{
  63. requestFail()
  64. }
  65. }
  66. // g_lamp_lamp_colorHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, color: color, success: { (json) -> (Void) in
  67. // requestSuccess(true)
  68. // let info = Operation_Info.fromJSON(json)
  69. // let result = info?.result
  70. // let msg = result?.msg
  71. // self.showHUD(msg ?? "")
  72. // }, fail: requestFail)
  73. }
  74. func setLampColorRGB(_ lightId:String,colorR:String,colorG:String,colorB:String, requestSuccess:@escaping (Bool)->Void,requestFail:@escaping (()->Void)) {
  75. let username = AppShare.username
  76. let client_key = AppShare.client_key
  77. let os = AppShare.os
  78. let token = AppShare.token
  79. let version = AppShare.version
  80. let url = moyaBase + "lamp/lamp_color_rgb"
  81. let parameter :NSDictionary = ["username":username,
  82. "client_key":client_key,
  83. "os":os,
  84. "version":version,
  85. "token":token,
  86. "lightId":lightId,
  87. "type":"0",
  88. "colorR":"\(colorR)",
  89. "colorG":"\(colorG)",
  90. "colorB":"\(colorB)"]
  91. //connectHandle 链接成功 回掉·;; completehandle 设置成功回调
  92. IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in
  93. requestSuccess(isSuccess)
  94. if isSuccess == false{
  95. requestFail()
  96. }
  97. }
  98. // 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
  99. // requestSuccess(true)
  100. // let info = Operation_Info.fromJSON(json)
  101. // let result = info?.result
  102. // let msg = result?.msg
  103. // // g_showHUD(msg ?? "")
  104. // }) { () -> (Void) in
  105. // requestFail()
  106. // }
  107. }
  108. ///灯控详情
  109. func getLightInfo(_ lightId:String,requestSuccess:@escaping (LightInfodata)->Void,requestFail:@escaping (()->Void)) {
  110. let username = AppShare.username
  111. let client_key = AppShare.client_key
  112. let os = AppShare.os
  113. let token = AppShare.token
  114. let version = AppShare.version
  115. g_lamp_light_infoHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, success: { (json) -> (Void) in
  116. let mlightInfo = LightInfo_Info.fromJSON(json)
  117. let result = mlightInfo?.result
  118. var _data = LightInfodata()
  119. guard let data = result?.data else { return}
  120. if let name = data.name,
  121. let deviceId = data.deviceId,
  122. let floorId = data.floorId,
  123. let roomId = data.roomId,
  124. let status = data.status ,
  125. let light = data.light,
  126. let color = data.color,
  127. let colorR = data.colorR,
  128. let colorG = data.colorG,
  129. let colorB = data.colorB,
  130. let alarmStatus = data.alarmStatus,
  131. let alarmInfo = data.alarmInfo,
  132. let model = data.model{
  133. _data.name = name
  134. _data.deviceId = deviceId
  135. _data.roomId = roomId
  136. _data.status = status
  137. _data.light = light
  138. _data.color = color
  139. _data.colorR = colorR
  140. _data.colorG = colorG
  141. _data.colorB = colorB
  142. _data.alarmStatus = alarmStatus
  143. _data.floorId = floorId
  144. _data.alarmInfo = alarmInfo
  145. _data.model = model
  146. requestSuccess(_data)
  147. }
  148. }) { () -> (Void) in
  149. requestFail()
  150. }
  151. }
  152. ///设备日志
  153. //dataType 图表类型 0 energy_consumptin 用电量统计信息表 ; 1 lighting_use_schedule 亮灯时间统计信息
  154. //
  155. func getLampReport(_ lightId :String,dateType:String,dataType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) {
  156. if dataType == "0" {
  157. getEnergyConsumption(nil, devId: lightId, dateType: dateType, date: date, requestSuccess: { (report) in
  158. requestSuccess(report)
  159. }) {
  160. requestFail()
  161. }
  162. }else if dataType == "1"{
  163. getLightingUseSchedule(nil, devId: lightId, dateType: dateType, date: date, requestSuccess: { (report) in
  164. requestSuccess(report)
  165. }) {
  166. requestFail()
  167. }
  168. }
  169. }
  170. private func getEnergyConsumption(_ hotelId:String?,devId:String?,dateType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) {
  171. let username = AppShare.username
  172. let client_key = AppShare.client_key
  173. let os = AppShare.os
  174. let token = AppShare.token
  175. let version = AppShare.version
  176. 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
  177. let info = Report_Info.fromJSON(json)
  178. let result = info?.result
  179. if result?.code == .Success {
  180. let data = result?.data
  181. requestSuccess(data!)
  182. }else{
  183. requestFail()
  184. }
  185. }) { () -> (Void) in
  186. requestFail()
  187. }
  188. }
  189. private func getLightingUseSchedule(_ hotelId:String?,devId:String?,dateType:String,date:String?,requestSuccess:@escaping (ReportData)->Void,requestFail:@escaping (()->Void)) {
  190. let username = AppShare.username
  191. let client_key = AppShare.client_key
  192. let os = AppShare.os
  193. let token = AppShare.token
  194. let version = AppShare.version
  195. 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
  196. let info = Report_Info.fromJSON(json)
  197. let result = info?.result
  198. if result?.code == .Success {
  199. let data = result?.data
  200. requestSuccess(data!)
  201. }else{
  202. requestFail()
  203. }
  204. }) { () -> (Void) in
  205. requestFail()
  206. }
  207. }
  208. private func showHUD(_ message: String) {
  209. HUD.flash(.label(message), delay: 0.5) { _ in
  210. print("License Obtained.")
  211. }
  212. }
  213. //教室灯的色温 -- 调
  214. func lightsColor(lightId : String,color : String,success: @escaping((String,String)->())){
  215. let username = AppShare.username
  216. let client_key = AppShare.client_key
  217. let os = AppShare.os
  218. let token = AppShare.token
  219. let version = AppShare.version
  220. HUD.show(.progress)
  221. IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in
  222. if isSuccess == 2 {
  223. log.debug("websocket-教室灯的色温")
  224. // guard let responeStr = responeStr else {return}
  225. success(responeStr,code)
  226. g_showHUD(responeStr)
  227. HUD.hide(afterDelay: 1.0)
  228. }else{
  229. // guard let clientId = responeStr else{return}
  230. 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
  231. log.debug("----")
  232. }) { () -> (Void) in
  233. log.debug("----")
  234. }
  235. }
  236. }
  237. }
  238. //学校灯的亮度
  239. func lightsBright(lightId : String,light : String,success: @escaping((String,String)->())){
  240. let username = AppShare.username
  241. let client_key = AppShare.client_key
  242. let os = AppShare.os
  243. let token = AppShare.token
  244. let version = AppShare.version
  245. HUD.show(.progress)
  246. IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in
  247. if isSuccess == 2 {
  248. log.debug("websocket-教室灯的亮度")
  249. // guard let responeStr = responeStr else {return}
  250. success(responeStr,code)
  251. g_showHUD(responeStr)
  252. HUD.hide(afterDelay: 1)
  253. }else{
  254. // guard let clientId = responeStr else{return}
  255. 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
  256. }) { () -> (Void) in
  257. }
  258. }
  259. }
  260. }
  261. //学校单个灯 - 开关
  262. func
  263. setSchoolLightOn_off(lightId:String,status:String,success: @escaping((String,String)->())) {
  264. let username = AppShare.username
  265. let client_key = AppShare.client_key
  266. let os = AppShare.os
  267. let token = AppShare.token
  268. let version = AppShare.version
  269. // HUD.show(.progress)
  270. IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in
  271. if isSuccess == 2 {
  272. log.debug("websocket-教室单个灯的开关")
  273. // guard let responeStr = responeStr else {return}
  274. success(responeStr,code)
  275. g_showHUD(responeStr)
  276. HUD.hide(afterDelay: 1.5)
  277. }else{
  278. // guard let clientId = responeStr else{return}
  279. 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
  280. }) { () -> (Void) in
  281. }
  282. }
  283. }
  284. }
  285. }