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
@@ -5,81 +5,135 @@ const services_1 = require("../../services");
5
5
  const models_1 = require("../../../models");
6
6
  class LampUtils {
7
7
  static stromStossOn(actuator) {
8
+ if (!LampUtils.stromStossContinueTimeouts.has(actuator.id)) {
9
+ LampUtils.stromStossContinueTimeouts.set(actuator.id, services_1.Utils.guardedTimeout(() => {
10
+ var _a, _b;
11
+ LampUtils.stromStossContinueTimeouts.delete(actuator.id);
12
+ if ((_b = (_a = actuator.room) === null || _a === void 0 ? void 0 : _a.PraesenzGroup) === null || _b === void 0 ? void 0 : _b.anyPresent()) {
13
+ actuator.setActuator(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Automatic, true, 'StromStoss On due to Presence', null));
14
+ }
15
+ }, actuator.settings.stromStossResendTime * 1000, this));
16
+ }
8
17
  services_1.Utils.guardedTimeout(() => {
9
- var _a, _b;
10
- if ((_b = (_a = actuator.room) === null || _a === void 0 ? void 0 : _a.PraesenzGroup) === null || _b === void 0 ? void 0 : _b.anyPresent()) {
11
- actuator.setActuator(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Force, true, 'StromStoss On due to Presence'));
12
- }
13
- }, actuator.settings.stromStossResendTime * 1000, this);
14
- services_1.Utils.guardedTimeout(() => {
15
- actuator.setActuator(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Force, false, 'StromStoss Off'));
18
+ actuator.setActuator(new models_1.ActuatorSetStateCommand(models_1.CommandSource.Force, false, 'StromStoss Off', null));
16
19
  }, 3000, this);
17
20
  }
