iobroker.iot 4.0.1 → 4.0.2

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 (199) hide show
  1. package/README.md +1 -1
  2. package/admin/assets/index-5zouxn2w.js +680 -0
  3. package/admin/index_m.html +1 -1
  4. package/admin/rules/assets/{ActionVisu-DE8dgNVF.js → ActionVisu-D9x2f6zu.js} +1 -1
  5. package/admin/rules/assets/{ActionVisu__loadShare__react__loadShare__-BKaC-p5K.js → ActionVisu__loadShare__react__loadShare__-Cg21Ef1U.js} +1 -1
  6. package/admin/rules/assets/{ActionVisu__loadShare__react_mf_2_dom__loadShare__-Bs1o8DtQ.js → ActionVisu__loadShare__react_mf_2_dom__loadShare__-B1zRWn0u.js} +2 -2
  7. package/admin/rules/assets/ActionVisu__mf_v__runtimeInit__mf_v__-Cz053nO7.js +10 -0
  8. package/admin/rules/assets/bootstrap-BCFKIiwZ.js +1 -0
  9. package/admin/rules/assets/hostInit-hos3Txsy.js +1 -1
  10. package/admin/rules/assets/{index-DjPMvPni.js → index-CAAeiKCc.js} +2 -2
  11. package/admin/rules/assets/{index-CbxmbJvB.js → index-Duo7mFlZ.js} +2 -2
  12. package/admin/rules/assets/index-DwYdaT5M.js +1151 -0
  13. package/admin/rules/assets/{virtualExposes-BNZJTatg.js → virtualExposes-BqVak7rX.js} +2 -2
  14. package/admin/rules/customRuleBlocks.js +2 -2
  15. package/build-backend/lib/AlexaSmartHomeV3/Alexa/AlexaResponse.js +268 -0
  16. package/build-backend/lib/AlexaSmartHomeV3/Alexa/AlexaResponse.js.map +1 -0
  17. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Base.js +110 -0
  18. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Base.js.map +1 -0
  19. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +19 -0
  20. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js.map +1 -0
  21. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +14 -0
  22. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js.map +1 -0
  23. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +19 -0
  24. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js.map +1 -0
  25. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +16 -0
  26. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js.map +1 -0
  27. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +14 -0
  28. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js.map +1 -0
  29. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js +68 -0
  30. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js.map +1 -0
  31. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +14 -0
  32. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js.map +1 -0
  33. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +14 -0
  34. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js.map +1 -0
  35. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +19 -0
  36. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js.map +1 -0
  37. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +25 -0
  38. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js.map +1 -0
  39. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +14 -0
  40. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js.map +1 -0
  41. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +37 -0
  42. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js.map +1 -0
  43. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +32 -0
  44. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js.map +1 -0
  45. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +29 -0
  46. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js.map +1 -0
  47. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js +82 -0
  48. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js.map +1 -0
  49. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +39 -0
  50. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js.map +1 -0
  51. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ReportState.js +47 -0
  52. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ReportState.js.map +1 -0
  53. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +14 -0
  54. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js.map +1 -0
  55. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +36 -0
  56. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js.map +1 -0
  57. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +57 -0
  58. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js.map +1 -0
  59. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +57 -0
  60. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js.map +1 -0
  61. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +12 -0
  62. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js.map +1 -0
  63. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +16 -0
  64. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js.map +1 -0
  65. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +127 -0
  66. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js.map +1 -0
  67. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +18 -0
  68. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js.map +1 -0
  69. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +38 -0
  70. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js.map +1 -0
  71. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js +53 -0
  72. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js.map +1 -0
  73. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +23 -0
  74. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js.map +1 -0
  75. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/LockState.js +37 -0
  76. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/LockState.js.map +1 -0
  77. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +34 -0
  78. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js.map +1 -0
  79. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +19 -0
  80. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js.map +1 -0
  81. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +18 -0
  82. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js.map +1 -0
  83. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.js +25 -0
  84. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.js.map +1 -0
  85. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +31 -0
  86. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js.map +1 -0
  87. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +22 -0
  88. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js.map +1 -0
  89. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +49 -0
  90. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js.map +1 -0
  91. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +21 -0
  92. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js.map +1 -0
  93. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +38 -0
  94. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js.map +1 -0
  95. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +20 -0
  96. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js.map +1 -0
  97. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +26 -0
  98. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js.map +1 -0
  99. package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js +148 -0
  100. package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js.map +1 -0
  101. package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js +13 -0
  102. package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js.map +1 -0
  103. package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +17 -0
  104. package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js.map +1 -0
  105. package/build-backend/lib/AlexaSmartHomeV3/Controls/Control.js +321 -0
  106. package/build-backend/lib/AlexaSmartHomeV3/Controls/Control.js.map +1 -0
  107. package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js +182 -0
  108. package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js.map +1 -0
  109. package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js +127 -0
  110. package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js.map +1 -0
  111. package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js +10 -0
  112. package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js.map +1 -0
  113. package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js +38 -0
  114. package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js.map +1 -0
  115. package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js +208 -0
  116. package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js.map +1 -0
  117. package/build-backend/lib/AlexaSmartHomeV3/Controls/Light.js +47 -0
  118. package/build-backend/lib/AlexaSmartHomeV3/Controls/Light.js.map +1 -0
  119. package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js +35 -0
  120. package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js.map +1 -0
  121. package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js +17 -0
  122. package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js.map +1 -0
  123. package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +26 -0
  124. package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js.map +1 -0
  125. package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js +10 -0
  126. package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js.map +1 -0
  127. package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js +21 -0
  128. package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js.map +1 -0
  129. package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js +21 -0
  130. package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js.map +1 -0
  131. package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js +85 -0
  132. package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js.map +1 -0
  133. package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +27 -0
  134. package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js.map +1 -0
  135. package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js +116 -0
  136. package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js.map +1 -0
  137. package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +10 -0
  138. package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js.map +1 -0
  139. package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js +10 -0
  140. package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js.map +1 -0
  141. package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js +121 -0
  142. package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js.map +1 -0
  143. package/build-backend/lib/AlexaSmartHomeV3/Device.js +83 -0
  144. package/build-backend/lib/AlexaSmartHomeV3/Device.js.map +1 -0
  145. package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js +392 -0
  146. package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js.map +1 -0
  147. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +10 -0
  148. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js.map +1 -0
  149. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +10 -0
  150. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js.map +1 -0
  151. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +10 -0
  152. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js.map +1 -0
  153. package/build-backend/lib/AlexaSmartHomeV3/Helpers/AdapterProvider.js +37 -0
  154. package/build-backend/lib/AlexaSmartHomeV3/Helpers/AdapterProvider.js.map +1 -0
  155. package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +53 -0
  156. package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js.map +1 -0
  157. package/build-backend/lib/AlexaSmartHomeV3/Helpers/IotProxy.js +27 -0
  158. package/build-backend/lib/AlexaSmartHomeV3/Helpers/IotProxy.js.map +1 -0
  159. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js +93 -0
  160. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js.map +1 -0
  161. package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +112 -0
  162. package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js.map +1 -0
  163. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js +625 -0
  164. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js.map +1 -0
  165. package/build-backend/lib/Utils.js +96 -0
  166. package/build-backend/lib/Utils.js.map +1 -0
  167. package/build-backend/lib/adminCommonSocket.js +715 -0
  168. package/build-backend/lib/adminCommonSocket.js.map +1 -0
  169. package/build-backend/lib/alexaCustom.js +542 -0
  170. package/build-backend/lib/alexaCustom.js.map +1 -0
  171. package/build-backend/lib/alexaSmartHomeV2.js +2788 -0
  172. package/build-backend/lib/alexaSmartHomeV3.js +97 -0
  173. package/build-backend/lib/alexaSmartHomeV3.js.map +1 -0
  174. package/build-backend/lib/alisa.js +2409 -0
  175. package/build-backend/lib/devices.js +23 -0
  176. package/build-backend/lib/devices.js.map +1 -0
  177. package/build-backend/lib/functions.js +24 -0
  178. package/build-backend/lib/functions.js.map +1 -0
  179. package/build-backend/lib/googleHome.js +3322 -0
  180. package/build-backend/lib/notifications.js +30 -0
  181. package/build-backend/lib/notifications.js.map +1 -0
  182. package/build-backend/lib/remote.js +1342 -0
  183. package/build-backend/lib/remote.js.map +1 -0
  184. package/build-backend/lib/rooms.js +48 -0
  185. package/build-backend/lib/rooms.js.map +1 -0
  186. package/build-backend/lib/texts.js +81 -0
  187. package/build-backend/lib/texts.js.map +1 -0
  188. package/build-backend/lib/translate.js +21 -0
  189. package/build-backend/lib/translate.js.map +1 -0
  190. package/build-backend/lib/visuApp.js +147 -0
  191. package/build-backend/lib/visuApp.js.map +1 -0
  192. package/build-backend/main.js +1361 -0
  193. package/build-backend/main.js.map +1 -0
  194. package/io-package.json +2 -2
  195. package/package.json +2 -2
  196. package/admin/assets/index-Y479CE6x.js +0 -681
  197. package/admin/rules/assets/ActionVisu__mf_v__runtimeInit__mf_v__-DtUoI3FU.js +0 -5
  198. package/admin/rules/assets/bootstrap-Ba57tu25.js +0 -1
  199. package/admin/rules/assets/index-_Y2FN5EZ.js +0 -1152
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const DeviceManager_1 = __importDefault(require("./AlexaSmartHomeV3/DeviceManager"));
7
+ const AdapterProvider_1 = __importDefault(require("./AlexaSmartHomeV3/Helpers/AdapterProvider"));
8
+ const IotProxy_1 = __importDefault(require("./AlexaSmartHomeV3/Helpers/IotProxy"));
9
+ const RateLimiter_1 = __importDefault(require("./AlexaSmartHomeV3/Helpers/RateLimiter"));
10
+ class AlexaSH3 {
11
+ deviceManager;
12
+ constructor(options) {
13
+ this.deviceManager = new DeviceManager_1.default();
14
+ AdapterProvider_1.default.init(options.adapter);
15
+ IotProxy_1.default.init(options.iotDevice, options.iotClientId, options.adapter.config.login);
16
+ RateLimiter_1.default.init().catch((err) => options.adapter.log.error(err.message));
17
+ // Subscribe on enum changes
18
+ options.adapter.subscribeForeignObjects('enum.functions.*');
19
+ options.adapter.subscribeForeignObjects('enum.rooms.*');
20
+ }
21
+ setLanguage(lang) {
22
+ this.deviceManager.language = lang;
23
+ }
24
+ async process(event) {
25
+ return await this.deviceManager.handleAlexaEvent(event);
26
+ }
27
+ async updateDevices() {
28
+ await this.deviceManager.collectEndpoints();
29
+ }
30
+ async getDevices() {
31
+ const endpoints = this.deviceManager ? this.deviceManager.endpoints : [];
32
+ const result = [];
33
+ for (let p = 0; p < endpoints.length; p++) {
34
+ const endpoint = endpoints[p];
35
+ const controls = [];
36
+ for (let c = 0; c < endpoint.controls.length; c++) {
37
+ const control = endpoint.controls[c];
38
+ let supported = [];
39
+ let enforced = [];
40
+ control._supported.forEach(item => item._properties.forEach(prop => !supported.includes(prop.constructor.name) && supported.push(prop.constructor.name)));
41
+ control._enforced.forEach(item => item._properties.forEach(prop => !enforced.includes(prop.constructor.name) && enforced.push(prop.constructor.name)));
42
+ supported = supported.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();
43
+ enforced = enforced.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();
44
+ controls.push({
45
+ type: control.log._component,
46
+ states: control._states,
47
+ // always sort by id, so the GUI can address the group by the first control
48
+ supported,
49
+ // always sort by id, so the GUI can address the group by the first control
50
+ enforced,
51
+ state: await control.reportState(),
52
+ });
53
+ }
54
+ // always sort by id, so the GUI can address the group by the first control
55
+ controls.sort((c1, c2) => (c1.type > c2.type ? -1 : c1.type < c2.type ? 1 : 0));
56
+ const device = {
57
+ controls,
58
+ friendlyName: endpoint.friendlyName,
59
+ autoDetected: endpoint.autoDetected,
60
+ funcName: endpoint.funcName,
61
+ roomName: endpoint.roomName,
62
+ id: endpoint.id,
63
+ type: endpoint.log._component,
64
+ state: await endpoint.reportState(),
65
+ };
66
+ result.push(device);
67
+ }
68
+ return result;
69
+ }
70
+ async handleStateUpdate(id, state) {
71
+ await this.deviceManager.handleStateUpdate(id, state);
72
+ }
73
+ async handleObjectChange(id, obj) {
74
+ // Handle enum changes
75
+ if (obj) {
76
+ // An object was changed
77
+ // console.log(`object ${id} changed: ${JSON.stringify(obj)}`);
78
+ }
79
+ else {
80
+ // An object was deleted
81
+ // console.log(`object ${id} deleted`);
82
+ }
83
+ // either an enum was deleted or changed => re-collect devices
84
+ // intentionally not waiting for the promise to resolve
85
+ await this.deviceManager.collectEndpoints();
86
+ }
87
+ pauseEvents() {
88
+ this.deviceManager.pauseEvents();
89
+ }
90
+ async destroy() {
91
+ await this.deviceManager.destroy();
92
+ await AdapterProvider_1.default.get().unsubscribeForeignObjectsAsync('enum.functions.*');
93
+ await AdapterProvider_1.default.get().unsubscribeForeignObjectsAsync('enum.rooms.*');
94
+ }
95
+ }
96
+ exports.default = AlexaSH3;
97
+ //# sourceMappingURL=alexaSmartHomeV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alexaSmartHomeV3.js","sourceRoot":"","sources":["../../src/lib/alexaSmartHomeV3.ts"],"names":[],"mappings":"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","sourcesContent":["import DeviceManager from './AlexaSmartHomeV3/DeviceManager';\nimport AdapterProvider from './AlexaSmartHomeV3/Helpers/AdapterProvider';\nimport IotProxy from './AlexaSmartHomeV3/Helpers/IotProxy';\nimport RateLimiter from './AlexaSmartHomeV3/Helpers/RateLimiter';\nimport type { device as DeviceModule } from 'aws-iot-device-sdk';\nimport type { AlexaSH3ControlDescription, AlexaSH3DeviceDescription, AlexaV3Request } from './AlexaSmartHomeV3/types';\nimport type AlexaResponse from './AlexaSmartHomeV3/Alexa/AlexaResponse';\nimport type { IotAdapter } from '../main';\n\nexport default class AlexaSH3 {\n private readonly deviceManager: DeviceManager;\n\n constructor(options: { adapter: IotAdapter; iotDevice: DeviceModule; iotClientId: string }) {\n this.deviceManager = new DeviceManager();\n AdapterProvider.init(options.adapter);\n IotProxy.init(options.iotDevice, options.iotClientId, options.adapter.config.login);\n RateLimiter.init().catch((err: Error) => options.adapter.log.error(err.message));\n // Subscribe on enum changes\n options.adapter.subscribeForeignObjects('enum.functions.*');\n options.adapter.subscribeForeignObjects('enum.rooms.*');\n }\n\n setLanguage(lang: ioBroker.Languages): void {\n this.deviceManager.language = lang;\n }\n\n async process(event: AlexaV3Request): Promise<AlexaResponse> {\n return await this.deviceManager.handleAlexaEvent(event);\n }\n\n async updateDevices(): Promise<void> {\n await this.deviceManager.collectEndpoints();\n }\n\n async getDevices(): Promise<AlexaSH3DeviceDescription[]> {\n const endpoints = this.deviceManager ? this.deviceManager.endpoints : [];\n\n const result: AlexaSH3DeviceDescription[] = [];\n\n for (let p = 0; p < endpoints.length; p++) {\n const endpoint = endpoints[p];\n const controls: AlexaSH3ControlDescription[] = [];\n\n for (let c = 0; c < endpoint.controls.length; c++) {\n const control = endpoint.controls[c];\n let supported: string[] = [];\n let enforced: string[] = [];\n control._supported.forEach(item =>\n item._properties.forEach(\n prop => !supported.includes(prop.constructor.name) && supported.push(prop.constructor.name),\n ),\n );\n control._enforced.forEach(item =>\n item._properties.forEach(\n prop => !enforced.includes(prop.constructor.name) && enforced.push(prop.constructor.name),\n ),\n );\n\n supported = supported.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();\n\n enforced = enforced.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();\n\n controls.push({\n type: control.log._component,\n states: control._states,\n // always sort by id, so the GUI can address the group by the first control\n supported,\n // always sort by id, so the GUI can address the group by the first control\n enforced,\n state: await control.reportState(),\n });\n }\n // always sort by id, so the GUI can address the group by the first control\n controls.sort((c1, c2) => (c1.type > c2.type ? -1 : c1.type < c2.type ? 1 : 0));\n\n const device: AlexaSH3DeviceDescription = {\n controls,\n friendlyName: endpoint.friendlyName,\n autoDetected: endpoint.autoDetected,\n funcName: endpoint.funcName,\n roomName: endpoint.roomName,\n id: endpoint.id,\n type: endpoint.log._component,\n state: await endpoint.reportState(),\n };\n result.push(device);\n }\n\n return result;\n }\n\n async handleStateUpdate(id: string, state: ioBroker.State | null | undefined): Promise<void> {\n await this.deviceManager.handleStateUpdate(id, state);\n }\n\n async handleObjectChange(id: string, obj: ioBroker.Object | null | undefined): Promise<void> {\n // Handle enum changes\n if (obj) {\n // An object was changed\n // console.log(`object ${id} changed: ${JSON.stringify(obj)}`);\n } else {\n // An object was deleted\n // console.log(`object ${id} deleted`);\n }\n\n // either an enum was deleted or changed => re-collect devices\n\n // intentionally not waiting for the promise to resolve\n await this.deviceManager.collectEndpoints();\n }\n\n pauseEvents(): void {\n this.deviceManager.pauseEvents();\n }\n\n async destroy(): Promise<void> {\n await this.deviceManager.destroy();\n await AdapterProvider.get().unsubscribeForeignObjectsAsync('enum.functions.*');\n await AdapterProvider.get().unsubscribeForeignObjectsAsync('enum.rooms.*');\n }\n}\n"]}