hoffmation-base 3.0.0-alpha.23 → 3.0.0-alpha.25

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 (439) hide show
  1. package/lib/index.d.ts +5 -1
  2. package/lib/index.js +20 -20
  3. package/lib/liquid-pid.js +1 -0
  4. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  5. package/lib/models/blockAutomaticSettings.js +19 -0
  6. package/lib/models/command/ShutterSetLevelCommand.d.ts +1 -0
  7. package/lib/models/command/ShutterSetLevelCommand.js +1 -0
  8. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +1 -0
  9. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +1 -0
  10. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +1 -0
  11. package/lib/models/command/WindowSetDesiredPositionCommand.js +1 -0
  12. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +1 -0
  13. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +1 -0
  14. package/lib/models/command/actuatorSetStateCommand.d.ts +11 -3
  15. package/lib/models/command/actuatorSetStateCommand.js +8 -6
  16. package/lib/models/command/actuatorToggleCommand.d.ts +1 -1
  17. package/lib/models/command/actuatorToggleCommand.js +1 -3
  18. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +1 -0
  19. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +1 -0
  20. package/lib/models/command/baseCommand.d.ts +8 -0
  21. package/lib/models/command/blockAutomaticCommand.d.ts +20 -5
  22. package/lib/models/command/blockAutomaticCommand.js +23 -5
  23. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +7 -1
  24. package/lib/models/command/blockAutomaticLiftBlockCommand.js +7 -1
  25. package/lib/models/command/blockAutomaticUntilCommand.d.ts +12 -3
  26. package/lib/models/command/blockAutomaticUntilCommand.js +10 -3
  27. package/lib/models/command/dimmerSetLightCommand.d.ts +6 -2
  28. package/lib/models/command/dimmerSetLightCommand.js +12 -8
  29. package/lib/models/command/floorSetAllShuttersCommand.d.ts +1 -0
  30. package/lib/models/command/floorSetAllShuttersCommand.js +1 -0
  31. package/lib/models/command/lampSetLightCommand.d.ts +6 -2
  32. package/lib/models/command/lampSetLightCommand.js +8 -4
  33. package/lib/models/command/lampSetTimeBasedCommand.d.ts +11 -4
  34. package/lib/models/command/lampSetTimeBasedCommand.js +5 -7
  35. package/lib/models/command/lampToggleLightCommand.d.ts +1 -0
  36. package/lib/models/command/lampToggleLightCommand.js +1 -0
  37. package/lib/models/command/ledSetLightCommand.d.ts +6 -2
  38. package/lib/models/command/ledSetLightCommand.js +12 -8
  39. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +1 -0
  40. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +1 -0
  41. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +1 -1
  42. package/lib/models/command/restoreTargetAutomaticValueCommand.js +1 -3
  43. package/lib/models/command/roomRestoreLightCommand.d.ts +1 -0
  44. package/lib/models/command/roomRestoreLightCommand.js +1 -0
  45. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +1 -0
  46. package/lib/models/command/roomRestoreShutterPositionCommand.js +1 -0
  47. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +1 -0
  48. package/lib/models/command/roomSetLightTimeBasedCommand.js +1 -0
  49. package/lib/models/command/shutterSunriseUpCommand.d.ts +1 -0
  50. package/lib/models/command/shutterSunriseUpCommand.js +1 -0
  51. package/lib/models/command/shutterSunsetDownCommand.d.ts +1 -0
  52. package/lib/models/command/shutterSunsetDownCommand.js +1 -0
  53. package/lib/models/command/wledSetLightCommand.d.ts +5 -2
  54. package/lib/models/command/wledSetLightCommand.js +11 -8
  55. package/lib/models/connectionCallbacks.js +1 -0
  56. package/lib/models/deviceSettings/acSettings.d.ts +14 -1
  57. package/lib/models/deviceSettings/acSettings.js +14 -1
  58. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  59. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  60. package/lib/models/deviceSettings/dachsSettings.d.ts +3 -0
  61. package/lib/models/deviceSettings/dachsSettings.js +3 -0
  62. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  63. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  64. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  65. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  66. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  67. package/lib/models/deviceSettings/handleSettings.js +9 -0
  68. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -3
  69. package/lib/models/deviceSettings/heaterSettings.js +21 -3
  70. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  71. package/lib/models/deviceSettings/ledSettings.js +66 -0
  72. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -0
  73. package/lib/models/deviceSettings/motionSensorSettings.js +5 -0
  74. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  75. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -0
  76. package/lib/models/deviceSettings/shutterSettings.js +11 -0
  77. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  78. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  79. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  80. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  81. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  82. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  83. package/lib/models/deviceSettings/wledSettings.js +32 -0
  84. package/lib/models/groupSettings/heatGroupSettings.d.ts +9 -0
  85. package/lib/models/groupSettings/heatGroupSettings.js +9 -0
  86. package/lib/models/iIdHolder.d.ts +15 -3
  87. package/lib/models/index.d.ts +1 -1
  88. package/lib/models/index.js +3 -1
  89. package/lib/models/objectSettings.d.ts +3 -0
  90. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  91. package/lib/models/persistence/EnergyCalculation.js +30 -4
  92. package/lib/models/persistence/index.d.ts +0 -2
  93. package/lib/models/persistence/index.js +0 -2
  94. package/lib/models/rooms/RoomBase.d.ts +10 -0
  95. package/lib/models/rooms/RoomBase.js +1 -0
  96. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  97. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  98. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +9 -0
  99. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +1 -1
  100. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  101. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  102. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  103. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  104. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  105. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  106. package/lib/models/rooms/iRoomBase.d.ts +24 -2
  107. package/lib/models/rooms/iRoomImportEnforcer.d.ts +4 -0
  108. package/lib/models/timeCallback.d.ts +7 -0
  109. package/lib/models/timeCallback.js +4 -1
  110. package/lib/server/config/iAsusConfig.d.ts +15 -0
  111. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  112. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  113. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  114. package/lib/server/config/iConfig.d.ts +92 -5
  115. package/lib/server/config/iDachsSettings.d.ts +16 -0
  116. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  117. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  118. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  119. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  120. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  121. package/lib/server/config/iLogSettings.d.ts +36 -1
  122. package/lib/server/config/iMp3Settings.d.ts +10 -0
  123. package/lib/server/config/iMuellSettings.d.ts +7 -0
  124. package/lib/server/config/iNewsSettings.d.ts +13 -0
  125. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  126. package/lib/server/config/iPollySettings.d.ts +22 -0
  127. package/lib/server/config/iRestSettings.d.ts +10 -0
  128. package/lib/server/config/iSonosSettings.d.ts +10 -0
  129. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  130. package/lib/server/config/iTibberSettings.d.ts +10 -0
  131. package/lib/server/config/iTimePair.d.ts +9 -0
  132. package/lib/server/config/iTimeSettings.d.ts +9 -0
  133. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  134. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  135. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  136. package/lib/server/config/iVictronSettings.d.ts +14 -0
  137. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  138. package/lib/server/config/index.d.ts +1 -0
  139. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  140. package/lib/server/devices/DeviceCapability.js +1 -0
  141. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  142. package/lib/server/devices/DeviceInfo.js +6 -0
  143. package/lib/server/devices/Griffe.js +1 -1
  144. package/lib/server/devices/Heizgruppen.js +2 -2
  145. package/lib/server/devices/IoBrokerBaseDevice.d.ts +23 -2
  146. package/lib/server/devices/IoBrokerBaseDevice.js +16 -4
  147. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +14 -3
  148. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +2 -0
  149. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +1 -1
  150. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +2 -0
  151. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  152. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +33 -4
  153. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +38 -5
  154. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +10 -2
  155. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +19 -0
  156. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +16 -2
  157. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +11 -0
  158. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +15 -3
  159. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +28 -2
  160. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +13 -1
  161. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  162. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +6 -1
  163. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +16 -1
  164. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  165. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  166. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  167. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +14 -0
  168. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  169. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +25 -2
  170. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +18 -1
  171. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +6 -1
  172. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +15 -10
  173. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +21 -3
  174. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +7 -1
  175. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +8 -0
  176. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -4
  177. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  178. package/lib/server/devices/blueIris/cameraDevice.d.ts +47 -31
  179. package/lib/server/devices/blueIris/cameraDevice.js +75 -74
  180. package/lib/server/devices/button/button.d.ts +0 -1
  181. package/lib/server/devices/button/button.js +0 -4
  182. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  183. package/lib/server/devices/button/buttonCallback.js +10 -0
  184. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  185. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  186. package/lib/server/devices/button/index.d.ts +1 -0
  187. package/lib/server/devices/button/index.js +3 -0
  188. package/lib/server/devices/dachs/dachs.d.ts +31 -9
  189. package/lib/server/devices/dachs/dachs.js +27 -17
  190. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +20 -1
  191. package/lib/server/devices/dachs/dachsTemperatureSensor.js +20 -3
  192. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  193. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  194. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  195. package/lib/server/devices/dachs/lib/dachsHttpClient.js +2 -2
  196. package/lib/server/devices/device-cluster.d.ts +3 -0
  197. package/lib/server/devices/device-cluster.js +1 -1
  198. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  199. package/lib/server/devices/deviceUpdater.js +1 -4
  200. package/lib/server/devices/devices.d.ts +43 -7
  201. package/lib/server/devices/devices.js +42 -6
  202. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  203. package/lib/server/devices/espresense/detectedBluetoothDevice.js +13 -0
  204. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  205. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  206. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  207. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  208. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  209. package/lib/server/devices/espresense/trilateration.js +7 -0
  210. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  211. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  212. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  213. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  214. package/lib/server/devices/groups/Window.d.ts +6 -1
  215. package/lib/server/devices/groups/Window.js +15 -8
  216. package/lib/server/devices/groups/base-group.d.ts +4 -0
  217. package/lib/server/devices/groups/base-group.js +3 -0
  218. package/lib/server/devices/groups/heatGroup.d.ts +1 -0
  219. package/lib/server/devices/groups/heatGroup.js +3 -2
  220. package/lib/server/devices/groups/lightGroup.d.ts +8 -0
  221. package/lib/server/devices/groups/lightGroup.js +4 -4
  222. package/lib/server/devices/groups/tasterGroup.js +6 -6
  223. package/lib/server/devices/groups/windowGroup.d.ts +11 -1
  224. package/lib/server/devices/groups/windowGroup.js +2 -2
  225. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  226. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  227. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +7 -4
  228. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +9 -10
  229. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  230. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  231. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +27 -5
  232. package/lib/server/devices/hmIPDevices/hmIpGriff.js +59 -37
  233. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +22 -1
  234. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +23 -4
  235. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +1 -0
  236. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +1 -0
  237. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +6 -0
  238. package/lib/server/devices/hmIPDevices/hmIpLampe.js +6 -1
  239. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +3 -1
  240. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +4 -2
  241. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +2 -0
  242. package/lib/server/devices/hmIPDevices/hmIpRoll.js +5 -3
  243. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +15 -0
  244. package/lib/server/devices/hmIPDevices/hmIpTaster.js +9 -0
  245. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +1 -0
  246. package/lib/server/devices/hmIPDevices/hmIpTherm.js +1 -0
  247. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  248. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  249. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  250. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  251. package/lib/server/devices/iDeviceUpdater.d.ts +3 -0
  252. package/lib/server/devices/index.d.ts +1 -0
  253. package/lib/server/devices/index.js +3 -0
  254. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +2 -0
  255. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +4 -2
  256. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  257. package/lib/server/devices/nameAmountValuePair.js +10 -0
  258. package/lib/server/devices/scene/room-scene.d.ts +23 -6
  259. package/lib/server/devices/scene/room-scene.js +18 -4
  260. package/lib/server/devices/sharedFunctions/lampUtils.js +11 -7
  261. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  262. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  263. package/lib/server/devices/shelly/shellyTrv.d.ts +28 -16
  264. package/lib/server/devices/shelly/shellyTrv.js +46 -45
  265. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  266. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  267. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  268. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  269. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  270. package/lib/server/devices/tv/samsungTv.js +1 -0
  271. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  272. package/lib/server/devices/tv/tvDevice.js +4 -3
  273. package/lib/server/devices/wledDevice.d.ts +15 -2
  274. package/lib/server/devices/wledDevice.js +21 -5
  275. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +11 -0
  276. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +13 -3
  277. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -3
  278. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +7 -5
  279. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +16 -4
  280. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +25 -13
  281. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +17 -4
  282. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +17 -11
  283. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +7 -7
  284. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +10 -10
  285. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +12 -2
  286. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +11 -1
  287. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +19 -11
  288. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +44 -40
  289. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +10 -0
  290. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +13 -3
  291. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +8 -0
  292. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  293. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  294. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  295. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  296. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  297. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  298. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  299. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +49 -11
  300. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +98 -30
  301. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +12 -1
  302. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +15 -11
  303. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +14 -5
  304. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +20 -13
  305. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +8 -1
  306. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +14 -7
  307. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +19 -1
  308. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +25 -7
  309. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  310. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +1 -0
  311. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +1 -0
  312. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +1 -0
  313. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -1
  314. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +1 -3
  315. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +5 -0
  316. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +6 -1
  317. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  318. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +1 -0
  319. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  320. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  321. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  322. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  323. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +17 -0
  324. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +18 -1
  325. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  326. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  327. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +7 -1
  328. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +7 -3
  329. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +5 -0
  330. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +6 -1
  331. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  332. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +1 -0
  333. package/lib/server/ioBroker/connection.d.ts +1 -0
  334. package/lib/server/ioBroker/connection.js +8 -7
  335. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  336. package/lib/server/ioBroker/ioBroker.main.js +4 -3
  337. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  338. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  339. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  340. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  341. package/lib/server/services/ShutterService.js +3 -3
  342. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  343. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  344. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  345. package/lib/server/services/Sonos/mp3-server.js +3 -1
  346. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  347. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  348. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  349. package/lib/server/services/Sonos/polly-service.js +9 -6
  350. package/lib/server/services/Sonos/sonos-service.d.ts +0 -5
  351. package/lib/server/services/Sonos/sonos-service.js +6 -10
  352. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  353. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  354. package/lib/server/services/Telegram/telegram-service.js +8 -3
  355. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  356. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  357. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  358. package/lib/server/services/Translation/index.d.ts +1 -0
  359. package/lib/server/services/ac/ac-device.d.ts +38 -1
  360. package/lib/server/services/ac/ac-device.js +45 -12
  361. package/lib/server/services/ac/daikin-service.js +2 -2
  362. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  363. package/lib/server/services/ac/own-ac-devices.js +3 -0
  364. package/lib/server/services/ac/own-daikin-device.d.ts +17 -0
  365. package/lib/server/services/ac/own-daikin-device.js +20 -3
  366. package/lib/server/services/api/api-service.d.ts +8 -8
  367. package/lib/server/services/api/api-service.js +26 -26
  368. package/lib/server/services/blockAutomaticHandler.d.ts +5 -0
  369. package/lib/server/services/blockAutomaticHandler.js +20 -8
  370. package/lib/server/services/calendar/index.d.ts +1 -0
  371. package/lib/server/services/calendar/index.js +3 -0
  372. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  373. package/lib/server/services/calendar/muell-tonne.js +10 -0
  374. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  375. package/lib/server/services/calendar/m/303/274ll-service.js +10 -4
  376. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  377. package/lib/server/services/calendar/name-date-pair.js +10 -0
  378. package/lib/server/services/dbo/iPersist.d.ts +37 -30
  379. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  380. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  381. package/lib/server/services/file-info.d.ts +5 -0
  382. package/lib/server/services/file-info.js +10 -0
  383. package/lib/server/services/govee/govee-service.d.ts +1 -5
  384. package/lib/server/services/govee/govee-service.js +3 -5
  385. package/lib/server/services/govee/own-govee-device.d.ts +17 -12
  386. package/lib/server/services/govee/own-govee-device.js +17 -18
  387. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  388. package/lib/server/services/govee/own-govee-devices.js +3 -0
  389. package/lib/server/services/https-service.js +1 -1
  390. package/lib/server/services/index.d.ts +1 -0
  391. package/lib/server/services/index.js +3 -0
  392. package/lib/server/services/log-service/index.d.ts +1 -0
  393. package/lib/server/services/log-service/index.js +3 -0
  394. package/lib/server/services/log-service/log-debug-type.d.ts +12 -0
  395. package/lib/server/services/log-service/log-debug-type.js +16 -0
  396. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  397. package/lib/server/services/log-service/log-filter-data.js +6 -15
  398. package/lib/server/services/log-service/log-service.d.ts +15 -2
  399. package/lib/server/services/log-service/log-service.js +28 -15
  400. package/lib/server/services/news-service.d.ts +4 -1
  401. package/lib/server/services/news-service.js +9 -9
  402. package/lib/server/services/room-service/room-service.d.ts +17 -2
  403. package/lib/server/services/room-service/room-service.js +23 -8
  404. package/lib/server/services/settings-service.d.ts +3 -0
  405. package/lib/server/services/time-callback-service.js +1 -1
  406. package/lib/server/services/utils/RGB.d.ts +6 -0
  407. package/lib/server/services/utils/RGB.js +11 -0
  408. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  409. package/lib/server/services/utils/catchEmResult.js +10 -0
  410. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  411. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  412. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  413. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  414. package/lib/server/services/utils/iDisposeable.d.ts +3 -0
  415. package/lib/server/services/utils/index.d.ts +4 -1
  416. package/lib/server/services/utils/index.js +8 -1
  417. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  418. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  419. package/lib/server/services/utils/utils.d.ts +9 -13
  420. package/lib/server/services/victron/victron-device.d.ts +4 -0
  421. package/lib/server/services/victron/victron-device.js +10 -7
  422. package/lib/server/services/weather/index.d.ts +2 -0
  423. package/lib/server/services/weather/index.js +3 -0
  424. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  425. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  426. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  427. package/lib/server/services/weather/weather-response.d.ts +16 -0
  428. package/lib/server/services/weather/weather-response.js +2 -0
  429. package/lib/server/services/weather/weather-service.d.ts +11 -17
  430. package/lib/server/services/weather/weather-service.js +28 -22
  431. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  432. package/lib/tsconfig.tsbuildinfo +1 -1
  433. package/package.json +1 -3
  434. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  435. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  436. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  437. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  438. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  439. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -1,4 +1,14 @@
