hoffmation-base 3.0.0-alpha.5 → 3.0.0-alpha.50

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 (507) 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 +8 -0
  12. package/lib/models/action/index.js +27 -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/presenceGroupFirstEnterAction.d.ts +7 -0
  16. package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
  17. package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
  18. package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
  19. package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
  20. package/lib/models/action/shutterPositionChangedAction.js +15 -0
  21. package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
  22. package/lib/models/action/temperatureSensorChangeAction.js +15 -0
  23. package/lib/models/blockAutomaticSettings.d.ts +23 -0
  24. package/lib/models/blockAutomaticSettings.js +19 -0
  25. package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
  26. package/lib/models/command/ShutterSetLevelCommand.js +9 -1
  27. package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
  28. package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
  29. package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +8 -1
  30. package/lib/models/command/WindowSetDesiredPositionCommand.js +8 -1
  31. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
  32. package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
  33. package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
  34. package/lib/models/command/actuatorSetStateCommand.js +15 -6
  35. package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
  36. package/lib/models/command/actuatorToggleCommand.js +7 -4
  37. package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
  38. package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
  39. package/lib/models/command/baseCommand.d.ts +23 -2
  40. package/lib/models/command/baseCommand.js +41 -1
  41. package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
  42. package/lib/models/command/blockAutomaticCommand.js +40 -0
  43. package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
  44. package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
  45. package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
  46. package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
  47. package/lib/models/command/commandSource.d.ts +19 -0
  48. package/lib/models/command/commandSource.js +20 -0
  49. package/lib/models/command/commandType.d.ts +10 -0
  50. package/lib/models/command/commandType.js +10 -0
  51. package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
  52. package/lib/models/command/dimmerSetLightCommand.js +20 -14
  53. package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
  54. package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
  55. package/lib/models/command/index.d.ts +3 -0
  56. package/lib/models/command/index.js +7 -1
  57. package/lib/models/command/lampSetLightCommand.d.ts +13 -2
  58. package/lib/models/command/lampSetLightCommand.js +15 -4
  59. package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
  60. package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
  61. package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
  62. package/lib/models/command/lampToggleLightCommand.js +7 -6
  63. package/lib/models/command/ledSetLightCommand.d.ts +21 -11
  64. package/lib/models/command/ledSetLightCommand.js +27 -17
  65. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
  66. package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
  67. package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
  68. package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
  69. package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
  70. package/lib/models/command/roomRestoreLightCommand.js +7 -1
  71. package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
  72. package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
  73. package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
  74. package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
  75. package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
  76. package/lib/models/command/shutterSunriseUpCommand.js +7 -1
  77. package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
  78. package/lib/models/command/shutterSunsetDownCommand.js +7 -1
  79. package/lib/models/command/wledSetLightCommand.d.ts +16 -2
  80. package/lib/models/command/wledSetLightCommand.js +23 -7
  81. package/lib/models/connectionCallbacks.d.ts +4 -4
  82. package/lib/models/connectionCallbacks.js +1 -0
  83. package/lib/models/deviceConfig.d.ts +3 -3
  84. package/lib/models/deviceSettings/acSettings.d.ts +19 -5
  85. package/lib/models/deviceSettings/acSettings.js +23 -8
  86. package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
  87. package/lib/models/deviceSettings/actuatorSettings.js +19 -9
  88. package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
  89. package/lib/models/deviceSettings/cameraSettings.js +12 -0
  90. package/lib/models/deviceSettings/dachsSettings.d.ts +11 -0
  91. package/lib/models/deviceSettings/dachsSettings.js +13 -1
  92. package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
  93. package/lib/models/deviceSettings/deviceSettings.js +16 -0
  94. package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
  95. package/lib/models/deviceSettings/dimmerSettings.js +20 -0
  96. package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
  97. package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
  98. package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
  99. package/lib/models/deviceSettings/handleSettings.js +9 -0
  100. package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
  101. package/lib/models/deviceSettings/heaterSettings.js +21 -9
  102. package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
  103. package/lib/models/deviceSettings/ledSettings.js +76 -18
  104. package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
  105. package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
  106. package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
  107. package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
  108. package/lib/models/deviceSettings/shutterSettings.js +11 -3
  109. package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
  110. package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
  111. package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
  112. package/lib/models/deviceSettings/victronDeviceSettings.d.ts +34 -0
  113. package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
  114. package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
  115. package/lib/models/deviceSettings/wledSettings.js +37 -13
  116. package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
  117. package/lib/models/groupSettings/heatGroupSettings.js +12 -1
  118. package/lib/models/iIdHolder.d.ts +18 -0
  119. package/lib/models/index.d.ts +2 -1
  120. package/lib/models/index.js +4 -1
  121. package/lib/models/objectSettings.d.ts +5 -2
  122. package/lib/models/objectSettings.js +2 -2
  123. package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
  124. package/lib/models/persistence/EnergyCalculation.js +30 -4
  125. package/lib/models/persistence/index.d.ts +0 -2
  126. package/lib/models/persistence/index.js +0 -2
  127. package/lib/models/rooms/RoomBase.d.ts +12 -1
  128. package/lib/models/rooms/RoomBase.js +16 -7
  129. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
  130. package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
  131. package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
  132. package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
  133. package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
  134. package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
  135. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
  136. package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
  137. package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
  138. package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
  139. package/lib/models/rooms/iRoomBase.d.ts +39 -0
  140. package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
  141. package/lib/models/timeCallback.d.ts +7 -0
  142. package/lib/models/timeCallback.js +16 -6
  143. package/lib/server/config/heatingMode.d.ts +2 -1
  144. package/lib/server/config/heatingMode.js +2 -1
  145. package/lib/server/config/iAsusConfig.d.ts +15 -0
  146. package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
  147. package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
  148. package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
  149. package/lib/server/config/iConfig.d.ts +94 -6
  150. package/lib/server/config/iDachsSettings.d.ts +16 -0
  151. package/lib/server/config/iDaikinSettings.d.ts +17 -0
  152. package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
  153. package/lib/server/config/iEspresenseSettings.d.ts +10 -0
  154. package/lib/server/config/iGoveeSettings.d.ts +9 -0
  155. package/lib/server/config/iGoveeSettings.js +2 -0
  156. package/lib/server/config/iHeaterSettings.d.ts +8 -0
  157. package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
  158. package/lib/server/config/iLogSettings.d.ts +40 -1
  159. package/lib/server/config/iMp3Settings.d.ts +10 -0
  160. package/lib/server/config/iMuellSettings.d.ts +7 -0
  161. package/lib/server/config/iNewsSettings.d.ts +13 -0
  162. package/lib/server/config/iPersistenceSettings.d.ts +10 -0
  163. package/lib/server/config/iPollySettings.d.ts +22 -0
  164. package/lib/server/config/iRestSettings.d.ts +10 -0
  165. package/lib/server/config/iSonosSettings.d.ts +10 -0
  166. package/lib/server/config/iTelegramSettings.d.ts +17 -0
  167. package/lib/server/config/iTibberSettings.d.ts +10 -0
  168. package/lib/server/config/iTimePair.d.ts +9 -0
  169. package/lib/server/config/iTimeSettings.d.ts +9 -0
  170. package/lib/server/config/iTranslationSettings.d.ts +10 -0
  171. package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
  172. package/lib/server/config/iUnifiSettings.d.ts +8 -0
  173. package/lib/server/config/iVictronSettings.d.ts +14 -0
  174. package/lib/server/config/iWeatherSettings.d.ts +13 -0
  175. package/lib/server/config/index.d.ts +2 -0
  176. package/lib/server/devices/DeviceCapability.d.ts +1 -0
  177. package/lib/server/devices/DeviceCapability.js +1 -0
  178. package/lib/server/devices/DeviceInfo.d.ts +9 -0
  179. package/lib/server/devices/DeviceInfo.js +6 -0
  180. package/lib/server/devices/Griffe.js +1 -2
  181. package/lib/server/devices/Heizgruppen.js +2 -2
  182. package/lib/server/devices/IoBrokerBaseDevice.d.ts +34 -18
  183. package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
  184. package/lib/server/devices/IoBrokerDeviceInfo.d.ts +2 -2
  185. package/lib/server/devices/IoBrokerDeviceInfo.js +6 -4
  186. package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
  187. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
  188. package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
  189. package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +21 -4
  190. package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
  191. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
  192. package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
  193. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
  194. package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
  195. package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
  196. package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
  197. package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +24 -0
  198. package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -4
  199. package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -1
  200. package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
  201. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
  202. package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
  203. package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
  204. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
  205. package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
  206. package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
  207. package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
  208. package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -1
  209. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
  210. package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
  211. package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
  212. package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +32 -2
  213. package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
  214. package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
  215. package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
  216. package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
  217. package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
  218. package/lib/server/devices/blueIris/cameraDevice.js +75 -75
  219. package/lib/server/devices/button/button.d.ts +0 -1
  220. package/lib/server/devices/button/button.js +0 -4
  221. package/lib/server/devices/button/buttonCallback.d.ts +5 -0
  222. package/lib/server/devices/button/buttonCallback.js +10 -0
  223. package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
  224. package/lib/server/devices/button/buttonCapabilities.js +12 -0
  225. package/lib/server/devices/button/index.d.ts +1 -0
  226. package/lib/server/devices/button/index.js +3 -0
  227. package/lib/server/devices/dachs/dachs.d.ts +37 -11
  228. package/lib/server/devices/dachs/dachs.js +49 -22
  229. package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -3
  230. package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
  231. package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
  232. package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
  233. package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
  234. package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
  235. package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
  236. package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
  237. package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
  238. package/lib/server/devices/device-cluster.d.ts +3 -0
  239. package/lib/server/devices/device-cluster.js +1 -1
  240. package/lib/server/devices/deviceUpdater.d.ts +0 -3
  241. package/lib/server/devices/deviceUpdater.js +1 -4
  242. package/lib/server/devices/devices.d.ts +43 -7
  243. package/lib/server/devices/devices.js +42 -6
  244. package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
  245. package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
  246. package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
  247. package/lib/server/devices/espresense/espresenseDevice.js +28 -4
  248. package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
  249. package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
  250. package/lib/server/devices/espresense/trilateration.d.ts +7 -0
  251. package/lib/server/devices/espresense/trilateration.js +7 -0
  252. package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
  253. package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
  254. package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
  255. package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
  256. package/lib/server/devices/groups/Window.d.ts +9 -3
  257. package/lib/server/devices/groups/Window.js +19 -11
  258. package/lib/server/devices/groups/base-group.d.ts +4 -0
  259. package/lib/server/devices/groups/base-group.js +3 -0
  260. package/lib/server/devices/groups/heatGroup.d.ts +8 -6
  261. package/lib/server/devices/groups/heatGroup.js +11 -11
  262. package/lib/server/devices/groups/lightGroup.d.ts +10 -2
  263. package/lib/server/devices/groups/lightGroup.js +18 -37
  264. package/lib/server/devices/groups/presenceGroup.d.ts +11 -4
  265. package/lib/server/devices/groups/presenceGroup.js +57 -64
  266. package/lib/server/devices/groups/tasterGroup.js +6 -6
  267. package/lib/server/devices/groups/windowGroup.d.ts +11 -1
  268. package/lib/server/devices/groups/windowGroup.js +6 -6
  269. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
  270. package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
  271. package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
  272. package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
  273. package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
  274. package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
  275. package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +36 -5
  276. package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
  277. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -5
  278. package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
  279. package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
  280. package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
  281. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
  282. package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
  283. package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +19 -9
  284. package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
  285. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
  286. package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
  287. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
  288. package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
  289. package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
  290. package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
  291. package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
  292. package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
  293. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
  294. package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
  295. package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
  296. package/lib/server/devices/index.d.ts +5 -2
  297. package/lib/server/devices/index.js +8 -2
  298. package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
  299. package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
  300. package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
  301. package/lib/server/devices/nameAmountValuePair.js +10 -0
  302. package/lib/server/devices/scene/room-scene.d.ts +23 -6
  303. package/lib/server/devices/scene/room-scene.js +18 -4
  304. package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
  305. package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
  306. package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
  307. package/lib/server/devices/shelly/shellyDevice.js +2 -1
  308. package/lib/server/devices/shelly/shellyTrv.d.ts +37 -17
  309. package/lib/server/devices/shelly/shellyTrv.js +66 -45
  310. package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
  311. package/lib/server/devices/tuya/tuyaDevice.js +2 -1
  312. package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
  313. package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
  314. package/lib/server/devices/tv/samsungTv.d.ts +1 -0
  315. package/lib/server/devices/tv/samsungTv.js +1 -0
  316. package/lib/server/devices/tv/tvDevice.d.ts +7 -1
  317. package/lib/server/devices/tv/tvDevice.js +4 -3
  318. package/lib/server/devices/wledDevice.d.ts +15 -3
  319. package/lib/server/devices/wledDevice.js +42 -16
  320. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
  321. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
  322. package/lib/server/devices/zigbee/BaseDevices/index.d.ts +1 -0
  323. package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
  324. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
  325. package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +15 -22
  326. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
  327. package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +27 -62
  328. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -13
  329. package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
  330. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
  331. package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
  332. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +9 -8
  333. package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +16 -13
  334. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
  335. package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
  336. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -14
  337. package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
  338. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -3
  339. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
  340. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
  341. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
  342. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
  343. package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
  344. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
  345. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
  346. package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
  347. package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
  348. package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +58 -11
  349. package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
  350. package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -8
  351. package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
  352. package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
  353. package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
  354. package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
  355. package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
  356. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +34 -7
  357. package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
  358. package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
  359. package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
  360. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
  361. package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
  362. package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
  363. package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
  364. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
  365. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
  366. package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
  367. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
  368. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
  369. package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
  370. package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
  371. package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
  372. package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
  373. package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
  374. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
  375. package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
  376. package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
  377. package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
  378. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
  379. package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
  380. package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
  381. package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
  382. package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -8
  383. package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
  384. package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
  385. package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
  386. package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
  387. package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
  388. package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
  389. package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
  390. package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
  391. package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
  392. package/lib/server/ioBroker/connection.d.ts +21 -20
  393. package/lib/server/ioBroker/connection.js +37 -28
  394. package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
  395. package/lib/server/ioBroker/ioBroker.main.js +4 -3
  396. package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
  397. package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
  398. package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
  399. package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
  400. package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
  401. package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
  402. package/lib/server/services/ShutterService.js +6 -6
  403. package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
  404. package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
  405. package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
  406. package/lib/server/services/Sonos/mp3-server.js +3 -1
  407. package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
  408. package/lib/server/services/Sonos/own-sonos-device.js +4 -4
  409. package/lib/server/services/Sonos/polly-service.d.ts +7 -1
  410. package/lib/server/services/Sonos/polly-service.js +10 -8
  411. package/lib/server/services/Sonos/sonos-service.d.ts +0 -5
  412. package/lib/server/services/Sonos/sonos-service.js +6 -10
  413. package/lib/server/services/Telegram/telegram-Commands.js +5 -5
  414. package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
  415. package/lib/server/services/Telegram/telegram-service.js +8 -3
  416. package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
  417. package/lib/server/services/Translation/IRessourceObject.js +2 -0
  418. package/lib/server/services/Translation/iRessources.d.ts +1 -4
  419. package/lib/server/services/Translation/index.d.ts +1 -0
  420. package/lib/server/services/Translation/res.d.ts +34 -19
  421. package/lib/server/services/Translation/res.js +34 -19
  422. package/lib/server/services/ac/ac-device.d.ts +48 -6
  423. package/lib/server/services/ac/ac-device.js +91 -36
  424. package/lib/server/services/ac/daikin-service.js +4 -3
  425. package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
  426. package/lib/server/services/ac/own-ac-devices.js +3 -0
  427. package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
  428. package/lib/server/services/ac/own-daikin-device.js +40 -7
  429. package/lib/server/services/api/api-service.d.ts +118 -53
  430. package/lib/server/services/api/api-service.js +170 -80
  431. package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
  432. package/lib/server/services/blockAutomaticHandler.js +34 -15
  433. package/lib/server/services/calendar/index.d.ts +1 -0
  434. package/lib/server/services/calendar/index.js +3 -0
  435. package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
  436. package/lib/server/services/calendar/muell-tonne.js +10 -0
  437. package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
  438. package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
  439. package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
  440. package/lib/server/services/calendar/name-date-pair.js +10 -0
  441. package/lib/server/services/dbo/iPersist.d.ts +103 -0
  442. package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
  443. package/lib/server/services/dbo/postgreSqlPersist.js +28 -5
  444. package/lib/server/services/file-info.d.ts +5 -0
  445. package/lib/server/services/file-info.js +10 -0
  446. package/lib/server/services/govee/govee-device-data.d.ts +25 -0
  447. package/lib/server/services/govee/govee-device-data.js +2 -0
  448. package/lib/server/services/govee/govee-service.d.ts +7 -9
  449. package/lib/server/services/govee/govee-service.js +73 -48
  450. package/lib/server/services/govee/own-govee-device.d.ts +19 -17
  451. package/lib/server/services/govee/own-govee-device.js +57 -56
  452. package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
  453. package/lib/server/services/govee/own-govee-devices.js +3 -0
  454. package/lib/server/services/https-service.d.ts +3 -2
  455. package/lib/server/services/https-service.js +4 -3
  456. package/lib/server/services/index.d.ts +1 -0
  457. package/lib/server/services/index.js +3 -0
  458. package/lib/server/services/log-service/index.d.ts +1 -0
  459. package/lib/server/services/log-service/index.js +3 -0
  460. package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
  461. package/lib/server/services/log-service/log-debug-type.js +17 -0
  462. package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
  463. package/lib/server/services/log-service/log-filter-data.js +6 -15
  464. package/lib/server/services/log-service/log-service.d.ts +17 -4
  465. package/lib/server/services/log-service/log-service.js +30 -17
  466. package/lib/server/services/news-service.d.ts +9 -7
  467. package/lib/server/services/news-service.js +14 -15
  468. package/lib/server/services/room-service/room-service.d.ts +20 -4
  469. package/lib/server/services/room-service/room-service.js +26 -10
  470. package/lib/server/services/settings-service.d.ts +6 -2
  471. package/lib/server/services/settings-service.js +3 -2
  472. package/lib/server/services/time-callback-service.js +1 -1
  473. package/lib/server/services/utils/RGB.d.ts +6 -0
  474. package/lib/server/services/utils/RGB.js +11 -0
  475. package/lib/server/services/utils/catchEmResult.d.ts +5 -0
  476. package/lib/server/services/utils/catchEmResult.js +10 -0
  477. package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
  478. package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
  479. package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
  480. package/lib/server/services/utils/energy-manager-utils.js +2 -2
  481. package/lib/server/services/utils/iDisposeable.d.ts +6 -0
  482. package/lib/server/services/utils/index.d.ts +4 -1
  483. package/lib/server/services/utils/index.js +8 -1
  484. package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
  485. package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
  486. package/lib/server/services/utils/utils.d.ts +9 -13
  487. package/lib/server/services/victron/victron-device.d.ts +27 -10
  488. package/lib/server/services/victron/victron-device.js +92 -25
  489. package/lib/server/services/weather/index.d.ts +2 -0
  490. package/lib/server/services/weather/index.js +3 -0
  491. package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
  492. package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
  493. package/lib/server/services/weather/weather-current.d.ts +0 -2
  494. package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
  495. package/lib/server/services/weather/weather-response.d.ts +16 -0
  496. package/lib/server/services/weather/weather-response.js +2 -0
  497. package/lib/server/services/weather/weather-service.d.ts +15 -18
  498. package/lib/server/services/weather/weather-service.js +32 -22
  499. package/lib/server/services/weather/weather-temp.d.ts +21 -0
  500. package/lib/tsconfig.tsbuildinfo +1 -1
  501. package/package.json +6 -8
  502. package/lib/models/iTemperaturDataPoint.d.ts +0 -9
  503. package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
  504. package/lib/models/persistence/RoomDetailInfo.js +0 -11
  505. package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
  506. package/lib/models/persistence/temperaturDataPoint.js +0 -14
  507. /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();
