hoffmation-base 3.0.0-alpha.8 → 3.0.0-alpha.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/lib/index.d.ts +5 -1
  2. package/lib/index.js +28 -25
  3. package/lib/liquid-pid.d.ts +2 -5
  4. package/lib/liquid-pid.js +3 -5
  5. package/lib/models/action/baseAction.d.ts +4 -0
  6. package/lib/models/action/baseAction.js +10 -0
  7. package/lib/models/action/batteryLevelChangeAction.d.ts +13 -0
  8. package/lib/models/action/batteryLevelChangeAction.js +14 -0
  9. package/lib/models/action/humiditySensorChangeAction.d.ts +16 -0
  10. package/lib/models/action/humiditySensorChangeAction.js +15 -0
  11. package/lib/models/action/index.d.ts +9 -0
  12. package/lib/models/action/index.js +29 -0
  13. package/lib/models/action/motionSensorAction.d.ts +16 -0
  14. package/lib/models/action/motionSensorAction.js +15 -0
  15. package/lib/models/action/presenceGroupAnyMovementAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupAnyMovementAction.js +13 -0
  17. package/lib/models/action/presenceGroupFirstEnterAction.d.ts +7 -0
  18. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  19. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  20. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  21. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  22. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  23. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  24. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  25. package/lib/models/base64Image.d.ts +0 -1
  26. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  27. package/lib/models/blockAutomaticSettings.js +19 -0
  28. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  29. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  30. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  31. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  32. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +11 -2
  33. package/lib/models/command/WindowSetDesiredPositionCommand.js +11 -2
  34. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  35. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  36. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  37. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  38. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  39. package/lib/models/command/actuatorToggleCommand.js +7 -4
  40. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  41. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  42. package/lib/models/command/baseCommand.d.ts +23 -2
  43. package/lib/models/command/baseCommand.js +41 -1
  44. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  45. package/lib/models/command/blockAutomaticCommand.js +40 -0
  46. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  47. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  48. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  49. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  50. package/lib/models/command/commandSource.d.ts +19 -0
  51. package/lib/models/command/commandSource.js +20 -0
  52. package/lib/models/command/commandType.d.ts +11 -0
  53. package/lib/models/command/commandType.js +11 -0
  54. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  55. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  56. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  57. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  58. package/lib/models/command/index.d.ts +3 -0
  59. package/lib/models/command/index.js +7 -1
  60. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  61. package/lib/models/command/lampSetLightCommand.js +15 -4
  62. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  63. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  64. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  65. package/lib/models/command/lampToggleLightCommand.js +7 -6
  66. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  67. package/lib/models/command/ledSetLightCommand.js +27 -17
  68. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  69. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  70. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  71. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  72. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  73. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  74. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  75. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  76. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  77. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  78. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  79. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  80. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  81. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  82. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  83. package/lib/models/command/wledSetLightCommand.js +23 -7
  84. package/lib/models/connectionCallbacks.d.ts +4 -4
  85. package/lib/models/connectionCallbacks.js +1 -0
  86. package/lib/models/deviceConfig.d.ts +3 -3
  87. package/lib/models/deviceSettings/acSettings.d.ts +23 -5
  88. package/lib/models/deviceSettings/acSettings.js +28 -8
  89. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  90. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  91. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  92. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  93. package/lib/models/deviceSettings/dachsSettings.d.ts +23 -0
  94. package/lib/models/deviceSettings/dachsSettings.js +29 -1
  95. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  96. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  97. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  98. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  99. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  100. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  101. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  102. package/lib/models/deviceSettings/handleSettings.js +9 -0
  103. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  104. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  105. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  106. package/lib/models/deviceSettings/ledSettings.js +76 -18
  107. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  108. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  109. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  111. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  112. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  113. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  114. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  115. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  116. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  117. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  118. package/lib/models/deviceSettings/wledSettings.js +37 -13
  119. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  120. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  121. package/lib/models/iIdHolder.d.ts +18 -0
  122. package/lib/models/index.d.ts +2 -1
  123. package/lib/models/index.js +4 -1
  124. package/lib/models/objectSettings.d.ts +5 -2
  125. package/lib/models/objectSettings.js +2 -2
  126. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  127. package/lib/models/persistence/EnergyCalculation.js +30 -4
  128. package/lib/models/persistence/index.d.ts +0 -2
  129. package/lib/models/persistence/index.js +0 -2
  130. package/lib/models/rooms/RoomBase.d.ts +12 -1
  131. package/lib/models/rooms/RoomBase.js +17 -8
  132. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  133. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  134. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  135. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  136. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  137. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  138. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  139. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  140. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  141. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  142. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  143. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  144. package/lib/models/timeCallback.d.ts +7 -0
  145. package/lib/models/timeCallback.js +16 -6
  146. package/lib/server/config/heatingMode.d.ts +2 -1
  147. package/lib/server/config/heatingMode.js +2 -1
  148. package/lib/server/config/iAsusConfig.d.ts +15 -0
  149. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  150. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  151. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  152. package/lib/server/config/iConfig.d.ts +94 -6
  153. package/lib/server/config/iDachsSettings.d.ts +16 -0
  154. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  155. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  156. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  157. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  158. package/lib/server/config/iGoveeSettings.js +2 -0
  159. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  160. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  161. package/lib/server/config/iLogSettings.d.ts +40 -1
  162. package/lib/server/config/iMp3Settings.d.ts +10 -0
  163. package/lib/server/config/iMuellSettings.d.ts +7 -0
  164. package/lib/server/config/iNewsSettings.d.ts +13 -0
  165. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  166. package/lib/server/config/iPollySettings.d.ts +22 -0
  167. package/lib/server/config/iRestSettings.d.ts +10 -0
  168. package/lib/server/config/iSonosSettings.d.ts +14 -0
  169. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  170. package/lib/server/config/iTibberSettings.d.ts +10 -0
  171. package/lib/server/config/iTimePair.d.ts +9 -0
  172. package/lib/server/config/iTimeSettings.d.ts +9 -0
  173. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  174. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  175. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  176. package/lib/server/config/iVictronSettings.d.ts +14 -0
  177. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  178. package/lib/server/config/index.d.ts +2 -0
  179. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  180. package/lib/server/devices/DeviceCapability.js +1 -0
  181. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  182. package/lib/server/devices/DeviceInfo.js +6 -0
  183. package/lib/server/devices/Griffe.js +1 -2
  184. package/lib/server/devices/Heizgruppen.js +2 -2
  185. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  186. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  187. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +8 -6
  188. package/lib/server/devices/IoBrokerDeviceInfo.js +50 -46
  189. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  190. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  191. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  192. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +21 -4
  193. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  194. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  195. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  196. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  197. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  198. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  199. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  200. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  201. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -5
  202. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -2
  203. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  204. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  205. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  207. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  209. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  210. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -2
  212. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  213. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  214. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  215. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -3
  216. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  217. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  218. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  219. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  220. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  221. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  222. package/lib/server/devices/button/button.d.ts +0 -1
  223. package/lib/server/devices/button/button.js +0 -4
  224. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  225. package/lib/server/devices/button/buttonCallback.js +10 -0
  226. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  227. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  228. package/lib/server/devices/button/index.d.ts +1 -0
  229. package/lib/server/devices/button/index.js +3 -0
  230. package/lib/server/devices/dachs/dachs.d.ts +46 -11
  231. package/lib/server/devices/dachs/dachs.js +113 -23
  232. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -4
  233. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  234. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  235. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  236. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  237. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  238. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  239. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  240. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  241. package/lib/server/devices/device-cluster.d.ts +4 -1
  242. package/lib/server/devices/device-cluster.js +9 -4
  243. package/lib/server/devices/deviceType.d.ts +5 -0
  244. package/lib/server/devices/deviceType.js +5 -0
  245. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  246. package/lib/server/devices/deviceUpdater.js +26 -4
  247. package/lib/server/devices/devices.d.ts +53 -7
  248. package/lib/server/devices/devices.js +78 -17
  249. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  250. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  251. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  252. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  253. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  254. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  255. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  256. package/lib/server/devices/espresense/trilateration.js +7 -0
  257. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  258. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  259. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  260. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  261. package/lib/server/devices/groups/Window.d.ts +14 -3
  262. package/lib/server/devices/groups/Window.js +28 -11
  263. package/lib/server/devices/groups/base-group.d.ts +4 -0
  264. package/lib/server/devices/groups/base-group.js +3 -0
  265. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  266. package/lib/server/devices/groups/heatGroup.js +11 -11
  267. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  268. package/lib/server/devices/groups/lightGroup.js +20 -39
  269. package/lib/server/devices/groups/presenceGroup.d.ts +17 -6
  270. package/lib/server/devices/groups/presenceGroup.js +73 -63
  271. package/lib/server/devices/groups/tasterGroup.js +6 -6
  272. package/lib/server/devices/groups/windowGroup.d.ts +16 -1
  273. package/lib/server/devices/groups/windowGroup.js +22 -7
  274. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  275. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  276. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  277. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  278. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  279. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  280. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +36 -5
  281. package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
  282. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -6
  283. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
  284. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
  285. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
  286. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  287. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  288. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +19 -9
  289. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
  290. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  291. package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
  292. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
  293. package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
  294. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
  295. package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
  296. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  297. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  298. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  299. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  300. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  301. package/lib/server/devices/index.d.ts +8 -2
  302. package/lib/server/devices/index.js +11 -2
  303. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  304. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  305. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  306. package/lib/server/devices/nameAmountValuePair.js +10 -0
  307. package/lib/server/devices/scene/room-scene.d.ts +23 -7
  308. package/lib/server/devices/scene/room-scene.js +18 -4
  309. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  310. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  311. package/lib/server/devices/shelly/index.d.ts +1 -0
  312. package/lib/server/devices/shelly/index.js +3 -1
  313. package/lib/server/devices/shelly/shellyActuator.d.ts +33 -0
  314. package/lib/server/devices/shelly/shellyActuator.js +84 -0
  315. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  316. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  317. package/lib/server/devices/shelly/shellyTrv.d.ts +37 -18
  318. package/lib/server/devices/shelly/shellyTrv.js +66 -45
  319. package/lib/server/devices/smartGarden/index.d.ts +6 -0
  320. package/lib/server/devices/smartGarden/index.js +22 -0
  321. package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +33 -0
  322. package/lib/server/devices/smartGarden/smartGardenDevice.js +98 -0
  323. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.d.ts +9 -0
  324. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.js +13 -0
  325. package/lib/server/devices/smartGarden/smartGardenMower.d.ts +35 -0
  326. package/lib/server/devices/smartGarden/smartGardenMower.js +107 -0
  327. package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +42 -0
  328. package/lib/server/devices/smartGarden/smartGardenSensor.js +119 -0
  329. package/lib/server/devices/smartGarden/smartGardenService.d.ts +7 -0
  330. package/lib/server/devices/smartGarden/smartGardenService.js +52 -0
  331. package/lib/server/devices/smartGarden/smartGardenValve.d.ts +36 -0
  332. package/lib/server/devices/smartGarden/smartGardenValve.js +105 -0
  333. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  334. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  335. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  336. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  337. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  338. package/lib/server/devices/tv/samsungTv.js +1 -0
  339. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  340. package/lib/server/devices/tv/tvDevice.js +4 -3
  341. package/lib/server/devices/velux/index.d.ts +4 -0
  342. package/lib/server/devices/velux/index.js +11 -0
  343. package/lib/server/devices/velux/veluxDevice.d.ts +13 -0
  344. package/lib/server/devices/velux/veluxDevice.js +43 -0
  345. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.d.ts +9 -0
  346. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.js +13 -0
  347. package/lib/server/devices/velux/veluxService.d.ts +7 -0
  348. package/lib/server/devices/velux/veluxService.js +44 -0
  349. package/lib/server/devices/velux/veluxShutter.d.ts +27 -0
  350. package/lib/server/devices/velux/veluxShutter.js +122 -0
  351. package/lib/server/devices/wledDevice.d.ts +15 -3
  352. package/lib/server/devices/wledDevice.js +42 -16
  353. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  354. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  355. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  356. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  357. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  358. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +8 -17
  359. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  360. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +25 -60
  361. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -14
  362. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
  363. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  364. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  365. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +7 -7
  366. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +14 -14
  367. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
  368. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
  369. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -15
  370. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
  371. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -4
  372. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
  373. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  374. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  375. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  376. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  377. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  378. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  379. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  380. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  381. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +58 -11
  382. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
  383. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -9
  384. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
  385. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  386. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  387. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  388. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  389. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +34 -8
  390. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
  391. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  392. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  393. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  394. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  395. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  396. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  397. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  398. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  399. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  400. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  401. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  402. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  403. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  404. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  405. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  406. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  407. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  408. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  409. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  410. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  411. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  412. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  413. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  414. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  415. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -9
  416. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
  417. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  418. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  419. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  420. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  421. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  422. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  423. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  424. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  425. package/lib/server/ioBroker/connection.d.ts +21 -22
  426. package/lib/server/ioBroker/connection.js +37 -28
  427. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  428. package/lib/server/ioBroker/ioBroker.main.js +12 -5
  429. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  430. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  431. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  432. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  433. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  434. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  435. package/lib/server/services/ShutterService.js +7 -6
  436. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  437. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  438. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  439. package/lib/server/services/Sonos/mp3-server.js +3 -1
  440. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  441. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  442. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  443. package/lib/server/services/Sonos/polly-service.js +10 -8
  444. package/lib/server/services/Sonos/sonos-service.d.ts +1 -5
  445. package/lib/server/services/Sonos/sonos-service.js +18 -17
  446. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  447. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  448. package/lib/server/services/Telegram/telegram-service.js +8 -3
  449. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  450. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  451. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  452. package/lib/server/services/Translation/index.d.ts +1 -0
  453. package/lib/server/services/Translation/res.d.ts +34 -19
  454. package/lib/server/services/Translation/res.js +34 -19
  455. package/lib/server/services/ac/ac-device.d.ts +50 -9
  456. package/lib/server/services/ac/ac-device.js +115 -41
  457. package/lib/server/services/ac/daikin-service.js +4 -3
  458. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  459. package/lib/server/services/ac/own-ac-devices.js +3 -0
  460. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  461. package/lib/server/services/ac/own-daikin-device.js +40 -7
  462. package/lib/server/services/api/api-service.d.ts +118 -53
  463. package/lib/server/services/api/api-service.js +170 -80
  464. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  465. package/lib/server/services/blockAutomaticHandler.js +34 -15
  466. package/lib/server/services/calendar/index.d.ts +1 -0
  467. package/lib/server/services/calendar/index.js +3 -0
  468. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  469. package/lib/server/services/calendar/muell-tonne.js +10 -0
  470. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  471. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  472. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  473. package/lib/server/services/calendar/name-date-pair.js +10 -0
  474. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  475. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  476. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  477. package/lib/server/services/file-info.d.ts +5 -0
  478. package/lib/server/services/file-info.js +10 -0
  479. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  480. package/lib/server/services/govee/govee-device-data.js +2 -0
  481. package/lib/server/services/govee/govee-service.d.ts +7 -9
  482. package/lib/server/services/govee/govee-service.js +73 -48
  483. package/lib/server/services/govee/own-govee-device.d.ts +19 -17
  484. package/lib/server/services/govee/own-govee-device.js +58 -58
  485. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  486. package/lib/server/services/govee/own-govee-devices.js +3 -0
  487. package/lib/server/services/https-service.d.ts +3 -2
  488. package/lib/server/services/https-service.js +4 -3
  489. package/lib/server/services/index.d.ts +1 -0
  490. package/lib/server/services/index.js +3 -0
  491. package/lib/server/services/log-service/index.d.ts +1 -0
  492. package/lib/server/services/log-service/index.js +3 -0
  493. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  494. package/lib/server/services/log-service/log-debug-type.js +17 -0
  495. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  496. package/lib/server/services/log-service/log-filter-data.js +6 -15
  497. package/lib/server/services/log-service/log-service.d.ts +17 -4
  498. package/lib/server/services/log-service/log-service.js +30 -17
  499. package/lib/server/services/news-service.d.ts +9 -7
  500. package/lib/server/services/news-service.js +14 -15
  501. package/lib/server/services/room-service/room-service.d.ts +20 -4
  502. package/lib/server/services/room-service/room-service.js +26 -10
  503. package/lib/server/services/settings-service.d.ts +6 -2
  504. package/lib/server/services/settings-service.js +3 -2
  505. package/lib/server/services/time-callback-service.js +1 -1
  506. package/lib/server/services/utils/RGB.d.ts +6 -0
  507. package/lib/server/services/utils/RGB.js +11 -0
  508. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  509. package/lib/server/services/utils/catchEmResult.js +10 -0
  510. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  511. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  512. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  513. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  514. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  515. package/lib/server/services/utils/index.d.ts +4 -1
  516. package/lib/server/services/utils/index.js +8 -1
  517. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  518. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  519. package/lib/server/services/utils/utils.d.ts +9 -14
  520. package/lib/server/services/victron/victron-device.d.ts +27 -10
  521. package/lib/server/services/victron/victron-device.js +94 -25
  522. package/lib/server/services/weather/index.d.ts +2 -0
  523. package/lib/server/services/weather/index.js +3 -0
  524. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  525. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  526. package/lib/server/services/weather/weather-current.d.ts +0 -2
  527. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  528. package/lib/server/services/weather/weather-response.d.ts +16 -0
  529. package/lib/server/services/weather/weather-response.js +2 -0
  530. package/lib/server/services/weather/weather-service.d.ts +16 -18
  531. package/lib/server/services/weather/weather-service.js +37 -22
  532. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  533. package/lib/tsconfig.tsbuildinfo +1 -1
  534. package/package.json +27 -29
  535. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  536. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  537. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  538. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  539. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  540. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -10,38 +10,70 @@ const utils_1 = require("../utils");
