hoffmation-base 3.0.0-alpha.5 → 3.0.0-alpha.50

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 (507) 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 +8 -0
  12. package/lib/models/action/index.js +27 -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/presenceGroupFirstEnterAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  17. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  18. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  19. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  20. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  21. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  22. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  23. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  24. package/lib/models/blockAutomaticSettings.js +19 -0
  25. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  26. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  27. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  28. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  29. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +8 -1
  30. package/lib/models/command/WindowSetDesiredPositionCommand.js +8 -1
  31. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  32. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  33. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  34. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  35. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  36. package/lib/models/command/actuatorToggleCommand.js +7 -4
  37. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  38. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  39. package/lib/models/command/baseCommand.d.ts +23 -2
  40. package/lib/models/command/baseCommand.js +41 -1
  41. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  42. package/lib/models/command/blockAutomaticCommand.js +40 -0
  43. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  44. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  45. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  46. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  47. package/lib/models/command/commandSource.d.ts +19 -0
  48. package/lib/models/command/commandSource.js +20 -0
  49. package/lib/models/command/commandType.d.ts +10 -0
  50. package/lib/models/command/commandType.js +10 -0
  51. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  52. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  53. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  54. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  55. package/lib/models/command/index.d.ts +3 -0
  56. package/lib/models/command/index.js +7 -1
  57. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  58. package/lib/models/command/lampSetLightCommand.js +15 -4
  59. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  60. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  61. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  62. package/lib/models/command/lampToggleLightCommand.js +7 -6
  63. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  64. package/lib/models/command/ledSetLightCommand.js +27 -17
  65. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  66. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  67. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  68. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  69. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  70. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  71. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  72. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  73. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  74. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  75. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  76. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  77. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  78. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  79. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  80. package/lib/models/command/wledSetLightCommand.js +23 -7
  81. package/lib/models/connectionCallbacks.d.ts +4 -4
  82. package/lib/models/connectionCallbacks.js +1 -0
  83. package/lib/models/deviceConfig.d.ts +3 -3
  84. package/lib/models/deviceSettings/acSettings.d.ts +19 -5
  85. package/lib/models/deviceSettings/acSettings.js +23 -8
  86. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  87. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  88. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  89. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  90. package/lib/models/deviceSettings/dachsSettings.d.ts +11 -0
  91. package/lib/models/deviceSettings/dachsSettings.js +13 -1
  92. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  93. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  94. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  95. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  96. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  97. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  98. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  99. package/lib/models/deviceSettings/handleSettings.js +9 -0
  100. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  101. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  102. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  103. package/lib/models/deviceSettings/ledSettings.js +76 -18
  104. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  105. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  106. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  107. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  108. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  109. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  111. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  112. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  113. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  114. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  115. package/lib/models/deviceSettings/wledSettings.js +37 -13
  116. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  117. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  118. package/lib/models/iIdHolder.d.ts +18 -0
  119. package/lib/models/index.d.ts +2 -1
  120. package/lib/models/index.js +4 -1
  121. package/lib/models/objectSettings.d.ts +5 -2
  122. package/lib/models/objectSettings.js +2 -2
  123. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  124. package/lib/models/persistence/EnergyCalculation.js +30 -4
  125. package/lib/models/persistence/index.d.ts +0 -2
  126. package/lib/models/persistence/index.js +0 -2
  127. package/lib/models/rooms/RoomBase.d.ts +12 -1
  128. package/lib/models/rooms/RoomBase.js +16 -7
  129. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  130. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  131. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  132. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  133. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  134. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  135. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  136. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  137. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  138. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  139. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  140. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  141. package/lib/models/timeCallback.d.ts +7 -0
  142. package/lib/models/timeCallback.js +16 -6
  143. package/lib/server/config/heatingMode.d.ts +2 -1
  144. package/lib/server/config/heatingMode.js +2 -1
  145. package/lib/server/config/iAsusConfig.d.ts +15 -0
  146. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  147. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  148. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  149. package/lib/server/config/iConfig.d.ts +94 -6
  150. package/lib/server/config/iDachsSettings.d.ts +16 -0
  151. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  152. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  153. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  154. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  155. package/lib/server/config/iGoveeSettings.js +2 -0
  156. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  157. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  158. package/lib/server/config/iLogSettings.d.ts +40 -1
  159. package/lib/server/config/iMp3Settings.d.ts +10 -0
  160. package/lib/server/config/iMuellSettings.d.ts +7 -0
  161. package/lib/server/config/iNewsSettings.d.ts +13 -0
  162. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  163. package/lib/server/config/iPollySettings.d.ts +22 -0
  164. package/lib/server/config/iRestSettings.d.ts +10 -0
  165. package/lib/server/config/iSonosSettings.d.ts +10 -0
  166. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  167. package/lib/server/config/iTibberSettings.d.ts +10 -0
  168. package/lib/server/config/iTimePair.d.ts +9 -0
  169. package/lib/server/config/iTimeSettings.d.ts +9 -0
  170. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  171. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  172. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  173. package/lib/server/config/iVictronSettings.d.ts +14 -0
  174. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  175. package/lib/server/config/index.d.ts +2 -0
  176. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  177. package/lib/server/devices/DeviceCapability.js +1 -0
  178. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  179. package/lib/server/devices/DeviceInfo.js +6 -0
  180. package/lib/server/devices/Griffe.js +1 -2
  181. package/lib/server/devices/Heizgruppen.js +2 -2
  182. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  183. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  184. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +2 -2
  185. package/lib/server/devices/IoBrokerDeviceInfo.js +6 -4
  186. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  187. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  188. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  189. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +21 -4
  190. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  191. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  192. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  193. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  194. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  195. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  196. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  197. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  198. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -4
  199. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -1
  200. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  201. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  202. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  203. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  204. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  205. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  207. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -1
  209. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  210. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  212. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -2
  213. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  214. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  215. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  216. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  217. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  218. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  219. package/lib/server/devices/button/button.d.ts +0 -1
  220. package/lib/server/devices/button/button.js +0 -4
  221. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  222. package/lib/server/devices/button/buttonCallback.js +10 -0
  223. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  224. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  225. package/lib/server/devices/button/index.d.ts +1 -0
  226. package/lib/server/devices/button/index.js +3 -0
  227. package/lib/server/devices/dachs/dachs.d.ts +37 -11
  228. package/lib/server/devices/dachs/dachs.js +49 -22
  229. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -3
  230. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  231. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  232. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  233. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  234. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  235. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  236. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  237. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  238. package/lib/server/devices/device-cluster.d.ts +3 -0
  239. package/lib/server/devices/device-cluster.js +1 -1
  240. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  241. package/lib/server/devices/deviceUpdater.js +1 -4
  242. package/lib/server/devices/devices.d.ts +43 -7
  243. package/lib/server/devices/devices.js +42 -6
  244. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  245. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  246. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  247. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  248. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  249. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  250. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  251. package/lib/server/devices/espresense/trilateration.js +7 -0
  252. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  253. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  254. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  255. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  256. package/lib/server/devices/groups/Window.d.ts +9 -3
  257. package/lib/server/devices/groups/Window.js +19 -11
  258. package/lib/server/devices/groups/base-group.d.ts +4 -0
  259. package/lib/server/devices/groups/base-group.js +3 -0
  260. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  261. package/lib/server/devices/groups/heatGroup.js +11 -11
  262. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  263. package/lib/server/devices/groups/lightGroup.js +18 -37
  264. package/lib/server/devices/groups/presenceGroup.d.ts +11 -4
  265. package/lib/server/devices/groups/presenceGroup.js +57 -64
  266. package/lib/server/devices/groups/tasterGroup.js +6 -6
  267. package/lib/server/devices/groups/windowGroup.d.ts +11 -1
  268. package/lib/server/devices/groups/windowGroup.js +6 -6
  269. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  270. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  271. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  272. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  273. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  274. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  275. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +36 -5
  276. package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
  277. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -5
  278. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
  279. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
  280. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
  281. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  282. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  283. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +19 -9
  284. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
  285. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  286. package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
  287. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
  288. package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
  289. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
  290. package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
  291. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  292. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  293. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  294. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  295. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  296. package/lib/server/devices/index.d.ts +5 -2
  297. package/lib/server/devices/index.js +8 -2
  298. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  299. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  300. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  301. package/lib/server/devices/nameAmountValuePair.js +10 -0
  302. package/lib/server/devices/scene/room-scene.d.ts +23 -6
  303. package/lib/server/devices/scene/room-scene.js +18 -4
  304. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  305. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  306. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  307. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  308. package/lib/server/devices/shelly/shellyTrv.d.ts +37 -17
  309. package/lib/server/devices/shelly/shellyTrv.js +66 -45
  310. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  311. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  312. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  313. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  314. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  315. package/lib/server/devices/tv/samsungTv.js +1 -0
  316. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  317. package/lib/server/devices/tv/tvDevice.js +4 -3
  318. package/lib/server/devices/wledDevice.d.ts +15 -3
  319. package/lib/server/devices/wledDevice.js +42 -16
  320. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  321. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  322. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  323. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  324. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  325. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +15 -22
  326. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  327. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +27 -62
  328. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -13
  329. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
  330. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  331. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  332. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +9 -8
  333. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +16 -13
  334. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
  335. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
  336. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -14
  337. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
  338. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -3
  339. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
  340. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  341. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  342. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  343. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  344. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  345. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  346. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  347. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  348. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +58 -11
  349. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
  350. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -8
  351. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
  352. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  353. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  354. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  355. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  356. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +34 -7
  357. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
  358. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  359. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  360. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  361. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  362. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  363. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  364. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  365. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  366. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  367. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  368. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  369. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  370. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  371. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  372. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  373. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  374. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  375. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  376. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  377. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  378. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  379. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  380. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  381. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  382. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -8
  383. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
  384. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  385. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  386. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  387. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  388. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  389. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  390. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  391. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  392. package/lib/server/ioBroker/connection.d.ts +21 -20
  393. package/lib/server/ioBroker/connection.js +37 -28
  394. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  395. package/lib/server/ioBroker/ioBroker.main.js +4 -3
  396. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  397. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  398. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  399. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  400. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  401. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  402. package/lib/server/services/ShutterService.js +6 -6
  403. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  404. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  405. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  406. package/lib/server/services/Sonos/mp3-server.js +3 -1
  407. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  408. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  409. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  410. package/lib/server/services/Sonos/polly-service.js +10 -8
  411. package/lib/server/services/Sonos/sonos-service.d.ts +0 -5
  412. package/lib/server/services/Sonos/sonos-service.js +6 -10
  413. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  414. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  415. package/lib/server/services/Telegram/telegram-service.js +8 -3
  416. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  417. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  418. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  419. package/lib/server/services/Translation/index.d.ts +1 -0
  420. package/lib/server/services/Translation/res.d.ts +34 -19
  421. package/lib/server/services/Translation/res.js +34 -19
  422. package/lib/server/services/ac/ac-device.d.ts +48 -6
  423. package/lib/server/services/ac/ac-device.js +91 -36
  424. package/lib/server/services/ac/daikin-service.js +4 -3
  425. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  426. package/lib/server/services/ac/own-ac-devices.js +3 -0
  427. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  428. package/lib/server/services/ac/own-daikin-device.js +40 -7
  429. package/lib/server/services/api/api-service.d.ts +118 -53
  430. package/lib/server/services/api/api-service.js +170 -80
  431. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  432. package/lib/server/services/blockAutomaticHandler.js +34 -15
  433. package/lib/server/services/calendar/index.d.ts +1 -0
  434. package/lib/server/services/calendar/index.js +3 -0
  435. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  436. package/lib/server/services/calendar/muell-tonne.js +10 -0
  437. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  438. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  439. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  440. package/lib/server/services/calendar/name-date-pair.js +10 -0
  441. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  442. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  443. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  444. package/lib/server/services/file-info.d.ts +5 -0
  445. package/lib/server/services/file-info.js +10 -0
  446. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  447. package/lib/server/services/govee/govee-device-data.js +2 -0
  448. package/lib/server/services/govee/govee-service.d.ts +7 -9
  449. package/lib/server/services/govee/govee-service.js +73 -48
  450. package/lib/server/services/govee/own-govee-device.d.ts +19 -17
  451. package/lib/server/services/govee/own-govee-device.js +57 -56
  452. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  453. package/lib/server/services/govee/own-govee-devices.js +3 -0
  454. package/lib/server/services/https-service.d.ts +3 -2
  455. package/lib/server/services/https-service.js +4 -3
  456. package/lib/server/services/index.d.ts +1 -0
  457. package/lib/server/services/index.js +3 -0
  458. package/lib/server/services/log-service/index.d.ts +1 -0
  459. package/lib/server/services/log-service/index.js +3 -0
  460. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  461. package/lib/server/services/log-service/log-debug-type.js +17 -0
  462. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  463. package/lib/server/services/log-service/log-filter-data.js +6 -15
  464. package/lib/server/services/log-service/log-service.d.ts +17 -4
  465. package/lib/server/services/log-service/log-service.js +30 -17
  466. package/lib/server/services/news-service.d.ts +9 -7
  467. package/lib/server/services/news-service.js +14 -15
  468. package/lib/server/services/room-service/room-service.d.ts +20 -4
  469. package/lib/server/services/room-service/room-service.js +26 -10
  470. package/lib/server/services/settings-service.d.ts +6 -2
  471. package/lib/server/services/settings-service.js +3 -2
  472. package/lib/server/services/time-callback-service.js +1 -1
  473. package/lib/server/services/utils/RGB.d.ts +6 -0
  474. package/lib/server/services/utils/RGB.js +11 -0
  475. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  476. package/lib/server/services/utils/catchEmResult.js +10 -0
  477. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  478. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  479. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  480. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  481. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  482. package/lib/server/services/utils/index.d.ts +4 -1
  483. package/lib/server/services/utils/index.js +8 -1
  484. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  485. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  486. package/lib/server/services/utils/utils.d.ts +9 -13
  487. package/lib/server/services/victron/victron-device.d.ts +27 -10
  488. package/lib/server/services/victron/victron-device.js +92 -25
  489. package/lib/server/services/weather/index.d.ts +2 -0
  490. package/lib/server/services/weather/index.js +3 -0
  491. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  492. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  493. package/lib/server/services/weather/weather-current.d.ts +0 -2
  494. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  495. package/lib/server/services/weather/weather-response.d.ts +16 -0
  496. package/lib/server/services/weather/weather-response.js +2 -0
  497. package/lib/server/services/weather/weather-service.d.ts +15 -18
  498. package/lib/server/services/weather/weather-service.js +32 -22
  499. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  500. package/lib/tsconfig.tsbuildinfo +1 -1
  501. package/package.json +6 -8
  502. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  503. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  504. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  505. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  506. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  507. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -1,14 +1,17 @@