@@ -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
  }
@@ -3,6 +3,7 @@ import { GarageDoorOpenerSettings } from '../../../models';
3
3
  import { IoBrokerDeviceInfo } from '../IoBrokerDeviceInfo';
4
4
  import { iGarageDoorOpener } from '../baseDeviceInterfaces';
5
5
  export declare class TuyaGarageOpener extends TuyaDevice implements iGarageDoorOpener {
6
+ /** @inheritDoc */
6
7
  settings: GarageDoorOpenerSettings;
7
8
  private readonly _switchId;
8
9
  private readonly _doorContactId;
@@ -10,9 +11,11 @@ export declare class TuyaGarageOpener extends TuyaDevice implements iGarageDoorO
10
11
  private _switchState;
11
12
  get isClosed(): boolean;
12
13
  constructor(pInfo: IoBrokerDeviceInfo);
14
+ /** @inheritDoc */
13
15
  update(idSplit: string[], state: ioBroker.State, initial?: boolean): void;
14
16
  open(): void;
15
17
  close(): void;
16
18
  trigger(): void;
19
+ /** @inheritDoc */
17
20
  dispose(): void;
18
21
  }
@@ -11,6 +11,7 @@ class TuyaGarageOpener extends tuyaDevice_1.TuyaDevice {
11
11
  }