1
+ /**
2
+ * The settings for the Sonos-Service (if present).
3
+ */
1
4
  export interface iSonosSettings {
5
+ /**
6
+ * Whether the Sonos service should be active.
7
+ */
2
8
  active: boolean;
9
+ /**
10
+ * Whether Room Default Callbacks should be added to start Radio on Bottom Right long button press.
11
+ * @warning This can collide with AC-Control (@see {@link iDaikinSettings.buttonBotRightForAc})
12
+ */
3
13
  buttonBotRightForRadio?: boolean;
4
14
  }
@@ -1,7 +1,24 @@
1
1
  import { LogLevel } from '../../models';
2
+ /**
3
+ * The settings for the telegram-service (if needed).
4
+ * Telegram can be used to have a communication channel to the house and to receive notifications.
5
+ */
2
6
  export interface iTelegramSettings {
7
+ /**
8
+ * The threshold for the log level to trigger a message to telegram
9
+ * TODO: Maybe migrate to {@link iLogSettings}
10
+ */
3
11
  logLevel: LogLevel;
12
+ /**
13
+ * The token for the telegram bot
14
+ */
4
15
  telegramToken: string;
16
+ /**
17
+ * The allowed IDs for clients interacting with the bot
18
+ */
5
19
  allowedIDs: number[];
20
+ /**
21
+ * The IDs that are subscribed to updates from us (e.g. for notifications)
22
+ */
6
23
  subscribedIDs: number[];
7
24
  }