1
1
  /// <reference types="node" />
2
2
  import { iPersist } from '../dbo';
3
+ import { CatchEmResult } from './catchEmResult';
4
+ import { iTimePair } from '../../config';
5
+ import { RGB } from './RGB';
3
6
  export declare const DAYMS: number;
4
7
  export declare class Utils {
8
+ /**
9
+ * The persitence layer object
10
+ */
5
11
  static dbo: iPersist | undefined;
6
12
  static get anyDboActive(): boolean;
7
13
  static get timeTilMidnight(): number;
8
- static catchEm<T>(promise: Promise<T>): Promise<{
9
- reason: Error | null;
10
- data: T | null;
11
- }>;
14
+ static catchEm<T>(promise: Promise<T>): Promise<CatchEmResult<T>>;
12
15
  static guardedFunction(func: (...args: unknown[]) => void, thisContext: unknown | undefined): void;
13
16
  static nowMS(): number;
14
17
  static delay(ms: number): Promise<void>;
@@ -23,10 +26,7 @@ export declare class Utils {
23
26
  static round(number: number, digits: number): number;
24
27
  static roundDot5(number: number): number;
25
28
  static beetweenDays(date: Date, startDay: number, endDay: number): boolean;
26
- static nowTime(): {
27
- hours: number;
28
- minutes: number;
29
- };
29
+ static nowTime(): iTimePair;
30
30
  static dateByTimeSpan(hours: number, minutes: number, now?: Date): Date;
31
31
  static positiveMod(number: number, mod: number): number;
32
32
  static degreeInBetween(minDegree: number, maxDegree: number, degreeToCheck: number): boolean;
@@ -34,9 +34,5 @@ export declare class Utils {
34
34
  static nextMatchingDate(hours?: number, minutes?: number, now?: Date): Date;
35
35
  static timeWithinBorders(minimumHours: number, minimumMinutes: number, maxHours: number, maxMinutes: number, now?: Date): boolean;
36
36
  static formatHex(hex: string): string | null;
37
- static hexToRgb(color: string): {
38
- r: number;
39
- g: number;
40
- b: number;
41
- } | null;
37
+ static hexToRgb(color: string): RGB | null;
42
38
  }
@@ -1,13 +1,16 @@
1
- import { DeviceInfo, DeviceType, iEnergyManager, iExcessEnergyConsumer } from '../../devices';
2
- import { LogLevel, VictronDeviceSettings } from '../../../models';
3
- import { DeviceCapability } from '../../devices/DeviceCapability';
1
+ import { DeviceCapability, DeviceInfo, DeviceType, iBatteryDevice, iEnergyManager, iExcessEnergyConsumer } from '../../devices';
2
+ import { BatteryLevelChangeAction, LogLevel, VictronDeviceSettings } from '../../../models';
4
3
  import { LogDebugType } from '../log-service';
5
4
  import { VictronDeviceData, VictronMqttConnectionOptions, VictronMqttConsumer } from 'victron-mqtt-consumer';
6
- export declare class VictronDevice implements iEnergyManager {
7
- private readonly _victronConsumer;
5
+ export declare class VictronDevice implements iEnergyManager, iBatteryDevice {
6
+ /** @inheritDoc */
8
7
  readonly deviceCapabilities: DeviceCapability[];
8
+ /** @inheritDoc */
9
9
  deviceType: DeviceType;
10
+ /** @inheritDoc */
10
11
  readonly settings: VictronDeviceSettings;
12
+ protected _info: DeviceInfo;
13
+ private readonly _victronConsumer;
11
14
  private _excessEnergyConsumer;
12
15
  private blockDeviceChangeTime;
13
16
  private _lastDeviceChange;
@@ -15,30 +18,43 @@ export declare class VictronDevice implements iEnergyManager {
15
18
  private _iDatabaseLoggerInterval;
16
19
  private _lastPersistenceCalculation;
17
20
  private _nextPersistEntry;
21
+ private _lastBatteryPersist;
22
+ private _lastBatteryLevel;
23
+ private _batteryLevelCallbacks;
24
+ private _excessEnergy;
18
25
  constructor(opts: VictronMqttConnectionOptions);
19
- protected _info: DeviceInfo;
26
+ /** @inheritDoc */
27
+ get acBlocked(): boolean;
28
+ /** @inheritDoc */
29
+ get lastBatteryPersist(): number;
20
30
  get info(): DeviceInfo;
31
+ /** @inheritDoc */
32
+ get battery(): number;
21
33
  get victronConsumer(): VictronMqttConsumer;
22
34
  get data(): VictronDeviceData;
23
- private _excessEnergy;
24
35
  get excessEnergy(): number;
25
36
  get name(): string;
26
37
  get customName(): string;
27
38
  get id(): string;
28
- addExcessConsumer(device: iExcessEnergyConsumer): void;
29
39
  get injectingWattage(): number;
30
40
  get drawingWattage(): number;
31
41
  get selfConsumingWattage(): number;
32
- cleanup(): void;
42
+ /** @inheritDoc */
43
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
44
+ addExcessConsumer(device: iExcessEnergyConsumer): void;
45
+ /** @inheritDoc */
46
+ dispose(): void;
33
47
  getReport(): string;
34
48
  recalculatePowerSharing(): void;
35
49
  loadDeviceSettings(): void;
36
50
  log(level: LogLevel, message: string, debugType?: LogDebugType): void;
37
51
  persistDeviceInfo(): void;
52
+ /** @inheritDoc */
53
+ persistBatteryDevice(): void;
38
54
  toJSON(): Partial<VictronDevice>;
39
55
  /**
40
56
  * Changes the grid set point of the Victron device, to the desired value.
41
- * @param {number} setPoint
57
+ * @param setPoint - The desired watt point the system should aim for.
42
58
  */
43
59
  setGridSetPoint(setPoint: number): void;
44
60
  private calculateExcessEnergy;
@@ -46,4 +62,5 @@ export declare class VictronDevice implements iEnergyManager {
46
62
  private turnOffAdditionalConsumer;
47
63
  private persist;
48
64
  private calculatePersistenceValues;
65
+ private checkForBatteryChange;
49
66
  }
@@ -4,31 +4,40 @@ exports.VictronDevice = void 0;
4
4
  const devices_1 = require("../../devices");
5
5
  const utils_1 = require("../utils");
6
6
  const models_1 = require("../../../models");
7
- const DeviceCapability_1 = require("../../devices/DeviceCapability");
8
7
  const log_service_1 = require("../log-service");
9
8
  const victron_mqtt_consumer_1 = require("victron-mqtt-consumer");
10
9
  const time_callback_service_1 = require("../time-callback-service");
10
+ const lodash_1 = require("lodash");
11
11
  class VictronDevice {
12
12
  constructor(opts) {
13
- this.deviceCapabilities = [DeviceCapability_1.DeviceCapability.energyManager];
13
+ /** @inheritDoc */
14
+ this.deviceCapabilities = [
15
+ devices_1.DeviceCapability.energyManager,
16
+ devices_1.DeviceCapability.batteryDriven,
17
+ ];
18
+ /** @inheritDoc */
14
19
  this.deviceType = devices_1.DeviceType.Victron;
15
20
  this._excessEnergyConsumer = [];
16
21
  this.blockDeviceChangeTime = -1;
17
22
  this._iCalculationInterval = null;
18
23
  this._iDatabaseLoggerInterval = null;
19
24
  this._lastPersistenceCalculation = utils_1.Utils.nowMS();
25
+ this._lastBatteryPersist = 0;
26
+ this._lastBatteryLevel = -1;
27
+ this._batteryLevelCallbacks = [];
20
28
  this._excessEnergy = 0;
21
29
  this.settings = new models_1.VictronDeviceSettings();
22
30
  this._info = new devices_1.DeviceInfo();
23
- this._info.fullName = `Victron Device`;
24
- this._info.customName = `Victron`;
25
- this._info.allDevicesKey = `victron`;
26
- devices_1.Devices.alLDevices[`victron`] = this;
31
+ this._info.fullName = 'Victron Device';
32
+ this._info.customName = 'Victron';
33
+ this._info.allDevicesKey = 'victron';
34
+ devices_1.Devices.alLDevices['victron'] = this;
27
35
  devices_1.Devices.energymanager = this;
28
36
  this.persistDeviceInfo();
29
37
  this.loadDeviceSettings();
30
38
  this._victronConsumer = new victron_mqtt_consumer_1.VictronMqttConsumer(opts);
31
39
  this._iCalculationInterval = utils_1.Utils.guardedInterval(() => {
40
+ this.checkForBatteryChange();
32
41
  this.calculateExcessEnergy();
33
42
  }, 5 * 1000, this);
34
43
  this._iDatabaseLoggerInterval = utils_1.Utils.guardedInterval(() => {
@@ -36,9 +45,36 @@ class VictronDevice {
36
45
  }, 15 * 60 * 1000, this);
37
46
  this._nextPersistEntry = new models_1.EnergyCalculation(utils_1.Utils.nowMS());
38
47
  }
48
+ /** @inheritDoc */
49
+ get acBlocked() {
50
+ if (this.settings.hasBattery) {
51
+ const hours = new Date().getHours();
52
+ if (hours < 6 || hours > 18) {
53
+ return this.battery < 70;
54
+ }
55
+ if (hours < 10 || hours > 16) {
56
+ return this.battery < 60;
57
+ }
58
+ return this.battery < 50;
59
+ }
60
+ return false;
61
+ }
62
+ /** @inheritDoc */
63
+ get lastBatteryPersist() {
64
+ return this._lastBatteryPersist;
65
+ }
39
66
  get info() {
40
67
  return this._info;
41
68
  }
69
+ /** @inheritDoc */
70
+ get battery() {
71
+ const level = this.data.battery.soc;
72
+ if (level == null) {
73
+ this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
74
+ return -1;
75
+ }
76
+ return level;
77
+ }
42
78
  get victronConsumer() {
43
79
  return this._victronConsumer;
44
80
  }
@@ -58,9 +94,6 @@ class VictronDevice {
58
94
  var _a;
59
95
  return (_a = this.info.allDevicesKey) !== null && _a !== void 0 ? _a : `victron-${this.info.room}-${this.info.customName}`;
60
96
  }
61
- addExcessConsumer(device) {
62
- this._excessEnergyConsumer.push(device);
63
- }
64
97
  get injectingWattage() {
65
98
  var _a;
66
99
  return Math.min((_a = this.victronConsumer.data.grid.power) !== null && _a !== void 0 ? _a : 0, 0) * -1;
@@ -73,7 +106,15 @@ class VictronDevice {
73
106
  var _a;
74
107
  return Math.max((_a = this.victronConsumer.data.system.power) !== null && _a !== void 0 ? _a : 0, 0) - this.drawingWattage;
75
108
  }
76
- cleanup() {
109
+ /** @inheritDoc */
110
+ addBatteryLevelCallback(pCallback) {
111
+ this._batteryLevelCallbacks.push(pCallback);
112
+ }
113
+ addExcessConsumer(device) {
114
+ this._excessEnergyConsumer.push(device);
115
+ }
116
+ /** @inheritDoc */
117
+ dispose() {
77
118
  this._victronConsumer.disconnect();
78
119
  if (this._iDatabaseLoggerInterval !== null) {
79
120
  clearInterval(this._iDatabaseLoggerInterval);
@@ -117,12 +158,29 @@ class VictronDevice {
117
158
  (_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.addDevice(this);
118
159
  }, 5000, this);
119
160
  }
161
+ /** @inheritDoc */
162
+ persistBatteryDevice() {
163
+ var _a;
164
+ const now = utils_1.Utils.nowMS();
165
+ if (this._lastBatteryPersist + 60000 > now) {
166
+ return;
167
+ }
168
+ (_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
169
+ this._lastBatteryPersist = now;
170
+ }
120
171
  toJSON() {
121
- return utils_1.Utils.jsonFilter(this, ['_victronConsumer']);
172
+ return (0, lodash_1.extend)(utils_1.Utils.jsonFilter(this, ['_victronConsumer', '_excessEnergyConsumer']), {
173
+ battery: this.battery,
174
+ acBlocked: this.acBlocked,
175
+ excessEnergy: this.excessEnergy,
176
+ drawingWattage: this.drawingWattage,
177
+ injectingWattage: this.injectingWattage,
178
+ selfConsumingWattage: this.selfConsumingWattage,
179
+ });
122
180
  }
123
181
  /**
124
182
  * Changes the grid set point of the Victron device, to the desired value.
125
- * @param {number} setPoint
183
+ * @param setPoint - The desired watt point the system should aim for.
126
184
  */
127
185
  setGridSetPoint(setPoint) {
128
186
  this._victronConsumer.setGridSetPoint(setPoint);
@@ -131,7 +189,7 @@ class VictronDevice {
131
189
  var _a;
132
190
  this._excessEnergy = 0;
133
191
  if (this.data == undefined) {
134
- this.log(models_1.LogLevel.Debug, `No data available from Victron device.`);
192
+ this.log(models_1.LogLevel.Debug, 'No data available from Victron device.');
135
193
  return;
136
194
  }
137
195
  // Step 1: Calculate battery need
@@ -139,11 +197,11 @@ class VictronDevice {
139
197
  let neededBatteryWattage = 0;
140
198
  const timeOfDay = time_callback_service_1.TimeCallbackService.dayType(new time_callback_service_1.SunTimeOffsets());
141
199
  if (this.settings.hasBattery && timeOfDay !== models_1.TimeOfDay.AfterSunset && timeOfDay !== models_1.TimeOfDay.Night) {
142
- if (this.data.battery.soc == null) {
143
- this.log(models_1.LogLevel.Debug, `No battery data available from Victron device.`);
200
+ if (this.battery < 0) {
201
+ this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
144
202
  return;
145
203
  }
146
- neededBatteryWattage = ((1 - this.data.battery.soc) * this.settings.batteryCapacityWattage) / hoursTilSunset;
204
+ neededBatteryWattage = ((1 - this.battery / 100.0) * this.settings.batteryCapacityWattage) / hoursTilSunset;
147
205
  // Step 2: Calculate expected solar output
148
206
  const solarOutput = (_a = this.data.pvInverter.power) !== null && _a !== void 0 ? _a : 0;
149
207
  // Step 3: Calculate expected base consumption
@@ -152,22 +210,22 @@ class VictronDevice {
152
210
  this._excessEnergy = solarOutput - neededBatteryWattage - baseConsumption;
153
211
  }
154
212
  let isSocTooLow = false;
155
- if (this.data.battery.dcPower !== null && this.data.battery.soc !== null) {
213
+ if (this.data.battery.dcPower !== null && this.battery > -1) {
156
214
  if (timeOfDay === models_1.TimeOfDay.Night) {
157
- isSocTooLow = this.data.battery.soc < 0.5;
215
+ isSocTooLow = this.battery < 50;
158
216
  }
159
217
  else if (timeOfDay === models_1.TimeOfDay.AfterSunset) {
160
- isSocTooLow = this.data.battery.soc < 0.75;
218
+ isSocTooLow = this.battery < 75;
161
219
  }
162
220
  else if (hoursTilSunset > 4) {
163
- isSocTooLow = this.data.battery.soc < 0.7;
221
+ isSocTooLow = this.battery < 70;
164
222
  }
165
223
  else {
166
- isSocTooLow = this.data.battery.soc < 0.8;
224
+ isSocTooLow = this.battery < 80;
167
225
  }
168
226
  }
169
227
  // Whilst calculated spare energy is more precise, we don't mind using the battery as a buffer, if it is full enough.
170
- if (this.data.battery.dcPower !== null && this.data.battery.soc !== null && !isSocTooLow) {
228
+ if (this.data.battery.dcPower !== null && this.battery > -1 && !isSocTooLow) {
171
229
  this._excessEnergy = this.settings.maximumBatteryDischargeWattage - Math.max(this.data.battery.dcPower, 0);
172
230
  }
173
231
  this.calculatePersistenceValues();
@@ -193,14 +251,13 @@ class VictronDevice {
193
251
  }
194
252
  if (!result.newState) {
195
253
  this.blockDeviceChangeTime = utils_1.Utils.nowMS() + result.device.energySettings.powerReactionTime;
196
- result.device.log(models_1.LogLevel.Info, `Turning off, as we don't have energy to spare...`);
254
+ result.device.log(models_1.LogLevel.Info, "Turning off, as we don't have energy to spare...");
197
255
  result.device.turnOffDueToMissingEnergy();
198
256
  this._lastDeviceChange = result;
199
257
  }
200
258
  }
201
259
  persist() {
202
- var _a;
203
- this._nextPersistEntry.batteryLevel = ((_a = this.data.battery.soc) !== null && _a !== void 0 ? _a : 0) / 100;
260
+ this._nextPersistEntry.batteryLevel = this.battery / 100;
204
261
  this._nextPersistEntry.batteryStoredKwH =
205
262
  (this._nextPersistEntry.batteryLevel * this.settings.batteryCapacityWattage) / 1000;
206
263
  const obj = JSON.parse(JSON.stringify(this._nextPersistEntry));
@@ -217,5 +274,15 @@ class VictronDevice {
217
274
  this._nextPersistEntry.selfConsumedKwH += utils_1.Utils.kWh(this.selfConsumingWattage, duration);
218
275
  this._lastPersistenceCalculation = now;
219
276
  }
277
+ checkForBatteryChange() {
278
+ const newLevel = this.battery;
279
+ if (newLevel == this._lastBatteryLevel) {
280
+ return;
281
+ }
282
+ for (const cb of this._batteryLevelCallbacks) {
283
+ cb(new models_1.BatteryLevelChangeAction(this));
284
+ }
285
+ this._lastBatteryLevel = newLevel;
286
+ }
220
287
  }
221
288
  exports.VictronDevice = VictronDevice;
@@ -7,3 +7,5 @@ export * from './weather-item';
7
7
  export * from './weather-minutes';
8
8
  export * from './weather-service';
9
9
  export * from './weather-temp';
10
+ export { WeatherResponse } from './weather-response';
11
+ export { RainNextMinutesInfo } from './rain-next-minutes-info';
@@ -14,6 +14,7 @@ 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.RainNextMinutesInfo = void 0;
17
18
  __exportStar(require("./weather-alert"), exports);
18
19
  __exportStar(require("./weather-current"), exports);
19
20
  __exportStar(require("./weather-daily"), exports);
@@ -23,3 +24,5 @@ __exportStar(require("./weather-item"), exports);
23
24
  __exportStar(require("./weather-minutes"), exports);
24
25
  __exportStar(require("./weather-service"), exports);
25
26
  __exportStar(require("./weather-temp"), exports);
27
+ var rain_next_minutes_info_1 = require("./rain-next-minutes-info");
28
+ Object.defineProperty(exports, "RainNextMinutesInfo", { enumerable: true, get: function () { return rain_next_minutes_info_1.RainNextMinutesInfo; } });
@@ -0,0 +1,5 @@
1
+ export declare class RainNextMinutesInfo {
2
+ minutes: number;
3
+ precipitation: number;
4
+ constructor(minutes: number, precipitation: number);
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RainNextMinutesInfo = void 0;
4
+ class RainNextMinutesInfo {
5
+ constructor(minutes, precipitation) {
6
+ this.minutes = minutes;
7
+ this.precipitation = precipitation;
8
+ }
9
+ }
10
+ exports.RainNextMinutesInfo = RainNextMinutesInfo;
@@ -2,8 +2,6 @@ import { WeatherItem } from './weather-item';
2
2
  export interface WeatherCurrent {
3
3
  /**
4
4
  * Zeit der Anfrage
5
- * @type {number}
6
- * @memberof WeatherCurrent
7
5
  */
8
6
  dt: number;
9
7
  sunrise: number;
@@ -1,6 +1,21 @@
1
+ /**
2
+ * Temperature data how its recognized by a human for the different times of the day.
3
+ */
1
4
  export interface WeatherFeelsLike {
5
+ /**
6
+ * Day temperature in Celsius
7
+ */
2
8
  day: number;
9
+ /**
10
+ * Night temperature in Celsius
11
+ */
3
12
  night: number;
13
+ /**
14
+ * Evening temperature in Celsius
15
+ */
4
16
  eve: number;
17
+ /**
18
+ * Morning temperature in Celsius
19
+ */
5
20
  morn: number;
6
21
  }
@@ -0,0 +1,16 @@
1
+ import { WeatherCurrent } from './weather-current';
2
+ import { WeatherMinutes } from './weather-minutes';
3
+ import { WeatherHourly } from './weather-hourly';
4
+ import { WeatherDaily } from './weather-daily';
5
+ import { WeatherAlert } from './weather-alert';
6
+ export interface WeatherResponse {
7
+ lat: number;
8
+ lon: number;
9
+ timezone: string;
10
+ timezone_offset: number;
11
+ current: WeatherCurrent;
12
+ minutely: WeatherMinutes[];
13
+ hourly: WeatherHourly[];
14
+ daily: WeatherDaily[];
15
+ alerts?: WeatherAlert[];
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,30 +1,23 @@
1
- import { WeatherHourly } from './weather-hourly';
2
- import { WeatherCurrent } from './weather-current';
3
- import { WeatherMinutes } from './weather-minutes';
4
- import { WeatherAlert } from './weather-alert';
5
1
  import { iWeatherSettings } from '../../config';
6
2
  import { LogLevel, ShutterSettings } from '../../../models';
7
3
  import { LogDebugType } from '../log-service';
8
- import { WeatherDaily } from './weather-daily';
9
4
  import { iSpeaker } from '../../devices';
10
- export interface WeatherResponse {
11
- lat: number;
12
- lon: number;
13
- timezone: string;
14
- timezone_offset: number;
15
- current: WeatherCurrent;
16
- minutely: WeatherMinutes[];
17
- hourly: WeatherHourly[];
18
- daily: WeatherDaily[];
19
- alerts?: WeatherAlert[];
20
- }
5
+ import { WeatherResponse } from './weather-response';
21
6
  export declare class WeatherService {
7
+ /**
8
+ * Whether the service is active or not
9
+ */
22
10
  static active: boolean;
23
- static oneDay: number;
11
+ /**
12
+ * The milliseconds of one day
13
+ */
14
+ static readonly oneDay: number;
15
+ /**
16
+ * The last weather response
17
+ */
24
18
  static lastResponse: WeatherResponse;
25
19
  /**
26
20
  * The sun horizontal degree (0 is North)
27
- * @type {number}
28
21
  */
29
22
  static sunDirection: number;
30
23
  private static _dataUpdateCbs;
@@ -46,5 +39,9 @@ export declare class WeatherService {
46
39
  private static getActiveAlerts;
47
40
  private static getWeatherData;
48
41
  private static recalcAzimuth;
42
+ /**
43
+ * Method to calculate the hours until sunset based on the current location
44
+ * @returns - The hours until sunset
45
+ */
49
46
  private static hoursTilSunset;
50
47
  }
@@ -36,17 +36,17 @@ class WeatherService {
36
36
  const wData = WeatherService.lastResponse;
37
37
  if (wData === undefined) {
38
38
  if (retries > 0) {
39
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, `WeatherService.playWeatherInfo(): Der Wetterbericht ist noch nicht bereit --> warten`);
39
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, 'WeatherService.playWeatherInfo(): Der Wetterbericht ist noch nicht bereit --> warten');
40
40
  setTimeout(() => {
41
41
  WeatherService.playWeatherInfo(speaker, volume, short, retries - 1);
42
42
  }, 1000);
43
43
  }
44
44
  else {
45
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Error, `WeatherService.playWeatherInfo(): Der Wetterbericht ist vorhanden --> Abbruch`);
45
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Error, 'WeatherService.playWeatherInfo(): Der Wetterbericht ist vorhanden --> Abbruch');
46
46
  }
47
47
  return;
48
48
  }
49
- speaker.speakOnDevice(short ? `Kurze Wetterinfo:` : `HoffMation Wetter-Bericht:`, volume, false);
49
+ speaker.speakOnDevice(short ? 'Kurze Wetterinfo:' : 'HoffMation Wetter-Bericht:', volume, false);
50
50
  speaker.speakOnDevice(`Wetterbeschreibung für heute: ${wData.daily[0].weather[0].description}`, volume, false);
51
51
  speaker.speakOnDevice(`Aktuell sind es ${Math.round(wData.current.temp)} Grad.`, volume, false);
52
52
  if (!short) {
@@ -62,25 +62,25 @@ class WeatherService {
62
62
  }
63
63
  const { minutes, precipitation } = WeatherService.getRainNextMinutes();
64
64
  const ratio = minutes <= 0 ? 0 : (precipitation / minutes) * 60;
65
- let message = `In der nächsten Zeit `;
65
+ let message = 'In der nächsten Zeit ';
66
66
  switch (true) {
67
67
  case ratio > 12:
68
- message += `wird es kräftig regnen`;
68
+ message += 'wird es kräftig regnen';
69
69
  break;
70
70
  case ratio > 4:
71
- message += `wird es ordentlich regnen`;
71
+ message += 'wird es ordentlich regnen';
72
72
  break;
73
73
  case ratio > 1:
74
- message += `wird es regnen`;
74
+ message += 'wird es regnen';
75
75
  break;
76
76
  case ratio > 0.5:
77
- message += `wird es mäßig regnen`;
77
+ message += 'wird es mäßig regnen';
78
78
  break;
79
79
  case ratio > 0.1:
80
- message += `wird es nieseln regnen`;
80
+ message += 'wird es nieseln regnen';
81
81
  break;
82
82
  default:
83
- message += `bleibt es trocken.`;
83
+ message += 'bleibt es trocken.';
84
84
  break;
85
85
  }
86
86
  speaker.speakOnDevice(message, volume, false);
@@ -89,7 +89,7 @@ class WeatherService {
89
89
  speaker.speakOnDevice(`Es werden etwa ${precipitation} Millimeter Niederschlag in den nächsten ${minutes} Minuten fallen`, volume, false);
90
90
  const alerts = WeatherService.getActiveAlerts();
91
91
  if (alerts.length > 0) {
92
- const alertMessage = [`Achtung, vorliegende Wetterwarnungen:`];
92
+ const alertMessage = ['Achtung, vorliegende Wetterwarnungen:'];
93
93
  alerts.forEach((element) => {
94
94
  alertMessage.push(`${element.event} von ${new Date(element.start * 1000).toLocaleString('de-DE')} bis ${new Date(element.end * 1000).toLocaleString('de-DE')}`);
95
95
  // } bis ${new Date(element.end * 1000).toLocaleString("de-DE")}; Beschreibung: ${element.description} Herausgeber: ${element.sender_name}`)
@@ -97,13 +97,13 @@ class WeatherService {
97
97
  speaker.speakOnDevice(alertMessage.join('\n'), volume, false);
98
98
  }
99
99
  else if (!short) {
100
- speaker.speakOnDevice(`Für heute liegt keine Unwetterwarnungen vor`, volume, false);
100
+ speaker.speakOnDevice('Für heute liegt keine Unwetterwarnungen vor', volume, false);
101
101
  }
102
102
  }
103
103
  static processHourlyWeather() {
104
104
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Es sind gerade ${this.lastResponse.current.temp} Grad (gefühlt ${this.lastResponse.current.feels_like}).`);
105
105
  if (this.lastResponse.alerts !== undefined && this.lastResponse.alerts.length > 0) {
106
- const message = [`Es gibt folgende Wetterwarnungen:`];
106
+ const message = ['Es gibt folgende Wetterwarnungen:'];
107
107
  this.lastResponse.alerts.forEach((element) => {
108
108
  message.push(`${element.event} von ${new Date(element.start * 1000)} bis ${new Date(element.end * 1000)}; Beschreibung: ${element.description} Herausgeber: ${element.sender_name}`);
109
109
  });
@@ -113,7 +113,7 @@ class WeatherService {
113
113
  static getCurrentTemp() {
114
114
  const wData = WeatherService.lastResponse;
115
115
  if (wData === undefined || wData.current === undefined) {
116
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `WeatherService.isOutsideWarmer(): There are no data yet`);
116
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'WeatherService.isOutsideWarmer(): There are no data yet');
117
117
  return -99;
118
118
  }
119
119
  return wData.current.temp;
@@ -121,7 +121,7 @@ class WeatherService {
121
121
  static willOutsideBeWarmer(referenceTemperature, logger) {
122
122
  const wData = WeatherService.lastResponse;
123
123
  if (wData === undefined || wData.current === undefined) {
124
- logger(models_1.LogLevel.Info, `WeatherService.isOutsideWarmer(): There are no data yet`);
124
+ logger(models_1.LogLevel.Info, 'WeatherService.isOutsideWarmer(): There are no data yet');
125
125
  return false;
126
126
  }
127
127
  logger(models_1.LogLevel.Info, `willOutsideBeWarmer(${referenceTemperature}) --> Today Max Temperature: ${wData.daily[0].temp.max}`);
@@ -130,24 +130,24 @@ class WeatherService {
130
130
  static weatherRolloPosition(normalPos, desiredTemperatur, currentTemperatur, logger, shutterSettings) {
131
131
  let result = normalPos;
132
132
  if (currentTemperatur < desiredTemperatur) {
133
- logger(models_1.LogLevel.Trace, `RolloWeatherPosition: Room needs to heat up anyways.`);
133
+ logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Room needs to heat up anyways.');
134
134
  return result;
135
135
  }
136
136
  else if (normalPos < 30) {
137
- logger(models_1.LogLevel.Trace, `RolloWeatherPosition: Shutter should be down anyways.`);
137
+ logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Shutter should be down anyways.');
138
138
  return result;
139
139
  }
140
140
  else if (this.hoursTilSunset() < 1) {
141
- logger(models_1.LogLevel.Trace, `RolloWeatherPosition: It's close to or after todays sunset`);
141
+ logger(models_1.LogLevel.Trace, "RolloWeatherPosition: It's close to or after todays sunset");
142
142
  return result;
143
143
  }
144
144
  else if (shutterSettings.direction !== undefined &&
145
145
  !utils_1.Utils.degreeInBetween(shutterSettings.direction - 50, shutterSettings.direction + 50, this.sunDirection)) {
146
- logger(models_1.LogLevel.Trace, `RolloWeatherPosition: Sun is facing a different direction`);
146
+ logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Sun is facing a different direction');
147
147
  return result;
148
148
  }
149
149
  else if (this.getCurrentCloudiness() > 40) {
150
- logger(models_1.LogLevel.Trace, `RolloWeatherPosition: It´s cloudy now.`);
150
+ logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: It´s cloudy now.');
151
151
  }
152
152
  else if (this.willOutsideBeWarmer(26, logger)) {
153
153
  result = shutterSettings.heatReductionPosition;
@@ -160,7 +160,7 @@ class WeatherService {
160
160
  static getCurrentCloudiness() {
161
161
  const wData = WeatherService.lastResponse;
162
162
  if (wData === undefined || wData.current === undefined) {
163
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `WeatherService.getCurrentCloudiness(): There are no data yet`);
163
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'WeatherService.getCurrentCloudiness(): There are no data yet');
164
164
  return 0;
165
165
  }
166
166
  return wData.current.clouds;
@@ -202,7 +202,7 @@ class WeatherService {
202
202
  return;
203
203
  }
204
204
  https_service_1.HTTPSService.request(new HTTPSOptions_1.HTTPSOptions('api.openweathermap.org', `/data/2.5/onecall?lat=${WeatherService.latitude}&lon=${WeatherService.longitude}&appid=${WeatherService.appID}&units=metric&lang=de`, {}, 'GET', 443), '', 5, (response) => {
205
- log_service_1.ServerLogService.writeLog(models_1.LogLevel.Debug, `WeatherAPi Response erhalten`);
205
+ log_service_1.ServerLogService.writeLog(models_1.LogLevel.Debug, 'WeatherAPi Response erhalten');
206
206
  log_service_1.ServerLogService.writeLog(models_1.LogLevel.DeepTrace, `WeatherAPi Response: ${response}`);
207
207
  utils_1.Utils.guardedFunction(() => {
208
208
  WeatherService.lastResponse = JSON.parse(response);
@@ -218,6 +218,10 @@ class WeatherService {
218
218
  180 +
219
219
  (180 / Math.PI) * suncalc_1.default.getPosition(new Date(), parseFloat(this.latitude), parseFloat(this.longitude)).azimuth;
220
220
  }
221
+ /**
222
+ * Method to calculate the hours until sunset based on the current location
223
+ * @returns - The hours until sunset
224
+ */
221
225
  static hoursTilSunset() {
222
226
  const now = new Date();
223
227
  const sunset = time_callback_service_1.TimeCallbackService.getSunsetForDate(now, parseFloat(this.latitude), parseFloat(this.longitude));
@@ -225,6 +229,12 @@ class WeatherService {
225
229
  }
226
230
  }
227
231
  exports.WeatherService = WeatherService;
232
+ /**
233
+ * Whether the service is active or not
234
+ */
228
235
  WeatherService.active = false;
236
+ /**
237
+ * The milliseconds of one day
238
+ */
229
239
  WeatherService.oneDay = 1000 * 60 * 60 * 24;
230
240
  WeatherService._dataUpdateCbs = {};