12
12
  constructor(pInfo) {
13
13
  super(pInfo, deviceType_1.DeviceType.TuyaGarageDoorOpener);
14
+ /** @inheritDoc */
14
15
  this.settings = new models_1.GarageDoorOpenerSettings();
15
16
  this._isClosed = true;
16
17
  this._switchState = false;
@@ -18,6 +19,7 @@ class TuyaGarageOpener extends tuyaDevice_1.TuyaDevice {
18
19
  this._switchId = `${this.info.fullID}.1`;
19
20
  this._doorContactId = `${this.info.fullID}.3`;
20
21
  }
22
+ /** @inheritDoc */
21
23
  update(idSplit, state, initial = false) {
22
24
  const fullId = idSplit.join('.');
23
25
  switch (fullId) {
@@ -59,6 +61,7 @@ class TuyaGarageOpener extends tuyaDevice_1.TuyaDevice {
59
61
  trigger() {
60
62
  this.setState(this._switchId, !this._switchState);
61
63
  }
64
+ /** @inheritDoc */
62
65
  dispose() {
63
66
  super.dispose();
64
67
  }
@@ -1,6 +1,7 @@
1
1
  import { TvDevice } from './tvDevice';
2
2
  import { DeviceType } from '../deviceType';
3
3
  export declare class SamsungTv extends TvDevice {
4
+ /** @inheritDoc */
4
5
  deviceType: DeviceType;
5
6
  private _device;
6
7
  constructor(name: string, roomName: string, ip: string, mac: string, token: string);
@@ -32,6 +32,7 @@ const models_1 = require("../../../models");
32
32
  class SamsungTv extends tvDevice_1.TvDevice {
33
33
  constructor(name, roomName, ip, mac, token) {
34
34
  super(name, roomName, ip, tvDeviceType_1.TvDeviceType.Samsung);
35
+ /** @inheritDoc */
35
36
  this.deviceType = deviceType_1.DeviceType.SamsungTv;
36
37
  this._on = false;
37
38
  this._device = new samsung_tv_control_1.default({
@@ -7,13 +7,19 @@ import { TvDeviceType } from './tvDeviceType';
7
7
  export declare abstract class TvDevice implements iTvDevice {
8
8
  ip: string;
9
9
  tvDeviceType: TvDeviceType;
10
+ /** @inheritDoc */
10
11
  settings: TvSettings;
12
+ /**
13
+ * @inheritDoc
14
+ */
11
15
  room: RoomBase | undefined;
16
+ /**
17
+ * @inheritDoc
18
+ */
12
19
  deviceCapabilities: DeviceCapability[];
13
20
  protected constructor(name: string, roomName: string, ip: string, tvDeviceType: TvDeviceType);
14
21
  protected _info: DeviceInfo;
15
22
  get info(): DeviceInfo;
16
- set info(info: DeviceInfo);
17
23
  abstract get deviceType(): DeviceType;
18
24
  get name(): string;
19
25
  get id(): string;
@@ -13,7 +13,11 @@ class TvDevice {
13
13
  constructor(name, roomName, ip, tvDeviceType) {
14
14
  this.ip = ip;
15
15
  this.tvDeviceType = tvDeviceType;
16
+ /** @inheritDoc */
16
17
  this.settings = new models_1.TvSettings();
18
+ /**
19
+ * @inheritDoc
20
+ */
17
21
  this.deviceCapabilities = [DeviceCapability_1.DeviceCapability.tv];
18
22
  this._info = new devices_1.DeviceInfo();
19
23
  this._info.fullName = `TV ${name}`;
@@ -27,9 +31,6 @@ class TvDevice {
27
31
  get info() {
28
32
  return this._info;
29
33
  }
30
- set info(info) {
31
- this._info = info;
32
- }
33
34
  get name() {
34
35
  return this.info.customName;
35
36
  }