iobroker.iot 3.6.0 → 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 (254) hide show
  1. package/README.md +8 -4
  2. package/admin/assets/index-5zouxn2w.js +680 -0
  3. package/admin/index_m.html +1 -1
  4. package/admin/rules/assets/{index-BRdNnGcA.js → index-DwYdaT5M.js} +80 -81
  5. package/admin/rules/customRuleBlocks.js +2 -2
  6. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/AlexaResponse.js +101 -95
  7. package/build-backend/lib/AlexaSmartHomeV3/Alexa/AlexaResponse.js.map +1 -0
  8. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/Base.js +22 -36
  9. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Base.js.map +1 -0
  10. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +19 -0
  11. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js.map +1 -0
  12. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +14 -0
  13. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js.map +1 -0
  14. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +19 -0
  15. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js.map +1 -0
  16. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +16 -0
  17. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js.map +1 -0
  18. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +14 -0
  19. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js.map +1 -0
  20. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js +27 -28
  21. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js.map +1 -0
  22. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +14 -0
  23. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js.map +1 -0
  24. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +14 -0
  25. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js.map +1 -0
  26. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +19 -0
  27. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js.map +1 -0
  28. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +25 -0
  29. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js.map +1 -0
  30. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +14 -0
  31. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js.map +1 -0
  32. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +37 -0
  33. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js.map +1 -0
  34. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +32 -0
  35. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js.map +1 -0
  36. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +29 -0
  37. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js.map +1 -0
  38. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js +34 -27
  39. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js.map +1 -0
  40. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +39 -0
  41. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js.map +1 -0
  42. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ReportState.js +19 -22
  43. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ReportState.js.map +1 -0
  44. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +14 -0
  45. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js.map +1 -0
  46. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +36 -0
  47. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js.map +1 -0
  48. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +57 -0
  49. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js.map +1 -0
  50. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +57 -0
  51. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js.map +1 -0
  52. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +12 -0
  53. package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js.map +1 -0
  54. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +16 -0
  55. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js.map +1 -0
  56. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +127 -0
  57. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js.map +1 -0
  58. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +18 -0
  59. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js.map +1 -0
  60. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +38 -0
  61. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js.map +1 -0
  62. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js +20 -29
  63. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js.map +1 -0
  64. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +23 -0
  65. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js.map +1 -0
  66. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/LockState.js +9 -12
  67. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/LockState.js.map +1 -0
  68. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +34 -0
  69. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js.map +1 -0
  70. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +19 -0
  71. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js.map +1 -0
  72. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +18 -0
  73. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js.map +1 -0
  74. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/PowerState.js +9 -9
  75. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.js.map +1 -0
  76. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +31 -0
  77. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js.map +1 -0
  78. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +22 -0
  79. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js.map +1 -0
  80. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +49 -0
  81. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js.map +1 -0
  82. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +21 -0
  83. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js.map +1 -0
  84. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +38 -0
  85. package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js.map +1 -0
  86. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +20 -0
  87. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js.map +1 -0
  88. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +26 -0
  89. package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js.map +1 -0
  90. package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js +148 -0
  91. package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js.map +1 -0
  92. package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js +13 -0
  93. package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js.map +1 -0
  94. package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +17 -0
  95. package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js.map +1 -0
  96. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Control.js +73 -104
  97. package/build-backend/lib/AlexaSmartHomeV3/Controls/Control.js.map +1 -0
  98. package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js +182 -0
  99. package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js.map +1 -0
  100. package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js +127 -0
  101. package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js.map +1 -0
  102. package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js +10 -0
  103. package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js.map +1 -0
  104. package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js +38 -0
  105. package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js.map +1 -0
  106. package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js +208 -0
  107. package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js.map +1 -0
  108. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Light.js +15 -22
  109. package/build-backend/lib/AlexaSmartHomeV3/Controls/Light.js.map +1 -0
  110. package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js +35 -0
  111. package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js.map +1 -0
  112. package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js +17 -0
  113. package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js.map +1 -0
  114. package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +26 -0
  115. package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js.map +1 -0
  116. package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js +10 -0
  117. package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js.map +1 -0
  118. package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js +21 -0
  119. package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js.map +1 -0
  120. package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js +21 -0
  121. package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js.map +1 -0
  122. package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js +85 -0
  123. package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js.map +1 -0
  124. package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +27 -0
  125. package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js.map +1 -0
  126. package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js +116 -0
  127. package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js.map +1 -0
  128. package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +10 -0
  129. package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js.map +1 -0
  130. package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js +10 -0
  131. package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js.map +1 -0
  132. package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js +121 -0
  133. package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js.map +1 -0
  134. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Device.js +29 -30
  135. package/build-backend/lib/AlexaSmartHomeV3/Device.js.map +1 -0
  136. package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js +392 -0
  137. package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js.map +1 -0
  138. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +10 -0
  139. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js.map +1 -0
  140. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +10 -0
  141. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js.map +1 -0
  142. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +10 -0
  143. package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js.map +1 -0
  144. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/AdapterProvider.js +12 -21
  145. package/build-backend/lib/AlexaSmartHomeV3/Helpers/AdapterProvider.js.map +1 -0
  146. package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +53 -0
  147. package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js.map +1 -0
  148. package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/IotProxy.js +9 -26
  149. package/build-backend/lib/AlexaSmartHomeV3/Helpers/IotProxy.js.map +1 -0
  150. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js +93 -0
  151. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js.map +1 -0
  152. package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +112 -0
  153. package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js.map +1 -0
  154. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js +625 -0
  155. package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js.map +1 -0
  156. package/build-backend/lib/Utils.js +96 -0
  157. package/build-backend/lib/Utils.js.map +1 -0
  158. package/build-backend/lib/adminCommonSocket.js +715 -0
  159. package/build-backend/lib/adminCommonSocket.js.map +1 -0
  160. package/build-backend/lib/alexaCustom.js +542 -0
  161. package/build-backend/lib/alexaCustom.js.map +1 -0
  162. package/{lib → build-backend/lib}/alexaSmartHomeV2.js +4 -8
  163. package/{lib → build-backend/lib}/alexaSmartHomeV3.js +25 -45
  164. package/build-backend/lib/alexaSmartHomeV3.js.map +1 -0
  165. package/{lib → build-backend/lib}/alisa.js +41 -44
  166. package/{lib → build-backend/lib}/devices.js +11 -8
  167. package/build-backend/lib/devices.js.map +1 -0
  168. package/{lib → build-backend/lib}/functions.js +11 -8
  169. package/build-backend/lib/functions.js.map +1 -0
  170. package/{lib → build-backend/lib}/googleHome.js +25 -26
  171. package/{lib → build-backend/lib}/notifications.js +15 -22
  172. package/build-backend/lib/notifications.js.map +1 -0
  173. package/{lib → build-backend/lib}/remote.js +615 -636
  174. package/build-backend/lib/remote.js.map +1 -0
  175. package/{lib → build-backend/lib}/rooms.js +11 -8
  176. package/build-backend/lib/rooms.js.map +1 -0
  177. package/{lib → build-backend/lib}/texts.js +6 -4
  178. package/build-backend/lib/texts.js.map +1 -0
  179. package/build-backend/lib/translate.js +21 -0
  180. package/build-backend/lib/translate.js.map +1 -0
  181. package/{lib → build-backend/lib}/visuApp.js +45 -65
  182. package/build-backend/lib/visuApp.js.map +1 -0
  183. package/build-backend/main.js +1361 -0
  184. package/build-backend/main.js.map +1 -0
  185. package/io-package.json +14 -14
  186. package/package.json +18 -15
  187. package/admin/assets/index-DCbOB3g_.js +0 -681
  188. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +0 -15
  189. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +0 -10
  190. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +0 -15
  191. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +0 -10
  192. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +0 -10
  193. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +0 -10
  194. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +0 -10
  195. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +0 -15
  196. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +0 -20
  197. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +0 -10
  198. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +0 -34
  199. package/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +0 -14
  200. package/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +0 -27
  201. package/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +0 -39
  202. package/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +0 -13
  203. package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +0 -38
  204. package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +0 -55
  205. package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +0 -56
  206. package/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +0 -14
  207. package/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +0 -11
  208. package/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +0 -108
  209. package/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +0 -14
  210. package/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +0 -40
  211. package/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +0 -22
  212. package/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +0 -32
  213. package/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +0 -17
  214. package/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +0 -14
  215. package/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +0 -28
  216. package/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +0 -20
  217. package/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +0 -52
  218. package/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +0 -19
  219. package/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +0 -14
  220. package/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +0 -22
  221. package/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +0 -28
  222. package/lib/AlexaSmartHomeV3/Controls/AirCondition.js +0 -144
  223. package/lib/AlexaSmartHomeV3/Controls/Blind.js +0 -12
  224. package/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +0 -17
  225. package/lib/AlexaSmartHomeV3/Controls/Ct.js +0 -172
  226. package/lib/AlexaSmartHomeV3/Controls/Dimmer.js +0 -124
  227. package/lib/AlexaSmartHomeV3/Controls/Door.js +0 -9
  228. package/lib/AlexaSmartHomeV3/Controls/Gate.js +0 -42
  229. package/lib/AlexaSmartHomeV3/Controls/Hue.js +0 -207
  230. package/lib/AlexaSmartHomeV3/Controls/Lock.js +0 -36
  231. package/lib/AlexaSmartHomeV3/Controls/Motion.js +0 -17
  232. package/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +0 -25
  233. package/lib/AlexaSmartHomeV3/Controls/Slider.js +0 -10
  234. package/lib/AlexaSmartHomeV3/Controls/Socket.js +0 -21
  235. package/lib/AlexaSmartHomeV3/Controls/Temperature.js +0 -22
  236. package/lib/AlexaSmartHomeV3/Controls/Thermostat.js +0 -86
  237. package/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +0 -28
  238. package/lib/AlexaSmartHomeV3/Controls/Volume.js +0 -109
  239. package/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +0 -9
  240. package/lib/AlexaSmartHomeV3/Controls/Window.js +0 -9
  241. package/lib/AlexaSmartHomeV3/Controls/index.js +0 -14
  242. package/lib/AlexaSmartHomeV3/DeviceManager.js +0 -415
  243. package/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +0 -8
  244. package/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +0 -5
  245. package/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +0 -5
  246. package/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +0 -70
  247. package/lib/AlexaSmartHomeV3/Helpers/Logger.js +0 -95
  248. package/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +0 -82
  249. package/lib/AlexaSmartHomeV3/Helpers/Utils.js +0 -583
  250. package/lib/Utils.js +0 -608
  251. package/lib/adminCommonSocket.js +0 -781
  252. package/lib/alexaCustom.js +0 -622
  253. package/lib/translate.js +0 -19
  254. package/main.js +0 -1454
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alexaCustom.js","sourceRoot":"","sources":["../../src/lib/alexaCustom.ts"],"names":[],"mappings":"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","sourcesContent":["import textsT from './texts';\nimport type { IotAdapterConfig } from './types';\nimport type { IotAdapter } from '../main';\n\n// Stop phrases all in lower case!\n// Required by v2 custom skill to detect when the user wants to cancel the conversation\nconst stopPhrases: { [language: string]: string[] } = {\n de: ['es reicht', 'ich bin fertig', 'ende', 'abbrechen', 'stopp', 'stop', 'beenden', 'danke', 'danke schön'],\n en: ['enough', 'i am done', \"i'm done\", 'stop', 'quit', 'bye', 'thanks', 'thank you'],\n ru: ['достаточно', 'я готов', 'хватит'],\n};\n\nexport type AlexaCustomResponse = {\n version: string;\n sessionAttributes: { [key: string]: string };\n response: {\n outputSpeech: {\n type: string;\n text: string;\n };\n card: {\n content: string;\n title: string;\n type: 'Simple';\n };\n shouldEndSession: boolean;\n reprompt?: {\n outputSpeech: {\n type: string;\n ssml: string;\n };\n };\n directives?: {\n type: 'Dialog.ElicitSlot';\n updatedIntent: {\n name: 'queryIntent';\n confirmationStatus: 'NONE';\n slots: {\n query: {\n name: 'query';\n value: '';\n confirmationStatus: 'NONE';\n };\n };\n };\n slotToElicit: 'query';\n }[];\n };\n};\n\ntype AlexaCustomSession = {\n sessionId: string;\n user: {\n userId: string;\n };\n};\ntype AlexaCustomRequest = {\n session: AlexaCustomSession;\n customSkillV2?: boolean;\n request: {\n type: string;\n reason: string;\n dialogState: string;\n intent: {\n name: string;\n slots: {\n [key: string]: {\n value: string;\n resolutions: {\n resolutionsPerAuthority: {\n status: { code: string };\n values: { value: { name: string } }[];\n }[];\n };\n };\n };\n };\n };\n context: {\n System: {\n device: {\n deviceId: string;\n };\n };\n };\n};\n\ntype StoredSession = {\n request: AlexaCustomRequest | null;\n isV2Skill?: boolean;\n responseTimer: NodeJS.Timeout | null;\n expiryTimer: NodeJS.Timeout | null;\n callback: ((response: AlexaCustomResponse) => void) | null;\n};\n\nexport default class AlexaCustom {\n private lang: ioBroker.Languages = 'de';\n private openSessions: {\n [sessionId: string]: StoredSession;\n } = {};\n\n private knownDevices: {\n [deviceId: string]: {\n id: string;\n room: `enum.room.${string}`;\n lastSeen: number;\n };\n } = {};\n private knownUsers: {\n [deviceId: string]: {\n id: string;\n name: string;\n lastSeen: number;\n };\n } = {};\n private lastSkillRequestWasV2 = false;\n private config: IotAdapterConfig;\n private adapter: IotAdapter;\n\n constructor(adapter: IotAdapter) {\n this.config = adapter.config;\n this.adapter = adapter;\n if (this.config.customKnownAlexaDevices && Array.isArray(this.config.customKnownAlexaDevices)) {\n this.config.customKnownAlexaDevices.forEach(device => {\n this.knownDevices[device.id] = device;\n // {\n // \"id\": \"amzn1.ask.device.XXXXXXXXX\", // just show last X chars in UI, should be unique enough\n // \"room\": \"enum.room.xyz\",\n // \"lastSeen\": 1234567899,\n // }\n });\n }\n if (this.config.customKnownAlexaUsers && Array.isArray(this.config.customKnownAlexaUsers)) {\n this.config.customKnownAlexaUsers.forEach(device => {\n this.knownUsers[device.id] = device;\n // {\n // \"id\": \"amzn1.ask.account.XXXXXXXXX\", // just show last X chars in UI, should be unique enough\n // \"name\": \"Holger\",\n // \"lastSeen\": 1234567899,\n // }\n });\n }\n }\n\n getKnownDevices(): {\n id: string;\n room: `enum.room.${string}`;\n lastSeen: number;\n }[] {\n return Object.values(this.knownDevices);\n }\n\n getKnownUsers(): {\n id: string;\n name: string;\n lastSeen: number;\n }[] {\n return Object.values(this.knownUsers);\n }\n\n // eslint-disable-next-line no-unused-private-class-members\n #writeResponse(_channelId: string, _stateId: string, _command: string, _value: ioBroker.StateValue): void {\n // adapter.log.warn('[CUSTOM] Unknown applianceId: ' + deviceId);\n }\n\n #getResponseV1(text: string, repromptText: string | null, shouldEndSession?: boolean): AlexaCustomResponse {\n let speechPlainText = text;\n let speechType = 'PlainText';\n if (text.startsWith('<speak>')) {\n speechPlainText = text.replace(/<[^>]*>/g, '').trim();\n speechType = 'SSML';\n }\n\n let repromptType = 'PlainText';\n if (repromptText?.startsWith('<speak>')) {\n repromptType = 'SSML';\n }\n\n const response: AlexaCustomResponse = {\n version: '1.0',\n sessionAttributes: {},\n response: {\n outputSpeech: {\n type: speechType,\n text: text,\n },\n card: {\n content: speechPlainText,\n title: textsT(this.lang, 'Answer from ioBroker') || 'ioBroker',\n type: 'Simple',\n },\n shouldEndSession: shouldEndSession || false,\n },\n };\n if (repromptText) {\n response.response.reprompt = {\n outputSpeech: {\n type: repromptType,\n ssml: repromptText,\n },\n };\n }\n return response;\n }\n\n #getResponseV2(text: string, repromptText: string | null, shouldEndSession?: boolean): AlexaCustomResponse {\n const response = this.#getResponseV1(text, repromptText, shouldEndSession);\n\n if (!shouldEndSession) {\n // We redirect the user to the Dialog Intent to capture the full traffic\n response.response.directives = [\n {\n type: 'Dialog.ElicitSlot',\n updatedIntent: {\n name: 'queryIntent',\n confirmationStatus: 'NONE',\n slots: {\n query: {\n name: 'query',\n value: '',\n confirmationStatus: 'NONE',\n },\n },\n },\n slotToElicit: 'query',\n },\n ];\n }\n return response;\n }\n\n setLanguage(_lang: ioBroker.Languages): void {\n this.lang = _lang || 'de';\n }\n\n setResponse(resp: string, shouldEndSession?: boolean): void {\n let response: {\n sessionId: string;\n responseText: string;\n shouldEndSession: boolean;\n } | null = null;\n if (resp.startsWith('{') && resp.endsWith('}')) {\n try {\n response = JSON.parse(resp);\n } catch {\n // ignore\n }\n }\n let session: StoredSession | undefined;\n let sessionId: string | undefined;\n if (response !== null && typeof response === 'object') {\n if (response.sessionId) {\n sessionId = response.sessionId;\n session = this.openSessions[sessionId];\n }\n }\n // We got a state response without session reference\n if (!session) {\n const sessions = Object.keys(this.openSessions).filter(\n sessionId => !!(this.openSessions[sessionId].responseTimer && this.openSessions[sessionId].callback),\n );\n if (sessions.length > 0) {\n sessionId = sessions[0];\n session = this.openSessions[sessionId];\n if (sessions.length > 1) {\n this.adapter.log.warn(\n '[CUSTOM] More than one session with expected responses ... consider the first one as the relevant one',\n );\n }\n }\n }\n\n const obj = {\n responseText: '',\n shouldEndSession: shouldEndSession === undefined ? !sessionId : shouldEndSession,\n };\n if (response !== null && typeof response === 'object') {\n if (response.responseText) {\n obj.responseText = response.responseText;\n }\n if (response.shouldEndSession !== undefined) {\n obj.shouldEndSession = response.shouldEndSession;\n }\n } else {\n obj.responseText = resp;\n }\n\n if (session?.responseTimer && session.callback) {\n this.processAfter(session.request!, obj.responseText, obj.shouldEndSession, session.callback);\n }\n }\n\n processAfter(\n request: AlexaCustomRequest,\n text: string,\n shouldEndSession: boolean | undefined,\n callback: (response: AlexaCustomResponse) => void,\n ): void {\n void this.adapter.setState('smart.lastResponse', text, true);\n\n const sessionId = request.session && request.session.sessionId ? request.session.sessionId : '';\n\n if (this.openSessions[sessionId].responseTimer) {\n clearTimeout(this.openSessions[sessionId].responseTimer);\n this.openSessions[sessionId].responseTimer = null;\n }\n\n this.openSessions[sessionId].callback = null;\n this.openSessions[sessionId].request = null;\n\n const isV2Skill =\n this.openSessions[sessionId].isV2Skill !== undefined\n ? this.openSessions[sessionId].isV2Skill\n : !!request.customSkillV2;\n if (isV2Skill) {\n callback(this.#getResponseV2(text, null, shouldEndSession));\n } else {\n callback(this.#getResponseV1(text, null, shouldEndSession));\n }\n }\n\n touchSession(sessionId: string, isV2Skill: boolean): void {\n if (this.openSessions[sessionId] && this.openSessions[sessionId].expiryTimer) {\n clearTimeout(this.openSessions[sessionId].expiryTimer);\n this.openSessions[sessionId].expiryTimer = null;\n }\n this.openSessions[sessionId] = this.openSessions[sessionId] || {\n expiryTimer: null,\n responseTimer: null,\n request: null,\n callback: null,\n isV2Skill,\n };\n this.openSessions[sessionId].expiryTimer = setTimeout(() => {\n delete this.openSessions[sessionId];\n }, 60000); // latest after 10 mins we declare a session as closed\n }\n\n deleteSession(sessionId: string): void {\n if (this.openSessions[sessionId] && this.openSessions[sessionId].expiryTimer) {\n clearTimeout(this.openSessions[sessionId].expiryTimer);\n }\n delete this.openSessions[sessionId];\n }\n\n // let example = {\n // \"session\": {\n // \"sessionId\": \"SessionId.74267f5d-3b58-45646-bdc7-4645645\",\n // \"application\": {\n // \"applicationId\": \"amzn1.ask.skill.6cee68cd-4356-456-9d53-45646456\"\n // },\n // \"attributes\": {},\n // \"user\": {\n // \"userId\": \"amzn1.ask.account.asdasdasdas\"\n // },\n // \"new\": true\n // },\n // \"request\": {\n // \"type\": \"IntentRequest\",\n // \"requestId\": \"EdwRequestId.b785ca9f-6ba9-45645-a667-4645646\",\n // \"locale\": \"de-DE\",\n // \"timestamp\": \"2017-07-25T15:30:51Z\",\n // \"intent\": {\n // \"name\": \"controlDevice\",\n // \"slots\": {\n // \"Command\": {\n // \"name\": \"Command\",\n // \"value\": \"an\"\n // },\n // \"Device\": {\n // \"name\": \"Device\"\n // },\n // \"Article\": {\n // \"name\": \"Article\"\n // },\n // \"Value\": {\n // \"name\": \"Value\"\n // },\n // \"Place\": {\n // \"name\": \"Place\",\n // \"value\": \"licht\"\n // }\n // }\n // }\n // },\n // \"version\": \"1.0\"\n // }\n async process(request: AlexaCustomRequest, isEnabled: boolean): Promise<AlexaCustomResponse | { error: string }> {\n if (!request?.request) {\n this.adapter.log.error('Invalid request: no intent!');\n return { error: 'Invalid request: no intent!' };\n }\n const isV2Skill = !!request.customSkillV2;\n this.lastSkillRequestWasV2 = isV2Skill;\n const getResponse = isV2Skill ? this.#getResponseV2 : this.#getResponseV1;\n\n if (!isEnabled) {\n if (this.lang === 'en') {\n return getResponse(\n 'The service is not activated. Please enable Alexa integration in the iot Adapter.',\n null,\n true,\n );\n }\n if (this.lang === 'ru') {\n return getResponse(\n 'Услуга не активирована. Включите интеграцию Alexa в адаптере Интернета вещей.',\n null,\n true,\n );\n }\n return getResponse(\n 'Der Service ist nicht aktiviert. Bitte aktiviere die Alex-Integration im iot-Adapter um Ihn zu aktivieren.',\n null,\n true,\n );\n }\n\n const sessionId = request.session && request.session.sessionId ? request.session.sessionId : '';\n this.adapter.log.debug(\n `Custom Skill ${isV2Skill ? 'V2' : 'V1'} request: ${request.request.type}/${request.request.intent && request.request.intent.name} for session ${sessionId}, dialog: ${request.request.dialogState}`,\n );\n\n if (request.request.type === 'LaunchRequest') {\n this.adapter.log.debug(request.request.type);\n this.touchSession(sessionId, isV2Skill);\n if (this.lang === 'en') {\n return getResponse(\n 'Hello, what do you want to know or control?',\n 'What do you want to know or control?',\n );\n }\n if (this.lang === 'ru') {\n return getResponse(\n 'Привет. Что вы хотите знать или контролировать?',\n 'Что вы хотите знать или контролировать?',\n );\n }\n return getResponse('Hallo, was möchtest Du wissen oder steuern?', 'Was möchtest Du wissen oder steuern?');\n }\n if (request.request.type === 'IntentRequest') {\n if (request.request.intent) {\n this.touchSession(sessionId, isV2Skill);\n\n if (request.request.intent.name === 'AMAZON.HelpIntent') {\n if (this.lang === 'en') {\n return getResponse(\n 'This skill will pass all recognized words to your ioBroker installation and you can configure actions and responses there! What do you want to know or control?',\n 'What do you want to know or control?',\n );\n }\n if (this.lang === 'ru') {\n return getResponse(\n 'Этот навык передаст все распознанные слова в вашу установку ioBroker, и вы сможете настроить действия и ответы там! Что вы хотите знать или контролировать?',\n 'Что вы хотите знать или контролировать?',\n );\n }\n return getResponse(\n 'Dieser Skill gibt alle erkannten Wörter an Deine ioBroker-Installation weiter und Du kannst dort Aktionen und Antworten konfigurieren! Was möchtest Du wissen oder steuern?',\n 'Was möchtest Du wissen oder steuern?',\n );\n } else if (\n request.request.intent.name === 'AMAZON.CancelIntent' ||\n request.request.intent.name === 'AMAZON.StopIntent'\n ) {\n this.adapter.log.debug(request.request.intent.name);\n this.deleteSession(sessionId);\n if (this.lang === 'en') {\n return getResponse('Goodbye!', null, true);\n }\n if (this.lang === 'ru') {\n return getResponse('До скорого!', null, true);\n }\n return getResponse('Bis bald!', null, true);\n }\n const textsLog = [];\n const texts = [];\n\n const originalIntentName = request.request.intent.name;\n if (request.request.intent.name === 'AMAZON.YesIntent') {\n // Only relevant for v2 Skill. Convert an initial YesIntent to Words\n if (this.lang === 'en') {\n textsLog.push('AMAZON.YesIntent = Yes');\n texts.push('Yes');\n } else if (this.lang === 'ru') {\n textsLog.push('AMAZON.YesIntent = Да');\n texts.push('Да');\n } else if (this.lang === 'de') {\n textsLog.push('AMAZON.YesIntent = Ja');\n texts.push('Ja');\n }\n } else if (request.request.intent.name === 'AMAZON.NoIntent') {\n // Only relevant for v2 Skill. Convert an initial NoIntent to Words\n if (this.lang === 'en') {\n textsLog.push('AMAZON.NoIntent = No');\n texts.push('No');\n } else if (this.lang === 'ru') {\n textsLog.push('AMAZON.NoIntent = Нет');\n texts.push('Нет');\n } else if (this.lang === 'de') {\n textsLog.push('AMAZON.NoIntent = Nein');\n texts.push('Nein');\n }\n } else if (request.request.intent.name.startsWith('queryIntent')) {\n // v2 Skill\n // Only relevant for v2 Skill, get the start words out of the intent name\n const startWords = request.request.intent.name\n .replace(/^queryIntent/, '')\n .replace(/ae/, 'ä')\n .replace(/oe/, 'ö')\n .replace(/ue/, 'ü')\n .replace(/Oe/, 'Ö')\n .replace(/Ue/, 'Ü')\n .replace(/Ae/, 'Ä')\n .replace(/ss/, 'ß')\n .replace(/([A-Z])/g, ' $1')\n .trim();\n request.request.intent.name = 'queryIntent';\n if (startWords.length && startWords !== 'FillWords') {\n // ignore FillWords\n textsLog.push(`queryIntent = ${startWords}`);\n texts.push(startWords);\n }\n }\n\n if (!request.request.intent.slots && textsLog.length === 0) {\n // No slots and nothing from above\n this.adapter.log.warn(`Unexpected ALEXA Request: ${JSON.stringify(request)}`);\n if (this.lang === 'en') {\n return getResponse('I did not hear you. Please repeat your question!', null);\n }\n if (this.lang === 'ru') {\n return getResponse('Я не слышал тебя. Пожалуйста, повторите свой вопрос!', null);\n }\n return getResponse('Ich habe Dich nicht verstanden. Bitte wiederhole deine Frage!', null);\n }\n\n // collect all filled slots (v1 and v2 skill)\n if (request.request.intent.slots) {\n const slots = Object.keys(request.request.intent.slots);\n slots.forEach(slotId => {\n const slot = request.request.intent.slots[slotId];\n let value = slot.value;\n const resolution =\n slot.resolutions?.resolutionsPerAuthority?.length > 0\n ? slot.resolutions.resolutionsPerAuthority[0]\n : null;\n\n if (resolution && resolution.status.code === 'ER_SUCCESS_MATCH') {\n const resolutionValue = resolution.values[0].value;\n value = resolutionValue.name;\n }\n\n if (value && value.length) {\n texts.push(value);\n textsLog.push(`${slotId} = ${value}`);\n }\n });\n }\n\n let text = texts.join(' ');\n\n const intent = request.request.intent.name || '';\n if (originalIntentName.startsWith('queryIntentStarteDialog')) {\n // v2 Skill StarteDialog* intents are automatically handled without sending anywhere\n let response = '';\n if (originalIntentName === 'queryIntentStarteDialog') {\n // Intent to directly redirect to the dialog state without further processing\n response = text.replace(/^Starte Dialog /, '').trim();\n } else if (originalIntentName === 'queryIntentStarteDialogMitFrage') {\n // Intent to directly redirect to the dialog state with asking a question without further processing\n response = text.replace(/^Starte Dialog Mit Frage /, '').trim();\n if (response.length) {\n response += '?';\n }\n }\n if (!response.length) {\n // We need to send an answer, else it is an error\n if (this.lang === 'en') {\n response = 'Yes?';\n } else if (this.lang === 'ru') {\n response = 'Да?';\n } else {\n response = 'Ja?';\n }\n }\n return getResponse(response, response);\n }\n if (intent === 'queryIntent' && stopPhrases[this.lang].includes(text.toLowerCase())) {\n // v2 Skill when in dialog mode, we need to take care of the exit criteria ourselves\n this.deleteSession(sessionId);\n\n if (this.lang === 'en') {\n return getResponse('Goodbye!', null, true);\n }\n if (this.lang === 'ru') {\n return getResponse('До скорого!', null, true);\n }\n return getResponse('Bis bald!', null, true);\n }\n // v1 and v2 Skill\n const deviceId = request?.context?.System?.device?.deviceId\n ? request.context.System.device.deviceId\n : '';\n const deviceRoom = this.knownDevices[deviceId] ? this.knownDevices[deviceId].room : undefined;\n const userId = request?.session?.user?.userId ? request.session.user.userId : '';\n const userName = this.knownUsers[userId] ? this.knownUsers[userId].name : undefined;\n const commandObj = {\n words: texts,\n intent: intent,\n deviceId,\n deviceRoom,\n sessionId,\n userId,\n userName,\n };\n\n // Add room and username to the text if configured\n if (deviceRoom && this.config.addCustomKnownAlexaDeviceRoomToText) {\n text += ` ${deviceRoom}`;\n }\n if (userName && this.config.addCustomKnownAlexaUserNameToText) {\n text += ` ${userName}`;\n }\n\n // Add intent in front of the text to stay compatible with v1 Skill\n text = `${intent} ${text}`;\n text = text.trim();\n\n await this.adapter.setStateAsync('smart.lastCommand', text, true);\n await this.adapter.setStateAsync('smart.lastCommandObj', JSON.stringify(commandObj), true);\n\n this.adapter.log.debug(`${intent}: ${textsLog.join(', ')}`);\n\n if (intent) {\n let text_timeout;\n if (this.lang === 'en') {\n text_timeout = `Processing of ${text} is not possible!`;\n } else if (this.lang === 'ru') {\n text_timeout = `Обработка ${text} не возможна!`;\n } else {\n text_timeout = `Die Verarbeitung von ${text} ist nicht möglich!`;\n }\n\n if (\n this.config.text2command !== null &&\n this.config.text2command !== undefined &&\n (this.config.text2command as string) !== ''\n ) {\n const state = await this.adapter.getForeignStateAsync(\n `system.adapter.text2command.${this.config.text2command}.alive`,\n );\n if (state?.val) {\n return new Promise<AlexaCustomResponse>(\n (resolve: ((response: AlexaCustomResponse) => void) | null): void => {\n this.openSessions[sessionId].responseTimer = setTimeout(() => {\n this.openSessions[sessionId].responseTimer = null;\n if (resolve) {\n this.processAfter(request, text_timeout, true, resolve);\n resolve = null;\n }\n }, 1000);\n\n if (this.config.language) {\n text = `${this.config.language};${text}`;\n }\n\n this.adapter.sendTo(`text2command.${this.config.text2command}`, text, result => {\n const typedResult: {\n response: string;\n } = result as any;\n if (this.openSessions[sessionId].responseTimer) {\n clearTimeout(this.openSessions[sessionId].responseTimer);\n this.openSessions[sessionId].responseTimer = null;\n }\n const regExp = new RegExp(`\"${intent.toLowerCase()}\\\\s`);\n typedResult.response = typedResult.response\n .replace(/^\\w\\w;/, '')\n .replace(regExp, '\"');\n this.adapter.log.debug(`Response from text2command: ${typedResult.response}`);\n\n void this.adapter.setState('smart.lastResponse', typedResult.response, true);\n if (resolve) {\n resolve(getResponse(typedResult.response, null, true));\n resolve = null;\n }\n });\n },\n );\n }\n }\n\n return new Promise(resolve => {\n this.openSessions[sessionId].responseTimer &&\n clearTimeout(this.openSessions[sessionId].responseTimer);\n this.openSessions[sessionId].callback = resolve;\n this.openSessions[sessionId].request = request;\n\n this.openSessions[sessionId].responseTimer = setTimeout(\n () => this.processAfter(request, text_timeout, true, resolve),\n 200,\n );\n });\n }\n if (this.lang === 'en') {\n return getResponse('I did not understand the question!', null);\n }\n if (this.lang === 'ru') {\n return getResponse('Я не поняла ваш вопрос!', null);\n }\n return getResponse('Ich habe Deine Frage nicht verstanden!', null);\n }\n this.adapter.log.warn(`Unexpected ALEXA Request: ${JSON.stringify(request)}`);\n if (this.lang === 'en') {\n return getResponse('Please repeat your question!', null);\n }\n if (this.lang === 'ru') {\n return getResponse('Пожалуйста, повторите вопрос!', null);\n }\n return getResponse('Bitte wiederhole die Frage!', null);\n }\n if (request.request.type === 'SessionEndedRequest') {\n this.adapter.log.debug(`SessionEndedRequest: ${request.request.reason}`);\n this.deleteSession(sessionId);\n // Should not be called\n return { error: 'Unexpected Session Ended' };\n }\n\n this.adapter.log.debug(`Unknown Request type: ${JSON.stringify(request)}`);\n\n return { error: 'Unknown Request type' };\n }\n}\n"]}
@@ -1,7 +1,9 @@
1
- 'use strict';
1
+ const Actions = require('../../admin/actions');
2
+ const translateRooms = require('./rooms').default;
3
+ const translateFunctions = require('./functions').default;
4
+ const translateDevices = require('./devices').default;
2
5
 