@@ -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() {
@@ -10,7 +10,7 @@ class Griffe {
10
10
  griffe.sort((a, b) => {
11
11
  return b.position - a.position;
12
12
  });
13
- const response = [`These are the current handle positions:`];
13
+ const response = ['These are the current handle positions:'];
14
14
  for (const g of griffe) {
15
15
  response.push(`${models_1.WindowPosition[g.position]} Window: "${g.info.customName}"`);
16
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,28 +8,40 @@ 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[];
17
25
  protected _debounceStateDelay: number;
18
26
  protected _lastWrite: number;
27
+ protected stateMap: Map<string, ioBroker.State>;
28
+ /** @inheritDoc */
19
29
  get customName(): string;
30
+ /** @inheritDoc */
20
31
  get room(): RoomBase;
21
32
  protected readonly individualStateCallbacks: Map<string, Array<(val: ioBroker.StateValue) => void>>;
22
33
  protected constructor(_info: IoBrokerDeviceInfo, deviceType: DeviceType);
34
+ /** @inheritDoc */
23
35
  get id(): string;
24
36
  /**
25
37
  * Getter info
26
38
  * @returns The device info
27
39
  */
28
40
  get info(): IoBrokerDeviceInfo;
29
- set info(value: IoBrokerDeviceInfo);
30
41
  get ioConn(): IOBrokerConnection | undefined;
31
42
  static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
32
43
  static checkMissing(): void;
44
+ /** @inheritDoc */
33
45
  loadDeviceSettings(): void;
34
46
  /**
35
47
  * Allows to react on the state change of a given state with the passed cb
@@ -43,9 +55,18 @@ export declare abstract class IoBrokerBaseDevice implements iRoomDevice {
43
55
  * @returns Whether a connection exists
44
56
  */
45
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
+ */
46
65
  abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
47
66
  log(level: LogLevel, message: string, logDebugType?: LogDebugType): void;
67
+ /** @inheritDoc */
48
68
  toJSON(): Partial<IoBrokerBaseDevice>;
69
+ /** @inheritDoc */
49
70
  persistDeviceInfo(): void;
50
71
  protected addToCorrectRoom(): void;
51
72
  /**
@@ -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,17 +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 = [];
23
30
  // If configured > 0, this indicates the minimum time between state writes in ms
24
31
  this._debounceStateDelay = 0;
25
32
  this._lastWrite = 0;
33
+ this.stateMap = new Map();
26
34
  this.individualStateCallbacks = new Map();
27
35
  this.addToCorrectRoom();
28
36
  this.persistDeviceInfo();
29
37
  services_1.Utils.guardedTimeout(this.loadDeviceSettings, 300, this);
30
38
  }
39
+ /** @inheritDoc */
31
40
  get id() {
32
41
  const result = services_1.Utils.guard(this.info.allDevicesKey);
33
42
  if (result === '0' || result === '1') {
@@ -42,15 +51,12 @@ class IoBrokerBaseDevice {
42
51
  get info() {
43
52
  return this._info;
44
53
  }
45
- set info(value) {
46
- this._info = value;
47
- }
48
54
  get ioConn() {
49
55
  return ioBroker_1.ioBrokerMain.iOConnection;
50
56
  }
51
57
  static addRoom(shortName, settings) {
52
58
  if (this.roomAddingSettings[shortName] !== undefined) {
53
- 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}"`);
54
60
  return;
55
61
  }
56
62
  this.roomAddingSettings[shortName] = settings;
@@ -60,6 +66,7 @@ class IoBrokerBaseDevice {
60
66
  this.roomAddingSettings[rName].checkMissing();
61
67
  }
62
68
  }
69
+ /** @inheritDoc */
63
70
  loadDeviceSettings() {
64
71
  var _a;
65
72
  (_a = this.settings) === null || _a === void 0 ? void 0 : _a.initializeFromDb(this);
@@ -98,9 +105,11 @@ class IoBrokerBaseDevice {
98
105
  debugType: logDebugType,
99
106
  });
100
107
  }
108
+ /** @inheritDoc */
101
109
  toJSON() {
102
110
  return services_1.Utils.jsonFilter(this, ['individualStateCallbacks'], ['_room']);
103
111
  }
112
+ /** @inheritDoc */
104
113
  persistDeviceInfo() {
105
114
  services_1.Utils.guardedTimeout(() => {
106
115
  var _a;
@@ -173,4 +182,7 @@ class IoBrokerBaseDevice {
173
182
  }
174
183
  }
175
184
  exports.IoBrokerBaseDevice = IoBrokerBaseDevice;
185
+ /**
186
+ * The settings for adding devices to Rooms
187
+ */
176
188
  IoBrokerBaseDevice.roomAddingSettings = {};
@@ -3,6 +3,8 @@ import { AcMode } from '../../services';
3
3
  import { iBaseDevice } from './iBaseDevice';
4
4
  /**
5
5
  * Interface for normal air-conditioning devices
6
+ *
7
+ * For devices with {@link DeviceCapability.ac} capability.
6
8
  * TODO: Migrate to new Command-Based System
7
9
  * TODO: Extend from iActuator
8
10
  */
@@ -15,6 +17,10 @@ export interface iAcDevice extends iBaseDevice {
15
17
  * Whether the air-conditioning device is currently on
16
18
  */
17
19
  readonly on: boolean;
20
+ /**
21
+ * The temperature of the room where this device is located
22
+ */
23
+ readonly roomTemperature: number;
18
24
  /**
19
25
  * The current temperature of the air-conditioning device in degrees Celsius
20
26
  */
@@ -25,13 +31,13 @@ export interface iAcDevice extends iBaseDevice {
25
31
  readonly mode: AcMode;
26
32
  /**
27
33
  * This function should be called to inform the air-conditioning device about a change of the room temperature
28
- * @param {number} newTemperatur - The new temperature of the room in degrees Celsius
34
+ * @param newTemperatur - The new temperature of the room in degrees Celsius
29
35
  */
30
36
  onTemperaturChange(newTemperatur: number): void;
31
37
  /**
32
38
  * Updates the desired mode of the air-conditioning device and writes it to the device if desired
33
- * @param {AcMode} mode - The new desired mode
34
- * @param {boolean} writeToDevice - Whether to write the new mode to the device
39
+ * @param mode - The new desired mode
40
+ * @param writeToDevice - Whether to write the new mode to the device
35
41
  */
36
42
  setDesiredMode(mode: AcMode, writeToDevice: boolean): void;
37
43
  /**
@@ -42,4 +48,9 @@ export interface iAcDevice extends iBaseDevice {
42
48
  * Turns the air-conditioning device off
43
49
  */
44
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;
45
56
  }
@@ -4,6 +4,8 @@ import { iTemporaryDisableAutomatic } from './iTemporaryDisableAutomatic';
4
4
  /**
5
5
  * Interface for Actuators.
6
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.
7
9
  */
8
10
  export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
9
11
  /**
@@ -18,7 +18,7 @@ export interface iBaseDevice extends iIdHolder {
18
18
  /**
19
19
  * Some basic information about the device (mainly its name, id, room, etc.)
20
20
  */
21
- info: DeviceInfo;
21
+ readonly info: DeviceInfo;
22
22
  /**
23
23
  * The capabilities of the device thus referencing other interfaces which then can be used to treat devices regardless of their hardware-type.
24
24
  */
@@ -2,6 +2,8 @@ import { iRoomDevice } from './iRoomDevice';
2
2
  /**
3
3
  * Interface for Battery Devices.
4
4
  * A battery device can be any device that is powered by a battery e.g. a remote, a sensor, etc.
5
+ *
6
+ * For devices with {@link DeviceCapability.battery} capability.
5
7
  */
6
8
  export interface iBatteryDevice extends iRoomDevice {
7
9
  /**
@@ -1,6 +1,14 @@
1
1
  import { iRoomDevice } from './iRoomDevice';
2
2
  import { ProximityCallback, TrilaterationBasePoint } from '../espresense';
3
+ /**
4
+ * Interface for Bluetooth detector devices, providing proximity information for tracked devices
5
+ *
6
+ * For devices with {@link DeviceCapability.bluetoothDetector} capability.
7
+ */
3
8
  export interface iBluetoothDetector extends iRoomDevice {
9
+ /**
10
+ * The position of the device to allow for trilateration-calculations
11
+ */
4
12
  position: TrilaterationBasePoint;
5
13
  /**
6
14
  * Add callback to react on a specified device entering/leaving a given zone
@@ -9,17 +17,17 @@ export interface iBluetoothDetector extends iRoomDevice {
9
17
  addProximityCallback(cb: ProximityCallback): void;
10
18
  /**
11
19
  * Gets the distance of a currently present device
12
- * @param {string} deviceName - The mapped Device name
13
- * @param {number} maxAge - The maximum age in seconds to still respect that device
14
- * @returns {number | undefined} Distance in meters or undefined if currently not present
20
+ * @param deviceName - The mapped Device name
21
+ * @param maxAge - The maximum age in seconds to still respect that device
22
+ * @returns Distance in meters or undefined if currently not present
15
23
  */
16
24
  distanceOfDevice(deviceName: string, maxAge: number): number | undefined;
17
25
  /**
18
26
  * Check if a device is currently present and below the given Distance
19
- * @param {string} deviceName - The mapped Device name
20
- * @param {number} maxDistance - The maximum distance in meters
21
- * @param {number} maxAge - The maximum age in seconds to still respect that device
22
- * @returns {boolean}
27
+ * @param deviceName - The mapped Device name
28
+ * @param maxDistance - The maximum distance in meters
29
+ * @param maxAge - The maximum age in seconds to still respect that device
30
+ * @returns
23
31
  */
24
32
  isDevicePresent(deviceName: string, maxDistance: number, maxAge: number): boolean;
25
33
  }
@@ -1,18 +1,47 @@
1
1
  import { Button, ButtonPosition, ButtonPressType } from '../button';
2
2
  import { iRoomDevice } from './iRoomDevice';
3
+ /**
4
+ * Interface for Button Switch devices, providing e.g. access to the buttons and their assignments.
5
+ *
6
+ * For devices with {@link DeviceCapability.buttonSwitch} capability.
7
+ */
3
8
  export interface iButtonSwitch extends iRoomDevice {
9
+ /**
10
+ * The Top-Left Button which can be found on normale 4-6 Button switches
11
+ */
4
12
  buttonTopLeft: Button | undefined;
13
+ /**
14
+ * The Top-Right Button which can be found on normale 4-6 Button switches
15
+ */
5
16
  buttonTopRight: Button | undefined;
17
+ /**
18
+ * The vertically Middle and horicontally Left Button which can be found on 6 Button switches
19
+ */
6
20
  buttonMidLeft: Button | undefined;
21
+ /**
22
+ * The vertically Middle and horicontally Right Button which can be found on 6 Button switches
23
+ */
7
24
  buttonMidRight: Button | undefined;
25
+ /**
26
+ * The Bottom-Left Button which can be found on normale 4-6 Button switches
27
+ */
8
28
  buttonBotLeft: Button | undefined;
29
+ /**
30
+ * The Bottom-Right Button which can be found on normale 4-6 Button switches
31
+ */
9
32
  buttonBotRight: Button | undefined;
33
+ /**
34
+ * The Bottom Button which can be found on vertical 2 Button switches
35
+ */
10
36
  buttonBot: Button | undefined;
37
+ /**
38
+ * The Top Button which can be found on vertical 2 Button switches
39
+ */
11
40
  buttonTop: Button | undefined;
12
41
  /**
13
42
  * Persist the button press to the persistent storage
14
- * @param {string} buttonName - The name of the button
15
- * @param {ButtonPressType} pressType - The type of the button press
43
+ * @param buttonName - The name of the button
44
+ * @param pressType - The type of the button press
16
45
  */
17
46
  persist(buttonName: string, pressType: ButtonPressType): void;
18
47
  /**
@@ -21,8 +50,8 @@ export interface iButtonSwitch extends iRoomDevice {
21
50
  getButtonAssignment(): string;
22
51
  /**
23
52
  * Method to simulate a button press (e.g. for testing or to use a specific logic which is bound to this button)
24
- * @param {ButtonPosition} position - The position of the button
25
- * @param {ButtonPressType} pressType - The type of the button press
53
+ * @param position - The position of the button
54
+ * @param pressType - The type of the button press
26
55
  */
27
56
  pressButton(position: ButtonPosition, pressType: ButtonPressType): Error | null;
28
57
  }
@@ -1,19 +1,52 @@
1
1
  import { iMotionSensor } from './iMotionSensor';
2
2
  import { CameraSettings } from '../../../models';
3
+ import { iBaseDevice } from './iBaseDevice';
4
+ /**
5
+ * An interface for any device with {@link DeviceCapability.camera} capability
6
+ */
3
7
  export interface iCameraDevice extends iMotionSensor {
8
+ /**
9
+ * The settings of the camera device
10
+ */
4
11
  settings: CameraSettings;
12
+ /**
13
+ * The last image taken by the camera as a base64 encoded string
14
+ */
5
15
  readonly lastImage: string;
16
+ /**
17
+ * The link to access the mpeg stream of the camera
18
+ */
6
19
  readonly mpegStreamLink: string;
20
+ /**
21
+ * The link to access the h264 stream of the camera
22
+ */
7
23
  readonly h264IosStreamLink: string;
24
+ /**
25
+ * The link to access the rtsp stream of the camera
26
+ */
8
27
  readonly rtspStreamLink: string;
28
+ /**
29
+ * The link to obtain a fresh image from the camera
30
+ */
9
31
  readonly currentImageLink: string;
10
- readonly alarmBlockedByGriff: boolean;
11
- readonly alarmBlockedByGriffTimeStamp: number;
12
32
  /**
13
- * Inform this camera of certain handles being opened/closed to allow it to react accordingly (e.g. don't send alarm, for owner going into the garden)
14
- * @param {boolean} open - Whether the handle is open or closed
33
+ * Whether the alarm is currently blocked by a certain device (e.g. an open handle for house-to-garden door)
34
+ */
35
+ readonly alarmBlockedByDevices: boolean;
36
+ /**
37
+ * Whether the camera has currently detected a dog
38
+ */
39
+ readonly dogDetected: boolean;
40
+ /**
41
+ * Whether the camera has currently detected a human
42
+ */
43
+ readonly personDetected: boolean;
44
+ /**
45
+ * Inform this camera of a device, which blocks the alarm (or should unlift its block)
46
+ * @param device - The device to block/unblock the alarm for
47
+ * @param block - Whether to block the alarm for the device or lift the block
15
48
  */
16
- onGriffUpdate(open: boolean): void;
49
+ blockForDevice(device: iBaseDevice, block: boolean): void;
17
50
  /**
18
51
  * Inform this camera of state updates within iOBroker
19
52
  * TODO: Make camera independent of iOBroker