18
21
  static setTimeBased(device, c) {
19
- if ((c.time === models_1.TimeOfDay.Night && device.settings.nightOn) ||
22
+ if (c.isManual ||
23
+ (c.time === models_1.TimeOfDay.Daylight && device.settings.dayOn) ||
24
+ (c.time === models_1.TimeOfDay.Night && device.settings.nightOn) ||
20
25
  (c.time === models_1.TimeOfDay.BeforeSunrise && device.settings.dawnOn) ||
21
26
  (c.time === models_1.TimeOfDay.AfterSunset && device.settings.duskOn)) {
22
- device.setLight(new models_1.LampSetLightCommand(c, true, `SetLight due to TimeBased ${c.time}`, c.timeout));
27
+ device.setLight(new models_1.LampSetLightCommand(c, true, `SetLight due to TimeBased ${models_1.TimeOfDay[c.time]}`, c.disableAutomaticCommand));
23
28
  }
24
29
  }
25
30
  static checkUnBlock(device, command) {
26
31
  let dontBlock = false;
32
+ if (command.containsType(models_1.CommandType.ActuatorRestoreTargetAutomaticValueCommand)) {
33
+ // We are restoring the automatic value, so we don't want to block the device
34
+ return true;
35
+ }
27
36
  if (command.isForceAction &&
28
37
  device.settings.resetToAutomaticOnForceOffAfterForceOn &&
29
38
  !command.on &&
30
39
  device.blockAutomationHandler.automaticBlockActive) {
31
40
  dontBlock = true;
32
- device.log(models_1.LogLevel.Debug, `Reset Automatic Block as we are turning off manually after a force on`);
33
- device.blockAutomationHandler.liftAutomaticBlock();
41
+ const liftCommand = new models_1.BlockAutomaticLiftBlockCommand(command, 'Reset Automatic Block as we are turning off manually after a force on');
42
+ liftCommand.overrideCommandSource = models_1.CommandSource.Automatic;
43
+ device.blockAutomationHandler.liftAutomaticBlock(liftCommand);
34
44
  }
35
45
  return dontBlock;
36
46
  }
37
47
  static toggleLight(device, c) {
38
48
  var _a;
39
- const newVal = device.queuedValue !== null ? !device.queuedValue : !device.lightOn;
40
- const timeout = newVal && c.isForceAction ? 30 * 60 * 1000 : -1;
49
+ const newVal = device.queuedValue !== null ? !device.queuedValue : !device.actuatorOn;
41
50
  if (newVal && c.time === undefined && c.calculateTime && device.room !== undefined) {
42
51
  c.time = services_1.TimeCallbackService.dayType((_a = device.room) === null || _a === void 0 ? void 0 : _a.settings.lampOffset);
43
52
  }
44
53
  if (newVal && c.time !== undefined) {
45
- device.setTimeBased(new models_1.LampSetTimeBasedCommand(c, c.time, 'SetLight Due to toggle Light', timeout));
54
+ device.setTimeBased(new models_1.LampSetTimeBasedCommand(c, c.time, '', c.isForceAction ? undefined : null));
46
55
  return true;
47
56
  }
48
- device.setLight(new models_1.LampSetLightCommand(c, newVal, 'SetLight Due to toggle Light', timeout));
57
+ device.setLight(new models_1.LampSetLightCommand(c, newVal, '', c.isForceAction ? undefined : null));
49
58
  return newVal;
50
59
  }
51
60
  static checkBlockActive(device, c) {
52
61
  if (!c.isForceAction && device.blockAutomationHandler.automaticBlockActive) {
53
- device.log(models_1.LogLevel.Debug, `Skip command to ${c.on} as it is locked until ${new Date(device.blockAutomationHandler.automaticBlockedUntil).toLocaleTimeString()}; command Log: ${c.logMessage}`);
62
+ device.log(models_1.LogLevel.Debug, `Skip command to ${c.on} as it is locked until ${new Date(device.blockAutomationHandler.automaticBlockedUntil).toLocaleTimeString('de-DE')}; command Log: ${c.logMessage}`);
54
63
  device.targetAutomaticState = c.on;
55
64
  return true;
56
65
  }
57
66
  return false;
58
67
  }
59
- static checkUnchanged(device, c) {
60
- if (!c.isForceAction && c.on === device.actuatorOn && device.queuedValue === null) {
61
- device.log(models_1.LogLevel.DeepTrace, `Skip light command as it is already ${c.on}`, services_1.LogDebugType.SkipUnchangedActuatorCommand);
62
- return true;
68
+ /**
69
+ * Check if the dimmer is already in the desired state thus allowing to skip this command
70
+ * @param {iDimmableLamp} device - The device to check
71
+ * @param {DimmerSetLightCommand} c - The command to check
72
+ * @returns {boolean} - True if the command can be skipped
73
+ */
74
+ static canDimmerChangeBeSkipped(device, c) {
75
+ if (c.isForceAction) {
76
+ return false;
63
77
  }
64
- return false;
78
+ if (!this.canActuatorChangeBeSkipped(device, c, true)) {
79
+ return false;
80
+ }
81
+ if (c.brightness !== device.brightness) {
82
+ return false;
83
+ }
84
+ device.log(models_1.LogLevel.DeepTrace, `Light command can be skipped as the device is already in desired state: ${c.logMessage}`, services_1.LogDebugType.SkipUnchangedActuatorCommand);
85
+ return true;
86
+ }
87
+ static canActuatorChangeBeSkipped(device, c, noLog = false) {
88
+ if (c.isForceAction) {
89
+ return false;
90
+ }
91
+ if ((device.queuedValue === null && device.actuatorOn !== c.on) ||
92
+ (device.queuedValue !== null && c.on === device.queuedValue)) {
93
+ return false;
94
+ }
95
+ if (!noLog) {
96
+ device.log(models_1.LogLevel.DeepTrace, `Light command can be skipped as device is already in desired state; command: ${c.logMessage}`, services_1.LogDebugType.SkipUnchangedActuatorCommand);
97
+ }
98
+ return true;
65
99
  }
66
100
  static setActuator(device, c) {
101
+ if (device.settings.isStromStoss &&
102
+ c.on &&
103
+ c.containsType(models_1.CommandType.ActuatorRestoreTargetAutomaticValueCommand)) {
104
+ // Don't restore automatic state on Strommstoss-Relais as this might result in a loop.
105
+ return;
106
+ }
67
107
  const dontBlock = LampUtils.checkUnBlock(device, c);
68
108
  if (LampUtils.checkBlockActive(device, c)) {
69
109
  return;
70
110
  }
71
- if (LampUtils.checkUnchanged(device, c)) {
111
+ if (c.isAutomaticAction) {
112
+ // Preserve the target state for the automatic handler, as
113
+ device.targetAutomaticState = c.on;
114
+ }
115
+ if (LampUtils.canActuatorChangeBeSkipped(device, c)) {
72
116
  return;
73
117
  }
74
118
  device.queuedValue = c.on;
75
119
  device.writeActuatorStateToDevice(new models_1.ActuatorWriteStateToDeviceCommand(c, c.on));
76
120
  if (device.settings.isStromStoss && c.on) {
77
- c.timeout = 3000;
121
+ c.disableAutomaticCommand = new models_1.BlockAutomaticCommand(c, 3000, 'StromStoss Off');
78
122
  LampUtils.stromStossOn(device);
79
123
  }
80
- if (c.timeout > -1 && !dontBlock) {
81
- device.blockAutomationHandler.disableAutomatic(c.timeout, models_1.CollisionSolving.overrideIfGreater);
124
+ if (dontBlock || c.disableAutomaticCommand === null) {
125
+ return;
126
+ }
127
+ if (dontBlock) {
128
+ return;
129
+ }
130
+ if (c.disableAutomaticCommand === undefined && c.isForceAction) {
131
+ c.disableAutomaticCommand = models_1.BlockAutomaticCommand.fromDeviceSettings(c, device.settings);
132
+ }
133
+ if (c.disableAutomaticCommand) {
134
+ device.blockAutomationHandler.disableAutomatic(c.disableAutomaticCommand);
82
135
  }
83
136
  }
84
137
  }
85
138
  exports.LampUtils = LampUtils;
139
+ LampUtils.stromStossContinueTimeouts = new Map();
@@ -1,2 +1,3 @@
1
1
  export { ShellyDevice } from './shellyDevice';
2
2
  export { ShellyTrv } from './shellyTrv';
3
+ export { ShellyActuator } from './shellyActuator';
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShellyTrv = exports.ShellyDevice = void 0;
3
+ exports.ShellyActuator = exports.ShellyTrv = exports.ShellyDevice = void 0;
4
4
  var shellyDevice_1 = require("./shellyDevice");
5
5
  Object.defineProperty(exports, "ShellyDevice", { enumerable: true, get: function () { return shellyDevice_1.ShellyDevice; } });
6
6
  var shellyTrv_1 = require("./shellyTrv");
7
7
  Object.defineProperty(exports, "ShellyTrv", { enumerable: true, get: function () { return shellyTrv_1.ShellyTrv; } });
8
+ var shellyActuator_1 = require("./shellyActuator");
9
+ Object.defineProperty(exports, "ShellyActuator", { enumerable: true, get: function () { return shellyActuator_1.ShellyActuator; } });
@@ -0,0 +1,33 @@
1
+ import { ShellyDevice } from './shellyDevice';
2
+ import { iActuator } from '../baseDeviceInterfaces';
3
+ import { BlockAutomaticHandler } from '../../services/blockAutomaticHandler';
4
+ import { ActuatorSetStateCommand, ActuatorSettings, ActuatorToggleCommand, ActuatorWriteStateToDeviceCommand, RestoreTargetAutomaticValueCommand } from '../../../models';
5
+ import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
6
+ export declare class ShellyActuator extends ShellyDevice implements iActuator {
7
+ /** @inheritDoc */
8
+ readonly blockAutomationHandler: BlockAutomaticHandler;
9
+ /** @inheritDoc */
10
+ targetAutomaticState: boolean;
11
+ /** @inheritDoc */
12
+ settings: ActuatorSettings;
13
+ /** @inheritDoc */
14
+ queuedValue: boolean | null;
15
+ private _lastPersist;
16
+ private readonly _actuatorOnStateId;
17
+ private _actuatorOn;
18
+ constructor(pInfo: IoBrokerDeviceInfo);
19
+ /** @inheritDoc */
20
+ get actuatorOn(): boolean;
21
+ /** @inheritDoc */
22
+ restoreTargetAutomaticValue(c: RestoreTargetAutomaticValueCommand): void;
23
+ /** @inheritDoc */
24
+ update(idSplit: string[], state: ioBroker.State, initial?: boolean, handledByChildObject?: boolean): void;
25
+ /** @inheritDoc */
26
+ setActuator(command: ActuatorSetStateCommand): void;
27
+ /** @inheritDoc */
28
+ persist(): void;
29
+ /** @inheritDoc */
30
+ toggleActuator(command: ActuatorToggleCommand): boolean;
31
+ /** @inheritDoc */
32
+ writeActuatorStateToDevice(c: ActuatorWriteStateToDeviceCommand): void;
33
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShellyActuator = void 0;
4
+ const shellyDevice_1 = require("./shellyDevice");
5
+ const blockAutomaticHandler_1 = require("../../services/blockAutomaticHandler");
6
+ const models_1 = require("../../../models");
7
+ const deviceType_1 = require("../deviceType");
8
+ const DeviceCapability_1 = require("../DeviceCapability");
9
+ const sharedFunctions_1 = require("../sharedFunctions");
10
+ const services_1 = require("../../services");
11
+ class ShellyActuator extends shellyDevice_1.ShellyDevice {
12
+ constructor(pInfo) {
13
+ super(pInfo, deviceType_1.DeviceType.ShellyActuator);
14
+ /** @inheritDoc */
15
+ this.targetAutomaticState = false;
16
+ /** @inheritDoc */
17
+ this.settings = new models_1.ActuatorSettings();
18
+ /** @inheritDoc */
19
+ this.queuedValue = null;
20
+ this._lastPersist = 0;
21
+ this._actuatorOn = false;
22
+ this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.actuator);
23
+ this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.blockAutomatic);
24
+ this._actuatorOnStateId = `${this.info.fullID}.Relay0.Switch`;
25
+ this.blockAutomationHandler = new blockAutomaticHandler_1.BlockAutomaticHandler(this.restoreTargetAutomaticValue.bind(this), this.log.bind(this));
26
+ }
27
+ /** @inheritDoc */
28
+ get actuatorOn() {
29
+ return this._actuatorOn;
30
+ }
31
+ /** @inheritDoc */
32
+ restoreTargetAutomaticValue(c) {
33
+ this.setActuator(new models_1.ActuatorSetStateCommand(c, this.targetAutomaticState));
34
+ }
35
+ /** @inheritDoc */
36
+ update(idSplit, state, initial = false, handledByChildObject = false) {
37
+ if (!handledByChildObject) {
38
+ this.log(models_1.LogLevel.DeepTrace, `Aktuator Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
39
+ }
40
+ this.queuedValue = null;
41
+ super.update(idSplit, state, initial, true);
42
+ if (idSplit[3] === 'Relay0') {
43
+ if (idSplit[4] === 'Switch') {
44
+ this._actuatorOn = state.val;
45
+ if (!initial) {
46
+ this.persist();
47
+ }
48
+ }
49
+ }
50
+ }
51
+ /** @inheritDoc */
52
+ setActuator(command) {
53
+ if (this._actuatorOnStateId === '') {
54
+ this.log(models_1.LogLevel.Error, 'Keine Switch ID bekannt.');
55
+ return;
56
+ }
57
+ sharedFunctions_1.LampUtils.setActuator(this, command);
58
+ }
59
+ /** @inheritDoc */
60
+ persist() {
61
+ var _a;
62
+ const now = services_1.Utils.nowMS();
63
+ if (this._lastPersist + 1000 > now) {
64
+ return;
65
+ }
66
+ (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistActuator(this);
67
+ this._lastPersist = now;
68
+ }
69
+ /** @inheritDoc */
70
+ toggleActuator(command) {
71
+ const newVal = this.queuedValue !== null ? !this.queuedValue : !this._actuatorOn;
72
+ const setStateCommand = models_1.ActuatorSetStateCommand.byActuatorAndToggleCommand(this, command);
73
+ this.setActuator(setStateCommand);
74
+ return newVal;
75
+ }
76
+ /** @inheritDoc */
77
+ writeActuatorStateToDevice(c) {
78
+ this.log(models_1.LogLevel.Debug, c.logMessage, services_1.LogDebugType.SetActuator);
79
+ this.setState(this._actuatorOnStateId, c.stateValue, undefined, (err) => {
80
+ this.log(models_1.LogLevel.Error, `Lampe schalten ergab Fehler: ${err}`);
81
+ });
82
+ }
83
+ }
84
+ exports.ShellyActuator = ShellyActuator;
@@ -5,8 +5,9 @@ import { DeviceType } from '../deviceType';
5
5
  export declare class ShellyDevice extends IoBrokerBaseDevice implements iDisposable {
6
6
  private _lastUpdate;
7
7
  get lastUpdate(): Date;
8
- stateMap: Map<string, ioBroker.State>;
9
8
  constructor(pInfo: IoBrokerDeviceInfo, pType: DeviceType);
9
+ /** @inheritDoc */
10
10
  update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverride?: boolean): void;
11
+ /** @inheritDoc */
11
12
  dispose(): void;
12
13
  }
@@ -10,8 +10,8 @@ class ShellyDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
10
10
  constructor(pInfo, pType) {
11
11
  super(pInfo, pType);
12
12
  this._lastUpdate = new Date(0);
13
- this.stateMap = new Map();
14
13
  }
14
+ /** @inheritDoc */
15
15
  update(idSplit, state, initial = false, pOverride = false) {
16
16
  this.log(models_1.LogLevel.DeepTrace, `Shelly: ${initial ? 'Initiales ' : ''}Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
17
17
  if (!pOverride) {
@@ -29,6 +29,7 @@ class ShellyDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
29
29
  }
30
30
  }
31
31
  }
32
+ /** @inheritDoc */
32
33
  dispose() {
33
34
  // Nothing yet
34
35
  }
@@ -1,14 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import { ShellyDevice } from './shellyDevice';
3
- import { iHeater } from '../baseDeviceInterfaces';
4
- import { HeaterSettings } from '../../../models';
3
+ import { iBatteryDevice, iHeater } from '../baseDeviceInterfaces';
4
+ import { BatteryLevelChangeAction, HeaterSettings } from '../../../models';
5
5
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
6
- export declare class ShellyTrv extends ShellyDevice implements iHeater {
6
+ export declare class ShellyTrv extends ShellyDevice implements iHeater, iBatteryDevice {
7
+ /** @inheritDoc */
7
8
  settings: HeaterSettings;
8
- get lastBatteryPersist(): number;
9
+ /** @inheritDoc */
9
10
  readonly persistHeaterInterval: NodeJS.Timeout;
10
- get battery(): number;
11
- get minimumLevel(): number;
11
+ protected _seasonTurnOff: boolean;
12
+ protected _roomTemperature: number;
12
13
  private _automaticMode;
13
14
  private _battery;
14
15
  private _iAutomaticInterval;
@@ -29,34 +30,53 @@ export declare class ShellyTrv extends ShellyDevice implements iHeater {
29
30
  private readonly _setEnableExternalTempId;
30
31
  private readonly _setPointTemperaturID;
31
32
  private readonly _valvePosId;
33
+ private _lastBatteryLevel;
34
+ private _batteryLevelCallbacks;
32
35
  constructor(pInfo: IoBrokerDeviceInfo);
33
- protected _seasonTurnOff: boolean;
36
+ /** @inheritDoc */
37
+ get lastBatteryPersist(): number;
38
+ /** @inheritDoc */
39
+ get battery(): number;
40
+ get minimumLevel(): number;
41
+ /** @inheritDoc */
34
42
  get seasonTurnOff(): boolean;
43
+ /** @inheritDoc */
35
44
  set seasonTurnOff(value: boolean);
45
+ /** @inheritDoc */
36
46
  get desiredTemperature(): number;
47
+ /** @inheritDoc */
37
48
  set desiredTemperature(val: number);
38
- protected _humidity: number;
39
- get humidity(): number;
40
- get sLevel(): string;
49
+ /** @inheritDoc */
41
50
  get iLevel(): number;
42
- get sTemperatur(): string;
51
+ /** @inheritDoc */
43
52
  get iTemperature(): number;
44
- protected _roomTemperature: number;
53
+ /** @inheritDoc */
45
54
  get roomTemperature(): number;
46
- set roomTemperatur(val: number);
55
+ private set roomTemperatur(value);
56
+ /** @inheritDoc */
57
+ addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
58
+ /** @inheritDoc */
47
59
  checkAutomaticChange(): void;
48
- stopAutomaticCheck(): void;
60
+ /** @inheritDoc */
49
61
  onTemperaturChange(newTemperatur: number): void;
62
+ /** @inheritDoc */
50
63
  persistHeater(): void;
64
+ /** @inheritDoc */
51
65
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
52
- protected getNextPidLevel(): number;
53
- private checkSeasonTurnOff;
66
+ /** @inheritDoc */
54
67
  persistBatteryDevice(): void;
68
+ /** @inheritDoc */
55
69
  dispose(): void;
56
- recalcLevel(): void;
70
+ protected getNextPidLevel(): number;
71
+ private checkSeasonTurnOff;
72
+ private recalcLevel;
57
73
  private setMode;
58
74
  private setExternalTemperature;
59
75
  private setExternalTemperatureEnabled;
60
76
  private setValve;
61
77
  private setMinimumLevel;
78
+ /**
79
+ * Checks whether the battery level did change and if so fires the callbacks
80
+ */
81
+ private checkForBatteryChange;
62
82
  }
@@ -9,21 +9,16 @@ const liquid_pid_1 = require("../../../liquid-pid");
9
9
  const deviceType_1 = require("../deviceType");
10
10
  const DeviceCapability_1 = require("../DeviceCapability");
11
11
  class ShellyTrv extends shellyDevice_1.ShellyDevice {
12
- get lastBatteryPersist() {
13
- return this._lastBatteryPersist;
14
- }
15
- get battery() {
16
- return this._battery;
17
- }
18
- get minimumLevel() {
19
- return this._minimumValveLevel;
20
- }
21
12
  constructor(pInfo) {
22
13
  super(pInfo, deviceType_1.DeviceType.ShellyTrv);
14
+ /** @inheritDoc */
23
15
  this.settings = new models_1.HeaterSettings();
16
+ /** @inheritDoc */
24
17
  this.persistHeaterInterval = services_1.Utils.guardedInterval(() => {
25
18
  this.persistHeater();
26
19
  }, 5 * 60 * 1000, this, false);
20
+ this._seasonTurnOff = false;
21
+ this._roomTemperature = baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE;
27
22
  this._automaticMode = false;
28
23
  this._battery = -99;
29
24
  this._initialSeasonCheckDone = false;
@@ -46,9 +41,8 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
46
41
  Kd: 9, // PID: Kd in 1/1000
47
42
  });
48
43
  this._lastBatteryPersist = 0;
49
- this._seasonTurnOff = false;
50
- this._humidity = 0;
51
- this._roomTemperature = baseDeviceInterfaces_1.UNDEFINED_TEMP_VALUE;
44
+ this._lastBatteryLevel = -1;
45
+ this._batteryLevelCallbacks = [];
52
46
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.heater);
53
47
  this.deviceCapabilities.push(DeviceCapability_1.DeviceCapability.batteryDriven);
54
48
  this._setAutomaticModeId = `${this.info.fullID}.tmp.automaticTemperatureControl`;
@@ -62,9 +56,22 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
62
56
  this.checkSeasonTurnOff();
63
57
  }, 0, 2, 0));
64
58
  }
59
+ /** @inheritDoc */
60
+ get lastBatteryPersist() {
61
+ return this._lastBatteryPersist;
62
+ }
63
+ /** @inheritDoc */
64
+ get battery() {
65
+ return this._battery;
66
+ }
67
+ get minimumLevel() {
68
+ return this._minimumValveLevel;
69
+ }
70
+ /** @inheritDoc */
65
71
  get seasonTurnOff() {
66
72
  return this._seasonTurnOff;
67
73
  }
74
+ /** @inheritDoc */
68
75
  set seasonTurnOff(value) {
69
76
  this._seasonTurnOff = value;
70
77
  if (value) {
@@ -74,9 +81,11 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
74
81
  }
75
82
  this.setMode(!this.settings.controlByPid);
76
83
  }
84
+ /** @inheritDoc */
77
85
  get desiredTemperature() {
78
86
  return this._desiredTemperatur;
79
87
  }
88
+ /** @inheritDoc */
80
89
  set desiredTemperature(val) {
81
90
  this._desiredTemperatur = val;
82
91
  if (this._targetTempVal === val) {
@@ -88,18 +97,11 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
88
97
  this.log(models_1.LogLevel.Error, `Temperaturänderung ergab Fehler ${err}.`);
89
98
  });
90
99
  }
91
- get humidity() {
92
- return this._humidity;
93
- }
94
- get sLevel() {
95
- return `${this._level * 100}%`;
96
- }
100
+ /** @inheritDoc */
97
101
  get iLevel() {
98
102
  return this._level;
99
103
  }
100
- get sTemperatur() {
101
- return `${this.iTemperature}°C`;
102
- }
104
+ /** @inheritDoc */
103
105
  get iTemperature() {
104
106
  if (this.settings.useOwnTemperatur) {
105
107
  return this._temperatur;
@@ -108,6 +110,7 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
108
110
  return this._roomTemperature;
109
111
  }
110
112
  }
113
+ /** @inheritDoc */
111
114
  get roomTemperature() {
112
115
  return this._roomTemperature;
113
116
  }
@@ -121,6 +124,11 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
121
124
  this.recalcLevel();
122
125
  }
