hoffmation-base 3.0.0-alpha.3 → 3.0.0-alpha.31

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 (491) hide show
  1. package/lib/index.d.ts +5 -1
  2. package/lib/index.js +20 -20
  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/humiditySensorChangeAction.d.ts +16 -0
  8. package/lib/models/action/humiditySensorChangeAction.js +15 -0
  9. package/lib/models/action/index.d.ts +1 -0
  10. package/lib/models/action/index.js +5 -0
  11. package/lib/models/action/motionSensorAction.d.ts +16 -0
  12. package/lib/models/action/motionSensorAction.js +15 -0
  13. package/lib/models/action/presenceGroupFirstEnterAction.d.ts +7 -0
  14. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  15. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  17. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  18. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  19. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  20. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  21. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  22. package/lib/models/blockAutomaticSettings.js +19 -0
  23. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  24. package/lib/models/command/ShutterSetLevelCommand.js +10 -2
  25. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  26. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  27. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +8 -1
  28. package/lib/models/command/WindowSetDesiredPositionCommand.js +8 -1
  29. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  30. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  31. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  32. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  33. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  34. package/lib/models/command/actuatorToggleCommand.js +7 -4
  35. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +9 -2
  36. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +14 -3
  37. package/lib/models/command/baseCommand.d.ts +23 -2
  38. package/lib/models/command/baseCommand.js +43 -9
  39. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  40. package/lib/models/command/blockAutomaticCommand.js +40 -0
  41. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  42. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  43. package/lib/models/command/blockAutomaticUntilCommand.d.ts +26 -0
  44. package/lib/models/command/blockAutomaticUntilCommand.js +29 -0
  45. package/lib/models/command/commandSource.d.ts +19 -0
  46. package/lib/models/command/commandSource.js +20 -0
  47. package/lib/models/command/commandType.d.ts +9 -0
  48. package/lib/models/command/commandType.js +9 -0
  49. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  50. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  51. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  52. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  53. package/lib/models/command/index.d.ts +3 -0
  54. package/lib/models/command/index.js +7 -1
  55. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  56. package/lib/models/command/lampSetLightCommand.js +15 -4
  57. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  58. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  59. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  60. package/lib/models/command/lampToggleLightCommand.js +8 -7
  61. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  62. package/lib/models/command/ledSetLightCommand.js +27 -17
  63. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  64. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  65. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  66. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  67. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  68. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  69. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  70. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  71. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  72. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  73. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  74. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  75. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  76. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  77. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  78. package/lib/models/command/wledSetLightCommand.js +23 -7
  79. package/lib/models/connectionCallbacks.d.ts +4 -4
  80. package/lib/models/connectionCallbacks.js +1 -0
  81. package/lib/models/deviceConfig.d.ts +3 -3
  82. package/lib/models/deviceSettings/acSettings.d.ts +19 -5
  83. package/lib/models/deviceSettings/acSettings.js +23 -8
  84. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  85. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  86. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  87. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  88. package/lib/models/deviceSettings/dachsSettings.d.ts +3 -0
  89. package/lib/models/deviceSettings/dachsSettings.js +3 -0
  90. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  91. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  92. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  93. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  94. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  95. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  96. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  97. package/lib/models/deviceSettings/handleSettings.js +9 -0
  98. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  99. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  100. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  101. package/lib/models/deviceSettings/ledSettings.js +76 -18
  102. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  103. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  104. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  105. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  106. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  107. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  108. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  109. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  111. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  112. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  113. package/lib/models/deviceSettings/wledSettings.js +37 -13
  114. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  115. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  116. package/lib/models/iIdHolder.d.ts +18 -0
  117. package/lib/models/index.d.ts +2 -1
  118. package/lib/models/index.js +4 -1
  119. package/lib/models/objectSettings.d.ts +5 -2
  120. package/lib/models/objectSettings.js +2 -2
  121. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  122. package/lib/models/persistence/EnergyCalculation.js +30 -4
  123. package/lib/models/persistence/index.d.ts +0 -2
  124. package/lib/models/persistence/index.js +0 -2
  125. package/lib/models/rooms/RoomBase.d.ts +12 -1
  126. package/lib/models/rooms/RoomBase.js +5 -3
  127. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  128. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  129. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +9 -0
  130. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +1 -1
  131. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  132. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  133. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  134. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  135. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  136. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  137. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  138. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  139. package/lib/models/timeCallback.d.ts +7 -0
  140. package/lib/models/timeCallback.js +6 -3
  141. package/lib/server/config/heatingMode.d.ts +2 -1
  142. package/lib/server/config/heatingMode.js +2 -1
  143. package/lib/server/config/iAsusConfig.d.ts +15 -0
  144. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  145. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  146. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  147. package/lib/server/config/iConfig.d.ts +92 -5
  148. package/lib/server/config/iDachsSettings.d.ts +16 -0
  149. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  150. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  151. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  152. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  153. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  154. package/lib/server/config/iLogSettings.d.ts +36 -1
  155. package/lib/server/config/iMp3Settings.d.ts +10 -0
  156. package/lib/server/config/iMuellSettings.d.ts +7 -0
  157. package/lib/server/config/iNewsSettings.d.ts +13 -0
  158. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  159. package/lib/server/config/iPollySettings.d.ts +22 -0
  160. package/lib/server/config/iRestSettings.d.ts +10 -0
  161. package/lib/server/config/iSonosSettings.d.ts +10 -0
  162. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  163. package/lib/server/config/iTibberSettings.d.ts +10 -0
  164. package/lib/server/config/iTimePair.d.ts +9 -0
  165. package/lib/server/config/iTimeSettings.d.ts +9 -0
  166. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  167. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  168. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  169. package/lib/server/config/iVictronSettings.d.ts +14 -0
  170. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  171. package/lib/server/config/index.d.ts +1 -0
  172. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  173. package/lib/server/devices/DeviceCapability.js +1 -0
  174. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  175. package/lib/server/devices/DeviceInfo.js +6 -0
  176. package/lib/server/devices/Griffe.js +1 -2
  177. package/lib/server/devices/Heizgruppen.js +2 -2
  178. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  179. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  180. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +2 -2
  181. package/lib/server/devices/IoBrokerDeviceInfo.js +6 -4
  182. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  183. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  184. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  185. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +12 -1
  186. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  187. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  188. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  189. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  190. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +32 -2
  191. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  192. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  193. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  194. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -4
  195. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -1
  196. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  197. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +9 -0
  198. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  199. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  200. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  201. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  202. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -2
  203. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  204. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -1
  205. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  206. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  207. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -2
  209. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  210. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  212. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  213. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -33
  214. package/lib/server/devices/blueIris/cameraDevice.js +76 -75
  215. package/lib/server/devices/button/button.d.ts +0 -1
  216. package/lib/server/devices/button/button.js +0 -4
  217. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  218. package/lib/server/devices/button/buttonCallback.js +10 -0
  219. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  220. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  221. package/lib/server/devices/button/index.d.ts +1 -0
  222. package/lib/server/devices/button/index.js +3 -0
  223. package/lib/server/devices/dachs/dachs.d.ts +31 -9
  224. package/lib/server/devices/dachs/dachs.js +27 -17
  225. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -2
  226. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  227. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  228. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  229. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  230. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  231. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  232. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +1 -1
  233. package/lib/server/devices/dachs/lib/dachsHttpClient.js +2 -2
  234. package/lib/server/devices/device-cluster.d.ts +3 -0
  235. package/lib/server/devices/device-cluster.js +1 -1
  236. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  237. package/lib/server/devices/deviceUpdater.js +1 -4
  238. package/lib/server/devices/devices.d.ts +43 -7
  239. package/lib/server/devices/devices.js +42 -6
  240. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  241. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  242. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  243. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  244. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  245. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  246. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  247. package/lib/server/devices/espresense/trilateration.js +7 -0
  248. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  249. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  250. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  251. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  252. package/lib/server/devices/groups/Window.d.ts +9 -2
  253. package/lib/server/devices/groups/Window.js +19 -11
  254. package/lib/server/devices/groups/base-group.d.ts +4 -0
  255. package/lib/server/devices/groups/base-group.js +3 -0
  256. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  257. package/lib/server/devices/groups/heatGroup.js +11 -11
  258. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  259. package/lib/server/devices/groups/lightGroup.js +14 -13
  260. package/lib/server/devices/groups/presenceGroup.d.ts +5 -3
  261. package/lib/server/devices/groups/presenceGroup.js +36 -40
  262. package/lib/server/devices/groups/tasterGroup.js +6 -6
  263. package/lib/server/devices/groups/windowGroup.d.ts +11 -1
  264. package/lib/server/devices/groups/windowGroup.js +6 -6
  265. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  266. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  267. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -5
  268. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +11 -11
  269. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  270. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  271. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +27 -5
  272. package/lib/server/devices/hmIPDevices/hmIpGriff.js +59 -37
  273. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +26 -4
  274. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +29 -14
  275. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +1 -0
  276. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +1 -0
  277. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +6 -0
  278. package/lib/server/devices/hmIPDevices/hmIpLampe.js +7 -3
  279. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +11 -8
  280. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +14 -11
  281. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +2 -0
  282. package/lib/server/devices/hmIPDevices/hmIpRoll.js +9 -6
  283. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +15 -0
  284. package/lib/server/devices/hmIPDevices/hmIpTaster.js +9 -0
  285. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +1 -0
  286. package/lib/server/devices/hmIPDevices/hmIpTherm.js +1 -0
  287. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  288. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  289. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  290. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  291. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  292. package/lib/server/devices/index.d.ts +1 -0
  293. package/lib/server/devices/index.js +3 -0
  294. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +3 -1
  295. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +5 -3
  296. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  297. package/lib/server/devices/nameAmountValuePair.js +10 -0
  298. package/lib/server/devices/scene/room-scene.d.ts +23 -6
  299. package/lib/server/devices/scene/room-scene.js +18 -4
  300. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  301. package/lib/server/devices/sharedFunctions/lampUtils.js +73 -24
  302. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  303. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  304. package/lib/server/devices/shelly/shellyTrv.d.ts +28 -16
  305. package/lib/server/devices/shelly/shellyTrv.js +46 -45
  306. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  307. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  308. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  309. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  310. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  311. package/lib/server/devices/tv/samsungTv.js +1 -0
  312. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  313. package/lib/server/devices/tv/tvDevice.js +4 -3
  314. package/lib/server/devices/wledDevice.d.ts +16 -2
  315. package/lib/server/devices/wledDevice.js +42 -12
  316. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +15 -3
  317. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +23 -9
  318. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  319. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  320. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  321. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +15 -22
  322. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +8 -23
  323. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +28 -61
  324. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +17 -4
  325. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +17 -11
  326. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +20 -0
  327. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +47 -0
  328. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +9 -8
  329. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +15 -13
  330. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +12 -2
  331. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +11 -1
  332. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +22 -13
  333. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +47 -42
  334. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +11 -1
  335. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +18 -7
  336. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  337. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  338. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  339. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  340. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  341. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  342. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  343. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  344. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +49 -11
  345. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +98 -30
  346. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +12 -1
  347. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +15 -11
  348. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  349. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  350. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  351. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  352. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +19 -1
  353. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +25 -7
  354. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  355. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +1 -0
  356. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  357. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  358. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  359. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  360. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +4 -10
  361. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +4 -32
  362. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  363. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +1 -0
  364. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  365. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  366. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  367. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  368. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +21 -2
  369. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +24 -5
  370. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  371. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  372. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  373. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  374. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +9 -9
  375. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +15 -24
  376. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  377. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +1 -0
  378. package/lib/server/ioBroker/connection.d.ts +21 -20
  379. package/lib/server/ioBroker/connection.js +37 -28
  380. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  381. package/lib/server/ioBroker/ioBroker.main.js +4 -3
  382. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  383. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  384. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  385. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  386. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  387. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  388. package/lib/server/services/ShutterService.js +6 -6
  389. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  390. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  391. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  392. package/lib/server/services/Sonos/mp3-server.js +3 -1
  393. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  394. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  395. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  396. package/lib/server/services/Sonos/polly-service.js +10 -8
  397. package/lib/server/services/Sonos/sonos-service.d.ts +0 -5
  398. package/lib/server/services/Sonos/sonos-service.js +6 -10
  399. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  400. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  401. package/lib/server/services/Telegram/telegram-service.js +8 -3
  402. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  403. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  404. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  405. package/lib/server/services/Translation/index.d.ts +1 -0
  406. package/lib/server/services/Translation/res.d.ts +34 -19
  407. package/lib/server/services/Translation/res.js +34 -19
  408. package/lib/server/services/ac/ac-device.d.ts +48 -6
  409. package/lib/server/services/ac/ac-device.js +85 -35
  410. package/lib/server/services/ac/daikin-service.js +4 -3
  411. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  412. package/lib/server/services/ac/own-ac-devices.js +3 -0
  413. package/lib/server/services/ac/own-daikin-device.d.ts +17 -0
  414. package/lib/server/services/ac/own-daikin-device.js +32 -7
  415. package/lib/server/services/api/api-service.d.ts +118 -53
  416. package/lib/server/services/api/api-service.js +170 -80
  417. package/lib/server/services/blockAutomaticHandler.d.ts +11 -8
  418. package/lib/server/services/blockAutomaticHandler.js +29 -13
  419. package/lib/server/services/calendar/index.d.ts +1 -0
  420. package/lib/server/services/calendar/index.js +3 -0
  421. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  422. package/lib/server/services/calendar/muell-tonne.js +10 -0
  423. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  424. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  425. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  426. package/lib/server/services/calendar/name-date-pair.js +10 -0
  427. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  428. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  429. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  430. package/lib/server/services/file-info.d.ts +5 -0
  431. package/lib/server/services/file-info.js +10 -0
  432. package/lib/server/services/govee/govee-service.d.ts +1 -5
  433. package/lib/server/services/govee/govee-service.js +3 -5
  434. package/lib/server/services/govee/own-govee-device.d.ts +17 -12
  435. package/lib/server/services/govee/own-govee-device.js +27 -24
  436. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  437. package/lib/server/services/govee/own-govee-devices.js +3 -0
  438. package/lib/server/services/https-service.d.ts +3 -2
  439. package/lib/server/services/https-service.js +4 -3
  440. package/lib/server/services/index.d.ts +1 -0
  441. package/lib/server/services/index.js +3 -0
  442. package/lib/server/services/log-service/index.d.ts +1 -0
  443. package/lib/server/services/log-service/index.js +3 -0
  444. package/lib/server/services/log-service/log-debug-type.d.ts +12 -0
  445. package/lib/server/services/log-service/log-debug-type.js +16 -0
  446. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  447. package/lib/server/services/log-service/log-filter-data.js +6 -15
  448. package/lib/server/services/log-service/log-service.d.ts +17 -4
  449. package/lib/server/services/log-service/log-service.js +30 -17
  450. package/lib/server/services/news-service.d.ts +9 -7
  451. package/lib/server/services/news-service.js +14 -15
  452. package/lib/server/services/room-service/room-service.d.ts +20 -4
  453. package/lib/server/services/room-service/room-service.js +26 -10
  454. package/lib/server/services/settings-service.d.ts +6 -2
  455. package/lib/server/services/settings-service.js +3 -2
  456. package/lib/server/services/time-callback-service.js +1 -1
  457. package/lib/server/services/utils/RGB.d.ts +6 -0
  458. package/lib/server/services/utils/RGB.js +11 -0
  459. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  460. package/lib/server/services/utils/catchEmResult.js +10 -0
  461. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  462. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  463. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  464. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  465. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  466. package/lib/server/services/utils/index.d.ts +4 -1
  467. package/lib/server/services/utils/index.js +8 -1
  468. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  469. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  470. package/lib/server/services/utils/utils.d.ts +9 -13
  471. package/lib/server/services/victron/victron-device.d.ts +6 -2
  472. package/lib/server/services/victron/victron-device.js +12 -9
  473. package/lib/server/services/weather/index.d.ts +2 -0
  474. package/lib/server/services/weather/index.js +3 -0
  475. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  476. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  477. package/lib/server/services/weather/weather-current.d.ts +0 -2
  478. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  479. package/lib/server/services/weather/weather-response.d.ts +16 -0
  480. package/lib/server/services/weather/weather-response.js +2 -0
  481. package/lib/server/services/weather/weather-service.d.ts +15 -18
  482. package/lib/server/services/weather/weather-service.js +32 -22
  483. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  484. package/lib/tsconfig.tsbuildinfo +1 -1
  485. package/package.json +6 -7
  486. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  487. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  488. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  489. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  490. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  491. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -1,4 +1,14 @@
