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
@@ -7,13 +7,11 @@ const room_service_1 = require("../room-service");
7
7
  const log_service_1 = require("../log-service");
8
8
  const ac_1 = require("../ac");
9
9
  const DeviceCapability_1 = require("../../devices/DeviceCapability");
10
- const settings_service_1 = require("../settings-service");
11
- const config_1 = require("../../config");
12
10
  class API {
13
11
  /**
14
12
  * Endpoint to end a scene manually (or early if it has automatic turn off)
15
- * @param {string} deviceId
16
- * @returns {Error | null}
13
+ * @param deviceId - The id of the scene to end
14
+ * @returns In case it failed the Error containing the reason
17
15
  */
18
16
  static endScene(deviceId) {
19
17
  const d = this.getDevice(deviceId);
@@ -23,14 +21,14 @@ class API {
23
21
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.scene)) {
24
22
  return new Error(`Device with ID ${deviceId} is no scene`);
25
23
  }
26
- d.log(models_1.LogLevel.Info, `API Call to end this.`);
24
+ d.log(models_1.LogLevel.Info, 'API Call to end this.');
27
25
  d.endScene();
28
26
  return null;
29
27
  }
30
28
  /**
31
29
  * Gets the instance of an Ac Device identified by id
32
- * @param {string} id
33
- * @returns {OwnDaikinDevice | undefined}
30
+ * @param id - The device id of the AC
31
+ * @returns The instance of the AC Device or undefined if not found
34
32
  */
35
33
  static getAc(id) {
36
34
  const result = this.getDevice(id);
@@ -39,17 +37,20 @@ class API {
39
37
  }
40
38
  return result;
41
39
  }
40
+ // TODO: Missing Comment
42
41
  static getDevices() {
43
42
  // console.log(Util.inspect(Devices.alLDevices, false, 5));
44
43
  return devices_1.Devices.alLDevices;
45
44
  }