123
126
  }
127
+ /** @inheritDoc */
128
+ addBatteryLevelCallback(pCallback) {
129
+ this._batteryLevelCallbacks.push(pCallback);
130
+ }
131
+ /** @inheritDoc */
124
132
  checkAutomaticChange() {
125
133
  var _a;
126
134
  if (!this._initialSeasonCheckDone) {
@@ -156,19 +164,16 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
156
164
  this.desiredTemperature = targetTemperature;
157
165
  }
158
166
  }
159
- stopAutomaticCheck() {
160
- if (this._iAutomaticInterval !== undefined) {
161
- clearInterval(this._iAutomaticInterval);
162
- this._iAutomaticInterval = undefined;
163
- }
164
- }
167
+ /** @inheritDoc */
165
168
  onTemperaturChange(newTemperatur) {
166
169
  this.roomTemperatur = newTemperatur;
167
170
  }
171
+ /** @inheritDoc */
168
172
  persistHeater() {
169
173
  var _a;
170
174
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistHeater(this);
171
175
  }
176
+ /** @inheritDoc */
172
177
  update(idSplit, state, initial = false) {
173
178
  if (idSplit[3] === 'tmp' && idSplit[4] === 'valvePosition') {
174
179
  this.log(models_1.LogLevel.Trace, `Valve position update for ${this.info.customName} to "${state.val}"`);
@@ -195,30 +200,15 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
195
200
  }
196
201
  else if (idSplit[3] === 'bat' && idSplit[4] === 'value') {
197
202
  this._battery = state.val;
203
+ this.checkForBatteryChange();
198
204
  this.persistBatteryDevice();
199
205
  if (this._battery < 20) {
200
- this.log(models_1.LogLevel.Warn, `Das Shelly Gerät hat unter 20% Batterie.`);
206
+ this.log(models_1.LogLevel.Warn, 'Das Shelly Gerät hat unter 20% Batterie.');
201
207
  }
202
208
  }
203
209
  super.update(idSplit, state, initial, true);
204
210
  }