1
+ /**
2
+ * The settings for the Tibber-Service (if needed).
3
+ * Tibber is an energy provider which can be used to have hourly energy prices.
4
+ */
1
5
  export interface iTibberSettings {
6
+ /**
7
+ * The API key for Tibber-API-Authorization
8
+ */
2
9
  apiKey: string;
10
+ /**
11
+ * The home ID for this home within the Tibber Account
12
+ */
3
13
  homeId: string;
4
14
  }
@@ -1,4 +1,13 @@
1
+ /**
2
+ * Interface representing a specific time of day defined by hours and minutes
3
+ */
1
4
  export interface iTimePair {
5
+ /**
6
+ * The hours of the time pair
7
+ */
2
8
  hours: number;
9
+ /**
10
+ * The minutes of the time pair
11
+ */
3
12
  minutes: number;
4
13
  }
@@ -1,5 +1,14 @@
1
1
  import { iTimePair } from './iTimePair';
2
+ /**
3
+ * The settings for the time-service.
4
+ */
2
5
  export interface iTimeSettings {
6
+ /**
7
+ * The time which should be considered as the start of the night
8
+ */
3
9
  nightStart: iTimePair;
10
+ /**
11
+ * The time which should be considered as the end of the night
12
+ */
4
13
  nightEnd: iTimePair;
5
14
  }
