hoffmation-base 3.0.0-alpha.6 → 3.0.0-alpha.61

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 (515) 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/blockAutomaticSettings.d.ts +23 -0
  26. package/lib/models/blockAutomaticSettings.js +19 -0
  27. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  28. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  29. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  30. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  31. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +8 -1
  32. package/lib/models/command/WindowSetDesiredPositionCommand.js +8 -1
  33. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  34. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  35. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  36. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  37. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  38. package/lib/models/command/actuatorToggleCommand.js +7 -4
  39. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  40. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  41. package/lib/models/command/baseCommand.d.ts +23 -2
  42. package/lib/models/command/baseCommand.js +41 -1
  43. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  44. package/lib/models/command/blockAutomaticCommand.js +40 -0
  45. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  46. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  47. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  48. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  49. package/lib/models/command/commandSource.d.ts +19 -0
  50. package/lib/models/command/commandSource.js +20 -0
  51. package/lib/models/command/commandType.d.ts +11 -0
  52. package/lib/models/command/commandType.js +11 -0
  53. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  54. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  55. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  56. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  57. package/lib/models/command/index.d.ts +3 -0
  58. package/lib/models/command/index.js +7 -1
  59. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  60. package/lib/models/command/lampSetLightCommand.js +15 -4
  61. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  62. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  63. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  64. package/lib/models/command/lampToggleLightCommand.js +7 -6
  65. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  66. package/lib/models/command/ledSetLightCommand.js +27 -17
  67. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  68. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  69. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  70. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  71. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  72. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  73. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  74. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  75. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  76. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  77. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  78. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  79. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  80. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  81. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  82. package/lib/models/command/wledSetLightCommand.js +23 -7
  83. package/lib/models/connectionCallbacks.d.ts +4 -4
  84. package/lib/models/connectionCallbacks.js +1 -0
  85. package/lib/models/deviceConfig.d.ts +3 -3
  86. package/lib/models/deviceSettings/acSettings.d.ts +23 -5
  87. package/lib/models/deviceSettings/acSettings.js +28 -8
  88. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  89. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  90. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  91. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  92. package/lib/models/deviceSettings/dachsSettings.d.ts +23 -0
  93. package/lib/models/deviceSettings/dachsSettings.js +29 -1
  94. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  95. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  96. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  97. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  98. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  99. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  100. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  101. package/lib/models/deviceSettings/handleSettings.js +9 -0
  102. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  103. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  104. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  105. package/lib/models/deviceSettings/ledSettings.js +76 -18
  106. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  107. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  108. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  109. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  110. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  111. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  112. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  113. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  114. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  115. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  116. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  117. package/lib/models/deviceSettings/wledSettings.js +37 -13
  118. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  119. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  120. package/lib/models/iIdHolder.d.ts +18 -0
  121. package/lib/models/index.d.ts +2 -1
  122. package/lib/models/index.js +4 -1
  123. package/lib/models/objectSettings.d.ts +5 -2
  124. package/lib/models/objectSettings.js +2 -2
  125. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  126. package/lib/models/persistence/EnergyCalculation.js +30 -4
  127. package/lib/models/persistence/index.d.ts +0 -2
  128. package/lib/models/persistence/index.js +0 -2
  129. package/lib/models/rooms/RoomBase.d.ts +12 -1
  130. package/lib/models/rooms/RoomBase.js +16 -7
  131. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  132. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  133. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  134. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  135. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  136. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  137. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  138. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  139. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  140. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  141. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  142. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  143. package/lib/models/timeCallback.d.ts +7 -0
  144. package/lib/models/timeCallback.js +16 -6
  145. package/lib/server/config/heatingMode.d.ts +2 -1
  146. package/lib/server/config/heatingMode.js +2 -1
  147. package/lib/server/config/iAsusConfig.d.ts +15 -0
  148. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  149. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  150. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  151. package/lib/server/config/iConfig.d.ts +94 -6
  152. package/lib/server/config/iDachsSettings.d.ts +16 -0
  153. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  154. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  155. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  156. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  157. package/lib/server/config/iGoveeSettings.js +2 -0
  158. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  159. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  160. package/lib/server/config/iLogSettings.d.ts +40 -1
  161. package/lib/server/config/iMp3Settings.d.ts +10 -0
  162. package/lib/server/config/iMuellSettings.d.ts +7 -0
  163. package/lib/server/config/iNewsSettings.d.ts +13 -0
  164. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  165. package/lib/server/config/iPollySettings.d.ts +22 -0
  166. package/lib/server/config/iRestSettings.d.ts +10 -0
  167. package/lib/server/config/iSonosSettings.d.ts +14 -0
  168. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  169. package/lib/server/config/iTibberSettings.d.ts +10 -0
  170. package/lib/server/config/iTimePair.d.ts +9 -0
  171. package/lib/server/config/iTimeSettings.d.ts +9 -0
  172. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  173. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  174. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  175. package/lib/server/config/iVictronSettings.d.ts +14 -0
  176. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  177. package/lib/server/config/index.d.ts +2 -0
  178. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  179. package/lib/server/devices/DeviceCapability.js +1 -0
  180. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  181. package/lib/server/devices/DeviceInfo.js +6 -0
  182. package/lib/server/devices/Griffe.js +1 -2
  183. package/lib/server/devices/Heizgruppen.js +2 -2
  184. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  185. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  186. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +2 -2
  187. package/lib/server/devices/IoBrokerDeviceInfo.js +6 -4
  188. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  189. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  190. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  191. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +21 -4
  192. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  193. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  194. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  195. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  196. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  197. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  198. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  199. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  200. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -4
  201. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -1
  202. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  203. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  204. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  205. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  207. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  209. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  210. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -1
  211. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  212. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  213. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  214. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -2
  215. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  216. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  217. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  218. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  219. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  220. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  221. package/lib/server/devices/button/button.d.ts +0 -1
  222. package/lib/server/devices/button/button.js +0 -4
  223. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  224. package/lib/server/devices/button/buttonCallback.js +10 -0
  225. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  226. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  227. package/lib/server/devices/button/index.d.ts +1 -0
  228. package/lib/server/devices/button/index.js +3 -0
  229. package/lib/server/devices/dachs/dachs.d.ts +46 -11
  230. package/lib/server/devices/dachs/dachs.js +113 -23
  231. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -3
  232. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  233. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  234. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  235. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  236. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  237. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  238. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  239. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  240. package/lib/server/devices/device-cluster.d.ts +3 -0
  241. package/lib/server/devices/device-cluster.js +4 -4
  242. package/lib/server/devices/deviceType.d.ts +1 -0
  243. package/lib/server/devices/deviceType.js +1 -0
  244. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  245. package/lib/server/devices/deviceUpdater.js +1 -4
  246. package/lib/server/devices/devices.d.ts +43 -7
  247. package/lib/server/devices/devices.js +46 -6
  248. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  249. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  250. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  251. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  252. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  253. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  254. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  255. package/lib/server/devices/espresense/trilateration.js +7 -0
  256. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  257. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  258. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  259. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  260. package/lib/server/devices/groups/Window.d.ts +9 -3
  261. package/lib/server/devices/groups/Window.js +19 -11
  262. package/lib/server/devices/groups/base-group.d.ts +4 -0
  263. package/lib/server/devices/groups/base-group.js +3 -0
  264. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  265. package/lib/server/devices/groups/heatGroup.js +11 -11
  266. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  267. package/lib/server/devices/groups/lightGroup.js +18 -37
  268. package/lib/server/devices/groups/presenceGroup.d.ts +14 -4
  269. package/lib/server/devices/groups/presenceGroup.js +66 -63
  270. package/lib/server/devices/groups/tasterGroup.js +6 -6
  271. package/lib/server/devices/groups/windowGroup.d.ts +11 -1
  272. package/lib/server/devices/groups/windowGroup.js +6 -6
  273. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  274. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  275. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  276. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  277. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  278. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  279. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +36 -5
  280. package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
  281. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -5
  282. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
  283. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
  284. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
  285. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  286. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  287. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +19 -9
  288. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
  289. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  290. package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
  291. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
  292. package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
  293. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
  294. package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
  295. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  296. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  297. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  298. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  299. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  300. package/lib/server/devices/index.d.ts +5 -2
  301. package/lib/server/devices/index.js +8 -2
  302. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  303. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  304. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  305. package/lib/server/devices/nameAmountValuePair.js +10 -0
  306. package/lib/server/devices/scene/room-scene.d.ts +23 -6
  307. package/lib/server/devices/scene/room-scene.js +18 -4
  308. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  309. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  310. package/lib/server/devices/shelly/index.d.ts +1 -0
  311. package/lib/server/devices/shelly/index.js +3 -1
  312. package/lib/server/devices/shelly/shellyActuator.d.ts +33 -0
  313. package/lib/server/devices/shelly/shellyActuator.js +84 -0
  314. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  315. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  316. package/lib/server/devices/shelly/shellyTrv.d.ts +37 -17
  317. package/lib/server/devices/shelly/shellyTrv.js +66 -45
  318. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  319. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  320. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  321. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  322. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  323. package/lib/server/devices/tv/samsungTv.js +1 -0
  324. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  325. package/lib/server/devices/tv/tvDevice.js +4 -3
  326. package/lib/server/devices/wledDevice.d.ts +15 -3
  327. package/lib/server/devices/wledDevice.js +42 -16
  328. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  329. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  330. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  331. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  332. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  333. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +15 -22
  334. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  335. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +27 -62
  336. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -13
  337. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
  338. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  339. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  340. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +9 -8
  341. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +16 -13
  342. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
  343. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
  344. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -14
  345. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
  346. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -3
  347. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
  348. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  349. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  350. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  351. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  352. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  353. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  354. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  355. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  356. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +58 -11
  357. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
  358. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -8
  359. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
  360. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  361. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  362. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  363. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  364. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +34 -7
  365. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
  366. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  367. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  368. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  369. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  370. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  371. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  372. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  373. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  374. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  375. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  376. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  377. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  378. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  379. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  380. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  381. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  382. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  383. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  384. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  385. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  386. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  387. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  388. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  389. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  390. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -8
  391. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
  392. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  393. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  394. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  395. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  396. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  397. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  398. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  399. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  400. package/lib/server/ioBroker/connection.d.ts +21 -20
  401. package/lib/server/ioBroker/connection.js +37 -28
  402. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  403. package/lib/server/ioBroker/ioBroker.main.js +4 -3
  404. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  405. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  406. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  407. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  408. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  409. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  410. package/lib/server/services/ShutterService.js +6 -6
  411. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  412. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  413. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  414. package/lib/server/services/Sonos/mp3-server.js +3 -1
  415. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  416. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  417. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  418. package/lib/server/services/Sonos/polly-service.js +10 -8
  419. package/lib/server/services/Sonos/sonos-service.d.ts +1 -5
  420. package/lib/server/services/Sonos/sonos-service.js +18 -17
  421. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  422. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  423. package/lib/server/services/Telegram/telegram-service.js +8 -3
  424. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  425. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  426. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  427. package/lib/server/services/Translation/index.d.ts +1 -0
  428. package/lib/server/services/Translation/res.d.ts +34 -19
  429. package/lib/server/services/Translation/res.js +34 -19
  430. package/lib/server/services/ac/ac-device.d.ts +49 -7
  431. package/lib/server/services/ac/ac-device.js +99 -37
  432. package/lib/server/services/ac/daikin-service.js +4 -3
  433. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  434. package/lib/server/services/ac/own-ac-devices.js +3 -0
  435. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  436. package/lib/server/services/ac/own-daikin-device.js +40 -7
  437. package/lib/server/services/api/api-service.d.ts +118 -53
  438. package/lib/server/services/api/api-service.js +170 -80
  439. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  440. package/lib/server/services/blockAutomaticHandler.js +34 -15
  441. package/lib/server/services/calendar/index.d.ts +1 -0
  442. package/lib/server/services/calendar/index.js +3 -0
  443. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  444. package/lib/server/services/calendar/muell-tonne.js +10 -0
  445. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  446. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  447. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  448. package/lib/server/services/calendar/name-date-pair.js +10 -0
  449. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  450. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  451. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  452. package/lib/server/services/file-info.d.ts +5 -0
  453. package/lib/server/services/file-info.js +10 -0
  454. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  455. package/lib/server/services/govee/govee-device-data.js +2 -0
  456. package/lib/server/services/govee/govee-service.d.ts +7 -9
  457. package/lib/server/services/govee/govee-service.js +73 -48
  458. package/lib/server/services/govee/own-govee-device.d.ts +19 -17
  459. package/lib/server/services/govee/own-govee-device.js +56 -53
  460. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  461. package/lib/server/services/govee/own-govee-devices.js +3 -0
  462. package/lib/server/services/https-service.d.ts +3 -2
  463. package/lib/server/services/https-service.js +4 -3
  464. package/lib/server/services/index.d.ts +1 -0
  465. package/lib/server/services/index.js +3 -0
  466. package/lib/server/services/log-service/index.d.ts +1 -0
  467. package/lib/server/services/log-service/index.js +3 -0
  468. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  469. package/lib/server/services/log-service/log-debug-type.js +17 -0
  470. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  471. package/lib/server/services/log-service/log-filter-data.js +6 -15
  472. package/lib/server/services/log-service/log-service.d.ts +17 -4
  473. package/lib/server/services/log-service/log-service.js +30 -17
  474. package/lib/server/services/news-service.d.ts +9 -7
  475. package/lib/server/services/news-service.js +14 -15
  476. package/lib/server/services/room-service/room-service.d.ts +20 -4
  477. package/lib/server/services/room-service/room-service.js +26 -10
  478. package/lib/server/services/settings-service.d.ts +6 -2
  479. package/lib/server/services/settings-service.js +3 -2
  480. package/lib/server/services/time-callback-service.js +1 -1
  481. package/lib/server/services/utils/RGB.d.ts +6 -0
  482. package/lib/server/services/utils/RGB.js +11 -0
  483. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  484. package/lib/server/services/utils/catchEmResult.js +10 -0
  485. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  486. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  487. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  488. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  489. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  490. package/lib/server/services/utils/index.d.ts +4 -1
  491. package/lib/server/services/utils/index.js +8 -1
  492. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  493. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  494. package/lib/server/services/utils/utils.d.ts +9 -13
  495. package/lib/server/services/victron/victron-device.d.ts +27 -10
  496. package/lib/server/services/victron/victron-device.js +94 -25
  497. package/lib/server/services/weather/index.d.ts +2 -0
  498. package/lib/server/services/weather/index.js +3 -0
  499. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  500. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  501. package/lib/server/services/weather/weather-current.d.ts +0 -2
  502. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  503. package/lib/server/services/weather/weather-response.d.ts +16 -0
  504. package/lib/server/services/weather/weather-response.js +2 -0
  505. package/lib/server/services/weather/weather-service.d.ts +16 -18
  506. package/lib/server/services/weather/weather-service.js +37 -22
  507. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  508. package/lib/tsconfig.tsbuildinfo +1 -1
  509. package/package.json +6 -8
  510. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  511. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  512. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  513. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  514. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  515. /package/lib/{models/iTemperaturDataPoint.js → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
@@ -19,21 +19,23 @@ var HmIpHeizungAdaptionStates;
19
19
  HmIpHeizungAdaptionStates[HmIpHeizungAdaptionStates["ErrorPosition"] = 8] = "ErrorPosition";
20
20
  })(HmIpHeizungAdaptionStates || (HmIpHeizungAdaptionStates = {}));