46
- static getDevice(id) {
45
+ // TODO: Missing Comment
46
+ static getDevice(id, warnIfNotFound = true) {
47
47
  const d = devices_1.Devices.alLDevices[id];
48
- if (d === undefined) {
48
+ if (d === undefined && warnIfNotFound) {
49
49
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `Api.getDevice() --> "${id}" not found`);
50
50
  }
51
- return devices_1.Devices.alLDevices[id];
51
+ return d;
52
52
  }
53
+ // TODO: Missing Comment
53
54
  static getGroup(id) {
54
55
  const g = room_service_1.RoomService.Groups.get(id);
55
56
  if (g === undefined) {
@@ -57,23 +58,27 @@ class API {
57
58
  }
58
59
  return g;
59
60
  }
61
+ // TODO: Missing Comment
60
62
  static getRooms() {
61
63
  // console.log(inspect(Object.fromEntries(RoomService.Rooms)));
62
64
  return room_service_1.RoomService.Rooms;
63
65
  }
66
+ // TODO: Missing Comment
64
67
  static getRoom(id) {
65
68
  return room_service_1.RoomService.Rooms.get(id);
66
69
  }
70
+ // TODO: Missing Comment
67
71
  static getLog() {
68
72
  return log_service_1.ServerLogService.getLog();
69
73
  }
70
74
  /**
71
75
  * Turns on/off one AC identified by it's id
72
- * @param id The id of the device, if wrong false will be returned
73
- * @param {boolean} desiredState
74
- * @param {AcMode} desiredMode
75
- * @param desiredTemperature
76
- * @param forceTime The time in ms this should not change before automatic change is allowed again
76
+ * @param id - The id of the device, if wrong false will be returned
77
+ * @param desiredState - The desired state for the AC
78
+ * @param desiredMode - The desired mode for the AC
79
+ * @param desiredTemperature - The desired temperature for the AC in Celsius
80
+ * @param forceTime - The time in ms this should not change before automatic change is allowed again
81
+ * @returns True if the AC was found and the state was changed
77
82
  */
78
83
  static setAc(id, desiredState, desiredMode, desiredTemperature, forceTime = 60 * 60 * 1000) {
79
84
  const d = this.getAc(id);
@@ -90,7 +95,7 @@ class API {
90
95
  desiredMode = ac_1.AcMode.Off;
91
96
  }
92
97
  else {
93
- desiredMode = settings_service_1.SettingsService.heatMode == config_1.HeatingMode.Winter ? ac_1.AcMode.Heating : ac_1.AcMode.Cooling;
98
+ desiredMode = d.heatingAllowed ? ac_1.AcMode.Heating : ac_1.AcMode.Cooling;
94
99
  }
95
100
  }
96
101
  d.log(models_1.LogLevel.Info, `API Call to set AC to ${desiredState} with mode ${desiredMode} for ${forceTime}ms`);
@@ -99,7 +104,7 @@ class API {
99
104
  }
100
105
  /**
101
106
  * Turns on/off all AC´s in the home
102
- * @param {boolean} desiredState
107
+ * @param desiredState - The desired state for all AC´s
103
108
  */
104
109
  static setAllAc(desiredState) {
105
110
  ac_1.DaikinService.setAll(desiredState, true);
@@ -107,12 +112,23 @@ class API {
107
112
  }
108
113
  /**
109
114
  * Changes the status of a given Lamp
110
- * @param {string} deviceId The device Id of the lamp
111
- * @param {boolean} state The desired new state
112
- * @param timeout Desired time after which this should be reverted to normal state
113
- * @returns {Error | null} In case it failed the Error containing the reason
115
+ * @param deviceId - The device Id of the lamp
116
+ * @param state - The desired new state
117
+ * @param timeout - Desired time after which this should be reverted to normal state
118
+ * @returns In case it failed the Error containing the reason
119
+ * @deprecated Use {@link API.lampSetLight} instead
120
+ * TODO: Remove deprecated API method
114
121
  */
115
122
  static setLamp(deviceId, state, timeout = 60 * 60 * 1000) {
123
+ return this.lampSetLight(deviceId, new models_1.LampSetLightCommand(models_1.CommandSource.API, state, '', new models_1.BlockAutomaticCommand(models_1.CommandSource.API, timeout)));
124
+ }
125
+ /**
126
+ * Changes the status of a given Lamp
127
+ * @param deviceId - The device Id of the lamp
128
+ * @param c - The command(stack) to perform on the lamp
129
+ * @returns In case it failed the Error containing the reason.
130
+ */
131
+ static lampSetLight(deviceId, c) {
116
132
  const d = this.getDevice(deviceId);
117
133
  if (d === undefined) {
118
134
  return new Error(`Device with ID ${deviceId} not found`);
@@ -120,18 +136,29 @@ class API {
120
136
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.lamp)) {
121
137
  return new Error(`Device with ID ${deviceId} is no Lamp`);
122
138
  }
123
- d.log(models_1.LogLevel.Info, `API Call to set Lamp to ${state} for ${timeout}ms`);
124
- d.setLight(new models_1.LampSetLightCommand(models_1.CommandSource.API, state, '', timeout));
139
+ d.log(models_1.LogLevel.Info, 'Received LampSetLightCommand API call.');
140
+ d.setLight(c);
125
141
  return null;
126
142
  }
127
143
  /**
128
144
  * Changes the status of a given actuator
129
- * @param {string} deviceId The device Id of the actuator
130
- * @param {boolean} state The desired new state
131
- * @param timeout Desired time after which this should be reverted to automatic state
132
- * @returns {Error | null} In case it failed the Error containing the reason
145
+ * @param deviceId - The device Id of the actuator
146
+ * @param state - The desired new state
147
+ * @param timeout - Desired time after which this should be reverted to automatic state
148
+ * @returns In case it failed the Error containing the reason
149
+ * @deprecated Use {@link API.actuatorSetState} instead
150
+ * TODO: Remove deprecated API method
133
151
  */
134
152
  static setActuator(deviceId, state, timeout = 60 * 60 * 1000) {
153
+ return this.actuatorSetState(deviceId, new models_1.ActuatorSetStateCommand(models_1.CommandSource.API, state, '', new models_1.BlockAutomaticCommand(models_1.CommandSource.API, timeout)));
154
+ }
155
+ /**
156
+ * Changes the status of a given actuator
157
+ * @param deviceId - The device Id of the actuator
158
+ * @param c - The command(stack) to perform on the actuator
159
+ * @returns In case it failed the Error containing the reason
160
+ */
161
+ static actuatorSetState(deviceId, c) {
135
162
  const d = this.getDevice(deviceId);
136
163
  if (d === undefined) {
137
164
  return new Error(`Device with ID ${deviceId} not found`);
@@ -139,20 +166,31 @@ class API {
139
166
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.actuator)) {
140
167
  return new Error(`Device with ID ${deviceId} is no actuator`);
141
168
  }
142
- d.log(models_1.LogLevel.Info, `API Call to set Actuator to ${state} for ${timeout}ms`);
143
- d.setActuator(new models_1.ActuatorSetStateCommand(models_1.CommandSource.API, state, '', timeout));
169
+ d.log(models_1.LogLevel.Info, 'Received ActuatorSetStateCommand API call.');
170
+ d.setActuator(c);
144
171
  return null;
145
172
  }
146
173
  /**
147
- * Changes the status of a given actuator
148
- * @param {string} deviceId The device Id of the actuator
149
- * @param {boolean} state The desired new state
150
- * @param timeout A chosen Timeout after which the light should be reset
151
- * @param brightness The desired brightness
152
- * @param transitionTime The transition time during turnOn/turnOff
153
- * @returns {Error | null} In case it failed the Error containing the reason
174
+ * Changes the status of the given dimmer
175
+ * @param deviceId - The device Id of the actuator
176
+ * @param state - The desired new state
177
+ * @param timeout - A chosen Timeout after which the light should be reset
178
+ * @param brightness - The desired brightness
179
+ * @param transitionTime - The transition time during turnOn/turnOff
180
+ * @returns In case it failed the Error containing the reason
181
+ * @deprecated Use {@link API.dimmerSetLight} instead
182
+ * TODO: Remove deprecated API method
154
183
  */
155
184
  static setDimmer(deviceId, state, timeout, brightness, transitionTime) {
185
+ return this.dimmerSetLight(deviceId, new models_1.DimmerSetLightCommand(models_1.CommandSource.API, state, '', new models_1.BlockAutomaticCommand(models_1.CommandSource.API, timeout), brightness, transitionTime));
186
+ }
187
+ /**
188
+ * Changes the status of the given dimmer
189
+ * @param deviceId - The device Id of the dimmable device.
190
+ * @param command - The command(stack) to perform on the dimmer
191
+ * @returns In case it failed the Error containing the reason.
192
+ */
193
+ static dimmerSetLight(deviceId, command) {
156
194
  const d = this.getDevice(deviceId);
157
195
  if (d === undefined) {
158
196
  return new Error(`Device with ID ${deviceId} not found`);
@@ -160,41 +198,64 @@ class API {
160
198
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.dimmablelamp)) {
161
199
  return new Error(`Device with ID ${deviceId} is no dimmablelamp`);
162
200
  }
163
- d.log(models_1.LogLevel.Info, `API Call to set Dimmer to ${state} with brightness ${brightness} for ${timeout}ms`);
164
- d.setLight(new models_1.DimmerSetLightCommand(models_1.CommandSource.API, state, '', timeout, brightness, transitionTime));
201
+ d.log(models_1.LogLevel.Info, 'Received dimmerSetLight API call.');
202
+ d.setLight(command);
165
203
  return null;
166
204
  }
167
205
  /**
168
- * Changes the status of a given actuator
169
- * @param {string} deviceId The device Id of the actuator
170
- * @param {boolean} state The desired new state
171
- * @param timeout A chosen Timeout after which the light should be reset
172
- * @param brightness The desired brightness
173
- * @param transitionTime The transition time during turnOn/turnOff
174
- * @param {string} color The desired color in 6 digit hex Code
175
- * @param {number} colorTemp The desired color Temperature (0 = more White)
176
- * @returns {Error | null} In case it failed the Error containing the reason
206
+ * Changes the status of a given led-device
207
+ * @param deviceId - The device Id of the actuator
208
+ * @param state - The desired new state
209
+ * @param timeout - A chosen Timeout after which the light should be reset
210
+ * @param brightness - The desired brightness
211
+ * @param transitionTime - The transition time during turnOn/turnOff
212
+ * @param color - The desired color in 6 digit hex Code
213
+ * @param colorTemp - The desired color Temperature (0 = more White)
214
+ * @returns In case it failed the Error containing the reason
215
+ * @deprecated Use {@link API.ledSetLight} instead
216
+ * TODO: Remove deprecated API method
177
217
  */
178
218
  static setLedLamp(deviceId, state, timeout, brightness, transitionTime, color, colorTemp) {
219
+ return this.ledSetLight(deviceId, new models_1.LedSetLightCommand(models_1.CommandSource.API, state, '', new models_1.BlockAutomaticCommand(models_1.CommandSource.API, timeout), brightness, transitionTime, color, colorTemp));
220
+ }
221
+ /**
222
+ * Changes the status of a given led-device
223
+ * @param deviceId - The device Id of the LED-Device
224
+ * @param command - The command(stack) to perform on the led-device
225
+ * @returns In case it failed the Error containing the reason
226
+ */
227
+ static ledSetLight(deviceId, command) {
179
228
  const d = this.getDevice(deviceId);
180
229
  if (d === undefined) {
181
230
  return new Error(`Device with ID ${deviceId} not found`);
182
231
  }
183
232
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.ledLamp)) {
184
- return new Error(`Device with ID ${deviceId} is no dimmablelamp`);
233
+ return new Error(`Device with ID ${deviceId} is no LED`);
185
234
  }
186
- d.log(models_1.LogLevel.Info, `API Call to set LED to ${state} with brightness ${brightness} and color ${color} for ${timeout}ms`);
187
- d.setLight(new models_1.LedSetLightCommand(models_1.CommandSource.API, state, '', timeout, brightness, transitionTime, color, colorTemp));
235
+ d.log(models_1.LogLevel.Info, 'Received ledSetLight API call.');
236
+ d.setLight(command);
188
237
  return null;
189
238
  }
190
239
  /**
191
240
  * Changes the position of a given shutter
192
241
  * if needed this updates the window position as well
193
- * @param {string} deviceId The device Id of the shutter
194
- * @param {number} level The desired new level (0 being open, 100 being closed)
195
- * @returns {Error | null} Error if there is no shutter with the given id
242
+ * @param deviceId - The device Id of the shutter
243
+ * @param level - The desired new level (0 being open, 100 being closed)
244
+ * @returns Error if there is no shutter with the given id
245
+ * @deprecated Use {@link API.shutterSetLevel} instead
246
+ * TODO: Remove deprecated API method
196
247
  */
197
248
  static setShutter(deviceId, level) {
249
+ return this.shutterSetLevel(deviceId, new models_1.ShutterSetLevelCommand(models_1.CommandSource.API, level));
250
+ }
251
+ /**
252
+ * Changes the position of a given shutter
253
+ * if needed this updates the window position as well
254
+ * @param deviceId - The device Id of the shutter
255
+ * @param command - The command(stack) to perform on the shutter
256
+ * @returns Error if there is no shutter with the given id
257
+ */
258
+ static shutterSetLevel(deviceId, command) {
198
259
  const d = this.getDevice(deviceId);
199
260
  if (d === undefined) {
200
261
  return new Error(`Device with ID ${deviceId} not found`);
@@ -204,14 +265,15 @@ class API {
204
265
  }
205
266
  if (d.window) {
206
267
  // otherwise it will be overridden shortly after
207
- d.window.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.API, level));
268
+ d.window.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(command, command.level));
208
269
  }