@@ -1,3 +1,13 @@
1
+ /**
2
+ * The settings for the translation-service.
3
+ * The translation-service is used to provide certain messages in the desired language.
4
+ * Currently only german and english are supported.
5
+ * @warning The translation-service is not yet fully implemented and only used in some cases.
6
+ */
1
7
  export interface iTranslationSettings {
8
+ /**
9
+ * The desired language for the translations
10
+ * @default 'en'
11
+ */
2
12
  language: string;
3
13
  }
@@ -1,11 +1,42 @@
1
+ /**
2
+ * The options neded to connect to a Unifi controller
3
+ */
1
4
  export interface iUnifiConnectionOptions {
5
+ /**
6
+ * The host address of the Unifi controller (or its IP address)
7
+ */
2
8
  host?: string;
9
+ /**
10
+ * The port of the Unifi controller
11
+ */
3
12
  port?: number;
13
+ /**
14
+ * The username used to log in to the Unifi controller (if needed)
15
+ */
4
16
  username?: string;
17
+ /**
18
+ * The password used to log in to the Unifi controller (if needed)
19
+ */
5
20
  password?: string;
21
+ /**
22
+ * The 2FA token used to log in to the Unifi controller (if needed)
23
+ * @warning This is not recommended to be used, as after a reboot you would need a new token
24
+ */
6
25
  token2FA?: string;
26
+ /**
27
+ * The site of this house (if needed)
28
+ */
7
29
  site?: string;
30
+ /**
31
+ * Whether to verify the SSL certificate of the Unifi controller or connect anyway
32
+ */
8
33
  sslverify?: boolean;
34
+ /**
35
+ * The timeout for the connection to the Unifi controller
36
+ */
9
37
  timeout?: number;
38
+ /**
39
+ * Whether to stay logged in or to reauthenticate on each request
40
+ */
10
41
  rememberMe?: boolean;
11
42
  }
