hoffmation-base 3.0.0-alpha.8 → 3.0.0-alpha.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/lib/index.d.ts +5 -1
  2. package/lib/index.js +28 -25
  3. package/lib/liquid-pid.d.ts +2 -5
  4. package/lib/liquid-pid.js +3 -5
  5. package/lib/models/action/baseAction.d.ts +4 -0
  6. package/lib/models/action/baseAction.js +10 -0
  7. package/lib/models/action/batteryLevelChangeAction.d.ts +13 -0
  8. package/lib/models/action/batteryLevelChangeAction.js +14 -0
  9. package/lib/models/action/humiditySensorChangeAction.d.ts +16 -0
  10. package/lib/models/action/humiditySensorChangeAction.js +15 -0
  11. package/lib/models/action/index.d.ts +9 -0
  12. package/lib/models/action/index.js +29 -0
  13. package/lib/models/action/motionSensorAction.d.ts +16 -0
  14. package/lib/models/action/motionSensorAction.js +15 -0
  15. package/lib/models/action/presenceGroupAnyMovementAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupAnyMovementAction.js +13 -0
  17. package/lib/models/action/presenceGroupFirstEnterAction.d.ts +7 -0
  18. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  19. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  20. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  21. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  22. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  23. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  24. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  25. package/lib/models/base64Image.d.ts +0 -1
  26. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  27. package/lib/models/blockAutomaticSettings.js +19 -0
  28. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  29. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  30. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  31. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  32. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +11 -2
  33. package/lib/models/command/WindowSetDesiredPositionCommand.js +11 -2
  34. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  35. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  36. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  37. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  38. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  39. package/lib/models/command/actuatorToggleCommand.js +7 -4
  40. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  41. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  42. package/lib/models/command/baseCommand.d.ts +23 -2
  43. package/lib/models/command/baseCommand.js +41 -1
  44. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  45. package/lib/models/command/blockAutomaticCommand.js +40 -0
  46. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  47. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  48. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  49. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  50. package/lib/models/command/commandSource.d.ts +19 -0
  51. package/lib/models/command/commandSource.js +20 -0
  52. package/lib/models/command/commandType.d.ts +11 -0
  53. package/lib/models/command/commandType.js +11 -0
  54. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  55. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  56. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  57. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  58. package/lib/models/command/index.d.ts +3 -0
  59. package/lib/models/command/index.js +7 -1
  60. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  61. package/lib/models/command/lampSetLightCommand.js +15 -4
  62. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  63. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  64. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  65. package/lib/models/command/lampToggleLightCommand.js +7 -6
  66. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  67. package/lib/models/command/ledSetLightCommand.js +27 -17
  68. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  69. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  70. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  71. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  72. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  73. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  74. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  75. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  76. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  77. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  78. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  79. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  80. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  81. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  82. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  83. package/lib/models/command/wledSetLightCommand.js +23 -7
  84. package/lib/models/connectionCallbacks.d.ts +4 -4
  85. package/lib/models/connectionCallbacks.js +1 -0
  86. package/lib/models/deviceConfig.d.ts +3 -3
  87. package/lib/models/deviceSettings/acSettings.d.ts +23 -5
  88. package/lib/models/deviceSettings/acSettings.js +28 -8
  89. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  90. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  91. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  92. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  93. package/lib/models/deviceSettings/dachsSettings.d.ts +23 -0
  94. package/lib/models/deviceSettings/dachsSettings.js +29 -1
  95. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  96. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  97. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  98. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  99. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  100. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  101. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  102. package/lib/models/deviceSettings/handleSettings.js +9 -0
  103. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  104. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  105. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  106. package/lib/models/deviceSettings/ledSettings.js +76 -18
  107. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  108. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  109. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  111. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  112. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  113. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  114. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  115. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  116. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  117. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  118. package/lib/models/deviceSettings/wledSettings.js +37 -13
  119. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  120. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  121. package/lib/models/iIdHolder.d.ts +18 -0
  122. package/lib/models/index.d.ts +2 -1
  123. package/lib/models/index.js +4 -1
  124. package/lib/models/objectSettings.d.ts +5 -2
  125. package/lib/models/objectSettings.js +2 -2
  126. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  127. package/lib/models/persistence/EnergyCalculation.js +30 -4
  128. package/lib/models/persistence/index.d.ts +0 -2
  129. package/lib/models/persistence/index.js +0 -2
  130. package/lib/models/rooms/RoomBase.d.ts +12 -1
  131. package/lib/models/rooms/RoomBase.js +17 -8
  132. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  133. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  134. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  135. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  136. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  137. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  138. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  139. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  140. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  141. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  142. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  143. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  144. package/lib/models/timeCallback.d.ts +7 -0
  145. package/lib/models/timeCallback.js +16 -6
  146. package/lib/server/config/heatingMode.d.ts +2 -1
  147. package/lib/server/config/heatingMode.js +2 -1
  148. package/lib/server/config/iAsusConfig.d.ts +15 -0
  149. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  150. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  151. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  152. package/lib/server/config/iConfig.d.ts +94 -6
  153. package/lib/server/config/iDachsSettings.d.ts +16 -0
  154. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  155. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  156. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  157. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  158. package/lib/server/config/iGoveeSettings.js +2 -0
  159. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  160. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  161. package/lib/server/config/iLogSettings.d.ts +40 -1
  162. package/lib/server/config/iMp3Settings.d.ts +10 -0
  163. package/lib/server/config/iMuellSettings.d.ts +7 -0
  164. package/lib/server/config/iNewsSettings.d.ts +13 -0
  165. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  166. package/lib/server/config/iPollySettings.d.ts +22 -0
  167. package/lib/server/config/iRestSettings.d.ts +10 -0
  168. package/lib/server/config/iSonosSettings.d.ts +14 -0
  169. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  170. package/lib/server/config/iTibberSettings.d.ts +10 -0
  171. package/lib/server/config/iTimePair.d.ts +9 -0
  172. package/lib/server/config/iTimeSettings.d.ts +9 -0
  173. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  174. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  175. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  176. package/lib/server/config/iVictronSettings.d.ts +14 -0
  177. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  178. package/lib/server/config/index.d.ts +2 -0
  179. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  180. package/lib/server/devices/DeviceCapability.js +1 -0
  181. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  182. package/lib/server/devices/DeviceInfo.js +6 -0
  183. package/lib/server/devices/Griffe.js +1 -2
  184. package/lib/server/devices/Heizgruppen.js +2 -2
  185. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  186. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  187. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +8 -6
  188. package/lib/server/devices/IoBrokerDeviceInfo.js +50 -46
  189. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  190. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  191. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  192. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +21 -4
  193. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  194. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  195. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  196. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  197. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  198. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  199. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  200. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  201. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -5
  202. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -2
  203. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  204. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  205. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  207. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  209. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  210. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -2
  212. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  213. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  214. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  215. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -3
  216. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  217. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  218. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  219. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  220. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  221. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  222. package/lib/server/devices/button/button.d.ts +0 -1
  223. package/lib/server/devices/button/button.js +0 -4
  224. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  225. package/lib/server/devices/button/buttonCallback.js +10 -0
  226. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  227. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  228. package/lib/server/devices/button/index.d.ts +1 -0
  229. package/lib/server/devices/button/index.js +3 -0
  230. package/lib/server/devices/dachs/dachs.d.ts +46 -11
  231. package/lib/server/devices/dachs/dachs.js +113 -23
  232. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -4
  233. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  234. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  235. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  236. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  237. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  238. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  239. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  240. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  241. package/lib/server/devices/device-cluster.d.ts +4 -1
  242. package/lib/server/devices/device-cluster.js +9 -4
  243. package/lib/server/devices/deviceType.d.ts +5 -0
  244. package/lib/server/devices/deviceType.js +5 -0
  245. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  246. package/lib/server/devices/deviceUpdater.js +26 -4
  247. package/lib/server/devices/devices.d.ts +53 -7
  248. package/lib/server/devices/devices.js +78 -17
  249. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  250. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  251. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  252. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  253. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  254. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  255. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  256. package/lib/server/devices/espresense/trilateration.js +7 -0
  257. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  258. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  259. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  260. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  261. package/lib/server/devices/groups/Window.d.ts +14 -3
  262. package/lib/server/devices/groups/Window.js +28 -11
  263. package/lib/server/devices/groups/base-group.d.ts +4 -0
  264. package/lib/server/devices/groups/base-group.js +3 -0
  265. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  266. package/lib/server/devices/groups/heatGroup.js +11 -11
  267. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  268. package/lib/server/devices/groups/lightGroup.js +20 -39
  269. package/lib/server/devices/groups/presenceGroup.d.ts +17 -6
  270. package/lib/server/devices/groups/presenceGroup.js +73 -63
  271. package/lib/server/devices/groups/tasterGroup.js +6 -6
  272. package/lib/server/devices/groups/windowGroup.d.ts +16 -1
  273. package/lib/server/devices/groups/windowGroup.js +22 -7
  274. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  275. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  276. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  277. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  278. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  279. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  280. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +36 -5
  281. package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
  282. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -6
  283. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
  284. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
  285. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
  286. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  287. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  288. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +19 -9
  289. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
  290. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  291. package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
  292. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
  293. package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
  294. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
  295. package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
  296. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  297. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  298. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  299. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  300. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  301. package/lib/server/devices/index.d.ts +8 -2
  302. package/lib/server/devices/index.js +11 -2
  303. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  304. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  305. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  306. package/lib/server/devices/nameAmountValuePair.js +10 -0
  307. package/lib/server/devices/scene/room-scene.d.ts +23 -7
  308. package/lib/server/devices/scene/room-scene.js +18 -4
  309. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  310. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  311. package/lib/server/devices/shelly/index.d.ts +1 -0
  312. package/lib/server/devices/shelly/index.js +3 -1
  313. package/lib/server/devices/shelly/shellyActuator.d.ts +33 -0
  314. package/lib/server/devices/shelly/shellyActuator.js +84 -0
  315. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  316. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  317. package/lib/server/devices/shelly/shellyTrv.d.ts +37 -18
  318. package/lib/server/devices/shelly/shellyTrv.js +66 -45
  319. package/lib/server/devices/smartGarden/index.d.ts +6 -0
  320. package/lib/server/devices/smartGarden/index.js +22 -0
  321. package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +33 -0
  322. package/lib/server/devices/smartGarden/smartGardenDevice.js +98 -0
  323. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.d.ts +9 -0
  324. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.js +13 -0
  325. package/lib/server/devices/smartGarden/smartGardenMower.d.ts +35 -0
  326. package/lib/server/devices/smartGarden/smartGardenMower.js +107 -0
  327. package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +42 -0
  328. package/lib/server/devices/smartGarden/smartGardenSensor.js +119 -0
  329. package/lib/server/devices/smartGarden/smartGardenService.d.ts +7 -0
  330. package/lib/server/devices/smartGarden/smartGardenService.js +52 -0
  331. package/lib/server/devices/smartGarden/smartGardenValve.d.ts +36 -0
  332. package/lib/server/devices/smartGarden/smartGardenValve.js +105 -0
  333. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  334. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  335. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  336. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  337. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  338. package/lib/server/devices/tv/samsungTv.js +1 -0
  339. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  340. package/lib/server/devices/tv/tvDevice.js +4 -3
  341. package/lib/server/devices/velux/index.d.ts +4 -0
  342. package/lib/server/devices/velux/index.js +11 -0
  343. package/lib/server/devices/velux/veluxDevice.d.ts +13 -0
  344. package/lib/server/devices/velux/veluxDevice.js +43 -0
  345. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.d.ts +9 -0
  346. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.js +13 -0
  347. package/lib/server/devices/velux/veluxService.d.ts +7 -0
  348. package/lib/server/devices/velux/veluxService.js +44 -0
  349. package/lib/server/devices/velux/veluxShutter.d.ts +27 -0
  350. package/lib/server/devices/velux/veluxShutter.js +122 -0
  351. package/lib/server/devices/wledDevice.d.ts +15 -3
  352. package/lib/server/devices/wledDevice.js +42 -16
  353. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  354. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  355. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  356. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  357. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  358. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +8 -17
  359. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  360. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +25 -60
  361. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -14
  362. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
  363. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  364. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  365. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +7 -7
  366. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +14 -14
  367. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
  368. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
  369. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -15
  370. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
  371. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -4
  372. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
  373. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  374. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  375. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  376. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  377. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  378. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  379. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  380. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  381. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +58 -11
  382. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
  383. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -9
  384. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
  385. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  386. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  387. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  388. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  389. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +34 -8
  390. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
  391. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  392. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  393. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  394. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  395. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  396. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  397. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  398. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  399. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  400. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  401. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  402. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  403. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  404. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  405. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  406. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  407. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  408. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  409. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  410. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  411. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  412. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  413. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  414. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  415. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -9
  416. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
  417. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  418. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  419. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  420. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  421. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  422. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  423. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  424. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  425. package/lib/server/ioBroker/connection.d.ts +21 -22
  426. package/lib/server/ioBroker/connection.js +37 -28
  427. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  428. package/lib/server/ioBroker/ioBroker.main.js +12 -5
  429. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  430. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  431. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  432. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  433. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  434. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  435. package/lib/server/services/ShutterService.js +7 -6
  436. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  437. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  438. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  439. package/lib/server/services/Sonos/mp3-server.js +3 -1
  440. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  441. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  442. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  443. package/lib/server/services/Sonos/polly-service.js +10 -8
  444. package/lib/server/services/Sonos/sonos-service.d.ts +1 -5
  445. package/lib/server/services/Sonos/sonos-service.js +18 -17
  446. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  447. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  448. package/lib/server/services/Telegram/telegram-service.js +8 -3
  449. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  450. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  451. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  452. package/lib/server/services/Translation/index.d.ts +1 -0
  453. package/lib/server/services/Translation/res.d.ts +34 -19
  454. package/lib/server/services/Translation/res.js +34 -19
  455. package/lib/server/services/ac/ac-device.d.ts +50 -9
  456. package/lib/server/services/ac/ac-device.js +115 -41
  457. package/lib/server/services/ac/daikin-service.js +4 -3
  458. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  459. package/lib/server/services/ac/own-ac-devices.js +3 -0
  460. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  461. package/lib/server/services/ac/own-daikin-device.js +40 -7
  462. package/lib/server/services/api/api-service.d.ts +118 -53
  463. package/lib/server/services/api/api-service.js +170 -80
  464. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  465. package/lib/server/services/blockAutomaticHandler.js +34 -15
  466. package/lib/server/services/calendar/index.d.ts +1 -0
  467. package/lib/server/services/calendar/index.js +3 -0
  468. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  469. package/lib/server/services/calendar/muell-tonne.js +10 -0
  470. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  471. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  472. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  473. package/lib/server/services/calendar/name-date-pair.js +10 -0
  474. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  475. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  476. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  477. package/lib/server/services/file-info.d.ts +5 -0
  478. package/lib/server/services/file-info.js +10 -0
  479. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  480. package/lib/server/services/govee/govee-device-data.js +2 -0
  481. package/lib/server/services/govee/govee-service.d.ts +7 -9
  482. package/lib/server/services/govee/govee-service.js +73 -48
  483. package/lib/server/services/govee/own-govee-device.d.ts +19 -17
  484. package/lib/server/services/govee/own-govee-device.js +58 -58
  485. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  486. package/lib/server/services/govee/own-govee-devices.js +3 -0
  487. package/lib/server/services/https-service.d.ts +3 -2
  488. package/lib/server/services/https-service.js +4 -3
  489. package/lib/server/services/index.d.ts +1 -0
  490. package/lib/server/services/index.js +3 -0
  491. package/lib/server/services/log-service/index.d.ts +1 -0
  492. package/lib/server/services/log-service/index.js +3 -0
  493. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  494. package/lib/server/services/log-service/log-debug-type.js +17 -0
  495. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  496. package/lib/server/services/log-service/log-filter-data.js +6 -15
  497. package/lib/server/services/log-service/log-service.d.ts +17 -4
  498. package/lib/server/services/log-service/log-service.js +30 -17
  499. package/lib/server/services/news-service.d.ts +9 -7
  500. package/lib/server/services/news-service.js +14 -15
  501. package/lib/server/services/room-service/room-service.d.ts +20 -4
  502. package/lib/server/services/room-service/room-service.js +26 -10
  503. package/lib/server/services/settings-service.d.ts +6 -2
  504. package/lib/server/services/settings-service.js +3 -2
  505. package/lib/server/services/time-callback-service.js +1 -1
  506. package/lib/server/services/utils/RGB.d.ts +6 -0
  507. package/lib/server/services/utils/RGB.js +11 -0
  508. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  509. package/lib/server/services/utils/catchEmResult.js +10 -0
  510. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  511. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  512. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  513. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  514. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  515. package/lib/server/services/utils/index.d.ts +4 -1
  516. package/lib/server/services/utils/index.js +8 -1
  517. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  518. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  519. package/lib/server/services/utils/utils.d.ts +9 -14
  520. package/lib/server/services/victron/victron-device.d.ts +27 -10
  521. package/lib/server/services/victron/victron-device.js +94 -25
  522. package/lib/server/services/weather/index.d.ts +2 -0
  523. package/lib/server/services/weather/index.js +3 -0
  524. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  525. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  526. package/lib/server/services/weather/weather-current.d.ts +0 -2
  527. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  528. package/lib/server/services/weather/weather-response.d.ts +16 -0
  529. package/lib/server/services/weather/weather-response.js +2 -0
  530. package/lib/server/services/weather/weather-service.d.ts +16 -18
  531. package/lib/server/services/weather/weather-service.js +37 -22
  532. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  533. package/lib/tsconfig.tsbuildinfo +1 -1
  534. package/package.json +27 -29
  535. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  536. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  537. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  538. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  539. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  540. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -14,120 +14,130 @@ class PresenceGroup extends base_group_1.BaseGroup {
14
14
  this._lastLeftTimeout = null;
15
15
  this._lastLeftCbs = [];
16
16
  this._firstEnterCbs = [];
17
+ this._anyMovementCbs = [];
17
18
  this.deviceCluster.deviceMap.set(device_cluster_type_1.DeviceClusterType.MotionDetection, new device_list_1.DeviceList(motionSensorIds));
18
19
  }