10
10
  const log_service_1 = require("../log-service");
11
11
  const ac_mode_1 = require("./ac-mode");
12
12
  const lodash_1 = __importDefault(require("lodash"));
13
- const DeviceCapability_1 = require("../../devices/DeviceCapability");
14
13
  const settings_service_1 = require("../settings-service");
15
14
  const config_1 = require("../../config");
16
15
  const blockAutomaticHandler_1 = require("../blockAutomaticHandler");
16
+ const weather_1 = require("../weather");
17
17
  class AcDevice {
18
+ /**
19
+ * Whether the AC is allowed to cool (depends on the season
20
+ * @returns {boolean} True if the AC is allowed to cool
21
+ */
22
+ get coolingAllowed() {
23
+ if (settings_service_1.SettingsService.heatMode !== config_1.HeatingMode.Summer) {
24
+ return false;
25
+ }
26
+ if (weather_1.WeatherService.active &&
27
+ weather_1.WeatherService.todayMaxTemp < this.settings.minOutdoorTempForCooling &&
28
+ weather_1.WeatherService.todayMaxTemp !== devices_1.UNDEFINED_TEMP_VALUE) {
29
+ // As it is quite cold outside there is no need to cool
30
+ return false;
31
+ }
32
+ return true;
33
+ }
34
+ /**
35
+ * Whether the AC is allowed to heat (depends on the season and the settings)
36
+ * @returns {boolean} True if the AC is allowed to heat
37
+ */
38
+ get heatingAllowed() {
39
+ return settings_service_1.SettingsService.heatMode !== config_1.HeatingMode.Summer && this.settings.heatingAllowed;
40
+ }
41
+ /** @inheritDoc */
18
42
  get temperature() {
19
43
  return this._roomTemperature;
20
44
  }
45
+ /** @inheritDoc */
21
46
  get customName() {
22
47
  return this.info.customName;
23
48
  }
49
+ /** @inheritDoc */
24
50
  get room() {
25
51
  return this._room;
26
52
  }
53
+ /** @inheritDoc */
27
54
  set room(room) {
28
55
  var _a, _b;
29
56
  this._room = room;
30
57
  if (room !== undefined && !this._movementCallbackAdded) {
31
58
  this._movementCallbackAdded = true;
32
- (_a = room === null || room === void 0 ? void 0 : room.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.addFirstEnterCallback(this.onRoomFirstEnter.bind(this));
59
+ // TODO: Maybe change to any Movement
60
+ (_a = room === null || room === void 0 ? void 0 : room.PraesenzGroup) === null || _a === void 0 ? void 0 : _a.addAnyMovementCallback(this.onRoomAnyMovement.bind(this));
33
61
  (_b = room === null || room === void 0 ? void 0 : room.PraesenzGroup) === null || _b === void 0 ? void 0 : _b.addLastLeftCallback(this.onRoomLastLeave.bind(this));
34
62
  }
35
63
  }
64
+ /** @inheritDoc */
36
65
  get mode() {
37
66
  return this._mode;
38
67
  }
39
68
  constructor(name, roomName, ip, acDeviceType) {
40
69
  this.ip = ip;
41
70
  this.acDeviceType = acDeviceType;
71
+ /** @inheritDoc */
42
72
  this.currentConsumption = -1;
73
+ /** @inheritDoc */
43
74
  this.settings = new models_1.AcSettings();
44
- this.deviceCapabilities = [DeviceCapability_1.DeviceCapability.ac, DeviceCapability_1.DeviceCapability.blockAutomatic];
75
+ /** @inheritDoc */
76
+ this.deviceCapabilities = [devices_1.DeviceCapability.ac, devices_1.DeviceCapability.blockAutomatic];
45
77
  this._activatedByExcessEnergy = false;
46
78
  this._desiredTemperatur = devices_1.UNDEFINED_TEMP_VALUE;
47
79
  this._mode = ac_mode_1.AcMode.Off;
@@ -52,40 +84,48 @@ class AcDevice {
52
84
  this._info.customName = `${roomName} ${name}`;
53
85
  this._info.room = roomName;
54
86
  this._info.allDevicesKey = `ac-${roomName}-${name}`;
55
- utils_1.Utils.guardedInterval(this.automaticCheck, 5 * 60 * 1000, this, true);
87
+ utils_1.Utils.guardedInterval(this.automaticCheck, 5 * 60 * 1000, this, false);
56
88
  utils_1.Utils.guardedInterval(this.persist, 15 * 60 * 1000, this, true);
57
89
  this.persistDeviceInfo();
58
90
  this.loadDeviceSettings();
59
- this.blockAutomationHandler = new blockAutomaticHandler_1.BlockAutomaticHandler(this.restoreTargetAutomaticValue.bind(this));
91
+ this.blockAutomationHandler = new blockAutomaticHandler_1.BlockAutomaticHandler(this.restoreTargetAutomaticValue.bind(this), this.log.bind(this));
60
92
  }
93
+ /** @inheritDoc */
61
94
  get energySettings() {
62
95
  return this.settings.energySettings;
63
96
  }
97
+ /** @inheritDoc */
64
98
  get roomTemperature() {
65
99
  return this._roomTemperature;
66
100
  }
101
+ /** @inheritDoc */
67
102
  get info() {
68
103
  return this._info;
69
104
  }
70
105
  set roomTemperatur(val) {
71
106
  this._roomTemperature = val;
72
107
  }
73
- set info(info) {
74
- this._info = info;
75
- }
108
+ /**
109
+ * The name of this device
110
+ * @returns The human readable name of this device
111
+ */
76
112
  get name() {
77
113
  return this.info.customName;
78
114
  }
115
+ /** @inheritDoc */
79
116
  get id() {
80
117
  var _a;
81
118
  return (_a = this.info.allDevicesKey) !== null && _a !== void 0 ? _a : `ac-${this.info.room}-${this.info.customName}`;
82
119
  }
120
+ /** @inheritDoc */
83
121
  restoreTargetAutomaticValue() {
84
- this.log(models_1.LogLevel.Debug, `Restore Target Automatic value`);
122
+ this.log(models_1.LogLevel.Debug, 'Restore Target Automatic value');
85
123
  this.automaticCheck();
86
124
  }
125
+ /** @inheritDoc */
87
126
  isAvailableForExcessEnergy() {
88
- if (this.settings.useOwnTemperatureAndAutomatic) {
127
+ var _a, _b, _c, _d;
128
+ if (this.settings.useAutomatic || (((_b = (_a = this.room) === null || _a === void 0 ? void 0 : _a.HeatGroup) === null || _b === void 0 ? void 0 : _b.settings.automaticMode) && this.settings.heatingAllowed)) {
89
129
  return false;
90
130
  }
91
131
  if (this.blockAutomationHandler.automaticBlockActive) {
@@ -94,48 +134,63 @@ class AcDevice {
94
134
  if (!utils_1.Utils.timeWithinBorders(this.settings.minimumHours, this.settings.minimumMinutes, this.settings.maximumHours, this.settings.maximumMinutes)) {
95
135
  return false;
96
136
  }
97
- return this.calculateDesiredMode() !== ac_mode_1.AcMode.Off;
137
+ const desiredMode = this.calculateDesiredMode();
138
+ if (desiredMode === ac_mode_1.AcMode.Cooling &&
139
+ this.settings.noCoolingOnMovement &&
140
+ ((_d = (_c = this.room) === null || _c === void 0 ? void 0 : _c.PraesenzGroup) === null || _d === void 0 ? void 0 : _d.anyPresent(true))) {
141
+ return false;
142
+ }
143
+ return true;
98
144
  }
145
+ /** @inheritDoc */
99
146
  calculateDesiredMode() {
100
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
147
+ var _a, _b, _c, _d;
101
148
  const acOn = this.on;
102
- this._desiredTemperatur = (_c = (_b = (_a = this.room) === null || _a === void 0 ? void 0 : _a.HeatGroup) === null || _b === void 0 ? void 0 : _b.desiredTemp) !== null && _c !== void 0 ? _c : 0;
149
+ const heatGroup = (_a = this.room) === null || _a === void 0 ? void 0 : _a.HeatGroup;
150
+ if (!heatGroup) {
151
+ this.log(models_1.LogLevel.Warn, "Can't calculate AC Mode as we have no heat group");
152
+ return ac_mode_1.AcMode.Off;
153
+ }
154
+ this._desiredTemperatur = heatGroup.desiredTemp;
103
155
  if (this.settings.manualDisabled) {
104
- acOn && this.log(models_1.LogLevel.Info, `We should turn off now, as manual disable force is set.`);
156
+ acOn && this.log(models_1.LogLevel.Info, 'We should turn off now, as manual disable force is set.');
157
+ return ac_mode_1.AcMode.Off;
158
+ }
159
+ if ((_b = devices_1.Devices.energymanager) === null || _b === void 0 ? void 0 : _b.acBlocked) {
160
+ acOn && this.log(models_1.LogLevel.Info, 'We should turn off now, as energy-manager demands off.');
105
161
  return ac_mode_1.AcMode.Off;
106
162
  }
107
163
  // Check Turn Off Time
108
164
  if (!utils_1.Utils.timeWithinBorders(this.settings.minimumHours, this.settings.minimumMinutes, this.settings.maximumHours, this.settings.maximumMinutes)) {
109
- acOn && this.log(models_1.LogLevel.Info, `We should turn off now, to respect night settings.`);
165
+ acOn && this.log(models_1.LogLevel.Info, 'We should turn off now, to respect night settings.');
110
166
  return ac_mode_1.AcMode.Off;
111
167
  }
112
- const heatGroup = (_d = this.room) === null || _d === void 0 ? void 0 : _d.HeatGroup;
113
- if (this.settings.useOwnTemperatureAndAutomatic) {
168
+ if (this.settings.useOwnTemperature) {
114
169
  // Device is in automatic mode so ignore energy and room temperature
115
- if ((heatGroup === null || heatGroup === void 0 ? void 0 : heatGroup.settings.automaticMode) === false) {
170
+ if (this.settings.useAutomatic) {
116
171
  return ac_mode_1.AcMode.Auto;
117
172
  }
118
- if (settings_service_1.SettingsService.heatMode !== config_1.HeatingMode.Sommer && this.settings.heatingAllowed) {
173
+ if (this.heatingAllowed) {
119
174
  return ac_mode_1.AcMode.Heating;
120
175
  }
121
- if (!this.settings.noCoolingOnMovement || ((_f = (_e = this.room) === null || _e === void 0 ? void 0 : _e.PraesenzGroup) === null || _f === void 0 ? void 0 : _f.anyPresent()) !== true) {
176
+ else if (this.coolingAllowed) {
122
177
  return ac_mode_1.AcMode.Cooling;
123
178
  }
124
179
  return ac_mode_1.AcMode.Off;
125
180
  }
126
181
  const temp = this.roomTemperature;
127
182
  if (temp === undefined || temp === devices_1.UNDEFINED_TEMP_VALUE) {
128
- this.log(models_1.LogLevel.Warn, `Can't calculate AC Mode as we have no room temperature`);
183
+ this.log(models_1.LogLevel.Warn, "Can't calculate AC Mode as we have no room temperature");
129
184
  return ac_mode_1.AcMode.Off;
130
185
  }
131
186
  if (!heatGroup) {
132
- this.log(models_1.LogLevel.Warn, `Can't calculate AC Mode as we have no heat group`);
187
+ this.log(models_1.LogLevel.Warn, "Can't calculate AC Mode as we have no heat group");
133
188
  return ac_mode_1.AcMode.Off;
134
189
  }
135
190
  let threshold = acOn ? 0.5 : 1.5;
136
191
  let thresholdHeating = acOn ? 0.5 : 1.5;
137
192
  let desiredMode = ac_mode_1.AcMode.Off;
138
- const excessEnergy = (_h = (_g = devices_1.Devices.energymanager) === null || _g === void 0 ? void 0 : _g.excessEnergy) !== null && _h !== void 0 ? _h : -1;
193
+ const excessEnergy = (_d = (_c = devices_1.Devices.energymanager) === null || _c === void 0 ? void 0 : _c.excessEnergy) !== null && _d !== void 0 ? _d : -1;
139
194
  if ((acOn ? 200 : 1000) < excessEnergy) {
140
195
  // As there is plenty of energy to spare we plan to overshoot the target by 1 degree
141
196
  threshold = -0.5;
@@ -144,13 +199,10 @@ class AcDevice {
144
199
  const targetTemp = heatGroup.desiredTemp;
145
200
  const coolUntil = targetTemp + threshold;
146
201
  const heatUntil = targetTemp - thresholdHeating;
147
- if (temp > coolUntil && settings_service_1.SettingsService.heatMode === config_1.HeatingMode.Sommer) {
202
+ if (temp > coolUntil && this.coolingAllowed) {
148
203
  desiredMode = ac_mode_1.AcMode.Cooling;
149
- if (this.settings.noCoolingOnMovement && ((_k = (_j = this.room) === null || _j === void 0 ? void 0 : _j.PraesenzGroup) === null || _k === void 0 ? void 0 : _k.anyPresent()) === true) {
150
- return ac_mode_1.AcMode.Off;
151
- }
152
204
  }
153
- else if (temp < heatUntil && this.settings.heatingAllowed && settings_service_1.SettingsService.heatMode === config_1.HeatingMode.Winter) {
205
+ else if (temp < heatUntil && this.heatingAllowed) {
154
206
  desiredMode = ac_mode_1.AcMode.Heating;
155
207
  }
156
208
  if (acOn ? desiredMode === ac_mode_1.AcMode.Off : desiredMode !== ac_mode_1.AcMode.Off) {
@@ -158,16 +210,13 @@ class AcDevice {
158
210
  }
159
211
  return desiredMode;
160
212
  }
161
- /**
162
- * Disable automatic Turn-On and Turn-Off for given amount of ms.
163
- * @param {number} timeout
164
- */
165
- deactivateAutomaticChange(timeout = 60 * 60 * 1000) {
166
- this.blockAutomationHandler.disableAutomatic(timeout);
167
- }
213
+ /** @inheritDoc */
168
214
  onTemperaturChange(newTemperatur) {
169
215
  this.roomTemperatur = newTemperatur;
170
216
  }
217
+ /**
218
+ * Persists the current AC-Information to the database
219
+ */
171
220
  persist() {
172
221
  var _a;
173
222
  if (!utils_1.Utils.anyDboActive || this.on === undefined) {
@@ -175,19 +224,35 @@ class AcDevice {
175
224
  }
176
225
  (_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistAC(this);
177
226
  }
227
+ /** @inheritDoc */
178
228
  turnOnForExcessEnergy() {
229
+ var _a, _b;
179
230
  if (this.blockAutomationHandler.automaticBlockActive) {
180
231
  return;
181
232
  }
182
233
  this._activatedByExcessEnergy = true;
234
+ const desiredMode = this.calculateDesiredMode();
235
+ if (desiredMode === ac_mode_1.AcMode.Cooling &&
236
+ this.settings.noCoolingOnMovement &&
237
+ ((_b = (_a = this.room) === null || _a === void 0 ? void 0 : _a.PraesenzGroup) === null || _b === void 0 ? void 0 : _b.anyPresent(true))) {
238
+ return;
239
+ }
183
240
  this.setDesiredMode(this.calculateDesiredMode(), false);
184
241
  this.turnOn();
185
242
  }
243
+ /** @inheritDoc */
186
244
  turnOffDueToMissingEnergy() {
187
245
  this.turnOff();
188
246
  }
247
+ /**
248
+ * Sets the state of the AC
249
+ * TODO: Migrate to new command system
250
+ * @param mode - The desired mode
251
+ * @param desiredTemp - The desired temperature (if unset it will be calculated)
252
+ * @param forceTime - The time in ms to force the AC to stay in this state (default 1h)
253
+ */
189
254
  setState(mode, desiredTemp, forceTime = 60 * 60 * 1000) {
190
- this.blockAutomationHandler.disableAutomatic(forceTime);
255
+ this.blockAutomationHandler.disableAutomatic(new models_1.BlockAutomaticCommand(models_1.CommandSource.Unknown, forceTime));
191
256
  this._mode = mode;
192
257
  if (mode == ac_mode_1.AcMode.Off) {
193
258
  this.turnOff();
@@ -196,6 +261,7 @@ class AcDevice {
196
261
  this.setDesiredMode(mode, false, desiredTemp);
197
262
  this.turnOn();
198
263
  }
264
+ /** @inheritDoc */
199
265
  log(level, message, debugType = log_service_1.LogDebugType.None) {
200
266
  var _a, _b;
201
267
  log_service_1.ServerLogService.writeLog(level, `${this.name}: ${message}`, {
@@ -205,12 +271,15 @@ class AcDevice {
205
271
  deviceName: this.name,
206
272
  });
207
273
  }
274
+ /** @inheritDoc */
208
275
  wasActivatedByExcessEnergy() {
209
276
  return this._activatedByExcessEnergy;
210
277
  }
278
+ /** @inheritDoc */
211
279
  loadDeviceSettings() {
212
280
  this.settings.initializeFromDb(this);
213
281
  }
282
+ /** @inheritDoc */
214
283
  persistDeviceInfo() {
215
284
  utils_1.Utils.guardedTimeout(() => {
216
285
  var _a;
@@ -218,6 +287,7 @@ class AcDevice {
218
287
  }, 5000, this);
219
288
  }
220
289
  automaticCheck() {
290
+ var _a, _b;
221
291
  if (this.blockAutomationHandler.automaticBlockActive) {
222
292
  // We aren't allowed to turn on or off anyway --> exit
223
293
  return;
@@ -228,26 +298,30 @@ class AcDevice {
228
298
  return;
229
299
  }
230
300
  this.setDesiredMode(desiredMode, false);
231
- if (desiredMode == ac_mode_1.AcMode.Off) {
301
+ if (desiredMode == ac_mode_1.AcMode.Off ||
302
+ (desiredMode === ac_mode_1.AcMode.Cooling &&
303
+ this.settings.noCoolingOnMovement &&
304
+ ((_b = (_a = this.room) === null || _a === void 0 ? void 0 : _a.PraesenzGroup) === null || _b === void 0 ? void 0 : _b.anyPresent(true)))) {
232
305
  this.turnOff();
233
306
  return;
234
307
  }
235
308
  this.turnOn();
236
309
  }
237
- onRoomFirstEnter() {
310
+ onRoomAnyMovement(_action) {
238
311
  if (!this.settings.noCoolingOnMovement || !this.on || this.mode === ac_mode_1.AcMode.Heating) {
239
312
  return;
240
313
  }
241
- this.log(models_1.LogLevel.Info, `Someone entered the room. Turning off AC`);
314
+ this.log(models_1.LogLevel.Info, 'Something moved in the room. Turning off AC');
242
315
  this.turnOff();
243
316
  }
244
- onRoomLastLeave() {
317
+ onRoomLastLeave(action) {
245
318
  if (!this.settings.noCoolingOnMovement) {
246
319
  return;
247
320
  }
248
- this.log(models_1.LogLevel.Info, `Last person left the room. Checking if we should turn on AC`);
321
+ this.log(models_1.LogLevel.Info, `Last person left the room (${action.reasonTrace}). Checking if we should turn on AC`);
249
322
  this.restoreTargetAutomaticValue();
250
323
  }
324
+ /** @inheritDoc */
251
325
  toJSON() {
252
326
  // eslint-disable-next-line
253
327
  const result = lodash_1.default.omit(this, ['room', '_room']);
@@ -41,14 +41,14 @@ class DaikinService {
41
41
  DaikinService.setAll(true);
42
42
  Telegram_1.TelegramService.sendMessage([m.chat.id], 'Command executed');
43
43
  return true;
44
- }, `Turns all Ac's on without changing any settings`));
44
+ }, "Turns all Ac's on without changing any settings"));
45
45
  Telegram_1.TelegramService.addMessageCallback(new Telegram_1.TelegramMessageCallback('AcOff', /\/ac_off/, async (m) => {
46
46
  if (m.from === undefined)
47
47
  return false;
48
48
  DaikinService.setAll(false, true);
49
49
  Telegram_1.TelegramService.sendMessage([m.chat.id], 'Command executed');
50
50
  return true;
51
- }, `Turns all Ac's off without changing any settings`));
51
+ }, "Turns all Ac's off without changing any settings"));
52
52
  return new Promise((res, _rej) => {
53
53
  var _a, _b;
54
54
  this._daikinManager = new daikin_controller_1.DaikinManager({
@@ -68,6 +68,7 @@ class DaikinService {
68
68
  });
69
69
  });
70
70
  }
71
+ // TODO: Migrate to new command system
71
72
  static setAll(on, force = false) {
72
73
  if (!this.isInitialized) {
73
74
  return;
@@ -81,7 +82,7 @@ class DaikinService {
81
82
  dev.turnOff();
82
83
  }
83
84
  if (force) {
84
- dev.deactivateAutomaticChange(180 * 60 * 1000);
85
+ dev.blockAutomationHandler.disableAutomatic(new models_1.BlockAutomaticCommand(models_1.CommandSource.Unknown, 180 * 60 * 1000));
85
86
  }
86
87
  }
87
88
  }
@@ -1,5 +1,8 @@
1
1
  import { AcDevice } from './ac-device';
2
2
  export declare class OwnAcDevices {
3
+ /**
4
+ * A dict containing the AC-Devices
5
+ */
3
6
  static ownDevices: {
4
7
  [name: string]: AcDevice;
5
8
  };
@@ -12,4 +12,7 @@ class OwnAcDevices {
12
12
  }
13
13
  }
14
14
  exports.OwnAcDevices = OwnAcDevices;
15
+ /**
16
+ * A dict containing the AC-Devices
17
+ */
15
18
  OwnAcDevices.ownDevices = {};
@@ -5,22 +5,47 @@ import { DeviceType } from '../../devices';
5
5
  export declare class OwnDaikinDevice extends AcDevice {
6
6
  private _device;
7
7
  private _mac;
8
+ /**
9
+ * The desired state of the device
10
+ */
8
11
  desiredState: boolean;
12
+ /**
13
+ * The desired humidity-state of the device
14
+ * @default 'AUTO'
15
+ */
9
16
  desiredHum: number | 'AUTO';
17
+ /**
18
+ * The desired mode of the device
19
+ * @default Mode.COLD
20
+ */
10
21
  desiredMode: number;
22
+ /** @inheritDoc */
11
23
  deviceType: DeviceType;
12
24
  private _on;
13
25
  constructor(name: string, roomName: string, ip: string, _device: DaikinAC | undefined, _mac?: string | undefined);
14
26
  get device(): DaikinAC | undefined;
27
+ /** @inheritDoc */
15
28
  get on(): boolean;
16
29
  set device(device: DaikinAC | undefined);
30
+ /** @inheritDoc */
17
31
  setDesiredMode(mode: AcMode, writeToDevice?: boolean, desiredTemp?: number): void;
32
+ /** @inheritDoc */
18
33
  turnOn(): void;
34
+ /** @inheritDoc */
19
35
  turnOff(): void;
20
36
  protected automaticCheck(): void;
21
37
  private setDesiredInfo;
22
38
  private updateInfo;
39
+ /**
40
+ * Handles the situation when the device is unreachable, attempts to reconnect and log the outcome.
41
+ *
42
+ * This function logs a warning message indicating that the device is unreachable,
43
+ * then attempts to reconnect using the `DaikinService.reconnect` method.
44
+ * If the reconnection is successful, it sets the desired information and schedules a timeout of 5000ms.
45
+ * If the reconnection fails, it logs an error message with the reason for the failure.
46
+ */
23
47
  private handleDeviceUnreach;
24
48
  private handleParamNg;
49
+ /** @inheritDoc */
25
50
  toJSON(): Partial<OwnDaikinDevice>;
26
51
  }
@@ -20,15 +20,28 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
20
20
  super(name, roomName, ip, acDeviceType_1.AcDeviceType.Daikin);
21
21
  this._device = _device;
22
22
  this._mac = _mac;
23
+ /**
24
+ * The desired state of the device
25
+ */
23
26
  this.desiredState = daikin_controller_1.Power.OFF;
27
+ /**
28
+ * The desired humidity-state of the device
29
+ * @default 'AUTO'
30
+ */
24
31
  this.desiredHum = 'AUTO';
32
+ /**
33
+ * The desired mode of the device
34
+ * @default Mode.COLD
35
+ */
25
36
  this.desiredMode = daikin_controller_1.Mode.COLD;
37
+ /** @inheritDoc */
26
38
  this.deviceType = devices_1.DeviceType.Daikin;
27
39
  this._on = false;
28
40
  }
29
41
  get device() {
30
42
  return this._device;
31
43
  }
44
+ /** @inheritDoc */
32
45
  get on() {
33
46
  return this._on;
34
47
  }
@@ -45,6 +58,7 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
45
58
  }
46
59
  void this.updateInfo();
47
60
  }
61
+ /** @inheritDoc */
48
62
  setDesiredMode(mode, writeToDevice = true, desiredTemp) {
49
63
  let newMode = -1;
50
64
  switch (mode) {
@@ -67,13 +81,15 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
67
81
  this.setDesiredInfo(false, desiredTemp);
68
82
  }
69
83
  }
84
+ /** @inheritDoc */
70
85
  turnOn() {
71
- this.log(models_1.LogLevel.Info, `Turning on`);
86
+ this.log(models_1.LogLevel.Info, 'Turning on');
72
87
  this.desiredState = daikin_controller_1.Power.ON;
73
88
  this.setDesiredInfo();
74
89
  }
90
+ /** @inheritDoc */
75
91
  turnOff() {
76
- this.log(models_1.LogLevel.Info, `Turning off`);
92
+ this.log(models_1.LogLevel.Info, 'Turning off');
77
93
  this._activatedByExcessEnergy = false;
78
94
  this.desiredState = daikin_controller_1.Power.OFF;
79
95
  this._mode = ac_mode_1.AcMode.Off;
@@ -86,13 +102,21 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
86
102
  });
87
103
  }
88
104
  setDesiredInfo(retry = false, forceTemp) {
89
- var _a;
105
+ var _a, _b;
106
+ if (this._desiredTemperatur === devices_1.UNDEFINED_TEMP_VALUE) {
107
+ if (((_a = this.room) === null || _a === void 0 ? void 0 : _a.HeatGroup) === undefined) {
108
+ this.log(models_1.LogLevel.Error, `Neither desired temperature nor HeatGroup is set for ${this.name}(${this.ip})`);
109
+ return;
110
+ }
111
+ this._desiredTemperatur = this.room.HeatGroup.desiredTemp;
112
+ return;
113
+ }
90
114
  let targetTemp = this._desiredTemperatur;
91
115
  if (this.desiredMode == daikin_controller_1.Mode.HOT) {
92
- targetTemp = this.settings.useOwnTemperatureAndAutomatic ? targetTemp + 1 : 29;
116
+ targetTemp = this.settings.useOwnTemperature ? targetTemp : 29;
93
117
  }
94
118
  else if (this.desiredMode == daikin_controller_1.Mode.COLD) {
95
- targetTemp = this.settings.useOwnTemperatureAndAutomatic ? targetTemp - 1 : 16;
119
+ targetTemp = this.settings.useOwnTemperature ? targetTemp : 16;
96
120
  }
97
121
  const changeObject = {
98
122
  power: this.desiredState,
@@ -100,7 +124,7 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
100
124
  targetHumidity: this.desiredHum,
101
125
  targetTemperature: forceTemp !== null && forceTemp !== void 0 ? forceTemp : targetTemp,
102
126
  };
103
- (_a = this.device) === null || _a === void 0 ? void 0 : _a.setACControlInfo(changeObject, (err, res) => {
127
+ (_b = this.device) === null || _b === void 0 ? void 0 : _b.setACControlInfo(changeObject, (err, res) => {
104
128
  var _a;
105
129
  if (err !== null) {
106
130
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `Setting Ac Info for ${this.name} failed: ${err} `);
@@ -120,7 +144,7 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
120
144
  this.persist();
121
145
  }
122
146
  else {
123
- this.log(models_1.LogLevel.Warn, `No Error, but also no response...`);
147
+ this.log(models_1.LogLevel.Warn, 'No Error, but also no response...');
124
148
  }
125
149
  });
126
150
  }
@@ -137,6 +161,14 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
137
161
  });
138
162
  });
139
163
  }
164
+ /**
165
+ * Handles the situation when the device is unreachable, attempts to reconnect and log the outcome.
166
+ *
167
+ * This function logs a warning message indicating that the device is unreachable,
168
+ * then attempts to reconnect using the `DaikinService.reconnect` method.
169
+ * If the reconnection is successful, it sets the desired information and schedules a timeout of 5000ms.
170
+ * If the reconnection fails, it logs an error message with the reason for the failure.
171
+ */
140
172
  handleDeviceUnreach() {
141
173
  this.log(models_1.LogLevel.Warn, `Detected EHOSTUNREACH for ${this.name}(${this.ip}), will try reconecting`);
142
174
  daikin_service_1.DaikinService.reconnect(this.name, this.ip, this._mac)
@@ -161,6 +193,7 @@ class OwnDaikinDevice extends ac_device_1.AcDevice {
161
193
  }
162
194
  });
163
195
  }
196
+ /** @inheritDoc */
164
197
  toJSON() {
165
198
  // eslint-disable-next-line
166
199
  const result = lodash_1.default.omit(this, ['room', '_room', 'device', '_device']);