@@ -1,4 +1,12 @@
1
1
  import { iUnifiConnectionOptions } from './iUnifiConnectionOptions';
2
+ /**
3
+ * The settings for the Unifi-Service (if needed).
4
+ * Unifi is a network management system which can be used to monitor and control the network and devices.
5
+ * Within Hoffmation it is mainly used to reconnect devices if they are not reachable.
6
+ */
2
7
  export interface iUnifiSettings {
8
+ /**
9
+ * The options for connecting to the Unifi controller
10
+ */
3
11
  loginOptions: iUnifiConnectionOptions;
4
12
  }
@@ -1,6 +1,20 @@
1
1
  import { InfluxDbConnectionOptions } from 'victron-mqtt-consumer/build/models/InfluxDbConnectionOptions';
2
+ /**
3
+ * The settings for the Victron-Service (if present).
4
+ * Victron is a energy management system which provides solar or battery power.
5
+ */
2
6
  export interface iVictronSettings {
7
+ /**
8
+ * The address of the Victron GX device
9
+ */
3
10
  host: string;
11
+ /**
12
+ * The information to connect to the InfluxDB for storing the data
13
+ */
4
14
  influxDb: InfluxDbConnectionOptions;
15
+ /**
16
+ * Whether further information should be logged
17
+ * TODO: Move this to a respective {@link LogDebugType}
18
+ */
5
19
  debug: boolean;
6
20
  }
@@ -1,5 +1,18 @@
1
+ /**
2
+ * The settings for the weather-service (if needed).
3
+ * The weather-service is used to get weather data for the house location.
4
+ */
1
5
  export interface iWeatherSettings {
6
+ /**
7
+ * The lattitude of the location
8
+ */
2
9
  lattitude: string;
10
+ /**
11
+ * The longitude of the location
12
+ */
3
13
  longitude: string;
14
+ /**
15
+ * App-ID from OpenWeatherMap
16
+ */
4
17
  appid?: string;
5
18
  }
@@ -25,3 +25,4 @@ export * from './iTimePair';
25
25
  export * from './iUnifiSettings';
26
26
  export * from './iUnifiConnectionOptions';
27
27
  export * from './iVictronSettings';
