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

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 +94 -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,39 @@ 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");
11
10
  class VictronDevice {
12
11
  constructor(opts) {
13
- this.deviceCapabilities = [DeviceCapability_1.DeviceCapability.energyManager];
12
+ /** @inheritDoc */
13
+ this.deviceCapabilities = [
14
+ devices_1.DeviceCapability.energyManager,
15
+ devices_1.DeviceCapability.batteryDriven,
16
+ ];
17
+ /** @inheritDoc */
14
18
  this.deviceType = devices_1.DeviceType.Victron;
15
19
  this._excessEnergyConsumer = [];
16
20
  this.blockDeviceChangeTime = -1;
17
21
  this._iCalculationInterval = null;
18
22
  this._iDatabaseLoggerInterval = null;
19
23
  this._lastPersistenceCalculation = utils_1.Utils.nowMS();
24
+ this._lastBatteryPersist = 0;
25
+ this._lastBatteryLevel = -1;
26
+ this._batteryLevelCallbacks = [];
20
27
  this._excessEnergy = 0;
21
28
  this.settings = new models_1.VictronDeviceSettings();
22
29
  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;
30
+ this._info.fullName = 'Victron Device';
31
+ this._info.customName = 'Victron';
32
+ this._info.allDevicesKey = 'victron';
33
+ devices_1.Devices.alLDevices['victron'] = this;
27
34
  devices_1.Devices.energymanager = this;
28
35
  this.persistDeviceInfo();
29
36
  this.loadDeviceSettings();
30
37
  this._victronConsumer = new victron_mqtt_consumer_1.VictronMqttConsumer(opts);
31
38
  this._iCalculationInterval = utils_1.Utils.guardedInterval(() => {
39
+ this.checkForBatteryChange();
32
40
  this.calculateExcessEnergy();
33
41
  }, 5 * 1000, this);
34
42
  this._iDatabaseLoggerInterval = utils_1.Utils.guardedInterval(() => {
@@ -36,9 +44,36 @@ class VictronDevice {
36
44
  }, 15 * 60 * 1000, this);
37
45
  this._nextPersistEntry = new models_1.EnergyCalculation(utils_1.Utils.nowMS());
38
46
  }
47
+ /** @inheritDoc */
48
+ get acBlocked() {
49
+ if (this.settings.hasBattery) {
50
+ const hours = new Date().getHours();
51
+ if (hours < 6 || hours > 18) {
52
+ return this.battery < 70;
53
+ }
54
+ if (hours < 10 || hours > 16) {
55
+ return this.battery < 60;
56
+ }
57
+ return this.battery < 50;
58
+ }
59
+ return false;
60
+ }
61
+ /** @inheritDoc */
62
+ get lastBatteryPersist() {
63
+ return this._lastBatteryPersist;
64
+ }
39
65
  get info() {
40
66
  return this._info;
41
67
  }
68
+ /** @inheritDoc */
69
+ get battery() {
70
+ const level = this.data.battery.soc;
71
+ if (level == null) {
72
+ this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
73
+ return -1;
74
+ }
75
+ return level;
76
+ }
42
77
  get victronConsumer() {
43
78
  return this._victronConsumer;
44
79
  }
@@ -58,9 +93,6 @@ class VictronDevice {
58
93
  var _a;
59
94
  return (_a = this.info.allDevicesKey) !== null && _a !== void 0 ? _a : `victron-${this.info.room}-${this.info.customName}`;
60
95
  }
61
- addExcessConsumer(device) {
62
- this._excessEnergyConsumer.push(device);
63
- }
64
96
  get injectingWattage() {
65
97
  var _a;
66
98
  return Math.min((_a = this.victronConsumer.data.grid.power) !== null && _a !== void 0 ? _a : 0, 0) * -1;
@@ -73,7 +105,15 @@ class VictronDevice {
73
105
  var _a;
74
106
  return Math.max((_a = this.victronConsumer.data.system.power) !== null && _a !== void 0 ? _a : 0, 0) - this.drawingWattage;
75
107
  }
76
- cleanup() {
108
+ /** @inheritDoc */
109
+ addBatteryLevelCallback(pCallback) {
110
+ this._batteryLevelCallbacks.push(pCallback);
111
+ }
112
+ addExcessConsumer(device) {
113
+ this._excessEnergyConsumer.push(device);
114
+ }
115
+ /** @inheritDoc */
116
+ dispose() {
77
117
  this._victronConsumer.disconnect();
78
118
  if (this._iDatabaseLoggerInterval !== null) {
79
119
  clearInterval(this._iDatabaseLoggerInterval);
@@ -117,12 +157,32 @@ class VictronDevice {
117
157
  (_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.addDevice(this);
118
158
  }, 5000, this);
119
159
  }
160
+ /** @inheritDoc */
161
+ persistBatteryDevice() {
162
+ var _a;
163
+ const now = utils_1.Utils.nowMS();
164
+ if (this._lastBatteryPersist + 60000 > now) {
165
+ return;
166
+ }
167
+ (_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
168
+ this._lastBatteryPersist = now;
169
+ }
120
170
  toJSON() {
121
- return utils_1.Utils.jsonFilter(this, ['_victronConsumer']);
171
+ return {
172
+ ...{
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
+ },
180
+ ...utils_1.Utils.jsonFilter(this, ['_victronConsumer', '_excessEnergyConsumer']),
181
+ };
122
182
  }
123
183
  /**
124
184
  * Changes the grid set point of the Victron device, to the desired value.
125
- * @param {number} setPoint
185
+ * @param setPoint - The desired watt point the system should aim for.
126
186
  */
127
187
  setGridSetPoint(setPoint) {
128
188
  this._victronConsumer.setGridSetPoint(setPoint);
@@ -131,7 +191,7 @@ class VictronDevice {
131
191
  var _a;
132
192
  this._excessEnergy = 0;
133
193
  if (this.data == undefined) {
134
- this.log(models_1.LogLevel.Debug, `No data available from Victron device.`);
194
+ this.log(models_1.LogLevel.Debug, 'No data available from Victron device.');
135
195
  return;
136
196
  }
137
197
  // Step 1: Calculate battery need
@@ -139,11 +199,11 @@ class VictronDevice {
139
199
  let neededBatteryWattage = 0;
140
200
  const timeOfDay = time_callback_service_1.TimeCallbackService.dayType(new time_callback_service_1.SunTimeOffsets());
141
201
  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.`);
202
+ if (this.battery < 0) {
203
+ this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
144
204
  return;
145
205
  }
146
- neededBatteryWattage = ((1 - this.data.battery.soc) * this.settings.batteryCapacityWattage) / hoursTilSunset;
206
+ neededBatteryWattage = ((1 - this.battery / 100.0) * this.settings.batteryCapacityWattage) / hoursTilSunset;
147
207
  // Step 2: Calculate expected solar output
148
208
  const solarOutput = (_a = this.data.pvInverter.power) !== null && _a !== void 0 ? _a : 0;
149
209
  // Step 3: Calculate expected base consumption
@@ -152,22 +212,22 @@ class VictronDevice {
152
212
  this._excessEnergy = solarOutput - neededBatteryWattage - baseConsumption;
153
213
  }
154
214
  let isSocTooLow = false;
155
- if (this.data.battery.dcPower !== null && this.data.battery.soc !== null) {
215
+ if (this.data.battery.dcPower !== null && this.battery > -1) {
156
216
  if (timeOfDay === models_1.TimeOfDay.Night) {
157
- isSocTooLow = this.data.battery.soc < 0.5;
217
+ isSocTooLow = this.battery < 50;
158
218
  }
159
219
  else if (timeOfDay === models_1.TimeOfDay.AfterSunset) {
160
- isSocTooLow = this.data.battery.soc < 0.75;
220
+ isSocTooLow = this.battery < 75;
161
221
  }
162
222
  else if (hoursTilSunset > 4) {
163
- isSocTooLow = this.data.battery.soc < 0.7;
223
+ isSocTooLow = this.battery < 70;
164
224
  }
165
225
  else {
166
- isSocTooLow = this.data.battery.soc < 0.8;
226
+ isSocTooLow = this.battery < 80;
167
227
  }
168
228
  }
169
229
  // 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) {
230
+ if (this.data.battery.dcPower !== null && this.battery > -1 && !isSocTooLow) {
171
231
  this._excessEnergy = this.settings.maximumBatteryDischargeWattage - Math.max(this.data.battery.dcPower, 0);
172
232
  }
173
233
  this.calculatePersistenceValues();
@@ -193,14 +253,13 @@ class VictronDevice {
193
253
  }
194
254
  if (!result.newState) {
195
255
  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...`);
256
+ result.device.log(models_1.LogLevel.Info, "Turning off, as we don't have energy to spare...");
197
257
  result.device.turnOffDueToMissingEnergy();
198
258
  this._lastDeviceChange = result;
199
259
  }
200
260
  }
201
261
  persist() {
202
- var _a;
203
- this._nextPersistEntry.batteryLevel = ((_a = this.data.battery.soc) !== null && _a !== void 0 ? _a : 0) / 100;
262
+ this._nextPersistEntry.batteryLevel = this.battery / 100;
204
263
  this._nextPersistEntry.batteryStoredKwH =
205
264
  (this._nextPersistEntry.batteryLevel * this.settings.batteryCapacityWattage) / 1000;
206
265
  const obj = JSON.parse(JSON.stringify(this._nextPersistEntry));
@@ -217,5 +276,15 @@ class VictronDevice {
217
276
  this._nextPersistEntry.selfConsumedKwH += utils_1.Utils.kWh(this.selfConsumingWattage, duration);
218
277
  this._lastPersistenceCalculation = now;
219
278
  }
279
+ checkForBatteryChange() {
280
+ const newLevel = this.battery;
281
+ if (newLevel == this._lastBatteryLevel) {
282
+ return;
283
+ }
284
+ for (const cb of this._batteryLevelCallbacks) {
285
+ cb(new models_1.BatteryLevelChangeAction(this));
286
+ }
287
+ this._lastBatteryLevel = newLevel;
288
+ }
220
289
  }
221
290
  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 = {};