hoffmation-base 3.0.0-alpha.9 → 3.0.0-alpha.90

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 (561) hide show
  1. package/lib/index.d.ts +5 -1
  2. package/lib/index.js +28 -25
  3. package/lib/liquid-pid.d.ts +2 -5
  4. package/lib/liquid-pid.js +3 -5
  5. package/lib/models/action/baseAction.d.ts +4 -0
  6. package/lib/models/action/baseAction.js +10 -0
  7. package/lib/models/action/batteryLevelChangeAction.d.ts +13 -0
  8. package/lib/models/action/batteryLevelChangeAction.js +14 -0
  9. package/lib/models/action/humiditySensorChangeAction.d.ts +16 -0
  10. package/lib/models/action/humiditySensorChangeAction.js +15 -0
  11. package/lib/models/action/index.d.ts +9 -0
  12. package/lib/models/action/index.js +29 -0
  13. package/lib/models/action/motionSensorAction.d.ts +16 -0
  14. package/lib/models/action/motionSensorAction.js +15 -0
  15. package/lib/models/action/presenceGroupAnyMovementAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupAnyMovementAction.js +13 -0
  17. package/lib/models/action/presenceGroupFirstEnterAction.d.ts +7 -0
  18. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  19. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  20. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  21. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  22. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  23. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  24. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  25. package/lib/models/base64Image.d.ts +0 -1
  26. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  27. package/lib/models/blockAutomaticSettings.js +19 -0
  28. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  29. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  30. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  31. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  32. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +11 -2
  33. package/lib/models/command/WindowSetDesiredPositionCommand.js +11 -2
  34. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  35. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  36. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  37. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  38. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  39. package/lib/models/command/actuatorToggleCommand.js +7 -4
  40. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  41. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  42. package/lib/models/command/baseCommand.d.ts +23 -2
  43. package/lib/models/command/baseCommand.js +41 -1
  44. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  45. package/lib/models/command/blockAutomaticCommand.js +40 -0
  46. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  47. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  48. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  49. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  50. package/lib/models/command/commandSource.d.ts +19 -0
  51. package/lib/models/command/commandSource.js +20 -0
  52. package/lib/models/command/commandType.d.ts +11 -0
  53. package/lib/models/command/commandType.js +11 -0
  54. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  55. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  56. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  57. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  58. package/lib/models/command/index.d.ts +3 -0
  59. package/lib/models/command/index.js +7 -1
  60. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  61. package/lib/models/command/lampSetLightCommand.js +15 -4
  62. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  63. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  64. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  65. package/lib/models/command/lampToggleLightCommand.js +7 -6
  66. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  67. package/lib/models/command/ledSetLightCommand.js +27 -17
  68. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  69. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  70. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  71. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  72. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  73. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  74. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  75. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  76. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  77. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  78. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  79. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  80. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  81. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  82. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  83. package/lib/models/command/wledSetLightCommand.js +23 -7
  84. package/lib/models/connectionCallbacks.d.ts +4 -4
  85. package/lib/models/connectionCallbacks.js +1 -0
  86. package/lib/models/deviceConfig.d.ts +3 -3
  87. package/lib/models/deviceSettings/acSettings.d.ts +23 -5
  88. package/lib/models/deviceSettings/acSettings.js +28 -8
  89. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  90. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  91. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  92. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  93. package/lib/models/deviceSettings/dachsSettings.d.ts +37 -1
  94. package/lib/models/deviceSettings/dachsSettings.js +47 -3
  95. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  96. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  97. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  98. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  99. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  100. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  101. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  102. package/lib/models/deviceSettings/handleSettings.js +9 -0
  103. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  104. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  105. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  106. package/lib/models/deviceSettings/ledSettings.js +76 -18
  107. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  108. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  109. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  111. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  112. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  113. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  114. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  115. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +51 -0
  116. package/lib/models/deviceSettings/victronDeviceSettings.js +65 -9
  117. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  118. package/lib/models/deviceSettings/wledSettings.js +37 -13
  119. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  120. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  121. package/lib/models/iIdHolder.d.ts +18 -0
  122. package/lib/models/iJsonOmitKeys.d.ts +9 -0
  123. package/lib/models/index.d.ts +3 -1
  124. package/lib/models/index.js +4 -1
  125. package/lib/models/objectSettings.d.ts +5 -2
  126. package/lib/models/objectSettings.js +2 -2
  127. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  128. package/lib/models/persistence/EnergyCalculation.js +30 -4
  129. package/lib/models/persistence/index.d.ts +0 -2
  130. package/lib/models/persistence/index.js +0 -2
  131. package/lib/models/rooms/RoomBase.d.ts +12 -1
  132. package/lib/models/rooms/RoomBase.js +17 -8
  133. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  134. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  135. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  136. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  137. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  138. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  139. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  140. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  141. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  142. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  143. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  144. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  145. package/lib/models/timeCallback.d.ts +7 -0
  146. package/lib/models/timeCallback.js +16 -6
  147. package/lib/server/config/heatingMode.d.ts +2 -1
  148. package/lib/server/config/heatingMode.js +2 -1
  149. package/lib/server/config/iAsusConfig.d.ts +15 -0
  150. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  151. package/lib/server/config/iBlockAutomaticHandlerDefaults.js +2 -0
  152. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  153. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  154. package/lib/server/config/iConfig.d.ts +94 -6
  155. package/lib/server/config/iDachsSettings.d.ts +16 -0
  156. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  157. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  158. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  159. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  160. package/lib/server/config/iGoveeSettings.js +2 -0
  161. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  162. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  163. package/lib/server/config/iLogSettings.d.ts +40 -1
  164. package/lib/server/config/iMp3Settings.d.ts +10 -0
  165. package/lib/server/config/iMuellSettings.d.ts +7 -0
  166. package/lib/server/config/iNewsSettings.d.ts +13 -0
  167. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  168. package/lib/server/config/iPollySettings.d.ts +22 -0
  169. package/lib/server/config/iRestSettings.d.ts +10 -0
  170. package/lib/server/config/iSonosSettings.d.ts +14 -0
  171. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  172. package/lib/server/config/iTibberSettings.d.ts +10 -0
  173. package/lib/server/config/iTimePair.d.ts +9 -0
  174. package/lib/server/config/iTimeSettings.d.ts +9 -0
  175. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  176. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  177. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  178. package/lib/server/config/iVictronSettings.d.ts +14 -0
  179. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  180. package/lib/server/config/index.d.ts +2 -0
  181. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  182. package/lib/server/devices/DeviceCapability.js +1 -0
  183. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  184. package/lib/server/devices/DeviceInfo.js +6 -0
  185. package/lib/server/devices/Griffe.js +1 -2
  186. package/lib/server/devices/Heizgruppen.js +2 -2
  187. package/lib/server/devices/IoBrokerBaseDevice.d.ts +38 -20
  188. package/lib/server/devices/IoBrokerBaseDevice.js +40 -22
  189. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +8 -6
  190. package/lib/server/devices/IoBrokerDeviceInfo.js +50 -46
  191. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  192. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  193. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  194. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +15 -7
  195. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  196. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  197. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  198. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  199. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  200. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  201. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  202. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +34 -0
  203. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -5
  204. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +19 -4
  205. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  207. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  209. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  210. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  212. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  213. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -2
  214. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  215. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  216. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  217. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +30 -5
  218. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  219. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  220. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  221. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  222. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  223. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  224. package/lib/server/devices/button/button.d.ts +0 -1
  225. package/lib/server/devices/button/button.js +0 -4
  226. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  227. package/lib/server/devices/button/buttonCallback.js +10 -0
  228. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  229. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  230. package/lib/server/devices/button/index.d.ts +1 -0
  231. package/lib/server/devices/button/index.js +3 -0
  232. package/lib/server/devices/dachs/dachs.d.ts +51 -11
  233. package/lib/server/devices/dachs/dachs.js +136 -23
  234. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +23 -10
  235. package/lib/server/devices/dachs/dachsTemperatureSensor.js +28 -32
  236. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  237. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  238. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  239. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  240. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  241. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  242. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  243. package/lib/server/devices/device-cluster.d.ts +4 -1
  244. package/lib/server/devices/device-cluster.js +9 -4
  245. package/lib/server/devices/deviceType.d.ts +6 -0
  246. package/lib/server/devices/deviceType.js +6 -0
  247. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  248. package/lib/server/devices/deviceUpdater.js +26 -4
  249. package/lib/server/devices/devices.d.ts +53 -7
  250. package/lib/server/devices/devices.js +83 -19
  251. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  252. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  253. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  254. package/lib/server/devices/espresense/espresenseDevice.js +29 -5
  255. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  256. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  257. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  258. package/lib/server/devices/espresense/trilateration.js +7 -0
  259. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  260. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  261. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  262. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  263. package/lib/server/devices/groups/Window.d.ts +16 -6
  264. package/lib/server/devices/groups/Window.js +31 -14
  265. package/lib/server/devices/groups/base-group.d.ts +4 -0
  266. package/lib/server/devices/groups/base-group.js +3 -0
  267. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  268. package/lib/server/devices/groups/heatGroup.js +11 -11
  269. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  270. package/lib/server/devices/groups/lightGroup.js +20 -39
  271. package/lib/server/devices/groups/presenceGroup.d.ts +17 -6
  272. package/lib/server/devices/groups/presenceGroup.js +73 -63
  273. package/lib/server/devices/groups/tasterGroup.js +18 -9
  274. package/lib/server/devices/groups/windowGroup.d.ts +16 -1
  275. package/lib/server/devices/groups/windowGroup.js +24 -9
  276. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  277. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  278. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  279. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  280. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  281. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  282. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +23 -18
  283. package/lib/server/devices/hmIPDevices/hmIpGriff.js +39 -140
  284. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +29 -18
  285. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +51 -74
  286. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +6 -6
  287. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +8 -20
  288. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  289. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  290. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +11 -10
  291. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +12 -22
  292. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  293. package/lib/server/devices/hmIPDevices/hmIpRoll.js +27 -25
  294. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +19 -5
  295. package/lib/server/devices/hmIPDevices/hmIpTaster.js +16 -19
  296. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +5 -5
  297. package/lib/server/devices/hmIPDevices/hmIpTherm.js +8 -20
  298. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  299. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  300. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  301. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  302. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  303. package/lib/server/devices/index.d.ts +8 -2
  304. package/lib/server/devices/index.js +11 -2
  305. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  306. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  307. package/lib/server/devices/models/WindowPosition.d.ts +3 -3
  308. package/lib/server/devices/models/WindowPosition.js +3 -3
  309. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  310. package/lib/server/devices/nameAmountValuePair.js +10 -0
  311. package/lib/server/devices/scene/room-scene.d.ts +23 -7
  312. package/lib/server/devices/scene/room-scene.js +18 -4
  313. package/lib/server/devices/sharedFunctions/battery.d.ts +31 -0
  314. package/lib/server/devices/sharedFunctions/battery.js +65 -0
  315. package/lib/server/devices/sharedFunctions/handleSensor.d.ts +45 -0
  316. package/lib/server/devices/sharedFunctions/handleSensor.js +150 -0
  317. package/lib/server/devices/sharedFunctions/humiditySensor.d.ts +18 -0
  318. package/lib/server/devices/sharedFunctions/humiditySensor.js +46 -0
  319. package/lib/server/devices/sharedFunctions/index.d.ts +4 -0
  320. package/lib/server/devices/sharedFunctions/index.js +4 -0
  321. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  322. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  323. package/lib/server/devices/sharedFunctions/temperatureSensor.d.ts +31 -0
  324. package/lib/server/devices/sharedFunctions/temperatureSensor.js +57 -0
  325. package/lib/server/devices/shelly/index.d.ts +1 -0
  326. package/lib/server/devices/shelly/index.js +3 -1
  327. package/lib/server/devices/shelly/shellyActuator.d.ts +33 -0
  328. package/lib/server/devices/shelly/shellyActuator.js +84 -0
  329. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  330. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  331. package/lib/server/devices/shelly/shellyTrv.d.ts +27 -19
  332. package/lib/server/devices/shelly/shellyTrv.js +39 -52
  333. package/lib/server/devices/smartGarden/index.d.ts +6 -0
  334. package/lib/server/devices/smartGarden/index.js +22 -0
  335. package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +21 -0
  336. package/lib/server/devices/smartGarden/smartGardenDevice.js +63 -0
  337. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.d.ts +9 -0
  338. package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.js +13 -0
  339. package/lib/server/devices/smartGarden/smartGardenMower.d.ts +35 -0
  340. package/lib/server/devices/smartGarden/smartGardenMower.js +107 -0
  341. package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +32 -0
  342. package/lib/server/devices/smartGarden/smartGardenSensor.js +76 -0
  343. package/lib/server/devices/smartGarden/smartGardenService.d.ts +7 -0
  344. package/lib/server/devices/smartGarden/smartGardenService.js +52 -0
  345. package/lib/server/devices/smartGarden/smartGardenValve.d.ts +36 -0
  346. package/lib/server/devices/smartGarden/smartGardenValve.js +105 -0
  347. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  348. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  349. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  350. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  351. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  352. package/lib/server/devices/tv/samsungTv.js +1 -0
  353. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  354. package/lib/server/devices/tv/tvDevice.js +4 -3
  355. package/lib/server/devices/velux/index.d.ts +4 -0
  356. package/lib/server/devices/velux/index.js +11 -0
  357. package/lib/server/devices/velux/veluxDevice.d.ts +13 -0
  358. package/lib/server/devices/velux/veluxDevice.js +43 -0
  359. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.d.ts +9 -0
  360. package/lib/server/devices/velux/veluxDeviceRegistrationInfo.js +13 -0
  361. package/lib/server/devices/velux/veluxService.d.ts +7 -0
  362. package/lib/server/devices/velux/veluxService.js +44 -0
  363. package/lib/server/devices/velux/veluxShutter.d.ts +27 -0
  364. package/lib/server/devices/velux/veluxShutter.js +124 -0
  365. package/lib/server/devices/wledDevice.d.ts +15 -3
  366. package/lib/server/devices/wledDevice.js +42 -16
  367. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  368. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  369. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +2 -0
  370. package/lib/server/devices/zigbee/BaseDevices/index.js +5 -0
  371. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  372. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +8 -17
  373. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  374. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +25 -60
  375. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +23 -13
  376. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +34 -41
  377. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  378. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  379. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +7 -7
  380. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +14 -14
  381. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +16 -8
  382. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +25 -28
  383. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +20 -16
  384. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +35 -45
  385. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -4
  386. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +30 -21
  387. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  388. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  389. package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.d.ts +36 -0
  390. package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.js +82 -0
  391. package/lib/server/devices/zigbee/index.d.ts +1 -0
  392. package/lib/server/devices/zigbee/index.js +1 -0
  393. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  394. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  395. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  396. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  397. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  398. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  399. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +47 -12
  400. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +87 -33
  401. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +16 -9
  402. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +27 -37
  403. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  404. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  405. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  406. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  407. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +24 -10
  408. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +33 -29
  409. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  410. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  411. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  412. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  413. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  414. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  415. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  416. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  417. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  418. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  419. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  420. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  421. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  422. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  423. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  424. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  425. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  426. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  427. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  428. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  429. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  430. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  431. package/lib/server/devices/zigbee/zigbeeSodaHandle.d.ts +34 -0
  432. package/lib/server/devices/zigbee/zigbeeSodaHandle.js +96 -0
  433. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  434. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  435. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +24 -19
  436. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +38 -74
  437. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  438. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  439. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  440. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  441. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  442. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  443. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  444. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  445. package/lib/server/ioBroker/connection.d.ts +21 -22
  446. package/lib/server/ioBroker/connection.js +50 -33
  447. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  448. package/lib/server/ioBroker/ioBroker.main.js +12 -5
  449. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  450. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  451. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  452. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  453. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  454. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  455. package/lib/server/services/ShutterService.js +7 -6
  456. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  457. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  458. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  459. package/lib/server/services/Sonos/mp3-server.js +3 -1
  460. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  461. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  462. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  463. package/lib/server/services/Sonos/polly-service.js +10 -8
  464. package/lib/server/services/Sonos/sonos-service.d.ts +1 -5
  465. package/lib/server/services/Sonos/sonos-service.js +19 -18
  466. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  467. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  468. package/lib/server/services/Telegram/telegram-service.js +8 -3
  469. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  470. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  471. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  472. package/lib/server/services/Translation/index.d.ts +1 -0
  473. package/lib/server/services/Translation/res.d.ts +34 -19
  474. package/lib/server/services/Translation/res.js +34 -19
  475. package/lib/server/services/ac/ac-device.d.ts +50 -9
  476. package/lib/server/services/ac/ac-device.js +121 -41
  477. package/lib/server/services/ac/daikin-service.js +4 -3
  478. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  479. package/lib/server/services/ac/own-ac-devices.js +3 -0
  480. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  481. package/lib/server/services/ac/own-daikin-device.js +40 -7
  482. package/lib/server/services/api/api-service.d.ts +118 -53
  483. package/lib/server/services/api/api-service.js +170 -80
  484. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  485. package/lib/server/services/blockAutomaticHandler.js +34 -15
  486. package/lib/server/services/calendar/index.d.ts +1 -0
  487. package/lib/server/services/calendar/index.js +3 -0
  488. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  489. package/lib/server/services/calendar/muell-tonne.js +10 -0
  490. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  491. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  492. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  493. package/lib/server/services/calendar/name-date-pair.js +10 -0
  494. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  495. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  496. package/lib/server/services/dbo/postgreSqlPersist.js +29 -6
  497. package/lib/server/services/file-info.d.ts +5 -0
  498. package/lib/server/services/file-info.js +10 -0
  499. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  500. package/lib/server/services/govee/govee-device-data.js +2 -0
  501. package/lib/server/services/govee/govee-service.d.ts +7 -9
  502. package/lib/server/services/govee/govee-service.js +73 -48
  503. package/lib/server/services/govee/own-govee-device.d.ts +20 -17
  504. package/lib/server/services/govee/own-govee-device.js +72 -58
  505. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  506. package/lib/server/services/govee/own-govee-devices.js +3 -0
  507. package/lib/server/services/https-service.d.ts +3 -2
  508. package/lib/server/services/https-service.js +4 -3
  509. package/lib/server/services/index.d.ts +1 -0
  510. package/lib/server/services/index.js +3 -0
  511. package/lib/server/services/log-service/index.d.ts +1 -0
  512. package/lib/server/services/log-service/index.js +3 -0
  513. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  514. package/lib/server/services/log-service/log-debug-type.js +17 -0
  515. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  516. package/lib/server/services/log-service/log-filter-data.js +6 -15
  517. package/lib/server/services/log-service/log-service.d.ts +17 -4
  518. package/lib/server/services/log-service/log-service.js +30 -17
  519. package/lib/server/services/news-service.d.ts +9 -7
  520. package/lib/server/services/news-service.js +14 -15
  521. package/lib/server/services/room-service/room-service.d.ts +20 -4
  522. package/lib/server/services/room-service/room-service.js +26 -10
  523. package/lib/server/services/settings-service.d.ts +6 -2
  524. package/lib/server/services/settings-service.js +3 -2
  525. package/lib/server/services/time-callback-service.js +1 -1
  526. package/lib/server/services/utils/RGB.d.ts +6 -0
  527. package/lib/server/services/utils/RGB.js +11 -0
  528. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  529. package/lib/server/services/utils/catchEmResult.js +10 -0
  530. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  531. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  532. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  533. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  534. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  535. package/lib/server/services/utils/index.d.ts +4 -1
  536. package/lib/server/services/utils/index.js +8 -1
  537. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  538. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  539. package/lib/server/services/utils/utils.d.ts +9 -14
  540. package/lib/server/services/utils/utils.js +5 -1
  541. package/lib/server/services/victron/victron-device.d.ts +21 -10
  542. package/lib/server/services/victron/victron-device.js +69 -25
  543. package/lib/server/services/weather/index.d.ts +2 -0
  544. package/lib/server/services/weather/index.js +3 -0
  545. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  546. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  547. package/lib/server/services/weather/weather-current.d.ts +0 -2
  548. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  549. package/lib/server/services/weather/weather-response.d.ts +16 -0
  550. package/lib/server/services/weather/weather-response.js +2 -0
  551. package/lib/server/services/weather/weather-service.d.ts +16 -18
  552. package/lib/server/services/weather/weather-service.js +39 -24
  553. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  554. package/lib/tsconfig.tsbuildinfo +1 -1
  555. package/package.json +31 -31
  556. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  557. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  558. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  559. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  560. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  561. /package/lib/models/{iTemperaturDataPoint.js → iJsonOmitKeys.js} +0 -0