28
+ export { iBlockAutomaticHandlerDefaults } from './iBlockAutomaticHandlerDefaults';
@@ -21,6 +21,7 @@ export declare enum DeviceCapability {
21
21
  smokeSensor = 19,
22
22
  loadMetering = 20,
23
23
  garageDoorOpener = 21,
24
+ magnetSensor = 22,
24
25
  bluetoothDetector = 101,
25
26
  trackableDevice = 102,
26
27
  scene = 103,
@@ -25,6 +25,7 @@ var DeviceCapability;
25
25
  DeviceCapability[DeviceCapability["smokeSensor"] = 19] = "smokeSensor";
26
26
  DeviceCapability[DeviceCapability["loadMetering"] = 20] = "loadMetering";
27
27
  DeviceCapability[DeviceCapability["garageDoorOpener"] = 21] = "garageDoorOpener";
28
+ DeviceCapability[DeviceCapability["magnetSensor"] = 22] = "magnetSensor";
28
29
  DeviceCapability[DeviceCapability["bluetoothDetector"] = 101] = "bluetoothDetector";
29
30
  DeviceCapability[DeviceCapability["trackableDevice"] = 102] = "trackableDevice";
30
31
  DeviceCapability[DeviceCapability["scene"] = 103] = "scene";
@@ -1,6 +1,15 @@
1
1
  export declare class DeviceInfo {
2
+ /**
3
+ * The complete name of the device in a human readable format
4
+ */
2
5
  fullName: string;
6
+ /**
7
+ * The roomname matching {@link iRoomBase.roomName}
8
+ */
3
9
  room: string;
10
+ /**
11
+ * If present the key to access this device in {@link Devices.alLDevices}
12
+ */
4
13
  allDevicesKey?: string;
5
14
  private _customName?;
6
15
  get customName(): string;
@@ -3,7 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeviceInfo = void 0;
4
4
  class DeviceInfo {
5
5
  constructor() {
6
+ /**
7
+ * The complete name of the device in a human readable format
8
+ */
6
9
  this.fullName = '';
10
+ /**
11
+ * The roomname matching {@link iRoomBase.roomName}
12
+ */
7
13
  this.room = '';
8
14
  }
9
15
  get customName() {
@@ -8,10 +8,9 @@ class Griffe {
8
8
  static getGriffPosition() {
9
9
  const griffe = Griffe.getAllGriffe();
10
10
  griffe.sort((a, b) => {
11
- a.position;
12
11
  return b.position - a.position;
13
12
  });
14
- const response = [`These are the current handle positions:`];
13
+ const response = ['These are the current handle positions:'];
15
14
  for (const g of griffe) {
16
15
  response.push(`${models_1.WindowPosition[g.position]} Window: "${g.info.customName}"`);
17
16
  }
@@ -6,8 +6,8 @@ const devices_1 = require("./devices");
6
6
  class Heizgruppen {
7
7
  static getProblems() {
8
8
  const groups = this.getAllGruppen();
9
- const response = [`Dies sind die bestehenden Differenzen:`];
10
- response.push(`Raumname\t\tIst-Temperatur\t\tGerät`);
9
+ const response = ['Dies sind die bestehenden Differenzen:'];
10
+ response.push('Raumname\t\tIst-Temperatur\t\tGerät');
11
11
  for (const g of groups) {
12
12
  const heizungen = g.getBelongingHeizungen();
13
13
  const tempProblem = [`${g.info.room}\t\t${g.iTemperature}°C\t\t${g.info.customName}`];
@@ -8,57 +8,73 @@ import { DeviceCapability } from './DeviceCapability';
8
8
  export declare abstract class IoBrokerBaseDevice implements iRoomDevice {
9
9
  protected _info: IoBrokerDeviceInfo;
10
10
  deviceType: DeviceType;
11
- settings: DeviceSettings | undefined;
11
+ /**
12
+ * The settings for adding devices to Rooms
13
+ */
12
14
  static roomAddingSettings: {
13
15
  [id: string]: RoomDeviceAddingSettings;
14
16
  };
17
+ /**
18
+ * @inheritDoc
19
+ * @default undefined (no Settings)
20
+ */
21
+ settings: DeviceSettings | undefined;
15
22
  private _room;
23
+ /** @inheritDoc */
16
24
  readonly deviceCapabilities: DeviceCapability[];
25
+ protected _debounceStateDelay: number;
26
+ protected _lastWrite: number;
27
+ protected stateMap: Map<string, ioBroker.State>;
28
+ /** @inheritDoc */
17
29
  get customName(): string;
30
+ /** @inheritDoc */
18
31
  get room(): RoomBase;
19
32
  protected readonly individualStateCallbacks: Map<string, Array<(val: ioBroker.StateValue) => void>>;
20
33
  protected constructor(_info: IoBrokerDeviceInfo, deviceType: DeviceType);
34
+ /** @inheritDoc */
21
35
  get id(): string;
22
36
  /**
23
37
  * Getter info
24
- * @return {IoBrokerDeviceInfo}
38
+ * @returns The device info
25
39
  */
26
40
  get info(): IoBrokerDeviceInfo;
27
- /**
28
- * Setter info
29
- * @param {IoBrokerDeviceInfo} value
30
- */
31
- set info(value: IoBrokerDeviceInfo);
32
- /**
33
- * Getter ioConn
34
- * @return {IOBrokerConnection}
35
- */
36
41
  get ioConn(): IOBrokerConnection | undefined;
37
42
  static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
38
43
  static checkMissing(): void;
44
+ /** @inheritDoc */
39
45
  loadDeviceSettings(): void;
40
46
  /**
41
47
  * Allows to react on the state change of a given state with the passed cb
42
- * @param {string} stateName Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
43
- * @param {(val: ioBroker.StateValue) => void} cb Desired Callback Action, with passed ioBroker.StateValue
48
+ * @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
49
+ * @param cb - Desired Callback Action, with passed ioBroker.StateValue
44
50
  */
45
51
  addIndividualStateCallback(stateName: string, cb: (val: ioBroker.StateValue) => void): void;
46
52
  /**
47
53
  * Returns whether a connection to ioBroker is established or not
48
- * @param showError If true, an error message will be written to the log if the connection is not established
54
+ * @param showError - If true, an error message will be written to the log if the connection is not established
55
+ * @returns Whether a connection exists
49
56
  */
50
57
  checkIoConnection(showError?: boolean): boolean;
58
+ /**
59
+ * Updates the state of a given data point
60
+ * @param {string[]} idSplit - ID of the data point
61
+ * @param {ioBroker.State} state - New state
62
+ * @param {boolean} initial - Whether this is during the initial update
63
+ * @param {boolean} pOverride - Whether the child class did override this method
64
+ */
51
65
  abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
52
66
  log(level: LogLevel, message: string, logDebugType?: LogDebugType): void;
67
+ /** @inheritDoc */
53
68
  toJSON(): Partial<IoBrokerBaseDevice>;
69
+ /** @inheritDoc */
54
70
  persistDeviceInfo(): void;
55
71
  protected addToCorrectRoom(): void;
56
72
  /**
57
73
  * Sets the state of a given data point and returns true if that was successful.
58
- * @param pointId Data point to write to
59
- * @param state Data to write
60
- * @param onSuccess Callback to run on successfully written data
61
- * @param onError Callback to run if an error has occurred during writing the data
74
+ * @param pointId - Data point to write to
75
+ * @param state - Data to write
76
+ * @param onSuccess - Callback to run on successfully written data
77
+ * @param onError - Callback to run if an error has occurred during writing the data
62
78
  */
63
79
  protected setState(pointId: string, state: string | number | boolean | ioBroker.State | ioBroker.SettableState | null, onSuccess?: (() => void) | undefined, onError?: ((error: Error) => void) | undefined): void;
64
80
  }
@@ -5,9 +5,11 @@ const services_1 = require("../services");
5
5
  const models_1 = require("../../models");
6
6
  const ioBroker_1 = require("../ioBroker");
7
7
  class IoBrokerBaseDevice {
8
+ /** @inheritDoc */
8
9
  get customName() {
9
10
  return this.info.customName;
10
11
  }
12
+ /** @inheritDoc */
11
13
  get room() {
12
14
  if (this._room === undefined) {
13
15
  this._room = services_1.Utils.guard(services_1.API.getRoom(this.info.room));
@@ -17,14 +19,24 @@ class IoBrokerBaseDevice {
17
19
  constructor(_info, deviceType) {
18
20
  this._info = _info;
19
21
  this.deviceType = deviceType;
22
+ /**
23
+ * @inheritDoc
24
+ * @default undefined (no Settings)
25
+ */
20
26
  this.settings = undefined;
21
27
  this._room = undefined;
28
+ /** @inheritDoc */
22
29
  this.deviceCapabilities = [];
30
+ // If configured > 0, this indicates the minimum time between state writes in ms
31
+ this._debounceStateDelay = 0;
32
+ this._lastWrite = 0;
33
+ this.stateMap = new Map();
23
34
  this.individualStateCallbacks = new Map();
24
35
  this.addToCorrectRoom();
25
36
  this.persistDeviceInfo();
26
37
  services_1.Utils.guardedTimeout(this.loadDeviceSettings, 300, this);
27
38
  }
39
+ /** @inheritDoc */
28
40
  get id() {
29
41
  const result = services_1.Utils.guard(this.info.allDevicesKey);
30
42
  if (result === '0' || result === '1') {
@@ -34,28 +46,17 @@ class IoBrokerBaseDevice {
34
46
  }
35
47
  /**
36
48
  * Getter info
37
- * @return {IoBrokerDeviceInfo}
49
+ * @returns The device info
38
50
  */
39
51
  get info() {
40
52
  return this._info;
41
53
  }
42
- /**
43
- * Setter info
44
- * @param {IoBrokerDeviceInfo} value
45
- */
46
- set info(value) {
47
- this._info = value;
48
- }
49
- /**
50
- * Getter ioConn
51
- * @return {IOBrokerConnection}
52
- */
53
54
  get ioConn() {
54
55
  return ioBroker_1.ioBrokerMain.iOConnection;
55
56
  }
56
57
  static addRoom(shortName, settings) {
57
58
  if (this.roomAddingSettings[shortName] !== undefined) {
58
- services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für HmIpRoomsettings für den Raumnamen "${shortName}"`);
59
+ services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für Roomsetings für den Raumnamen "${shortName}"`);
59
60
  return;
60
61
  }
61
62
  this.roomAddingSettings[shortName] = settings;
@@ -65,14 +66,15 @@ class IoBrokerBaseDevice {
65
66
  this.roomAddingSettings[rName].checkMissing();
66
67
  }
67
68
  }
69
+ /** @inheritDoc */
68
70
  loadDeviceSettings() {
69
71
  var _a;
70
72
  (_a = this.settings) === null || _a === void 0 ? void 0 : _a.initializeFromDb(this);
71
73
  }
72
74
  /**
73
75
  * Allows to react on the state change of a given state with the passed cb
74
- * @param {string} stateName Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
75
- * @param {(val: ioBroker.StateValue) => void} cb Desired Callback Action, with passed ioBroker.StateValue
76
+ * @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
77
+ * @param cb - Desired Callback Action, with passed ioBroker.StateValue
76
78
  */
77
79
  addIndividualStateCallback(stateName, cb) {
78
80
  let arr = this.individualStateCallbacks.get(stateName);
@@ -86,7 +88,8 @@ class IoBrokerBaseDevice {
86
88
  }
87
89
  /**
88
90
  * Returns whether a connection to ioBroker is established or not
89
- * @param showError If true, an error message will be written to the log if the connection is not established
91
+ * @param showError - If true, an error message will be written to the log if the connection is not established
92
+ * @returns Whether a connection exists
90
93
  */
91
94
  checkIoConnection(showError = false) {
92
95
  if (!this.ioConn && showError) {
@@ -102,9 +105,11 @@ class IoBrokerBaseDevice {
102
105
  debugType: logDebugType,
103
106
  });
104
107
  }
108
+ /** @inheritDoc */
105
109
  toJSON() {
106
110
  return services_1.Utils.jsonFilter(this, ['individualStateCallbacks'], ['_room']);
107
111
  }
112
+ /** @inheritDoc */
108
113
  persistDeviceInfo() {
109
114
  services_1.Utils.guardedTimeout(() => {
110
115
  var _a;
@@ -142,23 +147,31 @@ class IoBrokerBaseDevice {
142
147
  }
143
148
  /**
144
149
  * Sets the state of a given data point and returns true if that was successful.
145
- * @param pointId Data point to write to
146
- * @param state Data to write
147
- * @param onSuccess Callback to run on successfully written data
148
- * @param onError Callback to run if an error has occurred during writing the data
150
+ * @param pointId - Data point to write to
151
+ * @param state - Data to write
152
+ * @param onSuccess - Callback to run on successfully written data
153
+ * @param onError - Callback to run if an error has occurred during writing the data
149
154
  */
150
155
  setState(pointId, state, onSuccess = undefined, onError = undefined) {
151
156
  var _a;
152
157
  if (!this.checkIoConnection(true)) {
153
158
  return;
154
159
  }
160
+ if (this._debounceStateDelay > 0 && services_1.Utils.nowMS() - this._lastWrite < this._debounceStateDelay) {
161
+ services_1.Utils.guardedTimeout(() => {
162
+ this.log(models_1.LogLevel.Trace, `Debounced write for ${pointId} to ${state}`);
163
+ this.setState(pointId, state, onSuccess, onError);
164
+ }, this._debounceStateDelay, this);
165
+ return;
166
+ }
167
+ this._lastWrite = services_1.Utils.nowMS();
155
168
  (_a = this.ioConn) === null || _a === void 0 ? void 0 : _a.setState(pointId, state, (err) => {
156
169
  if (err) {
157
170
  if (onError) {
158
171
  onError(err);
159
172
  }
160
173
  else {
161
- console.log(`Error occured while setting state "${pointId}" to "${state}": ${err}`);
174
+ this.log(models_1.LogLevel.Error, `Error occured while setting state "${pointId}" to "${state}": ${err}`);
162
175
  }
163
176
  return;
164
177
  }
@@ -169,4 +182,7 @@ class IoBrokerBaseDevice {
169
182
  }
170
183
  }
171
184
  exports.IoBrokerBaseDevice = IoBrokerBaseDevice;
185
+ /**
186
+ * The settings for adding devices to Rooms
187
+ */
172
188
  IoBrokerBaseDevice.roomAddingSettings = {};
@@ -13,8 +13,8 @@ export declare class IoBrokerDeviceInfo extends DeviceInfo {
13
13
  private static replaceInvalidIdChars;
14
14
  /**
15
15
  * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
16
- * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
17
- * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
16
+ * @param pDevConf - The device Config based on the extracted devices.json from ioBroker
17
+ * @param isJsStateChildObject - Within JS Objects, creating devices is limited,
18
18
  * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
19
19
  */
20
20
  constructor(pDevConf: deviceConfig, isJsStateChildObject?: boolean);
@@ -19,8 +19,8 @@ class IoBrokerDeviceInfo extends DeviceInfo_1.DeviceInfo {
19
19
  }
20
20
  /**
21
21
  * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
22
- * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
23
- * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
22
+ * @param pDevConf - The device Config based on the extracted devices.json from ioBroker
23
+ * @param isJsStateChildObject - Within JS Objects, creating devices is limited,
24
24
  * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
25
25
  */
26
26
  constructor(pDevConf, isJsStateChildObject = false) {
@@ -46,7 +46,8 @@ class IoBrokerDeviceInfo extends DeviceInfo_1.DeviceInfo {
46
46
  if (idSplit.length > 4) {
47
47
  this.valueName = idSplit[4];
48
48
  }
49
- /** Name-Split
49
+ /**
50
+ * Name-Split
50
51
  * 0: Indikator own "00"
51
52
  * 1: "HmIP"
52
53
  * 2: Raum
@@ -60,7 +61,8 @@ class IoBrokerDeviceInfo extends DeviceInfo_1.DeviceInfo {
60
61
  return;
61
62
  }
62
63
  else {
63
- /** Name-Split
64
+ /**
65
+ * Name-Split
64
66
  * 0: Indikator own "00"
65
67
  * 1: "EnergyManager"
66
68
  * 2: Raum
@@ -1,18 +1,56 @@
1
1
  import { AcSettings } from '../../../models';
2
2
  import { AcMode } from '../../services';
3
3
  import { iBaseDevice } from './iBaseDevice';
4
+ /**
5
+ * Interface for normal air-conditioning devices
6
+ *
7
+ * For devices with {@link DeviceCapability.ac} capability.
8
+ * TODO: Migrate to new Command-Based System
9
+ * TODO: Extend from iActuator
10
+ */
4
11
  export interface iAcDevice extends iBaseDevice {
12
+ /**
13
+ * The settings of the air-conditioning device
14
+ */
5
15
  settings: AcSettings;
16
+ /**
17
+ * Whether the air-conditioning device is currently on
18
+ */
6
19
  readonly on: boolean;
20
+ /**
21
+ * The temperature of the room where this device is located
22
+ */
23
+ readonly roomTemperature: number;
24
+ /**
25
+ * The current temperature of the air-conditioning device in degrees Celsius
26
+ */
7
27
  readonly temperature: number;
28
+ /**
29
+ * The current state of the air-conditioning device
30
+ */
8
31
  readonly mode: AcMode;
9
32
  /**
10
- * Disable automatic Turn-On for given amount of ms and turn off immediately.
11
- * @param {number} timeout
33
+ * This function should be called to inform the air-conditioning device about a change of the room temperature
34
+ * @param newTemperatur - The new temperature of the room in degrees Celsius
12
35
  */
13
- deactivateAutomaticChange(timeout: number): void;
14
36
  onTemperaturChange(newTemperatur: number): void;
37
+ /**
38
+ * Updates the desired mode of the air-conditioning device and writes it to the device if desired
39
+ * @param mode - The new desired mode
40
+ * @param writeToDevice - Whether to write the new mode to the device
41
+ */
15
42
  setDesiredMode(mode: AcMode, writeToDevice: boolean): void;
43
+ /**
44
+ * Turns the air-conditioning device on without changing the settings
45
+ */
16
46
  turnOn(): void;
47
+ /**
48
+ * Turns the air-conditioning device off
49
+ */
17
50
  turnOff(): void;
51
+ /**
52
+ * Calculates the desired mode based on the current settings and the room temperature
53
+ * @returns The desired mode
54
+ */
55
+ calculateDesiredMode(): AcMode;
18
56
  }
@@ -1,11 +1,21 @@
1
1
  import { ActuatorSetStateCommand, ActuatorSettings, ActuatorToggleCommand, ActuatorWriteStateToDeviceCommand } from '../../../models';
2
2
  import { iRoomDevice } from './iRoomDevice';
3
3
  import { iTemporaryDisableAutomatic } from './iTemporaryDisableAutomatic';
4
+ /**
5
+ * Interface for Actuators.
6
+ * An actuator can be any device whos primary function is to be on or off e.g a light, an outlet, a fan, etc.
7
+ *
8
+ * For devices with {@link DeviceCapability.actuator} capability.
9
+ */
4
10
  export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
5
11
  /**
6
12
  * The settings for this Actuator primarily for controlling its automatic actions
7
13
  */
8
14
  settings: ActuatorSettings;
15
+ /**
16
+ * The target automatic state of the device.
17
+ * This is used to store the state the device should be in to fall back to it after automatic was blocked e.g. by a user.
18
+ */
9
19
  targetAutomaticState: boolean;
10
20
  /**
11
21
  * The state value of the device
@@ -25,6 +35,14 @@ export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
25
35
  * @param command
26
36
  */
27
37
  setActuator(command: ActuatorSetStateCommand): void;
38
+ /**
39
+ * Toggles the power state of this actuator
40
+ * @param command
41
+ */
28
42
  toggleActuator(command: ActuatorToggleCommand): boolean;
43
+ /**
44
+ * Writes the desired actuator state to the device
45
+ * @param command
46
+ */
29
47
  writeActuatorStateToDevice(command: ActuatorWriteStateToDeviceCommand): void;
30
48
  }
@@ -3,12 +3,37 @@ import { DeviceType } from '../deviceType';
3
3
  import { DeviceInfo } from '../DeviceInfo';
4
4
  import { DeviceCapability } from '../DeviceCapability';
5
5
  import { iIdHolder } from '../../../models/iIdHolder';
6
+ /**
7
+ * This is the main interface for all devices as it ensures certain base functionality.
8
+ */
6
9
  export interface iBaseDevice extends iIdHolder {
10
+ /**
11
+ * The settings of the device which are overridden by the specific device implementation
12
+ */
7
13
  readonly settings: DeviceSettings | undefined;
14
+ /**
15
+ * The hardware-type of the device.
16
+ */
8
17
  deviceType: DeviceType;
9
- info: DeviceInfo;
18
+ /**
19
+ * Some basic information about the device (mainly its name, id, room, etc.)
20
+ */
21
+ readonly info: DeviceInfo;
22
+ /**
23
+ * The capabilities of the device thus referencing other interfaces which then can be used to treat devices regardless of their hardware-type.
24
+ */
10
25
  readonly deviceCapabilities: DeviceCapability[];
26
+ /**
27
+ * This method writes the device Info to the configured persistence layer, to ensure having foreign keys for all other persisted data.
28
+ */
11
29
  persistDeviceInfo(): void;
30
+ /**
31
+ * This method loads the device settings from the configured persistence layer.
32
+ * Whilst this is normally used during startup, it can be called at any time to refresh the settings in case of manual changes within the database.
33
+ */
12
34
  loadDeviceSettings(): void;
35
+ /**
36
+ * This mainly enforces all devices to have a toJSON method to ensure a consistent way of serializing devices.
37
+ */
13
38
  toJSON(): Partial<iBaseDevice>;
14
39
  }