3
6
  function AlexaSH2(adapter) {
4
- let Actions = require('../admin/actions');
5
7
  let smartDevices = [];
6
8
  let enums = [];
7
9
  let valuesON = {};
@@ -9,9 +11,6 @@ function AlexaSH2(adapter) {
9
11
  let translate = false;
10
12
  let addedId = null;
11
13
 
12
- let translateRooms;
13
- let translateFunctions;
14
- let translateDevices;
15
14
  const words = {
16
15
  'No name': { en: 'No name', de: 'Kein Name', ru: 'Нет имени' },
17
16
  Group: { en: 'Group', de: 'Gruppe', ru: 'Группа' },
@@ -243,8 +242,6 @@ function AlexaSH2(adapter) {
243
242
  if (room) {
244
243
  // translate room
245
244
  if (translate) {
246
- translateRooms = translateRooms || require('./rooms.js');
247
- translateFunctions = translateFunctions || require('./functions.js');
248
245
  room = translateRooms(lang, room);
249
246
  func = translateFunctions(lang, func);
250
247
  }
@@ -273,7 +270,6 @@ function AlexaSH2(adapter) {
273
270
  friendlyNames[0] = friendlyName;
274
271
  nameModified = false;
275
272
  } else if (translate) {
276
- translateDevices = translateDevices || require('./devices.js');
277
273
  friendlyName = translateDevices(lang, friendlyName);
278
274
  nameModified = true;
279
275
  friendlyNames = friendlyName.split(',');
@@ -1,59 +1,46 @@
1
- const AdapterProvider = require('./AlexaSmartHomeV3/Helpers/AdapterProvider');
2
- const DeviceManager = require('./AlexaSmartHomeV3/DeviceManager');
3
- const IotProxy = require('./AlexaSmartHomeV3/Helpers/IotProxy');
4
- const RateLimiter = require('./AlexaSmartHomeV3/Helpers/RateLimiter');
5
-
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"));
6
10
  class AlexaSH3 {
11
+ deviceManager;
7
12
  constructor(options) {
8
- this.deviceManager = new DeviceManager();
9
- AdapterProvider.init(options.adapter);
10
- IotProxy.init(options.iotDevice, options.iotClientId, options.adapter.config.login);
11
- RateLimiter.init();
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));
12
17
  // Subscribe on enum changes
13
18
  options.adapter.subscribeForeignObjects('enum.functions.*');
14
19
  options.adapter.subscribeForeignObjects('enum.rooms.*');
15
20
  }
16
-
17
21
  setLanguage(lang) {
18
22
  this.deviceManager.language = lang;
19
23
  }
20
-
21
24
  async process(event) {
22
25
  return await this.deviceManager.handleAlexaEvent(event);
23
26
  }
24
-
25
27
  async updateDevices() {
26
- return await this.deviceManager.collectEndpoints();
28
+ await this.deviceManager.collectEndpoints();
27
29
  }
28
-
29
30
  async getDevices() {
30
31
  const endpoints = this.deviceManager ? this.deviceManager.endpoints : [];
31
-
32
32
  const result = [];
33
-
34
33
  for (let p = 0; p < endpoints.length; p++) {
35
34
  const endpoint = endpoints[p];
36
35
  const controls = [];
37
-
38
36
  for (let c = 0; c < endpoint.controls.length; c++) {
39
37
  const control = endpoint.controls[c];
40
38
  let supported = [];
41
39
  let enforced = [];
42
- control._supported.forEach(item =>
43
- item._properties.forEach(
44
- prop => !supported.includes(prop.constructor.name) && supported.push(prop.constructor.name),
45
- ),
46
- );
47
- control._enforced.forEach(item =>
48
- item._properties.forEach(
49
- prop => !enforced.includes(prop.constructor.name) && enforced.push(prop.constructor.name),
50
- ),
51
- );
52
-
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)));
53
42
  supported = supported.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();
54
-
55
43
  enforced = enforced.map(prop => prop.replace(/^[A-Z]/, c => c.toLowerCase())).sort();
56
-
57
44
  controls.push({
58
45
  type: control.log._component,
59
46
  states: control._states,
@@ -66,7 +53,6 @@ class AlexaSH3 {
66
53
  }
67
54
  // always sort by id, so the GUI can address the group by the first control
68
55
  controls.sort((c1, c2) => (c1.type > c2.type ? -1 : c1.type < c2.type ? 1 : 0));
69
-
70
56
  const device = {
71
57
  controls,
72
58
  friendlyName: endpoint.friendlyName,
@@ -79,39 +65,33 @@ class AlexaSH3 {
79
65
  };
80
66
  result.push(device);
81
67
  }
82
-
83
68
  return result;
84
69
  }
85
-
86
70
  async handleStateUpdate(id, state) {
87
- return await this.deviceManager.handleStateUpdate(id, state);
71
+ await this.deviceManager.handleStateUpdate(id, state);
88
72
  }
89
-
90
73
  async handleObjectChange(id, obj) {
91
74
  // Handle enum changes
92
75
  if (obj) {
93
76
  // An object was changed
94
77
  // console.log(`object ${id} changed: ${JSON.stringify(obj)}`);
95
- } else {
78
+ }
79
+ else {
96
80
  // An object was deleted
97
81
  // console.log(`object ${id} deleted`);
98
82
  }
99
-
100
83
  // either an enum was deleted or changed => re-collect devices
101
-
102
84
  // intentionally not waiting for the promise to resolve
103
- this.deviceManager.collectEndpoints();
85
+ await this.deviceManager.collectEndpoints();
104
86
  }
105
-
106
87
  pauseEvents() {
107
88
  this.deviceManager.pauseEvents();
108
89
  }
109
-
110
90
  async destroy() {
111
91
  await this.deviceManager.destroy();
112
- await AdapterProvider.get().unsubscribeForeignObjectsAsync('enum.functions.*');
113
- await AdapterProvider.get().unsubscribeForeignObjectsAsync('enum.rooms.*');
92
+ await AdapterProvider_1.default.get().unsubscribeForeignObjectsAsync('enum.functions.*');
93
+ await AdapterProvider_1.default.get().unsubscribeForeignObjectsAsync('enum.rooms.*');
114
94
  }
115
95
  }
116
-
117
- module.exports = AlexaSH3;
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"]}
@@ -1,11 +1,10 @@
1
- const { Types, ChannelDetector } = require('iobroker.type-detector');
1
+ const ChannelDetector = require('@iobroker/type-detector');
2
2
  const axios = require('axios');
3
3
  const uuid = require('uuid').v1;
4
4
 
5
- const textsT = require('./texts');
6
- const roomsT = require('./rooms');
7
- const funcsT = require('./functions');
8
- const version = require('../package.json').version;
5
+ const textsT = require('./texts').default;
6
+ const roomsT = require('./rooms').default;
7
+ const funcsT = require('./functions').default;
9
8
 
10
9
  // Description
11
10
  // ??
@@ -47,24 +46,24 @@ class YandexAliceConverter {
47
46
  this.lang = 'ru';
48
47
 
49
48
  this.types = {
50
- [Types.socket]: this._processSocket.bind(this),
51
- [Types.light]: this._processLight.bind(this),
52
- [Types.dimmer]: this._processDimmer.bind(this),
53
- [Types.ct]: this._processCT.bind(this),
54
- [Types.rgbSingle]: this._processRGB.bind(this),
55
- [Types.airCondition]: this._processAC.bind(this),
56
- [Types.thermostat]: this._processAC.bind(this),
57
- [Types.blind]: this._processBlinds.bind(this),
58
- [Types.lock]: this._processLock.bind(this),
59
- [Types.vacuumCleaner]: this._processVacuumCleaner.bind(this),
60
- [Types.gate]: this._processLock.bind(this),
49
+ [ChannelDetector.Types.socket]: this._processSocket.bind(this),
50
+ [ChannelDetector.Types.light]: this._processLight.bind(this),
51
+ [ChannelDetector.Types.dimmer]: this._processDimmer.bind(this),
52
+ [ChannelDetector.Types.ct]: this._processCT.bind(this),
53
+ [ChannelDetector.Types.rgbSingle]: this._processRGB.bind(this),
54
+ [ChannelDetector.Types.airCondition]: this._processAC.bind(this),
55
+ [ChannelDetector.Types.thermostat]: this._processAC.bind(this),
56
+ [ChannelDetector.Types.blind]: this._processBlinds.bind(this),
57
+ [ChannelDetector.Types.lock]: this._processLock.bind(this),
58
+ [ChannelDetector.Types.vacuumCleaner]: this._processVacuumCleaner.bind(this),
59
+ [ChannelDetector.Types.gate]: this._processLock.bind(this),
61
60
  // sensors
62
- [Types.motion]: this._processMotion.bind(this),
63
- [Types.door]: this._processContact.bind(this),
64
- [Types.window]: this._processContact.bind(this),
65
- [Types.temperature]: this._processTemperature.bind(this),
66
- [Types.humidity]: this._processHumidity.bind(this),
67
- [Types.buttonSensor]: this._processButtonSensor.bind(this),
61
+ [ChannelDetector.Types.motion]: this._processMotion.bind(this),
62
+ [ChannelDetector.Types.door]: this._processContact.bind(this),
63
+ [ChannelDetector.Types.window]: this._processContact.bind(this),
64
+ [ChannelDetector.Types.temperature]: this._processTemperature.bind(this),
65
+ [ChannelDetector.Types.humidity]: this._processHumidity.bind(this),
66
+ [ChannelDetector.Types.buttonSensor]: this._processButtonSensor.bind(this),
68
67
  };
69
68
  this._entities = [];
70
69
  this._entity2ID = {};
@@ -77,12 +76,11 @@ class YandexAliceConverter {
77
76
 
78
77
  _getSmartName(obj) {
79
78
  if (!this.adapter.config.noCommon) {
80
- return obj && obj.common ? obj.common.smartName || '' : '';
81
- } else {
82
- return (obj && obj.common && obj.common.custom && obj.common.custom[this.adapter.namespace]) || ''
83
- ? obj.common.custom[this.adapter.namespace].smartName
84
- : '';
79
+ return obj?.common ? obj.common.smartName || '' : '';
85
80
  }
81
+ return obj?.common?.custom?.[this.adapter.namespace] || ''
82
+ ? obj.common.custom[this.adapter.namespace].smartName
83
+ : '';
86
84
  }
87
85
 
88
86
  _getObjectName(obj, _lang) {
@@ -91,22 +89,21 @@ class YandexAliceConverter {
91
89
  let result = this._getSmartName(obj);
92
90
 
93
91
  if (!result || (typeof result !== 'object' && typeof result !== 'string')) {
94
- result = obj && obj.common ? obj.common.name : null;
95
- result = result || obj._id;
92
+ result = obj?.common ? obj.common.name : null;
93
+ result ||= obj._id;
96
94
  }
97
95
 
98
96
  if (typeof result === 'object') {
99
97
  if (result[_lang] || result.en) {
100
98
  return result[_lang] || result.en;
101
- } else {
102
- // take first not empty value
103
- const lang = Object.keys(result).find(lang => result[lang]);
104
- if (result[lang]) {
105
- return result[lang];
106
- } else {
107
- return obj._id;
108
- }
109
99
  }
100
+ // take first not empty value
101
+ const lang = Object.keys(result).find(lang => result[lang]);
102
+ if (result[lang]) {
103
+ return result[lang];
104
+ }
105
+
106
+ return obj._id;
110
107
  }
111
108
 
112
109
  return result || '';
@@ -617,7 +614,7 @@ class YandexAliceConverter {
617
614
  _processCommon(id, name, room, func, obj, entityType, entity_id) {
618
615
  if (!name) {
619
616
  if (func && room) {
620
- name = room + ' ' + func;
617
+ name = `${room} ${func}`;
621
618
  } else {
622
619
  name = obj.common.custom[this.adapter.namespace].name || this._generateName(obj);
623
620
  }
@@ -625,7 +622,7 @@ class YandexAliceConverter {
625
622
  const _name = replaceInvalidChars(this._generateName(obj, 'en'));
626
623
 
627
624
  const entity = {
628
- entity_id: entity_id || entityType + '.' + _name,
625
+ entity_id: entity_id || `${entityType}.${_name}`,
629
626
  //state: this._iobState2EntityState(obj._id, state.val);
630
627
  attributes: {
631
628
  friendly_name: name,
@@ -639,13 +636,13 @@ class YandexAliceConverter {
639
636
  description: name,
640
637
  room: room,
641
638
  custom_data: {
642
- entity_id: entity_id || entityType + '.' + _name,
639
+ entity_id: entity_id || `${entityType}.${_name}`,
643
640
  },
644
641
  capabilities: [],
645
642
  properties: [],
646
643
  device_info: {
647
644
  manufacturer: 'IOBroker',
648
- model: entity_id || entityType + '.' + _name,
645
+ model: entity_id || `${entityType}.${_name}`,
649
646
  hw_version: '',
650
647
  sw_version: this.adapter.version,
651
648
  },
@@ -1648,7 +1645,7 @@ class YandexAlisa {
1648
1645
  this.smartDevices = [];
1649
1646
  this.enums = [];
1650
1647
  this.usedIds = [];
1651
- this.detector = new ChannelDetector();
1648
+ this.detector = new ChannelDetector.default();
1652
1649
  this.unknownDevices = {};
1653
1650
  this.rateCalculation = [];
1654
1651
 
@@ -2198,7 +2195,7 @@ class YandexAlisa {
2198
2195
  if (this.urlKey && (!this.keyPromise || now - this.keyPromiseTime > 900000)) {
2199
2196
  /* 15 Minutes */
2200
2197
  this.keyPromiseTime = now;
2201
- const url = `${URL_STATUS}?user=${encodeURIComponent(this.adapter.config.login)}&urlKey=${encodeURIComponent(this.urlKey.key)}&p=${PROTOCOL_VERSION}&v=${version}`;
2198
+ const url = `${URL_STATUS}?user=${encodeURIComponent(this.adapter.config.login)}&urlKey=${encodeURIComponent(this.urlKey.key)}&p=${PROTOCOL_VERSION}&v=${this.adapter.version}`;
2202
2199
  this.keyPromise = axios
2203
2200
  .get(url, { validateStatus: status => status === 200 })
2204
2201
  .then(response => {
@@ -2271,7 +2268,7 @@ class YandexAlisa {
2271
2268
  },
2272
2269
  };
2273
2270
  this.adapter.log.debug(`[ALISA] Response: ${JSON.stringify(json)}`);
2274
- const url = `${URL_STATUS}?user=${encodeURIComponent(this.adapter.config.login)}&urlKey=${encodeURIComponent(this.urlKey.key)}&p=${PROTOCOL_VERSION}&v=${version}`;
2271
+ const url = `${URL_STATUS}?user=${encodeURIComponent(this.adapter.config.login)}&urlKey=${encodeURIComponent(this.urlKey.key)}&p=${PROTOCOL_VERSION}&v=${this.adapter.version}`;
2275
2272
  return axios.post(url, json, { validateStatus: status => status === 200 }).then(response => {
2276
2273
  if (this.unknownDevices[id]) {
2277
2274
  delete this.unknownDevices[id];
@@ -1,7 +1,10 @@
1
- 'use strict';
2
-
3
- const translate = require('./translate.js');
4
-
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
+ exports.default = functions;
7
+ const translate_1 = __importDefault(require("./translate"));
5
8
  const dictionary = [
6
9
  { en: 'lamp', de: 'Lampe', ru: 'лампа' },
7
10
  { en: 'door', de: 'Tür', ru: 'дверь' },
@@ -14,7 +17,7 @@ const dictionary = [
14
17
  { en: 'orange lamp', de: 'Orange Lampe', ru: 'оранжевая лампа' },
15
18
  { en: 'christmas tree', de: 'Weihnachtsbaum/Tannenbaum', ru: 'ёлка/елка' },
16
19
  ];
17
-
18
- module.exports = function (lang, word) {
19
- return translate(dictionary, lang, word);
20
- };
20
+ function functions(lang, word) {
21
+ return (0, translate_1.default)(dictionary, lang, word);
22
+ }
23
+ //# sourceMappingURL=devices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/lib/devices.ts"],"names":[],"mappings":";;;;;AAeA,4BAEC;AAjBD,4DAAoC;AAEpC,MAAM,UAAU,GAA0B;IACtC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;IACxC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;IACtC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE;IAC3C,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,2BAA2B,EAAE;IACzE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE;IACzD,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,eAAe,EAAE;IAC5D,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE;IACzD,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE;IAC1D,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE;IAChE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,WAAW,EAAE;CAC7E,CAAC;AAEF,SAAwB,SAAS,CAAC,IAAwB,EAAE,IAAY;IACpE,OAAO,IAAA,mBAAS,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import translate from './translate';\n\nconst dictionary: ioBroker.Translated[] = [\n { en: 'lamp', de: 'Lampe', ru: 'лампа' },\n { en: 'door', de: 'Tür', ru: 'дверь' },\n { en: 'window', de: 'Fenster', ru: 'окно' },\n { en: 'yellow lamp', de: 'Gelbe Lampe', ru: 'жёлтая лампа/желтая лампа' },\n { en: 'red lamp', de: 'Rote Lampe', ru: 'красная лампа' },\n { en: 'green lamp', de: 'Grüne Lampe', ru: 'зелёная лампа' },\n { en: 'blue lamp', de: 'Blaue Lampe', ru: 'синяя лампа' },\n { en: 'white lamp', de: 'Weiße Lampe', ru: 'белая лампа' },\n { en: 'orange lamp', de: 'Orange Lampe', ru: 'оранжевая лампа' },\n { en: 'christmas tree', de: 'Weihnachtsbaum/Tannenbaum', ru: 'ёлка/елка' },\n];\n\nexport default function functions(lang: ioBroker.Languages, word: string): string {\n return translate(dictionary, lang, word);\n}\n"]}
@@ -1,7 +1,10 @@
1
- 'use strict';
2
-
3
- const translate = require('./translate.js');
4
-
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
+ exports.default = functions;
7
+ const translate_1 = __importDefault(require("./translate"));
5
8
  const dictionary = [
6
9
  { en: 'light', it: 'luce', de: 'Licht', ru: 'cвет' },
7
10
  { en: 'color', it: 'colore', de: 'Farbe', ru: 'цвет' },
@@ -15,7 +18,7 @@ const dictionary = [
15
18
  { en: 'door', it: 'porta', de: 'Tür', ru: 'дверь' },
16
19
  { en: 'undefined', it: 'non definito', de: 'Nicht definiert', ru: 'не определена' },
17
20
  ];
18
-
19
- module.exports = function (lang, word) {
20
- return translate(dictionary, lang, word);
21
- };
21
+ function functions(lang, word) {
22
+ return (0, translate_1.default)(dictionary, lang, word);
23
+ }
24
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/lib/functions.ts"],"names":[],"mappings":";;;;;AAgBA,4BAEC;AAlBD,4DAAoC;AAEpC,MAAM,UAAU,GAA0B;IACtC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;IACpD,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;IACtD,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE;IACzE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,4BAA4B,EAAE,EAAE,EAAE,aAAa,EAAE;IACnG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE;IAC3D,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAoB,EAAE;IAC/E,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE;IACxD,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE;IACxF,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE;IAClE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;IACnD,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE;CACtF,CAAC;AAEF,SAAwB,SAAS,CAAC,IAAwB,EAAE,IAAY;IACpE,OAAO,IAAA,mBAAS,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import translate from './translate';\n\nconst dictionary: ioBroker.Translated[] = [\n { en: 'light', it: 'luce', de: 'Licht', ru: 'cвет' },\n { en: 'color', it: 'colore', de: 'Farbe', ru: 'цвет' },\n { en: 'backlight', it: 'controluce', de: 'Beleuchtung', ru: 'подсветка' },\n { en: 'blinds/shutter', it: 'bui/otturatore', de: 'Rollladen/Rolladen/Fenster', ru: 'жалюзи/окна' },\n { en: 'curtain', it: 'tenda', de: 'Vorhänge', ru: 'шторы' },\n { en: 'heating', it: 'riscaldamento', de: 'Heizung', ru: 'отопление/Подогрев' },\n { en: 'music', it: 'musica', de: 'Musik', ru: 'музыка' },\n { en: 'alarm/security', it: 'allarme/sicurezza', de: 'Alarmanlage/Alarm', ru: 'охрана' },\n { en: 'lock', it: 'serratura', de: 'Schloß/Schloss', ru: 'замок' },\n { en: 'door', it: 'porta', de: 'Tür', ru: 'дверь' },\n { en: 'undefined', it: 'non definito', de: 'Nicht definiert', ru: 'не определена' },\n];\n\nexport default function functions(lang: ioBroker.Languages, word: string): string {\n return translate(dictionary, lang, word);\n}\n"]}