21
21
  class HmIpHeizung extends hmIpDevice_1.HmIPDevice {
22
- get lastBatteryPersist() {
23
- return this._lastBatteryPersist;
24
- }
25
- get battery() {
26
- return this._battery;
27
- }
28
22
  constructor(pInfo) {
29
23
  super(pInfo, deviceType_1.DeviceType.HmIpHeizung);
30
24
  this._battery = -99;
31
25
  this._temperatur = 0;
32
26
  this._level = 0;
33
27
  this._lastBatteryPersist = 0;
28
+ this._lastBatteryLevel = -1;
29
+ this._batteryLevelCallbacks = [];
34
30
  this._desiredTemperatur = 0;
35
31
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
36
32
  }
33
+ get lastBatteryPersist() {
34
+ return this._lastBatteryPersist;
35
+ }
36
+ get battery() {
37
+ return this._battery;
38
+ }
37
39
  get desiredTemperatur() {
38
40
  return this._desiredTemperatur;
39
41
  }
@@ -43,6 +45,11 @@ class HmIpHeizung extends hmIpDevice_1.HmIPDevice {
43
45
  get iTemperatur() {
44
46
  return this._temperatur;
45
47
  }
48
+ /** @inheritDoc */
49
+ addBatteryLevelCallback(pCallback) {
50
+ this._batteryLevelCallbacks.push(pCallback);
51
+ }
52
+ /** @inheritDoc */
46
53
  update(idSplit, state, initial = false) {
47
54
  this.log(models_1.LogLevel.DeepTrace, `Heizung Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
48
55
  super.update(idSplit, state, initial, true);
@@ -51,6 +58,7 @@ class HmIpHeizung extends hmIpDevice_1.HmIPDevice {
51
58
  switch (idSplit[4]) {
52
59
  case 'OPERATING_VOLTAGE':
53
60
  this._battery = 100 * ((state.val - 1.8) / 1.2);
61
+ this.checkForBatteryChange();
54
62
  this.persistBatteryDevice();
55
63
  break;
56
64
  }
@@ -60,6 +68,15 @@ class HmIpHeizung extends hmIpDevice_1.HmIPDevice {
60
68
  break;
61
69
  }
62
70
  }
71
+ persistBatteryDevice() {
72
+ var _a;
73
+ const now = services_1.Utils.nowMS();
74
+ if (this._lastBatteryPersist + 60000 > now) {
75
+ return;
76
+ }
77
+ (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
78
+ this._lastBatteryPersist = now;
79
+ }
63
80
  updateBaseInformation(name, state) {
64
81
  switch (name) {
65
82
  case 'ACTUAL_TEMPERATURE':
@@ -81,14 +98,18 @@ class HmIpHeizung extends hmIpDevice_1.HmIPDevice {
81
98
  break;
82
99
  }
83
100
  }
84
- persistBatteryDevice() {
85
- var _a;
86
- const now = services_1.Utils.nowMS();
87
- if (this._lastBatteryPersist + 60000 > now) {
101
+ /**
102
+ * Checks whether the battery level did change and if so fires the callbacks
103
+ */
104
+ checkForBatteryChange() {
105
+ const newLevel = this.battery;
106
+ if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
88
107
  return;
89
108
  }
90
- (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
91
- this._lastBatteryPersist = now;
109
+ for (const cb of this._batteryLevelCallbacks) {
110
+ cb(new models_1.BatteryLevelChangeAction(this));
111
+ }
112
+ this._lastBatteryLevel = newLevel;
92
113
  }
93
114
  }
94
115
  exports.HmIpHeizung = HmIpHeizung;
@@ -4,15 +4,21 @@ import { iLamp, iTemporaryDisableAutomatic } from '../baseDeviceInterfaces';
4
4
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
5
  import { BlockAutomaticHandler } from '../../services/blockAutomaticHandler';
6
6
  export declare class HmIpLampe extends HmIPDevice implements iLamp, iTemporaryDisableAutomatic {
7
- lightOn: boolean;
7
+ /** @inheritDoc */
8
+ private _actuatorOn;
9
+ /** @inheritDoc */
8
10
  settings: ActuatorSettings;
9
11
  private lightOnSwitchID;
12
+ /** @inheritDoc */
10
13
  readonly blockAutomationHandler: BlockAutomaticHandler;
14
+ /** @inheritDoc */
11
15
  queuedValue: boolean | null;
16
+ /** @inheritDoc */
12
17
  targetAutomaticState: boolean;
13
18
  constructor(pInfo: IoBrokerDeviceInfo);
14
19
  get actuatorOn(): boolean;
15
20
  restoreTargetAutomaticValue(c: RestoreTargetAutomaticValueCommand): void;
21
+ /** @inheritDoc */
16
22
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
17
23
  setActuator(command: ActuatorSetStateCommand): void;
18
24
  toggleActuator(c: ActuatorToggleCommand): boolean;
@@ -11,23 +11,27 @@ const sharedFunctions_1 = require("../sharedFunctions");
11
11
  class HmIpLampe extends hmIpDevice_1.HmIPDevice {
12
12
  constructor(pInfo) {
13
13
  super(pInfo, deviceType_1.DeviceType.HmIpLampe);
14
- this.lightOn = false;
14
+ /** @inheritDoc */
15
+ this._actuatorOn = false;
16
+ /** @inheritDoc */
15
17
  this.settings = new models_1.ActuatorSettings();
16
18
  this.lightOnSwitchID = '';
19
+ /** @inheritDoc */
17
20
  this.queuedValue = null;
21
+ /** @inheritDoc */
18
22
  this.targetAutomaticState = false;
19
23
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.lamp);
20
24
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.blockAutomatic);
21
25
  this.lightOnSwitchID = `${this.info.fullID}.2.STATE`;
22
- this.blockAutomationHandler = new blockAutomaticHandler_1.BlockAutomaticHandler(this.restoreTargetAutomaticValue.bind(this));
26
+ this.blockAutomationHandler = new blockAutomaticHandler_1.BlockAutomaticHandler(this.restoreTargetAutomaticValue.bind(this), this.log.bind(this));
23
27
  }
24
28
  get actuatorOn() {
25
- return this.lightOn;
29
+ return this._actuatorOn;
26
30
  }
27
31
  restoreTargetAutomaticValue(c) {
28
- this.log(models_1.LogLevel.Debug, c.logMessage);
29
- this.setLight(new models_1.LampSetLightCommand(c, this.targetAutomaticState, 'Lampen RestoreTargetAutomaticValue'));
32
+ this.setLight(new models_1.LampSetLightCommand(c, this.targetAutomaticState));
30
33
  }
34
+ /** @inheritDoc */
31
35
  update(idSplit, state, initial = false) {
32
36
  this.log(models_1.LogLevel.DeepTrace, `Lampen Update : ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
33
37
  this.queuedValue = null;
@@ -35,7 +39,7 @@ class HmIpLampe extends hmIpDevice_1.HmIPDevice {
35
39
  switch (idSplit[3]) {
36
40
  case '1':
37
41
  if (idSplit[4] === 'STATE') {
38
- this.lightOn = state.val;
42
+ this._actuatorOn = state.val;
39
43
  this.persist();
40
44
  }
41
45
  break;
@@ -52,7 +56,7 @@ class HmIpLampe extends hmIpDevice_1.HmIPDevice {
52
56
  /** @inheritdoc */
53
57
  setLight(c) {
54
58
  if (this.lightOnSwitchID === '') {
55
- this.log(models_1.LogLevel.Error, `Keine Switch ID bekannt.`);
59
+ this.log(models_1.LogLevel.Error, 'Keine Switch ID bekannt.');
56
60
  return;
57
61
  }
58
62
  sharedFunctions_1.LampUtils.setActuator(this, c);
@@ -1,31 +1,41 @@
1
1
  import { HmIPDevice } from './hmIpDevice';
2
- import { MotionSensorSettings } from '../../../models';
2
+ import { BatteryLevelChangeAction, MotionSensorAction, MotionSensorSettings } from '../../../models';
3
3
  import { iBatteryDevice, iIlluminationSensor, iMotionSensor } from '../baseDeviceInterfaces';
4
4
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
5
  export declare class HmIpPraezenz extends HmIPDevice implements iIlluminationSensor, iBatteryDevice, iMotionSensor {
6
- private _battery;
7
- private _lastBatteryPersist;
8
- get lastBatteryPersist(): number;
9
6
  private static PRESENCE_DETECTION;
10
7
  private static CURRENT_ILLUMINATION;
11
- excludeFromNightAlarm: boolean;
8
+ /** @inheritDoc */
12
9
  movementDetected: boolean;
13
- get battery(): number;
10
+ /** @inheritDoc */
14
11
  settings: MotionSensorSettings;
12
+ private _battery;
13
+ private _lastBatteryPersist;
15
14
  private _movementDetectedCallback;
16
15
  private initialized;
17
16
  private _lastMotionTime;
17
+ private _detectionsToday;
18
+ private _currentIllumination;
19
+ private _lastBatteryLevel;
20
+ private _batteryLevelCallbacks;
18
21
  constructor(pInfo: IoBrokerDeviceInfo);
22
+ get lastBatteryPersist(): number;
23
+ get battery(): number;
19
24
  get timeSinceLastMotion(): number;
20
- private _detectionsToday;
21
25
  get detectionsToday(): number;
22
26
  set detectionsToday(pVal: number);
23
- private _currentIllumination;
24
27
  get currentIllumination(): number;
25
28
  private set currentIllumination(value);
26
- addMovementCallback(pCallback: (pValue: boolean) => void): void;
29
+ /** @inheritDoc */
30
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
31
+ addMovementCallback(pCallback: (action: MotionSensorAction) => void): void;
32
+ /** @inheritDoc */
27
33
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
28
34
  updatePresence(pVal: boolean): void;
29
35
  persistMotionSensor(): void;
30
36
  persistBatteryDevice(): void;
37
+ /**
38
+ * Checks whether the battery level did change and if so fires the callbacks
39
+ */
40
+ private checkForBatteryChange;
31
41
  }
@@ -7,26 +7,23 @@ const models_1 = require("../../../models");
7
7
  const services_1 = require("../../services");
8
8
  const DeviceCapability_1 = require("../DeviceCapability");
9
9
  class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
10
- get lastBatteryPersist() {
11
- return this._lastBatteryPersist;
12
- }
13
- get battery() {
14
- return this._battery;
15
- }
16
10
  constructor(pInfo) {
17
11
  var _a;
18
12
  super(pInfo, deviceType_1.DeviceType.HmIpPraezenz);
19
- this._battery = -99;
20
- this._lastBatteryPersist = 0;
21
- this.excludeFromNightAlarm = false;
13
+ /** @inheritDoc */
22
14
  this.movementDetected = false;
15
+ /** @inheritDoc */
23
16
  this.settings = new models_1.MotionSensorSettings();
17
+ this._battery = -99;
18
+ this._lastBatteryPersist = 0;
24
19
  this._movementDetectedCallback = [];
25
20
  // private presenceStateID: string;
26
21
  this.initialized = false;
27
22
  this._lastMotionTime = 0;
28
23
  this._detectionsToday = 0;
29
24
  this._currentIllumination = -1;
25
+ this._lastBatteryLevel = -1;
26
+ this._batteryLevelCallbacks = [];
30
27
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.illuminationSensor);
31
28
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
32
29
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.motionSensor);
@@ -45,6 +42,12 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
45
42
  });
46
43
  }
47
44
  }
45
+ get lastBatteryPersist() {
46
+ return this._lastBatteryPersist;
47
+ }
48
+ get battery() {
49
+ return this._battery;
50
+ }
48
51
  get timeSinceLastMotion() {
49
52
  return Math.floor((services_1.Utils.nowMS() - this._lastMotionTime) / 1000);
50
53
  }
@@ -62,9 +65,14 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
62
65
  this._currentIllumination = value;
63
66
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistIlluminationSensor(this);
64
67
  }
68
+ /** @inheritDoc */
69
+ addBatteryLevelCallback(pCallback) {
70
+ this._batteryLevelCallbacks.push(pCallback);
71
+ }
65
72
  addMovementCallback(pCallback) {
66
73
  this._movementDetectedCallback.push(pCallback);
67
74
  }
75
+ /** @inheritDoc */
68
76
  update(idSplit, state, initial = false) {
69
77
  this.log(models_1.LogLevel.DeepTrace, `Präzens Update: JSON: ${JSON.stringify(state)}ID: ${idSplit.join('.')}`);
70
78
  super.update(idSplit, state, initial, true);
@@ -73,6 +81,7 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
73
81
  switch (idSplit[4]) {
74
82
  case 'OPERATING_VOLTAGE':
75
83
  this._battery = 100 * ((state.val - 1.8) / 1.2);
84
+ this.checkForBatteryChange();
76
85
  this.persistBatteryDevice();
77
86
  break;
78
87
  }
@@ -91,7 +100,7 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
91
100
  }
92
101
  updatePresence(pVal) {
93
102
  if (!this.initialized && pVal) {
94
- this.log(models_1.LogLevel.Debug, `Präsenz erkannt aber die Initialisierung aus der DB ist noch nicht erfolgt --> verzögern`);
103
+ this.log(models_1.LogLevel.Debug, 'Präsenz erkannt aber die Initialisierung aus der DB ist noch nicht erfolgt --> verzögern');
95
104
  services_1.Utils.guardedTimeout(() => {
96
105
  this.updatePresence(pVal);
97
106
  }, 1000, this);
@@ -110,7 +119,7 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
110
119
  this.log(models_1.LogLevel.Trace, `Dies ist die ${this.detectionsToday} Bewegung `);
111
120
  }
112
121
  for (const c of this._movementDetectedCallback) {
113
- c(pVal);
122
+ c(new models_1.MotionSensorAction(this));
114
123
  }
115
124
  }
116
125
  persistMotionSensor() {
@@ -126,6 +135,19 @@ class HmIpPraezenz extends hmIpDevice_1.HmIPDevice {
126
135
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
127
136
  this._lastBatteryPersist = now;
128
137
  }
138
+ /**
139
+ * Checks whether the battery level did change and if so fires the callbacks
140
+ */
141
+ checkForBatteryChange() {
142
+ const newLevel = this.battery;
143
+ if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
144
+ return;
145
+ }
146
+ for (const cb of this._batteryLevelCallbacks) {
147
+ cb(new models_1.BatteryLevelChangeAction(this));
148
+ }
149
+ this._lastBatteryLevel = newLevel;
150
+ }
129
151
  }
130
152
  exports.HmIpPraezenz = HmIpPraezenz;
131
153
  // TODO: Add iPresenceSensor
@@ -5,6 +5,7 @@ import { iShutter } from '../baseDeviceInterfaces';
5
5
  import { IoBrokerBaseDevice } from '../IoBrokerBaseDevice';
6
6
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
7
7
  export declare class HmIpRoll extends HmIPDevice implements iShutter {
8
+ /** @inheritDoc */
8
9
  settings: ShutterSettings;
9
10
  private _setLevelSwitchID;
10
11
  private _firstCommandRecieved;
@@ -13,13 +14,14 @@ export declare class HmIpRoll extends HmIPDevice implements iShutter {
13
14
  constructor(pInfo: IoBrokerDeviceInfo);
14
15
  private _currentLevel;
15
16
  get currentLevel(): number;
16
- set currentLevel(value: number);
17
+ /** @inheritDoc */
18
+ update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
17
19
  private _window?;
18
20
  get window(): Window | undefined;
19
21
  set window(value: Window | undefined);
20
22
  get desiredWindowShutterLevel(): number;
21
23
  persist(): void;
22
- update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
24
+ private setCurrentLevel;
23
25
  setLevel(command: ShutterSetLevelCommand): void;
24
26
  toJSON(): Partial<IoBrokerBaseDevice>;
25
27
  }
@@ -15,6 +15,7 @@ class HmIpRoll extends hmIpDevice_1.HmIPDevice {
15
15
  constructor(pInfo) {
16
16
  var _a;
17
17
  super(pInfo, deviceType_1.DeviceType.HmIpRoll);
18
+ /** @inheritDoc */
18
19
  this.settings = new models_2.ShutterSettings();
19
20
  this._firstCommandRecieved = false;
20
21
  this._setLevel = -1;
@@ -36,18 +37,17 @@ class HmIpRoll extends hmIpDevice_1.HmIPDevice {
36
37
  }
37
38
  return this._currentLevel;
38
39
  }
39
- set currentLevel(value) {
40
- if (value !== this._setLevel && services_1.Utils.nowMS() - this._setLevelTime < 60 * 10000) {
41
- value = this._setLevel;
42
- }
43
- if (value !== this._currentLevel && this._window) {
44
- services_1.Utils.guardedNewThread(() => {
45
- var _a;
46
- (_a = this._window) === null || _a === void 0 ? void 0 : _a.rolloPositionChange(value);
47
- }, this);
48
- this.persist();
40
+ /** @inheritDoc */
41
+ update(idSplit, state, initial = false) {
42
+ this.log(models_2.LogLevel.DeepTrace, `Rollo Update : ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
43
+ super.update(idSplit, state, initial, true);
44
+ switch (idSplit[3]) {
45
+ case '3':
46
+ if (idSplit[4] === 'LEVEL') {
47
+ this.setCurrentLevel(state.val, true);
48
+ }
49
+ break;
49
50
  }
50
- this._currentLevel = value;
51
51
  }
52
52
  get window() {
53
53
  return this._window;
@@ -65,16 +65,18 @@ class HmIpRoll extends hmIpDevice_1.HmIPDevice {
65
65
  var _a;
66
66
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistShutter(this);
67
67
  }
68
- update(idSplit, state, initial = false) {
69
- this.log(models_2.LogLevel.DeepTrace, `Rollo Update : ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
70
- super.update(idSplit, state, initial, true);
71
- switch (idSplit[3]) {
72
- case '3':
73
- if (idSplit[4] === 'LEVEL') {
74
- this.currentLevel = state.val;
75
- }
76
- break;
68
+ setCurrentLevel(value, initial = false) {
69
+ if (value !== this._setLevel && services_1.Utils.nowMS() - this._setLevelTime < 60 * 10000) {
70
+ value = this._setLevel;
71
+ }
72
+ if (value !== this._currentLevel && this._window && !initial) {
73
+ services_1.Utils.guardedNewThread(() => {
74
+ var _a;
75
+ (_a = this._window) === null || _a === void 0 ? void 0 : _a.rolloPositionChange(new models_2.ShutterPositionChangedAction(this, value));
76
+ }, this);
77
+ this.persist();
77
78
  }
79
+ this._currentLevel = value;
78
80
  }
79
81
  setLevel(command) {
80
82
  let targetLevel = command.level;
@@ -90,7 +92,7 @@ class HmIpRoll extends hmIpDevice_1.HmIPDevice {
90
92
  return;
91
93
  }
92
94
  if (this._setLevelSwitchID === '') {
93
- this.log(models_2.LogLevel.Error, `Keine Switch ID bekannt.`);
95
+ this.log(models_2.LogLevel.Error, 'Keine Switch ID bekannt.');
94
96
  return;
95
97
  }
96
98
  if (!this.checkIoConnection(true)) {
@@ -100,14 +102,14 @@ class HmIpRoll extends hmIpDevice_1.HmIPDevice {
100
102
  if (this._window !== undefined) {
101
103
  if (this._window.griffeInPosition(models_1.WindowPosition.offen) > 0 && command.level < 100) {
102
104
  if (!command.skipOpenWarning) {
103
- this.log(models_2.LogLevel.Alert, `Not closing the shutter, as the window is open!`);
105
+ this.log(models_2.LogLevel.Alert, 'Not closing the shutter, as the window is open!');
104
106
  }
105
107
  return;
106
108
  }
107
109
  if (this._window.griffeInPosition(models_1.WindowPosition.kipp) > 0 && targetLevel < 50) {
108
110
  targetLevel = 50;
109
111
  if (!command.skipOpenWarning) {
110
- this.log(models_2.LogLevel.Alert, `Not closing the shutter, as the window is half open!`);
112
+ this.log(models_2.LogLevel.Alert, 'Not closing the shutter, as the window is half open!');
111
113
  }
112
114
  }
113
115
  }
@@ -1,25 +1,49 @@
1
1
  import { HmIPDevice } from './hmIpDevice';
2
2
  import { iBatteryDevice, iButtonSwitch } from '../baseDeviceInterfaces';
3
3
  import { Button, ButtonPosition, ButtonPressType } from '../button';
4
+ import { BatteryLevelChangeAction } from '../../../models';
4
5
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
5
6
  export declare class HmIpTaster extends HmIPDevice implements iButtonSwitch, iBatteryDevice {
6
- private _battery;
7
- private _lastBatteryPersist;
8
- get lastBatteryPersist(): number;
9
7
  private static readonly BUTTON_CAPABILLITIES;
8
+ /** @inheritDoc */
10
9
  buttonTopLeft: Button;
10
+ /** @inheritDoc */
11
11
  buttonMidLeft: Button;
12
+ /** @inheritDoc */
12
13
  buttonBotLeft: Button;
14
+ /** @inheritDoc */
13
15
  buttonTopRight: Button;
16
+ /** @inheritDoc */
14
17
  buttonMidRight: Button;
18
+ /** @inheritDoc */
15
19
  buttonBotRight: Button;
20
+ /**
21
+ * Not present for HM-IP-Taster
22
+ * @inheritDoc
23
+ */
16
24
  buttonBot: undefined;
25
+ /**
26
+ * Not present for HM-IP-Taster
27
+ * @inheritDoc
28
+ */
17
29
  buttonTop: undefined;
18
- get battery(): number;
30
+ private _battery;
31
+ private _lastBatteryPersist;
32
+ private _lastBatteryLevel;
33
+ private _batteryLevelCallbacks;
19
34
  constructor(pInfo: IoBrokerDeviceInfo);
35
+ get lastBatteryPersist(): number;
36
+ get battery(): number;
37
+ /** @inheritDoc */
38
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
20
39
  persist(buttonName: string, pressType: ButtonPressType): void;
40
+ /** @inheritDoc */
21
41
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
22
42
  getButtonAssignment(): string;
23
43
  persistBatteryDevice(): void;
24
44
  pressButton(position: ButtonPosition, pressType: ButtonPressType): Error | null;
45
+ /**
46
+ * Checks whether the battery level did change and if so fires the callbacks
47
+ */
48
+ private checkForBatteryChange;
25
49
  }
@@ -8,18 +8,22 @@ const models_1 = require("../../../models");
8
8
  const DeviceCapability_1 = require("../DeviceCapability");
9
9
  const services_1 = require("../../services");
10
10
  class HmIpTaster extends hmIpDevice_1.HmIPDevice {
11
- get lastBatteryPersist() {
12
- return this._lastBatteryPersist;
13
- }
14
- get battery() {
15
- return this._battery;
16
- }
17
11
  constructor(pInfo) {
18
12
  super(pInfo, deviceType_1.DeviceType.HmIpTaster);
19
- this._battery = -99;
20
- this._lastBatteryPersist = 0;
13
+ /**
14
+ * Not present for HM-IP-Taster
15
+ * @inheritDoc
16
+ */
21
17
  this.buttonBot = undefined;
18
+ /**
19
+ * Not present for HM-IP-Taster
20
+ * @inheritDoc
21
+ */
22
22
  this.buttonTop = undefined;
23
+ this._battery = -99;
24
+ this._lastBatteryPersist = 0;
25
+ this._lastBatteryLevel = -1;
26
+ this._batteryLevelCallbacks = [];
23
27
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.buttonSwitch);
24
28
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
25
29
  this.buttonTopLeft = new button_1.Button('TopLeft', HmIpTaster.BUTTON_CAPABILLITIES);
@@ -29,10 +33,21 @@ class HmIpTaster extends hmIpDevice_1.HmIPDevice {
29
33
  this.buttonMidRight = new button_1.Button('MidRight', HmIpTaster.BUTTON_CAPABILLITIES);
30
34
  this.buttonBotRight = new button_1.Button('BotRight', HmIpTaster.BUTTON_CAPABILLITIES);
31
35
  }
36
+ get lastBatteryPersist() {
37
+ return this._lastBatteryPersist;
38
+ }
39
+ get battery() {
40
+ return this._battery;
41
+ }
42
+ /** @inheritDoc */
43
+ addBatteryLevelCallback(pCallback) {
44
+ this._batteryLevelCallbacks.push(pCallback);
45
+ }
32
46
  persist(buttonName, pressType) {
33
47
  var _a;
34
48
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistSwitchInput(this, pressType, buttonName);
35
49
  }
50
+ /** @inheritDoc */
36
51
  update(idSplit, state, initial = false) {
37
52
  this.log(models_1.LogLevel.DeepTrace, `Taster Update: JSON: ${JSON.stringify(state)}ID: ${idSplit.join('.')}`);
38
53
  super.update(idSplit, state, initial, true);
@@ -42,6 +57,7 @@ class HmIpTaster extends hmIpDevice_1.HmIPDevice {
42
57
  switch (idSplit[4]) {
43
58
  case 'OPERATING_VOLTAGE':
44
59
  this._battery = 100 * ((state.val - 1.8) / 1.2);
60
+ this.checkForBatteryChange();
45
61
  this.persistBatteryDevice();
46
62
  break;
47
63
  }
@@ -161,6 +177,19 @@ class HmIpTaster extends hmIpDevice_1.HmIPDevice {
161
177
  }
162
178
  return result;
163
179
  }
180
+ /**
181
+ * Checks whether the battery level did change and if so fires the callbacks
182
+ */
183
+ checkForBatteryChange() {
184
+ const newLevel = this.battery;
185
+ if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
186
+ return;
187
+ }
188
+ for (const cb of this._batteryLevelCallbacks) {
189
+ cb(new models_1.BatteryLevelChangeAction(this));
190
+ }
191
+ this._lastBatteryLevel = newLevel;
192
+ }
164
193
  }
165
194
  exports.HmIpTaster = HmIpTaster;
166
195
  HmIpTaster.BUTTON_CAPABILLITIES = {
@@ -1,12 +1,22 @@
1
1
  import { HmIPDevice } from './hmIpDevice';
2
+ import { BatteryLevelChangeAction } from '../../../models';
2
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
3
4
  import { iBatteryDevice } from '../baseDeviceInterfaces';
4
5
  export declare class HmIpTherm extends HmIPDevice implements iBatteryDevice {
5
6
  private _battery;
6
7
  private _lastBatteryPersist;
8
+ private _lastBatteryLevel;
9
+ private _batteryLevelCallbacks;
10
+ constructor(pInfo: IoBrokerDeviceInfo);
7
11
  get lastBatteryPersist(): number;
8
12
  get battery(): number;
9
- constructor(pInfo: IoBrokerDeviceInfo);
13
+ /** @inheritDoc */
14
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
15
+ /** @inheritDoc */
10
16
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
11
17
  persistBatteryDevice(): void;
18
+ /**
19
+ * Checks whether the battery level did change and if so fires the callbacks
20
+ */
21
+ private checkForBatteryChange;
12
22
  }
@@ -7,18 +7,25 @@ const models_1 = require("../../../models");
7
7
  const DeviceCapability_1 = require("../DeviceCapability");
8
8
  const services_1 = require("../../services");
9
9
  class HmIpTherm extends hmIpDevice_1.HmIPDevice {
10
+ constructor(pInfo) {
11
+ super(pInfo, deviceType_1.DeviceType.HmIpTherm);
12
+ this._battery = -99;
13
+ this._lastBatteryPersist = 0;
14
+ this._lastBatteryLevel = -1;
15
+ this._batteryLevelCallbacks = [];
16
+ this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
17
+ }
10
18
  get lastBatteryPersist() {
11
19
  return this._lastBatteryPersist;
12
20
  }
13
21
  get battery() {
14
22
  return this._battery;
15
23
  }
16
- constructor(pInfo) {
17
- super(pInfo, deviceType_1.DeviceType.HmIpTherm);
18
- this._battery = -99;
19
- this._lastBatteryPersist = 0;
20
- this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
24
+ /** @inheritDoc */
25
+ addBatteryLevelCallback(pCallback) {
26
+ this._batteryLevelCallbacks.push(pCallback);
21
27
  }
28
+ /** @inheritDoc */
22
29
  update(idSplit, state, initial = false) {
23
30
  this.log(models_1.LogLevel.DeepTrace, `Thermostat Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
24
31
  super.update(idSplit, state, initial, true);
@@ -27,6 +34,7 @@ class HmIpTherm extends hmIpDevice_1.HmIPDevice {
27
34
  switch (idSplit[4]) {
28
35
  case 'OPERATING_VOLTAGE':
29
36
  this._battery = 100 * ((state.val - 1.8) / 1.2);
37
+ this.checkForBatteryChange();
30
38
  this.persistBatteryDevice();
31
39
  break;
32
40
  }
@@ -42,5 +50,18 @@ class HmIpTherm extends hmIpDevice_1.HmIPDevice {
42
50
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
43
51
  this._lastBatteryPersist = now;
44
52
  }
53
+ /**
54
+ * Checks whether the battery level did change and if so fires the callbacks
55
+ */
56
+ checkForBatteryChange() {
57
+ const newLevel = this.battery;
58
+ if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
59
+ return;
60
+ }
61
+ for (const cb of this._batteryLevelCallbacks) {
62
+ cb(new models_1.BatteryLevelChangeAction(this));
63
+ }
64
+ this._lastBatteryLevel = newLevel;
65
+ }
45
66
  }
46
67
  exports.HmIpTherm = HmIpTherm;