@@ -1,64 +1,82 @@
1
1
  import { iRoomDevice } from './baseDeviceInterfaces';
2
2
  import { LogDebugType } from '../services';
3
- import { DeviceSettings, LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
3
+ import { DeviceSettings, iJsonOmitKeys, LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
4
4
  import { IOBrokerConnection } from '../ioBroker';
5
5
  import { DeviceType } from './deviceType';
6
6
  import { IoBrokerDeviceInfo } from './IoBrokerDeviceInfo';
7
7
  import { DeviceCapability } from './DeviceCapability';
8
- export declare abstract class IoBrokerBaseDevice implements iRoomDevice {
8
+ export declare abstract class IoBrokerBaseDevice implements iRoomDevice, iJsonOmitKeys {
9
9
  protected _info: IoBrokerDeviceInfo;
10
10
  deviceType: DeviceType;
11
- settings: DeviceSettings | undefined;
11
+ /** @inheritDoc */
12
+ readonly jsonOmitKeys: string[];
13
+ /**
14
+ * The settings for adding devices to Rooms
15
+ */
12
16
  static roomAddingSettings: {
13
17
  [id: string]: RoomDeviceAddingSettings;
14
18
  };
19
+ /**
20
+ * @inheritDoc
21
+ * @default undefined (no Settings)
22
+ */
23
+ settings: DeviceSettings | undefined;
15
24
  private _room;
25
+ /** @inheritDoc */
16
26
  readonly deviceCapabilities: DeviceCapability[];
27
+ protected _debounceStateDelay: number;
28
+ protected _lastWrite: number;
29
+ protected stateMap: Map<string, ioBroker.State>;
30
+ /** @inheritDoc */
17
31
  get customName(): string;
32
+ /** @inheritDoc */
18
33
  get room(): RoomBase;
19
34
  protected readonly individualStateCallbacks: Map<string, Array<(val: ioBroker.StateValue) => void>>;
20
35
  protected constructor(_info: IoBrokerDeviceInfo, deviceType: DeviceType);
36
+ /** @inheritDoc */
21
37
  get id(): string;
22
38
  /**
23
39
  * Getter info
24
- * @return {IoBrokerDeviceInfo}
40
+ * @returns The device info
25
41
  */
26
42
  get info(): IoBrokerDeviceInfo;
27
- /**
28
- * Setter info
29
- * @param {IoBrokerDeviceInfo} value
30
- */
31
- set info(value: IoBrokerDeviceInfo);
32
- /**
33
- * Getter ioConn
34
- * @return {IOBrokerConnection}
35
- */
36
43
  get ioConn(): IOBrokerConnection | undefined;
37
44
  static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
38
45
  static checkMissing(): void;
46
+ /** @inheritDoc */
39
47
  loadDeviceSettings(): void;
40
48
  /**
41
49
  * Allows to react on the state change of a given state with the passed cb
42
- * @param {string} stateName Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
43
- * @param {(val: ioBroker.StateValue) => void} cb Desired Callback Action, with passed ioBroker.StateValue
50
+ * @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
51
+ * @param cb - Desired Callback Action, with passed ioBroker.StateValue
44
52
  */
45
53
  addIndividualStateCallback(stateName: string, cb: (val: ioBroker.StateValue) => void): void;
46
54
  /**
47
55
  * Returns whether a connection to ioBroker is established or not
48
- * @param showError If true, an error message will be written to the log if the connection is not established
56
+ * @param showError - If true, an error message will be written to the log if the connection is not established
57
+ * @returns Whether a connection exists
49
58
  */
50
59
  checkIoConnection(showError?: boolean): boolean;
60
+ /**
61
+ * Updates the state of a given data point
62
+ * @param {string[]} idSplit - ID of the data point
63
+ * @param {ioBroker.State} state - New state
64
+ * @param {boolean} initial - Whether this is during the initial update
65
+ * @param {boolean} pOverride - Whether the child class did override this method
66
+ */
51
67
  abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
52
68
  log(level: LogLevel, message: string, logDebugType?: LogDebugType): void;
69
+ /** @inheritDoc */
53
70
  toJSON(): Partial<IoBrokerBaseDevice>;
71
+ /** @inheritDoc */
54
72
  persistDeviceInfo(): void;
55
73
  protected addToCorrectRoom(): void;
56
74
  /**
57
75
  * Sets the state of a given data point and returns true if that was successful.
58
- * @param pointId Data point to write to
59
- * @param state Data to write
60
- * @param onSuccess Callback to run on successfully written data
61
- * @param onError Callback to run if an error has occurred during writing the data
76
+ * @param pointId - Data point to write to
77
+ * @param state - Data to write
78
+ * @param onSuccess - Callback to run on successfully written data
79
+ * @param onError - Callback to run if an error has occurred during writing the data
62
80
  */
63
81
  protected setState(pointId: string, state: string | number | boolean | ioBroker.State | ioBroker.SettableState | null, onSuccess?: (() => void) | undefined, onError?: ((error: Error) => void) | undefined): void;
64
82
  }
@@ -5,9 +5,11 @@ const services_1 = require("../services");
5
5
  const models_1 = require("../../models");
6
6
  const ioBroker_1 = require("../ioBroker");
7
7
  class IoBrokerBaseDevice {
8
+ /** @inheritDoc */
8
9
  get customName() {
9
10
  return this.info.customName;
10
11
  }
12
+ /** @inheritDoc */
11
13
  get room() {
12
14
  if (this._room === undefined) {
13
15
  this._room = services_1.Utils.guard(services_1.API.getRoom(this.info.room));
@@ -17,14 +19,26 @@ class IoBrokerBaseDevice {
17
19
  constructor(_info, deviceType) {
18
20
  this._info = _info;
19
21
  this.deviceType = deviceType;
22
+ /** @inheritDoc */
23
+ this.jsonOmitKeys = ['individualStateCallbacks'];
24
+ /**
25
+ * @inheritDoc
26
+ * @default undefined (no Settings)
27
+ */
20
28
  this.settings = undefined;
21
29
  this._room = undefined;
30
+ /** @inheritDoc */
22
31
  this.deviceCapabilities = [];
32
+ // If configured > 0, this indicates the minimum time between state writes in ms
33
+ this._debounceStateDelay = 0;
34
+ this._lastWrite = 0;
35
+ this.stateMap = new Map();
23
36
  this.individualStateCallbacks = new Map();
24
37
  this.addToCorrectRoom();
25
38
  this.persistDeviceInfo();
26
39
  services_1.Utils.guardedTimeout(this.loadDeviceSettings, 300, this);
27
40
  }
41
+ /** @inheritDoc */
28
42
  get id() {
29
43
  const result = services_1.Utils.guard(this.info.allDevicesKey);
30
44
  if (result === '0' || result === '1') {
@@ -34,28 +48,17 @@ class IoBrokerBaseDevice {
34
48
  }
35
49
  /**
36
50
  * Getter info
37
- * @return {IoBrokerDeviceInfo}
51
+ * @returns The device info
38
52
  */
39
53
  get info() {
40
54
  return this._info;
41
55
  }
42
- /**
43
- * Setter info
44
- * @param {IoBrokerDeviceInfo} value
45
- */
46
- set info(value) {
47
- this._info = value;
48
- }
49
- /**
50
- * Getter ioConn
51
- * @return {IOBrokerConnection}
52
- */
53
56
  get ioConn() {
54
57
  return ioBroker_1.ioBrokerMain.iOConnection;
55
58
  }
56
59
  static addRoom(shortName, settings) {
57
60
  if (this.roomAddingSettings[shortName] !== undefined) {
58
- services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für HmIpRoomsettings für den Raumnamen "${shortName}"`);
61
+ services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für Roomsetings für den Raumnamen "${shortName}"`);
59
62
  return;
60
63
  }
61
64
  this.roomAddingSettings[shortName] = settings;
@@ -65,14 +68,15 @@ class IoBrokerBaseDevice {
65
68
  this.roomAddingSettings[rName].checkMissing();
66
69
  }
67
70
  }
71
+ /** @inheritDoc */
68
72
  loadDeviceSettings() {
69
73
  var _a;
70
74
  (_a = this.settings) === null || _a === void 0 ? void 0 : _a.initializeFromDb(this);
71
75
  }
72
76
  /**
73
77
  * Allows to react on the state change of a given state with the passed cb
74
- * @param {string} stateName Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
75
- * @param {(val: ioBroker.StateValue) => void} cb Desired Callback Action, with passed ioBroker.StateValue
78
+ * @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
79
+ * @param cb - Desired Callback Action, with passed ioBroker.StateValue
76
80
  */
77
81
  addIndividualStateCallback(stateName, cb) {
78
82
  let arr = this.individualStateCallbacks.get(stateName);
@@ -86,7 +90,8 @@ class IoBrokerBaseDevice {
86
90
  }
87
91
  /**
88
92
  * Returns whether a connection to ioBroker is established or not
89
- * @param showError If true, an error message will be written to the log if the connection is not established
93
+ * @param showError - If true, an error message will be written to the log if the connection is not established
94
+ * @returns Whether a connection exists
90
95
  */
91
96
  checkIoConnection(showError = false) {
92
97
  if (!this.ioConn && showError) {
@@ -102,9 +107,11 @@ class IoBrokerBaseDevice {
102
107
  debugType: logDebugType,
103
108
  });
104
109
  }
110
+ /** @inheritDoc */
105
111
  toJSON() {
106
- return services_1.Utils.jsonFilter(this, ['individualStateCallbacks'], ['_room']);
112
+ return services_1.Utils.jsonFilter(this, this.jsonOmitKeys, ['_room']);
107
113
  }
114
+ /** @inheritDoc */
108
115
  persistDeviceInfo() {
109
116
  services_1.Utils.guardedTimeout(() => {
110
117
  var _a;
@@ -142,23 +149,31 @@ class IoBrokerBaseDevice {
142
149
  }
143
150
  /**
144
151
  * Sets the state of a given data point and returns true if that was successful.
145
- * @param pointId Data point to write to
146
- * @param state Data to write
147
- * @param onSuccess Callback to run on successfully written data
148
- * @param onError Callback to run if an error has occurred during writing the data
152
+ * @param pointId - Data point to write to
153
+ * @param state - Data to write
154
+ * @param onSuccess - Callback to run on successfully written data
155
+ * @param onError - Callback to run if an error has occurred during writing the data
149
156
  */
150
157
  setState(pointId, state, onSuccess = undefined, onError = undefined) {
151
158
  var _a;
152
159
  if (!this.checkIoConnection(true)) {
153
160
  return;
154
161
  }
162
+ if (this._debounceStateDelay > 0 && services_1.Utils.nowMS() - this._lastWrite < this._debounceStateDelay) {
163
+ services_1.Utils.guardedTimeout(() => {
164
+ this.log(models_1.LogLevel.Trace, `Debounced write for ${pointId} to ${state}`);
165
+ this.setState(pointId, state, onSuccess, onError);
166
+ }, this._debounceStateDelay, this);
167
+ return;
168
+ }
169
+ this._lastWrite = services_1.Utils.nowMS();
155
170
  (_a = this.ioConn) === null || _a === void 0 ? void 0 : _a.setState(pointId, state, (err) => {
156
171
  if (err) {
157
172
  if (onError) {
158
173
  onError(err);
159
174
  }
160
175
  else {
161
- console.log(`Error occured while setting state "${pointId}" to "${state}": ${err}`);
176
+ this.log(models_1.LogLevel.Error, `Error occured while setting state "${pointId}" to "${state}": ${err}`);
162
177
  }
163
178
  return;
164
179
  }
@@ -169,4 +184,7 @@ class IoBrokerBaseDevice {
169
184
  }
170
185
  }
171
186
  exports.IoBrokerBaseDevice = IoBrokerBaseDevice;
187
+ /**
188
+ * The settings for adding devices to Rooms
189
+ */
172
190
  IoBrokerBaseDevice.roomAddingSettings = {};
@@ -6,17 +6,19 @@ export declare class IoBrokerDeviceInfo extends DeviceInfo {
6
6
  deviceRoomIndex: number;
7
7
  type: 'device' | 'channel' | 'state';
8
8
  fullID: string;
9
- channel?: number;
10
- valueName?: string;
11
9
  devConf: deviceConfig;
12
10
  static idSplitter(id: string): string[];
13
11
  private static replaceInvalidIdChars;
14
12
  /**
15
13
  * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
16
- * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
17
- * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
18
- * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
14
+ * @param pDevConf - The device Config based on the extracted devices.json from ioBroker
15
+ * @param deviceId - The id of the device
16
+ * @param deviceType - The type of the device
17
+ * @param room - The room id of the device
18
+ * @param deviceRoomIndex - Index of this device in regards to the devicetype.
19
19
  */
20
- constructor(pDevConf: deviceConfig, isJsStateChildObject?: boolean);
20
+ constructor(pDevConf: deviceConfig, deviceId: string, deviceType: string, room: string, deviceRoomIndex: number);
21
+ static byStateJsSplit(pDevConf: deviceConfig): IoBrokerDeviceInfo;
22
+ static byDeviceConfig(pDevConf: deviceConfig): IoBrokerDeviceInfo;
21
23
  toJSON(): Partial<IoBrokerDeviceInfo>;
22
24
  }
@@ -19,59 +19,63 @@ class IoBrokerDeviceInfo extends DeviceInfo_1.DeviceInfo {
19
19
  }
20
20
  /**
21
21
  * Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
22
- * @param {deviceConfig} pDevConf The device Config based on the extracted devices.json from ioBroker
23
- * @param {boolean} isJsStateChildObject Within JS Objects, creating devices is limited,
24
- * so we name the first child state for the object creation (e.g. javascript.0.00-EnergyManager.CurrentProduction)
22
+ * @param pDevConf - The device Config based on the extracted devices.json from ioBroker
23
+ * @param deviceId - The id of the device
24
+ * @param deviceType - The type of the device
25
+ * @param room - The room id of the device
26
+ * @param deviceRoomIndex - Index of this device in regards to the devicetype.
25
27
  */
26
- constructor(pDevConf, isJsStateChildObject = false) {
28
+ constructor(pDevConf, deviceId, deviceType, room, deviceRoomIndex) {
27
29
  super();
28
30
  this.devConf = pDevConf;
29
31
  this.type = pDevConf.type;
30
- const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
31
32
  this.fullID = pDevConf._id;
32
- this.devID = idSplit[2];
33
+ this.devID = deviceId;
33
34
  this.fullName = pDevConf.common.name;
35
+ this.deviceType = deviceType;
36
+ this.deviceRoomIndex = deviceRoomIndex;
37
+ this.room = room;
38
+ }
39
+ static byStateJsSplit(pDevConf) {
34
40
  const nameSplit = pDevConf.common.name.split('-');
35
- if (!isJsStateChildObject) {
36
- /**
37
- * 0: hm-rpc
38
- * 1: rcpInstance
39
- * 2: Device ID
40
- * 3?: Channel
41
- * 4?: ValueName
42
- */
43
- if (idSplit.length > 3) {
44
- this.channel = Number(idSplit[3]);
45
- }
46
- if (idSplit.length > 4) {
47
- this.valueName = idSplit[4];
48
- }
49
- /** Name-Split
50
- * 0: Indikator own "00"
51
- * 1: "HmIP"
52
- * 2: Raum
53
- * 3: Was für ein Gerät
54
- * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
55
- * 5?: Name des Wertes
56
- */
57
- this.room = nameSplit[2];
58
- this.deviceType = nameSplit[3];
59
- this.deviceRoomIndex = Number(nameSplit[4].split(':')[0]);
60
- return;
61
- }
62
- else {
63
- /** Name-Split
64
- * 0: Indikator own "00"
65
- * 1: "EnergyManager"
66
- * 2: Raum
67
- * 3: Was für ein Gerät
68
- * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
69
- * 5?: Name des Wertes
70
- */
71
- this.deviceType = nameSplit[1];
72
- this.room = nameSplit.length >= 3 ? nameSplit[2] : '';
73
- this.deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
74
- }
41
+ const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
42
+ /**
43
+ * Name-Split
44
+ * 0: Indikator own "00"
45
+ * 1: "EnergyManager"
46
+ * 2: Raum
47
+ * 3: Was für ein Gerät
48
+ * 4: Index dieses Gerätes im Raum (ggf. + :Channel)
49
+ * 5?: Name des Wertes
50
+ */
51
+ const deviceType = nameSplit[1];
52
+ const room = nameSplit.length >= 3 ? nameSplit[2] : '';
53
+ const deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
54
+ return new IoBrokerDeviceInfo(pDevConf, idSplit[2], deviceType, room, deviceRoomIndex);
55
+ }
56
+ static byDeviceConfig(pDevConf) {
57
+ const nameSplit = pDevConf.common.name.split('-');
58
+ const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
59
+ /**
60
+ * 0: hm-rpc
61
+ * 1: rcpInstance
62
+ * 2: Device ID
63
+ * 3?: Channel
64
+ * 4?: ValueName
65
+ */
66
+ /**
67
+ * Name-Split
68
+ * 0: Indikator own "00"
69
+ * 1: "HmIP"
70
+ * 2: Raum
71
+ * 3: Was für ein Gerät
72
+ * 4: Index dieses Gerätes im Raum (ggf. + : Channel)
73
+ * 5?: Name des Wertes
74
+ */
75
+ const room = nameSplit[2];
76
+ const deviceType = nameSplit[3];
77
+ const deviceRoomIndex = Number(nameSplit[4].split(':')[0]);
78
+ return new IoBrokerDeviceInfo(pDevConf, idSplit[2], deviceType, room, deviceRoomIndex);
75
79
  }
76
80
  toJSON() {
77
81
  return lodash_1.default.omit(this, ['devConf']);
@@ -1,18 +1,56 @@
1
1
  import { AcSettings } from '../../../models';
2
2
  import { AcMode } from '../../services';
3
3
  import { iBaseDevice } from './iBaseDevice';
4
+ /**
5
+ * Interface for normal air-conditioning devices
6
+ *
7
+ * For devices with {@link DeviceCapability.ac} capability.
8
+ * TODO: Migrate to new Command-Based System
9
+ * TODO: Extend from iActuator
10
+ */
4
11
  export interface iAcDevice extends iBaseDevice {
12
+ /**
13
+ * The settings of the air-conditioning device
14
+ */
5
15
  settings: AcSettings;
16
+ /**
17
+ * Whether the air-conditioning device is currently on
18
+ */
6
19
  readonly on: boolean;
20
+ /**
21
+ * The temperature of the room where this device is located
22
+ */
23
+ readonly roomTemperature: number;
24
+ /**
25
+ * The current temperature of the air-conditioning device in degrees Celsius
26
+ */
7
27
  readonly temperature: number;
28
+ /**
29
+ * The current state of the air-conditioning device
30
+ */
8
31
  readonly mode: AcMode;
9
32
  /**
10
- * Disable automatic Turn-On for given amount of ms and turn off immediately.
11
- * @param {number} timeout
33
+ * This function should be called to inform the air-conditioning device about a change of the room temperature
34
+ * @param newTemperatur - The new temperature of the room in degrees Celsius
12
35
  */
13
- deactivateAutomaticChange(timeout: number): void;
14
36
  onTemperaturChange(newTemperatur: number): void;
37
+ /**
38
+ * Updates the desired mode of the air-conditioning device and writes it to the device if desired
39
+ * @param mode - The new desired mode
40
+ * @param writeToDevice - Whether to write the new mode to the device
41
+ */
15
42
  setDesiredMode(mode: AcMode, writeToDevice: boolean): void;
43
+ /**
44
+ * Turns the air-conditioning device on without changing the settings
45
+ */
16
46
  turnOn(): void;
47
+ /**
48
+ * Turns the air-conditioning device off
49
+ */
17
50
  turnOff(): void;
51
+ /**
52
+ * Calculates the desired mode based on the current settings and the room temperature
53
+ * @returns The desired mode
54
+ */
55
+ calculateDesiredMode(): AcMode;
18
56
  }
@@ -1,11 +1,21 @@
1
1
  import { ActuatorSetStateCommand, ActuatorSettings, ActuatorToggleCommand, ActuatorWriteStateToDeviceCommand } from '../../../models';
2
2
  import { iRoomDevice } from './iRoomDevice';
3
3
  import { iTemporaryDisableAutomatic } from './iTemporaryDisableAutomatic';
4
+ /**
5
+ * Interface for Actuators.
6
+ * An actuator can be any device whos primary function is to be on or off e.g a light, an outlet, a fan, etc.
7
+ *
8
+ * For devices with {@link DeviceCapability.actuator} capability.
9
+ */
4
10
  export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
5
11
  /**
6
12
  * The settings for this Actuator primarily for controlling its automatic actions
7
13
  */
8
14
  settings: ActuatorSettings;
15
+ /**
16
+ * The target automatic state of the device.
17
+ * This is used to store the state the device should be in to fall back to it after automatic was blocked e.g. by a user.
18
+ */
9
19
  targetAutomaticState: boolean;
10
20
  /**
11
21
  * The state value of the device
@@ -25,6 +35,14 @@ export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
25
35
  * @param command
26
36
  */
27
37
  setActuator(command: ActuatorSetStateCommand): void;
38
+ /**
39
+ * Toggles the power state of this actuator
40
+ * @param command
41
+ */
28
42
  toggleActuator(command: ActuatorToggleCommand): boolean;
43
+ /**
44
+ * Writes the desired actuator state to the device
45
+ * @param command
46
+ */
29
47
  writeActuatorStateToDevice(command: ActuatorWriteStateToDeviceCommand): void;
30
48
  }
@@ -3,12 +3,37 @@ import { DeviceType } from '../deviceType';
3
3
  import { DeviceInfo } from '../DeviceInfo';
4
4
  import { DeviceCapability } from '../DeviceCapability';
5
5
  import { iIdHolder } from '../../../models/iIdHolder';
6
+ /**
7
+ * This is the main interface for all devices as it ensures certain base functionality.
8
+ */
6
9
  export interface iBaseDevice extends iIdHolder {
10
+ /**
11
+ * The settings of the device which are overridden by the specific device implementation
12
+ */
7
13
  readonly settings: DeviceSettings | undefined;
14
+ /**
15
+ * The hardware-type of the device.
16
+ */
8
17
  deviceType: DeviceType;
9
- info: DeviceInfo;
18
+ /**
19
+ * Some basic information about the device (mainly its name, id, room, etc.)
20
+ */
21
+ readonly info: DeviceInfo;
22
+ /**
23
+ * The capabilities of the device thus referencing other interfaces which then can be used to treat devices regardless of their hardware-type.
24
+ */
10
25
  readonly deviceCapabilities: DeviceCapability[];
26
+ /**
27
+ * This method writes the device Info to the configured persistence layer, to ensure having foreign keys for all other persisted data.
28
+ */
11
29
  persistDeviceInfo(): void;
30
+ /**
31
+ * This method loads the device settings from the configured persistence layer.
32
+ * Whilst this is normally used during startup, it can be called at any time to refresh the settings in case of manual changes within the database.
33
+ */
12
34
  loadDeviceSettings(): void;
35
+ /**
36
+ * This mainly enforces all devices to have a toJSON method to ensure a consistent way of serializing devices.
37
+ */
13
38
  toJSON(): Partial<iBaseDevice>;
14
39
  }
@@ -1,10 +1,18 @@
1
- import { iRoomDevice } from './iRoomDevice';
2
- export interface iBatteryDevice extends iRoomDevice {
3
- readonly lastBatteryPersist: number;
1
+ import { iBaseDevice } from './iBaseDevice';
2
+ import { Battery } from '../sharedFunctions';
3
+ /**
4
+ * Interface for Battery Devices.
5
+ * A battery device can be any device that is powered by a battery e.g. a remote, a sensor, etc.
6
+ *
7
+ * For devices with {@link DeviceCapability.battery} capability.
8
+ */
9
+ export interface iBatteryDevice extends iBaseDevice {
4
10
  /**
5
- * The battery status of the device in percentage
6
- * @type {number}
11
+ * Common battery handling like persisting
7
12
  */
8
- readonly battery: number;
9
- persistBatteryDevice(): void;
13
+ readonly battery: Battery;
14
+ /**
15
+ * The battery status of the device in percentage (0 empty - 100 full)
16
+ */
17
+ readonly batteryLevel: number;
10
18
  }
@@ -1,6 +1,14 @@
1
1
  import { iRoomDevice } from './iRoomDevice';
2
2
  import { ProximityCallback, TrilaterationBasePoint } from '../espresense';
3
+ /**
4
+ * Interface for Bluetooth detector devices, providing proximity information for tracked devices
5
+ *
6
+ * For devices with {@link DeviceCapability.bluetoothDetector} capability.
7
+ */
3
8
  export interface iBluetoothDetector extends iRoomDevice {
9
+ /**
10
+ * The position of the device to allow for trilateration-calculations
11
+ */
4
12
  position: TrilaterationBasePoint;
5
13
  /**
6
14
  * Add callback to react on a specified device entering/leaving a given zone
@@ -9,17 +17,17 @@ export interface iBluetoothDetector extends iRoomDevice {
9
17
  addProximityCallback(cb: ProximityCallback): void;
10
18
  /**
11
19
  * Gets the distance of a currently present device
12
- * @param {string} deviceName The mapped Device name
13
- * @param {number} maxAge The maximum age in seconds to still respect that device
14
- * @returns {number | undefined} Distance in meters or undefined if currently not present
20
+ * @param deviceName - The mapped Device name
21
+ * @param maxAge - The maximum age in seconds to still respect that device
22
+ * @returns Distance in meters or undefined if currently not present
15
23
  */
16
24
  distanceOfDevice(deviceName: string, maxAge: number): number | undefined;
17
25
  /**
18
26
  * Check if a device is currently present and below the given Distance
19
- * @param {string} deviceName The mapped Device name
20
- * @param {number} maxDistance The maximum distance in meters
21
- * @param {number} maxAge The maximum age in seconds to still respect that device
22
- * @returns {boolean}
27
+ * @param deviceName - The mapped Device name
28
+ * @param maxDistance - The maximum distance in meters
29
+ * @param maxAge - The maximum age in seconds to still respect that device
30
+ * @returns
23
31
  */
24
32
  isDevicePresent(deviceName: string, maxDistance: number, maxAge: number): boolean;
25
33
  }
@@ -1,15 +1,57 @@
1
1
  import { Button, ButtonPosition, ButtonPressType } from '../button';
2
2
  import { iRoomDevice } from './iRoomDevice';
3
+ /**
4
+ * Interface for Button Switch devices, providing e.g. access to the buttons and their assignments.
5
+ *
6
+ * For devices with {@link DeviceCapability.buttonSwitch} capability.
7
+ */
3
8
  export interface iButtonSwitch extends iRoomDevice {
9
+ /**
10
+ * The Top-Left Button which can be found on normale 4-6 Button switches
11
+ */
4
12
  buttonTopLeft: Button | undefined;
13
+ /**
14
+ * The Top-Right Button which can be found on normale 4-6 Button switches
15
+ */
5
16
  buttonTopRight: Button | undefined;
17
+ /**
18
+ * The vertically Middle and horicontally Left Button which can be found on 6 Button switches
19
+ */
6
20
  buttonMidLeft: Button | undefined;
21
+ /**
22
+ * The vertically Middle and horicontally Right Button which can be found on 6 Button switches
23
+ */
7
24
  buttonMidRight: Button | undefined;
25
+ /**
26
+ * The Bottom-Left Button which can be found on normale 4-6 Button switches
27
+ */
8
28
  buttonBotLeft: Button | undefined;
29
+ /**
30
+ * The Bottom-Right Button which can be found on normale 4-6 Button switches
31
+ */
9
32
  buttonBotRight: Button | undefined;
33
+ /**
34
+ * The Bottom Button which can be found on vertical 2 Button switches
35
+ */
10
36
  buttonBot: Button | undefined;
37
+ /**
38
+ * The Top Button which can be found on vertical 2 Button switches
39
+ */
11
40
  buttonTop: Button | undefined;
41
+ /**
42
+ * Persist the button press to the persistent storage
43
+ * @param buttonName - The name of the button
44
+ * @param pressType - The type of the button press
45
+ */
12
46
  persist(buttonName: string, pressType: ButtonPressType): void;
47
+ /**
48
+ * @returns An description of all configured assignments
49
+ */
13
50
  getButtonAssignment(): string;
51
+ /**
52
+ * Method to simulate a button press (e.g. for testing or to use a specific logic which is bound to this button)
53
+ * @param position - The position of the button
54
+ * @param pressType - The type of the button press
55
+ */
14
56
  pressButton(position: ButtonPosition, pressType: ButtonPressType): Error | null;
15
57
  }