209
270
  else {
210
- d.setLevel(new models_1.ShutterSetLevelCommand(models_1.CommandSource.API, level));
271
+ d.setLevel(command);
211
272
  }
212
- d.log(models_1.LogLevel.Info, `API Call to set Shutter to ${level}`);
273
+ d.log(models_1.LogLevel.Info, 'Received shutterSetLevel API call.');
213
274
  return null;
214
275
  }
276
+ // TODO: Missing Comment
215
277
  static speakOnDevice(deviceId, message, volume = 30) {
216
278
  const d = this.getDevice(deviceId);
217
279
  if (d === undefined) {
@@ -226,9 +288,9 @@ class API {
226
288
  }
227
289
  /**
228
290
  * Starts a specified scene
229
- * @param {string} deviceId The targeted scene
230
- * @param {number} turnOffTimeout If provided the time in ms after which the scene should end automatically
231
- * @returns {Error | null} In case it failed the Error containing the reason
291
+ * @param deviceId - The targeted scene
292
+ * @param turnOffTimeout - If provided the time in ms after which the scene should end automatically
293
+ * @returns In case it failed the Error containing the reason
232
294
  */
233
295
  static startScene(deviceId, turnOffTimeout) {
234
296
  const d = this.getDevice(deviceId);
@@ -238,7 +300,7 @@ class API {
238
300
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.scene)) {
239
301
  return new Error(`Device with ID ${deviceId} is no scene`);
240
302
  }
241
- d.log(models_1.LogLevel.Info, `API Call to start this.`);
303
+ d.log(models_1.LogLevel.Info, 'API Call to start this.');
242
304
  d.startScene(turnOffTimeout);
243
305
  return null;
244
306
  }
@@ -251,20 +313,20 @@ class API {
251
313
  return new Error(`Device with ID ${deviceId} is no Garage Door Opener`);
252
314
  }
253
315
  if (open) {
254
- d.log(models_1.LogLevel.Info, `API Call to open Garage Door`);
316
+ d.log(models_1.LogLevel.Info, 'API Call to open Garage Door');
255
317
  d.open();
256
318
  }
257
319
  else {
258
- d.log(models_1.LogLevel.Info, `API Call to close Garage Door`);
320
+ d.log(models_1.LogLevel.Info, 'API Call to close Garage Door');
259
321
  d.close();
260
322
  }
261
323
  return null;
262
324
  }