205
- getNextPidLevel() {
206
- if (this.seasonTurnOff || this._roomTemperature < 0) {
207
- return 0;
208
- }
209
- this._pidController.setPoint(this.desiredTemperature);
210
- const newValue = this._pidController.calculate(this._roomTemperature);
211
- this.log(models_1.LogLevel.Debug, `New PID Value ${newValue}% (cTemp: ${this._roomTemperature}, dTemp: ${this.desiredTemperature})`);
212
- return newValue;
213
- }
214
- checkSeasonTurnOff() {
215
- const desiredState = services_1.Utils.beetweenDays(new Date(), this.settings.seasonTurnOffDay, this.settings.seasonTurnOnDay);
216
- if (desiredState !== this.seasonTurnOff || !this._initialSeasonCheckDone) {
217
- this.log(models_1.LogLevel.Info, `Switching Seasonal Heating --> New seasonTurnOff: ${desiredState}`);
218
- this.seasonTurnOff = desiredState;
219
- }
220
- this._initialSeasonCheckDone = true;
221
- }
211
+ /** @inheritDoc */
222
212
  persistBatteryDevice() {
223
213
  var _a;
224
214
  const now = services_1.Utils.nowMS();
@@ -228,6 +218,7 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
228
218
  (_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
229
219
  this._lastBatteryPersist = now;
230
220
  }
221
+ /** @inheritDoc */
231
222
  dispose() {
232
223
  if (this.persistHeaterInterval) {
233
224
  clearInterval(this.persistHeaterInterval);
@@ -238,6 +229,23 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
238
229
  }
239
230
  super.dispose();
240
231
  }
232
+ getNextPidLevel() {
233
+ if (this.seasonTurnOff || this._roomTemperature < 0) {
234
+ return 0;
235
+ }
236
+ this._pidController.setPoint(this.desiredTemperature);
237
+ const newValue = this._pidController.calculate(this._roomTemperature);
238
+ this.log(models_1.LogLevel.Debug, `New PID Value ${newValue}% (cTemp: ${this._roomTemperature}, dTemp: ${this.desiredTemperature})`);
239
+ return newValue;
240
+ }
241
+ checkSeasonTurnOff() {
242
+ const desiredState = services_1.Utils.beetweenDays(new Date(), this.settings.seasonTurnOffDay, this.settings.seasonTurnOnDay);
243
+ if (desiredState !== this.seasonTurnOff || !this._initialSeasonCheckDone) {
244
+ this.log(models_1.LogLevel.Info, `Switching Seasonal Heating --> New seasonTurnOff: ${desiredState}`);
245
+ this.seasonTurnOff = desiredState;
246
+ }
247
+ this._initialSeasonCheckDone = true;
248
+ }
241
249
  recalcLevel() {
242
250
  if (this.settings.useOwnTemperatur || this.seasonTurnOff || !this.settings.controlByPid) {
243
251
  return;
@@ -274,5 +282,18 @@ class ShellyTrv extends shellyDevice_1.ShellyDevice {
274
282
  setMinimumLevel(pidForcedMinimum) {
275
283
  this.setState(this._minumumLevelId, pidForcedMinimum);
276
284
  }
285
+ /**
286
+ * Checks whether the battery level did change and if so fires the callbacks
287
+ */
288
+ checkForBatteryChange() {
289
+ const newLevel = this.battery;
290
+ if (newLevel == -1 || newLevel == this._lastBatteryLevel) {
291
+ return;
292
+ }
293
+ for (const cb of this._batteryLevelCallbacks) {
294
+ cb(new models_1.BatteryLevelChangeAction(this));
295
+ }
296
+ this._lastBatteryLevel = newLevel;
297
+ }
277
298
  }
278
299
  exports.ShellyTrv = ShellyTrv;
@@ -5,8 +5,9 @@ import { DeviceType } from '../deviceType';
5
5
  export declare class TuyaDevice extends IoBrokerBaseDevice implements iDisposable {
6
6
  private _lastUpdate;
7
7
  get lastUpdate(): Date;
8
- stateMap: Map<string, ioBroker.State>;
9
8
  constructor(pInfo: IoBrokerDeviceInfo, pType: DeviceType);
9
+ /** @inheritDoc */
10
10
  update(idSplit: string[], state: ioBroker.State, initial?: boolean, pOverride?: boolean): void;
11
+ /** @inheritDoc */
11
12
  dispose(): void;
12
13
  }
@@ -10,8 +10,8 @@ class TuyaDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
10
10
  constructor(pInfo, pType) {
11
11
  super(pInfo, pType);
12
12
  this._lastUpdate = new Date(0);
13
- this.stateMap = new Map();
14
13
  }
14
+ /** @inheritDoc */
15
15
  update(idSplit, state, initial = false, pOverride = false) {
16
16
  this.log(models_1.LogLevel.DeepTrace, `Tuya: ${initial ? 'Initiales ' : ''}Update: ID: ${idSplit.join('.')} JSON: ${JSON.stringify(state)}`);
17
17
  if (!pOverride) {
@@ -29,6 +29,7 @@ class TuyaDevice extends IoBrokerBaseDevice_1.IoBrokerBaseDevice {
29
29
  }
30
30
  }
31
31
  }
32
+ /** @inheritDoc */
32
33
  dispose() {
33
34
  // Nothing yet
34
35
  }