20
+ get lastLeftDelayActive() {
21
+ return this.getTimeAfterReset() < 0;
22
+ }
19
23
  getMotionDetector() {
20
24
  return this.deviceCluster.getDevicesByType(device_cluster_type_1.DeviceClusterType.MotionDetection);
21
25
  }
22
26
  initCallbacks() {
23
27
  this.getMotionDetector().forEach((b) => {
24
- b.addMovementCallback((val) => {
25
- var _a;
26
- if (!val) {
28
+ b.addMovementCallback((action) => {
29
+ if (!action.motionDetected && !this.anyPresent()) {
30
+ this.motionSensorOnLastLeft(action);
27
31
  return;
28
32
  }
29
- if (services_1.RoomService.awayModeActive || (services_1.RoomService.nightAlarmActive && !b.settings.excludeFromNightAlarm)) {
30
- services_1.RoomService.startIntrusionAlarm(this.getRoom(), b);
33
+ if (!action.motionDetected && this.anyPresent()) {
34
+ this.resetLastLeftTimeout();
35
+ return;
31
36
  }
32
- if (!b.settings.seesWindow) {
33
- (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.changeVibrationMotionBlock(true);
37
+ // At this Point we can be certain about motion being detected.
38
+ this.log(models_1.LogLevel.Debug, `New Motion detected, present Amount: ${this.presentAmount()}`, services_1.LogDebugType.NewMovementState);
39
+ this.motionSensorOnAnyMovement(action);
40
+ if (this.presentAmount() === 1 && this._lastLeftTimeout === null) {
41
+ this.fireFistEnterCBs(action);
34
42
  }
35
- services_1.RoomService.movementHistory.add(`${services_1.Utils.nowString()}: Raum "${this.roomName}" Gerät "${b.info.fullName}"`);
43
+ this.resetLastLeftTimeout();
36
44
  });
37
45
  });
38
- this.addLastLeftCallback(() => {
46
+ this.addLastLeftCallback((action) => {
39
47
  var _a, _b;
40
48
  (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.changeVibrationMotionBlock(false);
41
- (_b = this.getRoom().LightGroup) === null || _b === void 0 ? void 0 : _b.switchAll(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Automatic, false, 'Presence Group LastLeftCallback'));
49
+ (_b = this.getRoom().LightGroup) === null || _b === void 0 ? void 0 : _b.switchAll(new models_1.ActuatorSetStateCommand(action, false, 'Presence Group LastLeftCallback'));
42
50
  });
43
- this.addFirstEnterCallback(() => {
51
+ this.addAnyMovementCallback((action) => {
44
52
  if (!this.getRoom().settings.lampenBeiBewegung) {
45
53
  return;
46
54
  }
47
55
  this.log(models_1.LogLevel.DeepTrace, `Bewegung im Raum ${this.roomName} festgestellt --> Licht einschalten`);
48
- this.getRoom().setLightTimeBased(new models_1.RoomSetLightTimeBasedCommand(models_1.CommandSource.Automatic, true, 'Motion detected'));
49
- });
50
- this.getMotionDetector().forEach((b) => {
51
- b.addMovementCallback((val) => {
52
- this.motionSensorOnFirstEnter(val);
53
- });
54
- });
55
- this.getMotionDetector().forEach((b) => {
56
- b.addMovementCallback((val) => {
57
- this.motionSensorOnLastLeft(val);
58
- });
56
+ this.getRoom().setLightTimeBased(new models_1.RoomSetLightTimeBasedCommand(action, true));
59
57
  });
60
58
  }
61
- presentAmount() {
62
- let count = 0;
63
- for (let i = 0; i < this.getMotionDetector().length; i++) {
64
- if (this.getMotionDetector()[i].movementDetected) {
65
- count++;
66
- }
67
- }
68
- return count;
69
- }
70
- anyPresent() {
71
- for (let i = 0; i < this.getMotionDetector().length; i++) {
72
- if (this.getMotionDetector()[i].movementDetected) {
73
- return true;
74
- }
59
+ anyPresent(includeMovementResetDelayCheck = false) {
60
+ if (includeMovementResetDelayCheck && this.lastLeftDelayActive) {
61
+ return true;
75
62
  }
76
- return false;
63
+ return this.presentAmount() > 0;
77
64
  }
78
65
  addLastLeftCallback(cb) {
79
66
  this._lastLeftCbs.push(cb);
80
67
  }
68
+ addAnyMovementCallback(cb) {
69
+ this._anyMovementCbs.push(cb);
70
+ }
71
+ presentAmount() {
72
+ return this.getMotionDetector().filter((b) => b.movementDetected).length;
73
+ }
74
+ fireFistEnterCBs(action) {
75
+ for (const cb of this._firstEnterCbs) {
76
+ cb(new models_1.PresenceGroupFirstEnterAction(action));
77
+ }
78
+ }
81
79
  addFirstEnterCallback(cb) {
82
80
  this._firstEnterCbs.push(cb);
83
81
  }
84
- motionSensorOnLastLeft(val) {
85
- if (val || this.anyPresent()) {
86
- this.resetLastLeftTimeout();
87
- return;
82
+ motionSensorOnAnyMovement(action) {
83
+ var _a;
84
+ this._lastMovement = new Date();
85
+ if (services_1.RoomService.awayModeActive || (services_1.RoomService.nightAlarmActive && !action.sensor.settings.excludeFromNightAlarm)) {
86
+ services_1.RoomService.startIntrusionAlarm(this.getRoom(), action.sensor);
87
+ }
88
+ if (!action.sensor.settings.seesWindow) {
89
+ (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.changeVibrationMotionBlock(true);
88
90
  }
89
- let timeAfterReset = services_1.Utils.nowMS() - this._lastMovement.getTime() - this.getRoom().settings.movementResetTimer * 1000;
91
+ services_1.RoomService.movementHistory.add(`${services_1.Utils.nowString()}: Raum "${this.roomName}" Gerät "${action.sensor.info.fullName}"`);
92
+ this.executeAnyMovementCbs(new models_1.PresenceGroupAnyMovementAction(action));
93
+ }
94
+ motionSensorOnLastLeft(action) {
95
+ let timeAfterReset = this.getTimeAfterReset();
90
96
  if (timeAfterReset > 0) {
97
+ this._lastLeftTimeout = null;
91
98
  this.log(models_1.LogLevel.Debug, `Movement reset. Active Motions: ${this.presentAmount()}\tTime after Last Movement including Reset: ${timeAfterReset}`);
92
- this.executeLastLeftCbs();
99
+ this.executeLastLeftCbs(new models_1.PresenceGroupLastLeftAction(action));
93
100
  return;
94
101
  }
95
- this.log(models_1.LogLevel.Debug, `Movement reset in ${this.roomName} delayed.`);
102
+ const newResetTime = new Date(services_1.Utils.nowMS() + Math.abs(timeAfterReset));
103
+ this.log(models_1.LogLevel.Debug, `Movement reset in ${this.roomName} delayed to ${newResetTime.toLocaleTimeString('de-DE')}.`);
96
104
  this.resetLastLeftTimeout();
97
105
  this._lastLeftTimeout = services_1.Utils.guardedTimeout(() => {
98
- timeAfterReset =
99
- services_1.Utils.nowMS() - this._lastMovement.getTime() - this.getRoom().settings.movementResetTimer * 1000;
106
+ this._lastLeftTimeout = null;
107
+ timeAfterReset = this.getTimeAfterReset();
100
108
  const presentAmount = this.presentAmount();
101
- this.log(models_1.LogLevel.Debug, `Delayed Movement reset. Active Motions: ${this.presentAmount()}\tTime after Last Movement including Reset: ${timeAfterReset}`);
109
+ this.log(models_1.LogLevel.Debug, `Delayed Movement reset. Active Motions: ${presentAmount}\tTime after Last Movement including Reset: ${timeAfterReset}, action: ${action.reasonTrace}`);
102
110
  if (presentAmount <= 0 && timeAfterReset > 0) {
103
- this.executeLastLeftCbs();
111
+ this.executeLastLeftCbs(new models_1.PresenceGroupLastLeftAction(action));
104
112
  }
105
113
  }, Math.abs(timeAfterReset) + 500, this);
106
114
  }
115
+ /**
116
+ * Calculates whether we are after (negative if before) the time the movement
117
+ * reset timer should have reset the movement.
118
+ * @returns The time in milliseconds after the reset time.
119
+ */
120
+ getTimeAfterReset() {
121
+ return services_1.Utils.nowMS() - this._lastMovement.getTime() - this.getRoom().settings.movementResetTimer * 1000;
122
+ }
107
123
  /**
108
124
  * In case of an existing delayed last left callback timeout, this removes it.
109
- * @private
110
125
  */
111
126
  resetLastLeftTimeout() {
112
- if (this._lastLeftTimeout !== null) {
113
- clearTimeout(this._lastLeftTimeout);
114
- }
115
- }
116
- motionSensorOnFirstEnter(val) {
117
- if (!val) {
118
- return;
119
- }
120
- this._lastMovement = new Date();
121
- if (this.presentAmount() > 1) {
127
+ if (this._lastLeftTimeout === null) {
122
128
  return;
123
129
  }
124
- for (const cb of this._firstEnterCbs) {
125
- cb();
130
+ clearTimeout(this._lastLeftTimeout);
131
+ this._lastLeftTimeout = null;
132
+ }
133
+ executeAnyMovementCbs(action) {
134
+ for (const cb of this._anyMovementCbs) {
135
+ cb(action);
126
136
  }
127
137
  }
128
- executeLastLeftCbs() {
138
+ executeLastLeftCbs(action) {
129
139
  for (const cb of this._lastLeftCbs) {
130
- cb();
140
+ cb(action);
131
141
  }
132
142
  }
133
143
  }
@@ -25,42 +25,42 @@ class TasterGroup extends base_group_1.BaseGroup {
25
25
  return;
26
26
  }
27
27
  (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 0, 'Button Top Left pressed long'));
28
- }, `Close all Rollos in this room`);
28
+ }, 'Close all Rollos in this room');
29
29
  (_b = t.buttonTopLeft) === null || _b === void 0 ? void 0 : _b.addCb(button_1.ButtonPressType.short, (pValue) => {
30
30
  var _a;
31
31
  if (!pValue) {
32
32
  return;
33
33
  }
34
34
  (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 25, 'Button Top Left pressed short'));
35
- }, `Nearly closes all Rollos in this room`);
35
+ }, 'Nearly closes all Rollos in this room');
36
36
  (_c = t.buttonTopRight) === null || _c === void 0 ? void 0 : _c.addCb(button_1.ButtonPressType.long, (pValue) => {
37
37
  var _a;
38
38
  if (!pValue) {
39
39
  return;
40
40
  }
41
41
  (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 100, 'Button Top Right pressed long'));
42
- }, `Open all Rollos in this room`);
42
+ }, 'Open all Rollos in this room');
43
43
  (_d = t.buttonTopRight) === null || _d === void 0 ? void 0 : _d.addCb(button_1.ButtonPressType.short, (pValue) => {
44
44
  var _a;
45
45
  if (!pValue) {
46
46
  return;
47
47
  }
48
48
  (_a = this.getRoom().WindowGroup) === null || _a === void 0 ? void 0 : _a.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Manual, 50, 'Button Top Right pressed short'));
49
- }, `All Rollos in this room to middle`);
49
+ }, 'All Rollos in this room to middle');
50
50
  (_e = t.buttonMidLeft) === null || _e === void 0 ? void 0 : _e.addCb(button_1.ButtonPressType.long, (pValue) => {
51
51
  var _a;
52
52
  if (!pValue) {
53
53
  return;
54
54
  }
55
55
  (_a = this.getRoom().LightGroup) === null || _a === void 0 ? void 0 : _a.switchAll(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Manual, true, 'Button press to turn all lights on'));
56
- }, `Turn all Lights in this room on`);
56
+ }, 'Turn all Lights in this room on');
57
57
  (_f = t.buttonMidRight) === null || _f === void 0 ? void 0 : _f.addCb(button_1.ButtonPressType.long, (pValue) => {
58
58
  var _a;
59
59
  if (!pValue) {
60
60
  return;
61
61
  }
62
62
  (_a = this.getRoom().LightGroup) === null || _a === void 0 ? void 0 : _a.switchAll(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Manual, false, 'Button press to turn all lights off'));
63
- }, `Turn all Lights in this room off`);
63
+ }, 'Turn all Lights in this room off');
64
64
  if (((_g = services_1.SettingsService.settings.sonos) === null || _g === void 0 ? void 0 : _g.buttonBotRightForRadio) === true) {
65
65
  const sonosGroup = this.getRoom().SonosGroup;
66
66
  if (sonosGroup !== undefined && sonosGroup.getOwnSonosDevices().length > 0) {
@@ -3,15 +3,30 @@ import { Window } from './Window';
3
3
  import { BaseGroup } from './base-group';
4
4
  export declare class WindowGroup extends BaseGroup {
5
5
  windows: Window[];
6
+ /**
7
+ * Timecallback for sunrise-shutter actions
8
+ * @remarks This callback is only set if needed and already calculated.
9
+ * @warning Manual setting of this callback is not recommended. Prefer {@link recalcTimeCallbacks} after changing settings.
10
+ */
6
11
  sunriseShutterCallback: TimeCallback | undefined;
12
+ /**
13
+ * Timecallback for sunset-shutter actions
14
+ * @remarks This callback is only set if needed and already calculated.
15
+ * @warning Manual setting of this callback is not recommended. Prefer {@link recalcTimeCallbacks} after changing settings.
16
+ */
7
17
  sunsetShutterCallback: TimeCallback | undefined;
18
+ /**
19
+ * Checks if any Shutter of any window is down
20
+ * @returns {boolean} True if there is atleast one shutte with level of 0%.
21
+ */
22
+ get anyShutterDown(): boolean;
8
23
  constructor(roomName: string, windows: Window[]);
9
24
  setDesiredPosition(c: WindowSetDesiredPositionCommand): void;
10
25
  initialize(): void;
11
26
  recalcTimeCallbacks(): void;
12
27
  setRolloByWeatherStatus(c: WindowSetRolloByWeatherStatusCommand): void;
13
28
  sunriseUp(c: ShutterSunriseUpCommand): void;
14
- restoreRolloPosition(c: RoomRestoreShutterPositionCommand): void;
29
+ restoreShutterPosition(c: RoomRestoreShutterPositionCommand): void;
15
30
  changeVibrationMotionBlock(block: boolean): void;
16
31
  private sunsetDown;
17
32
  private reconfigureSunsetShutterCallback;
@@ -9,6 +9,15 @@ const group_type_1 = require("./group-type");
9
9
  const device_list_1 = require("../device-list");
10
10
  const device_cluster_type_1 = require("../device-cluster-type");
11
11
  class WindowGroup extends base_group_1.BaseGroup {
12
+ /**
13
+ * Checks if any Shutter of any window is down
14
+ * @returns {boolean} True if there is atleast one shutte with level of 0%.
15
+ */
16
+ get anyShutterDown() {
17
+ return this.windows.some((w) => {
18
+ w.anyShutterDown;
19
+ });
20
+ }
12
21
  constructor(roomName, windows) {
13
22
  super(roomName, group_type_1.GroupType.WindowGroup);
14
23
  this.windows = windows;
@@ -62,7 +71,7 @@ class WindowGroup extends base_group_1.BaseGroup {
62
71
  return;
63
72
  }
64
73
  if (darkOutside) {
65
- f.restoreDesiredPosition(new models_1.WindowRestoreDesiredPositionCommand(c, `It's dark outside.`));
74
+ f.restoreDesiredPosition(new models_1.WindowRestoreDesiredPositionCommand(c, "It's dark outside."));
66
75
  return;
67
76
  }
68
77
  let desiredPos = f.desiredPosition;
@@ -79,14 +88,14 @@ class WindowGroup extends base_group_1.BaseGroup {
79
88
  });
80
89
  }
81
90
  sunriseUp(c) {
82
- this.windows.forEach((f) => {
83
- if (!this.getRoom().settings.sonnenAufgangRollos || f.getShutter().length === 0) {
91
+ this.windows.forEach((w) => {
92
+ if (!this.getRoom().settings.sonnenAufgangRollos || w.getShutter().length === 0) {
84
93
  return;
85
94
  }
86
- f.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(c, 100));
95
+ w.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(c, 100));
87
96
  });
88
97
  }
89
- restoreRolloPosition(c) {
98
+ restoreShutterPosition(c) {
90
99
  if (!c.recalc) {
91
100
  this.windows.forEach((f) => {
92
101
  f.restoreDesiredPosition(new models_1.WindowRestoreDesiredPositionCommand(c));
@@ -164,7 +173,7 @@ class WindowGroup extends base_group_1.BaseGroup {
164
173
  }
165
174
  if (this.sunriseShutterCallback === undefined) {
166
175
  this.log(models_1.LogLevel.Debug, `Add Sunrise shutter TimeCallback for ${this.roomName}`);
167
- this.sunriseShutterCallback = new models_1.TimeCallback(`${this.roomName} Sonnenaufgang Rollos`, models_1.TimeCallbackType.Sunrise, () => {
176
+ this.sunriseShutterCallback = new models_1.TimeCallback(`${this.roomName} Sunrise Shutter`, models_1.TimeCallbackType.Sunrise, () => {
168
177
  if (room.skipNextRolloUp) {
169
178
  this.log(models_1.LogLevel.Info, `${this.roomName} skipped sunrise up due to room.skipNextRolloUp`);
170
179
  room.skipNextRolloUp = false;
@@ -173,7 +182,13 @@ class WindowGroup extends base_group_1.BaseGroup {
173
182
  this.sunriseUp(new models_1.ShutterSunriseUpCommand(models_1.CommandSource.Automatic, 'Time-Callback fired'));
174
183
  }, room.settings.rolloOffset.sunrise, undefined, undefined, room.settings.rolloOffset);
175
184
  if (!services_1.TimeCallbackService.darkOutsideOrNight(services_1.TimeCallbackService.dayType(room.settings.rolloOffset))) {
176
- this.sunriseUp(new models_1.ShutterSunriseUpCommand(models_1.CommandSource.Initial, 'Initial sunrise up as it is day'));
185
+ if (!this.anyShutterDown) {
186
+ // Only set new desired position without applying it.
187
+ this.setDesiredPosition(new models_1.WindowSetDesiredPositionCommand(models_1.CommandSource.Initial, 100, 'It is daytime during restart.', false));
188
+ }
189
+ else {
190
+ this.sunriseUp(new models_1.ShutterSunriseUpCommand(models_1.CommandSource.Initial, 'Initial sunrise up as it is day and at least 1 shutter is down.'));
191
+ }
177
192
  }
178
193
  services_1.TimeCallbackService.addCallback(this.sunriseShutterCallback);
179
194
  }
@@ -4,6 +4,7 @@ export declare class HmIpAccessPoint extends HmIPDevice {
4
4
  constructor(pInfo: IoBrokerDeviceInfo);
5
5
  private _ip;
6
6
  get ip(): string;
7
+ /** @inheritDoc */
7
8
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
8
9
  private updateBaseInformation;
9
10
  }
@@ -12,6 +12,7 @@ class HmIpAccessPoint extends hmIpDevice_1.HmIPDevice {
12
12
  get ip() {
13
13
  return this._ip;
14
14
  }
15
+ /** @inheritDoc */
15
16
  update(idSplit, state, initial = false) {
16
17
  this.log(models_1.LogLevel.DeepTrace, `AP Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
17
18
  super.update(idSplit, state, initial, true);
@@ -1,26 +1,29 @@
1
1
  import { HmIPDevice } from './hmIpDevice';
2
- import { MotionSensorSettings } from '../../../models';
2
+ import { MotionSensorAction, MotionSensorSettings } from '../../../models';
3
3
  import { iIlluminationSensor, iMotionSensor } from '../baseDeviceInterfaces';
4
4
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
5
  export declare class HmIpBewegung extends HmIPDevice implements iIlluminationSensor, iMotionSensor {
6
6
  private static MOVEMENT_DETECTION;
7
7
  private static CURRENT_ILLUMINATION;
8
+ /** @inheritDoc */
8
9
  settings: MotionSensorSettings;
10
+ /** @inheritDoc */
9
11
  movementDetected: boolean;
12
+ /** @inheritDoc */
13
+ detectionsToday: number;
10
14
  private _movementDetectedCallback;
11
15
  private initialized;
12
16
  private _fallBackTimeout;
13
17
  private _lastMotionTime;
18
+ private _currentIllumination;
14
19
  constructor(pInfo: IoBrokerDeviceInfo);
20
+ /** @inheritDoc */
15
21
  get timeSinceLastMotion(): number;
16
- private _detectionsToday;
17
- get detectionsToday(): number;
18
- set detectionsToday(pVal: number);
19
- private _currentIllumination;
20
22
  get currentIllumination(): number;
21
23
  private set currentIllumination(value);
22
- addMovementCallback(pCallback: (pValue: boolean) => void): void;
24
+ addMovementCallback(pCallback: (action: MotionSensorAction) => void): void;
23
25
  persistMotionSensor(): void;
26
+ /** @inheritDoc */
24
27
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
25
28
  updateMovement(pVal: boolean): void;
26
29
  private resetFallbackTimeout;
@@ -10,12 +10,15 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
10
10
  constructor(pInfo) {
11
11
  var _a;
12
12
  super(pInfo, deviceType_1.DeviceType.HmIpBewegung);
13
+ /** @inheritDoc */
13
14
  this.settings = new models_1.MotionSensorSettings();
15
+ /** @inheritDoc */
14
16
  this.movementDetected = false;
17
+ /** @inheritDoc */
18
+ this.detectionsToday = 0;
15
19
  this._movementDetectedCallback = [];
16
20
  this.initialized = false;
17
21
  this._lastMotionTime = 0;
18
- this._detectionsToday = 0;
19
22
  this._currentIllumination = -1;
20
23
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.motionSensor);
21
24
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.illuminationSensor);
@@ -33,15 +36,10 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
33
36
  });
34
37
  }
35
38
  }
39
+ /** @inheritDoc */
36
40
  get timeSinceLastMotion() {
37
41
  return Math.floor((services_1.Utils.nowMS() - this._lastMotionTime) / 1000);
38
42
  }
39
- get detectionsToday() {
40
- return this._detectionsToday;
41
- }
42
- set detectionsToday(pVal) {
43
- this._detectionsToday = pVal;
44
- }
45
43
  get currentIllumination() {
46
44
  return this._currentIllumination;
47
45
  }
@@ -57,6 +55,7 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
57
55
  var _a;
58
56
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistMotionSensor(this);
59
57
  }
58
+ /** @inheritDoc */
60
59
  update(idSplit, state, initial = false) {
61
60
  this.log(models_1.LogLevel.DeepTrace, `Bewegungs Update: JSON: ${JSON.stringify(state)}ID: ${idSplit.join('.')}`);
62
61
  super.update(idSplit, state, initial, true);
@@ -75,7 +74,7 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
75
74
  }
76
75
  updateMovement(pVal) {
77
76
  if (!this.initialized && pVal) {
78
- this.log(models_1.LogLevel.Trace, `Bewegung erkannt aber die Initialisierung aus der DB ist noch nicht erfolgt --> verzögern`);
77
+ this.log(models_1.LogLevel.Trace, 'Bewegung erkannt aber die Initialisierung aus der DB ist noch nicht erfolgt --> verzögern');
79
78
  services_1.Utils.guardedTimeout(() => {
80
79
  this.updateMovement(pVal);
81
80
  }, 1000, this);
@@ -100,18 +99,18 @@ class HmIpBewegung extends hmIpDevice_1.HmIPDevice {
100
99
  this.log(models_1.LogLevel.Trace, `Dies ist die ${this.detectionsToday} Bewegung `);
101
100
  }
102
101
  for (const c of this._movementDetectedCallback) {
103
- c(pVal);
102
+ c(new models_1.MotionSensorAction(this));
104
103
  }
105
104
  }
106
105
  resetFallbackTimeout() {
107
106
  if (this._fallBackTimeout) {
108
- this.log(models_1.LogLevel.Trace, `Fallback Timeout zurücksetzen`);
107
+ this.log(models_1.LogLevel.Trace, 'Fallback Timeout zurücksetzen');
109
108
  clearTimeout(this._fallBackTimeout);
110
109
  }
111
110
  }
112
111
  startFallbackTimeout() {
113
112
  this._fallBackTimeout = services_1.Utils.guardedTimeout(() => {
114
- this.log(models_1.LogLevel.Debug, `Benötige Fallback Bewegungs Reset `);
113
+ this.log(models_1.LogLevel.Debug, 'Benötige Fallback Bewegungs Reset ');
115
114
  this._fallBackTimeout = undefined;
116
115
  this.updateMovement(false);
117
116
  }, 270000, this);
@@ -2,8 +2,7 @@ import { IoBrokerBaseDevice } from '../IoBrokerBaseDevice';
2
2
  import { DeviceType } from '../deviceType';
3
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
4
  export declare class HmIPDevice extends IoBrokerBaseDevice {
5
- lowBattery: boolean;
6
- stateMap: Map<string, ioBroker.State>;
7
5
  constructor(pInfo: IoBrokerDeviceInfo, pType: DeviceType);
6
+ /** @inheritDoc */
8
7
  update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverride?: boolean): void;
9
8
  }
@@ -6,9 +6,8 @@ const IoBrokerBaseDevice_1 = require("../IoBrokerBaseDevice");
6
6
  class HmIPDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
7
7
  constructor(pInfo, pType) {
8
8
  super(pInfo, pType);
9
- this.lowBattery = false;
10
- this.stateMap = new Map();
11
9
  }
10
+ /** @inheritDoc */
12
11
  update(idSplit, state, initial = false, pOverride = false) {
13
12
  if (!pOverride) {
14
13
  this.log(models_1.LogLevel.Trace, `Keine Update Überschreibung :\n\tID: ${idSplit.join('.')}`);
@@ -20,7 +19,7 @@ class HmIPDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
20
19
  case '0.LOW_BAT':
21
20
  const newBatLowVal = state.val;
22
21
  if (newBatLowVal) {
23
- this.log(models_1.LogLevel.Warn, `!!BATTERIE FAST LEER!!`);
22
+ this.log(models_1.LogLevel.Warn, '!!BATTERIE FAST LEER!!');
24
23
  }
25
24
  break;
26
25
  }
@@ -1,35 +1,66 @@
1
1
  import { iDisposable } from '../../services';
2
2
  import { WindowPosition } from '../models';
3
3
  import { Window } from '../groups';
4
+ import { BatteryLevelChangeAction } from '../../../models';
4
5
  import { IoBrokerBaseDevice } from '../IoBrokerBaseDevice';
5
6
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
6
7
  import { HmIPDevice } from './hmIpDevice';
7
8
  import { iBatteryDevice, iHandleSensor } from '../baseDeviceInterfaces';
8
9
  import { HandleSettings } from '../../../models/deviceSettings/handleSettings';
9
10
  export declare class HmIpGriff extends HmIPDevice implements iHandleSensor, iBatteryDevice, iDisposable {
11
+ /** @inheritDoc */
10
12
  settings: HandleSettings;
13
+ /** @inheritDoc */
14
+ position: WindowPosition;
15
+ /** @inheritDoc */
16
+ minutesOpen: number;
11
17
  private _battery;
12
18
  private _lastBatteryPersist;
13
19
  private _lastHandlePersist;
14
- get lastBatteryPersist(): number;
15
- get battery(): number;
16
- position: WindowPosition;
17
20
  private _kippCallback;
18
21
  private _closedCallback;
19
22
  private _offenCallback;
20
23
  private _iOpenTimeout;
21
- minutesOpen: number;
22
24
  private _window;
23
25
  private _helpingRoomTemp;
26
+ private _lastBatteryLevel;
27
+ private _batteryLevelCallbacks;
28
+ /**
29
+ * Creates an instance of {@link DeviceType.HmIpGriff}.
30
+ * @param pInfo - Device creation information
31
+ */
24
32
  constructor(pInfo: IoBrokerDeviceInfo);
33
+ /** @inheritDoc */
34
+ get lastBatteryPersist(): number;
35
+ /** @inheritDoc */
36
+ get battery(): number;
37
+ /**
38
+ * Adds a window to this device
39
+ */
25
40
  set window(value: Window);
41
+ /** @inheritDoc */
42
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
43
+ /** @inheritDoc */
26
44
  addOffenCallback(pCallback: (pValue: boolean) => void): void;
45
+ /** @inheritDoc */
27
46
  addKippCallback(pCallback: (pValue: boolean) => void): void;
47
+ /** @inheritDoc */
28
48
  addClosedCallback(pCallback: (pValue: boolean) => void): void;
49
+ /** @inheritDoc */
29
50
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
30
- updatePosition(pValue: WindowPosition): void;
51
+ /** @inheritDoc */
31
52
  persistBatteryDevice(): void;
53
+ /**
54
+ * Persists the handle sensor state to the persistence layer
55
+ */
32
56
  persistHandleSensor(): void;
57
+ /** @inheritDoc */
33
58
  dispose(): void;
59
+ /** @inheritDoc */
34
60
  toJSON(): Partial<IoBrokerBaseDevice>;
61
+ private updatePosition;
62
+ /**
63
+ * Checks whether the battery level did change and if so fires the callbacks
64
+ */
65
+ private checkForBatteryChange;
35
66
  }