263
325
  /**
264
326
  * Changes the settings of a given device
265
- * @param {string} deviceId The id of the device to change the settings
266
- * @param settings A partial settings object containing the wanted settings properties
267
- * @returns {Error | null} In case it failed the Error containing the reason
327
+ * @param deviceId - The id of the device to change the settings
328
+ * @param settings - A partial settings object containing the wanted settings properties
329
+ * @returns In case it failed the Error containing the reason
268
330
  */
269
331
  static setDeviceSettings(deviceId, settings) {
270
332
  const d = this.getDevice(deviceId);
@@ -279,6 +341,7 @@ class API {
279
341
  d.settings.persist(d);
280
342
  return null;
281
343
  }
344
+ // TODO: Missing Comment
282
345
  static setGroupSettings(groupId, settings) {
283
346
  const g = this.getGroup(groupId);
284
347
  if (g === undefined) {
@@ -294,9 +357,9 @@ class API {
294
357
  }
295
358
  /**
296
359
  * Changes the settings of a given room
297
- * @param {string} roomName The id of the Room to change the settings
298
- * @param settings A partial settings object containing the wanted settings properties
299
- * @returns {Error | null} In case it failed the Error containing the reason
360
+ * @param roomName - The id of the Room to change the settings
361
+ * @param settings - A partial settings object containing the wanted settings properties
362
+ * @returns In case it failed the Error containing the reason
300
363
  */
301
364
  static setRoomSettings(roomName, settings) {
302
365
  const r = this.getRoom(roomName);
@@ -308,6 +371,7 @@ class API {
308
371
  r.settings.settingsContainer.persist(r);
309
372
  return null;
310
373
  }
374
+ // TODO: Missing Comment
311
375
  static getLastCameraImage(deviceId) {
312
376
  const d = this.getDevice(deviceId);
313
377
  if (d === undefined) {
@@ -318,25 +382,38 @@ class API {
318
382
  }
319
383
  return d.lastImage;
320
384
  }
385
+ // TODO: Missing Comment
321
386
  static persistAllDeviceSettings() {
322
387
  var _a;
323
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `API Call to persist all device settings`);
388
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'API Call to persist all device settings');
324
389
  for (const device of Object.values(devices_1.Devices.alLDevices)) {
325
390
  (_a = device.settings) === null || _a === void 0 ? void 0 : _a.persist(device);
326
391
  }
327
392
  }
393
+ // TODO: Missing Comment
328
394
  static loadAllDeviceSettingsFromDb() {
329
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `API Call to load all device settings`);
395
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'API Call to load all device settings');
330
396
  for (const device of Object.values(devices_1.Devices.alLDevices)) {
331
397
  device.loadDeviceSettings();
332
398
  }
333
399
  }
334
400
  /**
335
401
  * Lifts a previously started Block of automatic
336
- * @param {string} deviceId The target device
337
- * @returns {Error | null} In case it failed the Error containing the reason
402
+ * @param deviceId - The target device
403
+ * @returns In case it failed the Error containing the reason
404
+ * @deprecated Use {@link API.blockAutomaticLiftAutomaticBlock} instead
405
+ * TODO: V4 Remove deprecated API method
338
406
  */
339
407
  static liftAutomaticBlock(deviceId) {
408
+ return this.blockAutomaticLiftAutomaticBlock(deviceId, new models_1.BlockAutomaticLiftBlockCommand(models_1.CommandSource.API));
409
+ }
410
+ /**
411
+ * Lifts a previously started Block of automatic
412
+ * @param deviceId - The target device
413
+ * @param command - The command to lift the automatic block
414
+ * @returns In case it failed the Error containing the reason
415
+ */
416
+ static blockAutomaticLiftAutomaticBlock(deviceId, command) {
340
417
  const d = this.getDevice(deviceId);
341
418
  if (d === undefined) {
342
419
  return new Error(`Device with ID ${deviceId} not found`);
@@ -344,18 +421,30 @@ class API {
344
421
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.blockAutomatic)) {
345
422
  return new Error(`Device with ID ${deviceId} is not capable of blocking automatic`);
346
423
  }
347
- d.log(models_1.LogLevel.Info, `API Call to lift automatic block`);
348
- d.blockAutomationHandler.liftAutomaticBlock();
424
+ d.log(models_1.LogLevel.Info, 'Received API Call to lift automatic block.');
425
+ d.blockAutomationHandler.liftAutomaticBlock(command);
349
426
  return null;
350
427
  }
351
428
  /**
352
429
  * Blocks the automatic of the given device for provided Duration
353
- * @param {string} deviceId The target device
354
- * @param {number} duration The duration in ms for which the device should remain in current state
355
- * @param {CollisionSolving} onCollision The desired Collision Solving strategy, in case the automatic being blocked already
356
- * @returns {Error | null} In case it failed the Error containing the reason
430
+ * @param deviceId - The target device
431
+ * @param duration - The duration in ms for which the device should remain in current state
432
+ * @param onCollision - The desired Collision Solving strategy, in case the automatic being blocked already
433
+ * @returns In case it failed the Error containing the reason
434
+ * @deprecated Use {@link API.blockAutomaticSetBlock} instead
435
+ * TODO: Remove deprecated API method
357
436
  */
358
437
  static blockAutomatic(deviceId, duration, onCollision) {
438
+ this.blockAutomaticSetBlock(deviceId, new models_1.BlockAutomaticCommand(models_1.CommandSource.API, duration, '', onCollision));
439
+ return null;
440
+ }
441
+ /**
442
+ * Blocks the automatic of the given device for provided Duration
443
+ * @param deviceId - The target device
444
+ * @param command - The command to block the automatic
445
+ * @returns In case it failed the Error containing the reason
446
+ */
447
+ static blockAutomaticSetBlock(deviceId, command) {
359
448
  const d = this.getDevice(deviceId);
360
449
  if (d === undefined) {
361
450
  return new Error(`Device with ID ${deviceId} not found`);
@@ -363,10 +452,11 @@ class API {
363
452
  if (!d.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.blockAutomatic)) {
364
453
  return new Error(`Device with ID ${deviceId} is not capable of blocking automatic`);
365
454
  }
366
- d.log(models_1.LogLevel.Info, `API Call to block automatic for ${duration}ms with ${onCollision} on collision`);
367
- d.blockAutomationHandler.disableAutomatic(duration, onCollision);
455
+ d.log(models_1.LogLevel.Info, 'Received API Call to block automatic.');
456
+ d.blockAutomationHandler.disableAutomatic(command);
368
457
  return null;
369
458
  }
459
+ // TODO: Missing Comment
370
460
  static pressButtonSwitch(deviceId, position, pressType) {
371
461
  const d = this.getDevice(deviceId);
372
462
  if (d === undefined) {
@@ -1,17 +1,22 @@
1
- /// <reference types="node" />
2
- import { CollisionSolving, RestoreTargetAutomaticValueCommand } from '../../models';
1
+ import { BlockAutomaticCommand, BlockAutomaticLiftBlockCommand, BlockAutomaticUntilCommand, LogLevel, RestoreTargetAutomaticValueCommand } from '../../models';
2
+ import { LogDebugType } from './log-service';
3
+ /**
4
+ * This class is responsible for blocking automatic actions for a specific duration.
5
+ * It also provides the possibility to lift the block before the duration is over {@link BlockAutomaticLiftBlockCommand}.
6
+ */
3
7
  export declare class BlockAutomaticHandler {
8
+ private readonly _logger;
4
9
  private readonly _restoreAutomatic;
5
- constructor(restoreAutomaticCb: (c: RestoreTargetAutomaticValueCommand) => void);
6
10
  private _automaticBlockedUntil;
11
+ private _restoreAutomaticStateTimeout;
12
+ constructor(restoreAutomaticCb: (c: RestoreTargetAutomaticValueCommand) => void, _logger: (level: LogLevel, message: string, logDebugType?: LogDebugType) => void);
7
13
  get automaticBlockedUntil(): Date;
8
14
  private set automaticBlockedUntil(value);
9
- private _restoreAutomaticStateTimeout;
10
- get restoreAutomaticStateTimeout(): NodeJS.Timeout | null;
11
15
  get automaticBlockActive(): boolean;
12
- disableAutomatic(durationMS: number, onCollideAction?: CollisionSolving): void;
13
- disableAutomaticUntil(targetDate: Date, onCollideAction?: CollisionSolving): void;
14
- liftAutomaticBlock(): void;
16
+ disableAutomatic(c: BlockAutomaticCommand): void;
17
+ disableAutomaticUntil(c: BlockAutomaticUntilCommand): void;
18
+ liftAutomaticBlock(c: BlockAutomaticLiftBlockCommand): void;
19
+ private removeRestoreTimeout;
15
20
  private updateRestoreTimeout;
16
21
  toJSON(): Partial<BlockAutomaticHandler>;
17
22
  }
@@ -7,8 +7,13 @@ exports.BlockAutomaticHandler = void 0;
7
7
  const models_1 = require("../../models");
8
8
  const utils_1 = require("./utils");
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
+ /**
11
+ * This class is responsible for blocking automatic actions for a specific duration.
12
+ * It also provides the possibility to lift the block before the duration is over {@link BlockAutomaticLiftBlockCommand}.
13
+ */
10
14
  class BlockAutomaticHandler {
11
- constructor(restoreAutomaticCb) {
15
+ constructor(restoreAutomaticCb, _logger) {
16
+ this._logger = _logger;
12
17
  this._automaticBlockedUntil = new Date(0);
13
18
  this._restoreAutomaticStateTimeout = null;
14
19
  this._restoreAutomatic = restoreAutomaticCb;
@@ -18,39 +23,53 @@ class BlockAutomaticHandler {
18
23
  }
19
24
  set automaticBlockedUntil(target) {
20
25
  this._automaticBlockedUntil = target;
21
- this.updateRestoreTimeout();
22
- }
23
- get restoreAutomaticStateTimeout() {
24
- return this._restoreAutomaticStateTimeout;
25
26
  }
26
27
  get automaticBlockActive() {
27
28
  return this._automaticBlockedUntil > new Date();
28
29
  }
29
- disableAutomatic(durationMS, onCollideAction = models_1.CollisionSolving.overrideIfGreater) {
30
- this.disableAutomaticUntil(new Date(utils_1.Utils.nowMS() + durationMS), onCollideAction);
30
+ disableAutomatic(c) {
31
+ this.disableAutomaticUntil(new models_1.BlockAutomaticUntilCommand(c, new Date(utils_1.Utils.nowMS() + c.durationMS), '', c.onCollideAction, c.revertToAutomaticAtBlockLift));
31
32
  }
32
- disableAutomaticUntil(targetDate, onCollideAction = models_1.CollisionSolving.overrideIfGreater) {
33
+ disableAutomaticUntil(c) {
33
34
  const now = new Date();
34
35
  if (this._automaticBlockedUntil > now &&
35
- onCollideAction != models_1.CollisionSolving.override &&
36
- (onCollideAction != models_1.CollisionSolving.overrideIfGreater || targetDate < this._automaticBlockedUntil)) {
36
+ c.onCollideAction != models_1.CollisionSolving.override &&
37
+ (c.onCollideAction != models_1.CollisionSolving.overrideIfGreater || c.targetDate < this._automaticBlockedUntil)) {
38
+ this._logger(models_1.LogLevel.Info, `Block already active until "${this.automaticBlockedUntil.toLocaleTimeString('de-DE')}" --> ignoring: ${c.logMessage}`);
37
39
  return;
38
40
  }
39
- this.automaticBlockedUntil = targetDate;
41
+ this._logger(models_1.LogLevel.Info, c.logMessage);
42
+ this.automaticBlockedUntil = c.targetDate;
43
+ if (c.revertToAutomaticAtBlockLift) {
44
+ const revertCommand = new models_1.RestoreTargetAutomaticValueCommand(c, 'Restore to automatic state after block.');
45
+ revertCommand.overrideCommandSource = models_1.CommandSource.Automatic;
46
+ this.updateRestoreTimeout(revertCommand);
47
+ }
48
+ else {
49
+ this.removeRestoreTimeout();
50
+ }
40
51
  }
41
- liftAutomaticBlock() {
52
+ liftAutomaticBlock(c) {
53
+ this.removeRestoreTimeout();
42
54
  this.automaticBlockedUntil = new Date(0);
55
+ if (c.revertToAutomatic) {
56
+ this._restoreAutomatic(new models_1.RestoreTargetAutomaticValueCommand(c));
57
+ }
43
58
  }
44
- updateRestoreTimeout() {
59
+ removeRestoreTimeout() {
45
60
  if (this._restoreAutomaticStateTimeout !== null) {
46
61
  clearTimeout(this._restoreAutomaticStateTimeout);
62
+ this._restoreAutomaticStateTimeout = null;
47
63
  }
64
+ }
65
+ updateRestoreTimeout(c) {
66
+ this.removeRestoreTimeout();
48
67
  this._restoreAutomaticStateTimeout = utils_1.Utils.guardedTimeout(() => {
49
- this._restoreAutomatic(new models_1.RestoreTargetAutomaticValueCommand(models_1.CommandSource.Unknown, 'Automatic block restore timeout'));
68
+ this._restoreAutomatic(c);
50
69
  }, this._automaticBlockedUntil.getTime() - utils_1.Utils.nowMS() + 500, this);
51
70
  }
52
71
  toJSON() {
53
- return utils_1.Utils.jsonFilter(lodash_1.default.omit(this, ['_restoreAutomatic']));
72
+ return utils_1.Utils.jsonFilter(lodash_1.default.omit(this, ['_restoreAutomatic', '_logger']));
54
73
  }
55
74
  }
56
75
  exports.BlockAutomaticHandler = BlockAutomaticHandler;
@@ -1,2 +1,3 @@
1
1
  export * from './muell-tonne';
2
2
  export * from './müll-service';
3
+ export { NameDatePair } from './name-date-pair';
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NameDatePair = void 0;
17
18
  __exportStar(require("./muell-tonne"), exports);
18
19
  __exportStar(require("./m\u00FCll-service"), exports);
20
+ var name_date_pair_1 = require("./name-date-pair");
21
+ Object.defineProperty(exports, "NameDatePair", { enumerable: true, get: function () { return name_date_pair_1.NameDatePair; } });
@@ -2,8 +2,18 @@ import { iSpeaker } from '../../devices';
2
2
  export declare class MuellTonne {
3
3
  name: string;
4
4
  ownSpeaker?: iSpeaker | undefined;
5
- static oneDay: number;
5
+ /**
6
+ * The duration of a signle day in milliseconds (used for date calculations)
7
+ */
8
+ private static readonly oneDay;
9
+ /**
10
+ * The next date this bin will be emptied
11
+ */
6
12
  nextDate: Date | undefined;
13
+ /**
14
+ * All dates this bin will be emptied
15
+ * After a date has passed it will be removed
16
+ */
7
17
  dates: Date[];
8
18
  constructor(name: string, ownSpeaker?: iSpeaker | undefined);
9
19
  sortDates(): void;
@@ -8,7 +8,14 @@ class MuellTonne {
8
8
  constructor(name, ownSpeaker) {
9
9
  this.name = name;
10
10
  this.ownSpeaker = ownSpeaker;
11
+ /**
12
+ * The next date this bin will be emptied
13
+ */
11
14
  this.nextDate = undefined;
15
+ /**
16
+ * All dates this bin will be emptied
17
+ * After a date has passed it will be removed
18
+ */
12
19
  this.dates = [];
13
20
  }
14
21
  sortDates() {
@@ -65,4 +72,7 @@ class MuellTonne {
65
72
  }
66
73
  }
67
74
  exports.MuellTonne = MuellTonne;
75
+ /**
76
+ * The duration of a signle day in milliseconds (used for date calculations)
77
+ */
68
78
  MuellTonne.oneDay = 1000 * 60 * 60 * 24;