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":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import { device as DeviceModule } from 'aws-iot-device-sdk';\nimport { Adapter, type AdapterOptions } from '@iobroker/adapter-core'; // Get common adapter utils\nimport { readFileSync } from 'node:fs';\nimport axios from 'axios';\nimport { deflateSync } from 'node:zlib';\n\n// @ts-expect-error no types\nimport AlexaSH2 from './lib/alexaSmartHomeV2';\nimport AlexaSH3 from './lib/alexaSmartHomeV3';\nimport AlexaCustom, { type AlexaCustomResponse } from './lib/alexaCustom';\n// @ts-expect-error no types\nimport GoogleHome from './lib/googleHome';\n// @ts-expect-error no types\nimport YandexAlisa from './lib/alisa';\nimport Remote, { type SOCKET_MESSAGE, type SOCKET_TRUNK } from './lib/remote';\nimport { handleGeofenceData, handleDevicesData, handleSendToAdapter, handleGetInstances } from './lib/visuApp';\nimport { buildMessageFromNotification } from './lib/notifications';\nimport type { IotAdapterConfig } from './lib/types';\n\nconst NONE = '___none___';\nconst MAX_IOT_MESSAGE_LENGTH = 127 * 1024;\nconst SPECIAL_ADAPTERS = ['netatmo'];\nconst ALLOWED_SERVICES = SPECIAL_ADAPTERS.concat(['text2command']);\n\nexport class IotAdapter extends Adapter {\n declare public config: IotAdapterConfig;\n private recalcTimeout: NodeJS.Timeout | null = null;\n private lang: ioBroker.Languages = 'de';\n private translate = false;\n private alexaSH2: AlexaSH2 | null = null;\n private alexaSH3: AlexaSH3 | null = null;\n private googleHome: GoogleHome | null = null;\n private alexaCustom: AlexaCustom | null = null;\n private yandexAlisa: YandexAlisa | null = null;\n private remote: Remote | null = null;\n private device: DeviceModule | null = null;\n private urlKey: { key: string } | null = null;\n\n private connectedOwn = false;\n private secret: string = '';\n private connectStarted = 0;\n\n public constructor(options: Partial<AdapterOptions> = {}) {\n super({\n ...options,\n name: 'iot',\n objectChange: (id, obj) => {\n if (id === 'system.config' && obj && !this.translate) {\n const systemObj = obj as ioBroker.SystemConfigObject;\n this.lang = systemObj.common.language;\n\n if (this.lang !== 'en' && this.lang !== 'de' && this.lang !== 'ru') {\n this.lang = 'en';\n }\n\n this.alexaSH2?.setLanguage(this.lang);\n this.alexaSH3?.setLanguage(this.lang);\n this.yandexAlisa?.setLanguage(this.lang);\n this.alexaCustom?.setLanguage(this.lang);\n this.googleHome?.setLanguage(this.lang);\n this.remote?.setLanguage(this.lang);\n }\n // if it is an instance\n if (id.startsWith('system.adapter.')) {\n // try to find it in special adapters\n const adpr = SPECIAL_ADAPTERS.find(a => id.startsWith(`system.adapter.${a}.`));\n // if found and it is really instance\n if (adpr && id.match(/\\.\\d+$/)) {\n // update state\n setTimeout(async () => await this.createStateForAdapter(adpr), 1000);\n }\n\n return;\n }\n void this.alexaSH3?.handleObjectChange(id, obj);\n\n if (id) {\n this.remote?.updateObject(id, obj);\n }\n },\n stateChange: async (id, state) => {\n if (id === `${this.namespace}.app.message` && state && !state.ack) {\n try {\n await this.sendMessageToApp(state.val as string);\n } catch (e) {\n this.log.error(`Cannot send message to app: ${e}`);\n }\n }\n\n if (state) {\n if (this.config.googleHome) {\n void this.googleHome?.updateState(id, state);\n }\n if (this.config.amazonAlexa) {\n void this.alexaSH3?.handleStateUpdate(id, state);\n }\n\n if (this.config.yandexAlisa) {\n void this.yandexAlisa?.updateState?.(id, state);\n }\n }\n\n if (id) {\n this.remote?.updateState(id, state);\n }\n\n if (id === `${this.namespace}.smart.lastResponse` && state && !state.ack) {\n this.alexaCustom?.setResponse(state.val as string);\n }\n },\n unload: async callback => {\n try {\n if (this.device) {\n this.device.end();\n this.device = null;\n }\n if (this.remote) {\n this.remote.destroy();\n this.remote = null;\n }\n\n if (this.alexaSH3) {\n await this.alexaSH3.destroy();\n }\n } catch {\n // ignore\n }\n callback();\n },\n message: async obj => {\n if (obj) {\n switch (obj.command) {\n case 'update':\n if (this.recalcTimeout) {\n clearTimeout(this.recalcTimeout);\n }\n\n this.recalcTimeout = setTimeout(async () => {\n this.recalcTimeout = null;\n this.alexaSH2?.updateDevices(\n obj.message,\n async (analyseAddedId: any): Promise<void> => {\n await this.setStateAsync('smart.updatesResult', analyseAddedId || '', true);\n this.log.debug('Devices updated!');\n await this.setStateAsync('smart.updates', true, true);\n },\n );\n\n // this.alexaSH3 && this.alexaSH3.updateDevices(obj.message, async analyseAddedId => {\n // await this.setStateAsync('smart.updatesResult', analyseAddedId || '', true);\n // await this.setStateAsync('smart.updates3', true, true);\n // });\n if (this.alexaSH3) {\n await this.alexaSH3.updateDevices();\n await this.setStateAsync('smart.updates3', true, true);\n }\n\n this.googleHome?.updateDevices(async (analyseAddedId: any): Promise<void> => {\n await this.setStateAsync('smart.updatesResult', analyseAddedId || '', true);\n this.log.debug('GH Devices updated!');\n await this.setStateAsync('smart.updatesGH', true, true);\n });\n }, 1000);\n break;\n\n case 'browse':\n if (obj.callback) {\n this.log.info('Request devices');\n if (this.alexaSH2) {\n this.alexaSH2.updateDevices(() => {\n this.sendTo(obj.from, obj.command, this.alexaSH2!.getDevices(), obj.callback);\n void this.setState('smart.updates', false, true);\n });\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'browse3':\n if (obj.callback) {\n this.log.info('Request V3 devices');\n if (this.alexaSH3) {\n const devices = await this.alexaSH3.getDevices();\n this.sendTo(obj.from, obj.command, devices, obj.callback);\n await this.setStateAsync('smart.updates3', false, true);\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'browseGH':\n if (obj.callback) {\n this.log.info('Request google home devices');\n if (this.googleHome) {\n this.googleHome.updateDevices(() => {\n this.sendTo(obj.from, obj.command, this.googleHome!.getDevices(), obj.callback);\n void this.setStateAsync('smart.updatesGH', false, true);\n });\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'browseAlisa':\n if (obj.callback) {\n this.log.info('Request Yandex Alice devices');\n if (this.yandexAlisa) {\n this.yandexAlisa.updateDevices(() => {\n this.sendTo(\n obj.from,\n obj.command,\n this.yandexAlisa!.getDevices(),\n obj.callback,\n );\n void this.setStateAsync('smart.updatesYA', false, true);\n });\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'alexaCustomKnownDevices':\n // Admin UI can request the known/discoveredAlexa devices used via Custom skill\n // Allow setting the rooms of the devices and store in adapter config\n // Restart adapter after change - or we also add a set message to the config\n if (obj.callback) {\n this.log.info('Request Alexa Custom known devices');\n if (this.alexaCustom) {\n const devices = this.alexaCustom.getKnownDevices();\n this.sendTo(obj.from, obj.command, devices, obj.callback);\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'alexaCustomKnownUsers':\n // Admin UI can request the known/discoveredAlexa users used via Custom skill\n // Allow setting the names of the users and store in adapter config\n // Restart adapter after change - or we also add a set message to the config\n if (obj.callback) {\n this.log.info('Request Alexa Custom known users');\n if (this.alexaCustom) {\n const users = this.alexaCustom.getKnownUsers();\n this.sendTo(obj.from, obj.command, users, obj.callback);\n } else {\n this.sendTo(obj.from, obj.command, { error: 'not activated' }, obj.callback);\n }\n }\n break;\n\n case 'private': {\n if (typeof obj.message !== 'object') {\n try {\n obj.message = JSON.parse(obj.message);\n } catch (e) {\n this.log.error(`Cannot parse object: ${e}`);\n obj.callback &&\n this.sendTo(\n obj.from,\n obj.command,\n { error: 'Invalid message format: cannot parse object' },\n obj.callback,\n );\n return;\n }\n }\n const response = await this.processMessage(obj.message.type, obj.message.request);\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, response, obj.callback);\n }\n\n break;\n }\n case 'ifttt':\n this.sendDataToIFTTT(obj.message);\n break;\n\n case 'alexaCustomResponse':\n this.alexaCustom?.setResponse(obj.message);\n break;\n\n case 'debug':\n this.alexaSH2?.getDebug((data: any): void =>\n this.sendTo(obj.from, obj.command, data, obj.callback),\n );\n break;\n\n case 'getServiceEndpoint':\n if (obj.callback) {\n if (!this.urlKey) {\n try {\n this.urlKey = await this.readUrlKey();\n } catch {\n try {\n this.urlKey = await this.createUrlKey(this.config.login, this.config.pass);\n } catch (err) {\n return (\n obj.callback &&\n this.sendTo(\n obj.from,\n obj.command,\n { error: `Cannot get urlKey: ${err.toString()}` },\n obj.callback,\n )\n );\n }\n }\n }\n\n const result: {\n url: string;\n stateID?: string;\n data?: string;\n warning?: string;\n } = {\n url: `https://service.iobroker.in/v1/iotService?key=${this.urlKey.key}&user=${encodeURIComponent(this.config.login)}`,\n };\n const serviceName =\n typeof obj.message === 'string' ? obj.message : obj.message?.serviceName;\n if (serviceName) {\n result.url += `&service=${encodeURIComponent(serviceName)}`;\n result.stateID = `${this.namespace}.services.${serviceName}`;\n }\n if (obj.message?.data) {\n result.data += `&data=${typeof obj.message.data === 'object' ? JSON.stringify(obj.message.data) : obj.message.data}`;\n }\n // check if the service name is in the white list\n if (\n serviceName &&\n this.config.allowedServices[0] !== '*' &&\n !this.config.allowedServices.includes(serviceName.replace(/^custom_/, '')) &&\n !ALLOWED_SERVICES.includes(serviceName)\n ) {\n result.warning = 'Service name is not in white list';\n this.log.warn(`Service \"${serviceName}\" is not in allowed services list`);\n }\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, result, obj.callback);\n }\n }\n break;\n case 'sendNotification':\n try {\n const { message, title } = buildMessageFromNotification(obj.message);\n await this.sendMessageToApp(JSON.stringify({ message, title }));\n if (obj.callback) {\n this.sendTo(obj.from, 'sendNotification', { sent: true }, obj.callback);\n }\n } catch {\n if (obj.callback) {\n this.sendTo(obj.from, 'sendNotification', { sent: false }, obj.callback);\n }\n }\n break;\n default:\n this.log.warn(`Unknown command: ${obj.command}`);\n break;\n }\n }\n },\n ready: () =>\n this.main()\n .then(() => {})\n .catch(error => {\n this.log.error(`Error in main: ${error.toString()}`);\n }),\n });\n\n // warning: `this.log = obj => console.log(obj)` does not implemented. Only this.on('log', obj => console.log(obj))\n this.on('log', obj => this.remote?.onLog(obj));\n }\n\n sendDataToIFTTT(obj: {\n event?: string;\n key?: string;\n id?: string;\n val?: ioBroker.StateValue;\n ack?: boolean;\n }): void {\n if (!obj) {\n this.log.warn('No data to send to IFTTT');\n return;\n }\n if (!this.config.iftttKey && (typeof obj !== 'object' || !obj.key)) {\n this.log.warn('No IFTTT key is defined');\n return;\n }\n\n let url;\n let data;\n if (typeof obj !== 'object') {\n url = `https://maker.ifttt.com/trigger/state/with/key/${this.config.iftttKey}`;\n data = {\n value1: `${this.namespace}.services.ifttt`,\n value2: obj,\n };\n } else if (obj.event) {\n const event = obj.event;\n const key = obj.key;\n delete obj.event;\n delete obj.key;\n url = `https://maker.ifttt.com/trigger/${event}/with/key/${key || this.config.iftttKey}`;\n data = obj;\n } else if (obj.val === undefined) {\n return this.log.warn('No value is defined');\n } else {\n obj.id = obj.id || `${this.namespace}.services.ifttt`;\n url = `https://maker.ifttt.com/trigger/state/with/key/${this.config.iftttKey}`;\n data = {\n value1: obj.id,\n value2: obj.val,\n value3: obj.ack,\n };\n }\n\n if (url) {\n axios\n .post(url, data, {\n timeout: 15000,\n validateStatus: status => status < 400,\n })\n .then(response => this.log.debug(`Response from IFTTT: ${JSON.stringify(response.data)}`))\n .catch(error => {\n if (error.response) {\n this.log.warn(\n `Response from IFTTT: ${error.response.data ? JSON.stringify(error.response.data) : error.response.status}`,\n );\n } else {\n this.log.warn(`Response from IFTTT: ${error.code}`);\n }\n });\n } else {\n this.log.warn(`Invalid request to IFTTT: ${JSON.stringify(obj)}`);\n }\n }\n\n /**\n * Send a message to the ioBroker Visu App by using the app-message endpoint (which then forwards it to the app via FCM)\n *\n * @param message either a json string or the message itself, if the message itself the other props will be taken from the adapter states\n */\n async sendMessageToApp(message: string): Promise<void> {\n if (!message) {\n throw new Error('Empty message');\n }\n const trimmedMessage = message.toString().trim();\n let json: {\n message: string;\n title: string;\n priority?: 'high';\n ttlSeconds?: number;\n expire?: number;\n } | null;\n if (trimmedMessage.startsWith('{') && trimmedMessage.endsWith('}')) {\n try {\n json = JSON.parse(trimmedMessage);\n } catch {\n this.log.warn(`Cannot parse message: ${trimmedMessage}`);\n json = null;\n }\n } else {\n json = null;\n }\n\n if (!json) {\n // take expires\n const ttlSecondsState = await this.getStateAsync(`${this.namespace}.app.expire`);\n const priorityState = await this.getStateAsync(`${this.namespace}.app.priority`);\n const titleState = await this.getStateAsync(`${this.namespace}.app.title`);\n const priorityVal = priorityState?.val;\n json = {\n message: message.toString(),\n priority: priorityVal === '1' || priorityVal === 'high' || priorityVal === true ? 'high' : undefined,\n ttlSeconds: parseInt(ttlSecondsState?.val as string, 0) || undefined,\n title: ((titleState?.val as string) || 'ioBroker').toString(),\n };\n } else {\n if (json.expire) {\n json.ttlSeconds = json.expire;\n delete json.expire;\n }\n }\n\n json.ttlSeconds = parseInt(json.ttlSeconds as unknown as string, 0) || undefined;\n\n if (json.ttlSeconds && json.ttlSeconds > 3_600 * 48) {\n json.ttlSeconds = 3_600 * 48;\n }\n\n if (!json.message) {\n throw new Error('Empty message');\n }\n\n const response = await axios.post('https://app-message.iobroker.in/', json, {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${Buffer.from(`${this.config.login}:${this.config.pass}`).toString('base64')}`,\n },\n timeout: 5_000,\n validateStatus: status => status < 400,\n });\n await this.setState('app.message', message, true);\n this.log.debug(`Message sent: ${JSON.stringify(response.data)}`);\n }\n\n async controlState(\n id: string | null,\n data: string | { id?: string; val?: ioBroker.StateValue; ack?: boolean },\n ): Promise<void> {\n id ||= 'services.ifttt';\n\n if (typeof data === 'object') {\n if (data.id) {\n if (data.id === `${this.namespace}.services.ifttt`) {\n data.ack = true;\n }\n if (data.val === undefined) {\n throw new Error('No value set');\n }\n const obj = await this.getForeignObjectAsync(data.id);\n if (!obj || !obj.common) {\n throw new Error(`Unknown ID: ${data.id}`);\n } else {\n if (typeof data.val === 'string') {\n data.val = data.val.replace(/^@ifttt\\s?/, '');\n }\n if (obj.common.type === 'boolean') {\n data.val =\n data.val === true ||\n data.val === 'true' ||\n data.val === 'on' ||\n data.val === 'ON' ||\n data.val === 1 ||\n data.val === '1';\n } else if (obj.common.type === 'number') {\n data.val = parseFloat(data.val as string);\n }\n\n await this.setForeignStateAsync(data.id, data.val, data.ack);\n }\n } else if (data.val !== undefined) {\n if (typeof data.val === 'string') {\n data.val = data.val.replace(/^@ifttt\\s?/, '');\n }\n await this.setStateAsync(id, data.val, data.ack !== undefined ? data.ack : true);\n } else {\n await this.setStateAsync(id, JSON.stringify(data), true);\n }\n } else {\n if (typeof data === 'string') {\n data = data.replace(/^@ifttt\\s?/, '');\n }\n await this.setStateAsync(id, data, true);\n }\n }\n\n async processIfttt(data: {\n id?: string;\n data?:\n | string\n | {\n id?: string;\n val?: ioBroker.StateValue;\n ack?: boolean;\n data?: { id?: string; val?: ioBroker.StateValue; ack?: boolean } | string;\n };\n }): Promise<void> {\n this.log.debug(`Received IFTTT object: ${JSON.stringify(data)}`);\n let id: string | undefined;\n let dataObj: { id?: string; val?: ioBroker.StateValue; ack?: boolean } | null = null;\n // >If data is object with id and data property\n if (typeof data === 'object' && data.id && data.data !== undefined) {\n id = data.id;\n if (typeof data.data === 'string' && data.data[0] === '{') {\n try {\n dataObj = JSON.parse(data.data);\n } catch {\n this.log.debug(`Cannot parse: ${data.data}`);\n dataObj = data;\n }\n } else {\n dataObj = data.data as { id?: string; val?: ioBroker.StateValue; ack?: boolean };\n }\n } else if (typeof data === 'string' && data[0] === '{') {\n // If data is string and starts with {\n try {\n dataObj = JSON.parse(data) as { id?: string; val?: ioBroker.StateValue; ack?: boolean };\n\n if (typeof dataObj.id === 'string') {\n id = dataObj.id;\n if ((dataObj as any).data) {\n dataObj = (dataObj as any).data as {\n id?: string;\n val?: ioBroker.StateValue;\n ack?: boolean;\n };\n }\n }\n } catch {\n this.log.debug(`Cannot parse: ${JSON.stringify(data)}`);\n }\n } else {\n dataObj = data as { id?: string; val?: ioBroker.StateValue; ack?: boolean };\n }\n\n if (id) {\n let obj = await this.getForeignObjectAsync(id);\n if (!obj) {\n const newId = `${this.namespace}.services.${id}`;\n obj = await this.getForeignObjectAsync(newId);\n if (!obj) {\n // create state\n await this.setObjectNotExistsAsync(`services.${id}`, {\n type: 'state',\n common: {\n name: 'IFTTT value',\n write: false,\n role: 'state',\n read: true,\n type: 'mixed',\n desc: 'Custom state',\n },\n native: {},\n });\n id = newId;\n }\n }\n }\n\n await this.controlState(\n id || null,\n (dataObj as { id?: string; val?: ioBroker.StateValue; ack?: boolean }) || data,\n );\n }\n\n onDisconnect(event?: string): void {\n const now = Date.now();\n if (now - this.connectStarted < 500) {\n this.log.warn(\n 'Looks like your connection certificates are invalid. Please renew them via configuration dialog.',\n );\n }\n\n if (typeof event === 'string') {\n if (event.toLowerCase().includes('duplicate')) {\n // disable adapter\n this.log.error(\n `Two devices are trying to connect with the same iot account. This is not allowed. Stopping`,\n );\n void this.getForeignObjectAsync(`system.adapter.${this.namespace}`).then(obj => {\n if (obj) {\n obj.common.enabled = false;\n return this.setForeignObjectAsync(obj._id, obj);\n }\n });\n }\n this.log.info(`Connection changed: ${event}`);\n } else {\n this.log.info('Connection changed: disconnect');\n }\n\n if (this.connectedOwn) {\n this.log.info('Connection lost');\n this.connectedOwn = false;\n void this.setState('info.connection', false, true);\n }\n\n this.remote?.onCloudDisconnect();\n }\n\n onConnect(clientId: string): void {\n if (!this.connectedOwn) {\n this.log.info(`Connection changed: connect \"${clientId}\"`);\n this.connectedOwn = true;\n void this.setState('info.connection', this.connectedOwn, true);\n // setTimeout(() => {\n // device.publish(`response/${clientId}/stateChange`, JSON.stringify({alive: true}), {qos: 0}, (error, result) => {\n // console.log(`Published alive: ${result}, ${error}`);\n // });\n // }, 2000);\n } else {\n this.log.info('Connection not changed: was connected');\n }\n }\n\n encryptOwn(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return `base64:${Buffer.from(result).toString('base64')}`;\n }\n\n decryptOwn(secret: string, value: string): string {\n if (value.startsWith('base64:')) {\n try {\n value = Buffer.from(value.substring(7), 'base64').toString('ascii');\n } catch (e) {\n this.log.error(`Cannot decrypt key: ${e}`);\n }\n }\n\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n async readUrlKey(): Promise<{ key: string }> {\n const key = await this.getStateAsync('certs.urlKey');\n\n if (!key?.val) {\n throw new Error('Not exists');\n } else {\n return { key: key.val as string };\n }\n }\n\n async createUrlKey(login: string, pass: string): Promise<{ key: string }> {\n this.log.debug('Fetching URL key...');\n\n let response;\n try {\n response = await axios.get(\n `https://generate-key.iobroker.in/v1/generateUrlKey?user=${encodeURIComponent(login)}&pass=${encodeURIComponent(pass)}&version=${this.version}`,\n {\n timeout: 15000,\n validateStatus: status => status < 400,\n },\n );\n } catch (error) {\n if (error.response) {\n if (error.response.status === 401) {\n this.log.error(`Cannot create URL key because of invalid user or password`);\n }\n\n throw new Error(error.response.data);\n } else {\n throw error;\n }\n }\n\n if (response.data && response.data.error) {\n this.log.error(`Cannot fetch URL key: ${JSON.stringify(response.data.error)}`);\n throw new Error(response.data);\n } else if (response.data && response.data.key) {\n await this.setStateAsync('certs.urlKey', response.data.key, true);\n return { key: response.data.key };\n } else {\n this.log.error(`Cannot fetch URL key: ${JSON.stringify(response.data)}`);\n throw new Error(response.data);\n }\n }\n\n async readCertificates(): Promise<{\n private: string;\n certificate: string;\n }> {\n let privateKey: ioBroker.State | null | undefined;\n let certificate: ioBroker.State | null | undefined;\n\n try {\n privateKey = await this.getStateAsync('certs.private');\n certificate = await this.getStateAsync('certs.certificate');\n } catch {\n throw new Error('Not exists');\n }\n\n if (!certificate?.val || !privateKey?.val) {\n throw new Error('Not exists');\n } else {\n return {\n private: this.decryptOwn(this.secret, privateKey.val as string),\n certificate: this.decryptOwn(this.secret, certificate.val as string),\n };\n }\n }\n\n async writeKeys(data: {\n certificateId: string;\n certificatePem: string;\n keyPair: { PublicKey: string; PrivateKey: string };\n }): Promise<void> {\n await this.setStateAsync('certs.private', this.encryptOwn(this.secret, data.keyPair.PrivateKey), true);\n await this.setStateAsync('certs.public', this.encryptOwn(this.secret, data.keyPair.PublicKey), true);\n await this.setStateAsync('certs.certificate', this.encryptOwn(this.secret, data.certificatePem), true);\n await this.setStateAsync('certs.id', data.certificateId, true);\n }\n\n async fetchCertificates(\n login: string,\n pass: string,\n _forceUserCreation?: boolean,\n ): Promise<{\n private: string;\n certificate: string;\n }> {\n const state = await this.getStateAsync('certs.forceUserCreate');\n const forceUserCreation = state?.val;\n\n if (forceUserCreation) {\n await this.setStateAsync('certs.forceUserCreate', false, true);\n }\n\n this.log.debug('Fetching certificates...');\n let response;\n try {\n response = await axios.get(\n `https://create-user.iobroker.in/v1/createUser?user=${encodeURIComponent(login)}&pass=${encodeURIComponent(pass)}&forceRecreate=${forceUserCreation}&version=${this.version}`,\n {\n timeout: 15000,\n validateStatus: status => status < 400,\n },\n );\n } catch (error) {\n if (error.response) {\n if (error.response.status === 401) {\n this.log.error(`Cannot fetch connection certificates because of invalid user or password`);\n } else {\n this.log.error(`Cannot fetch connection certificates: ${JSON.stringify(error.response.data)}`);\n }\n throw new Error(error.response.data);\n } else {\n this.log.error(`Cannot fetch connection certificates: ${JSON.stringify(error.code)}`);\n throw error;\n }\n }\n\n if (response?.data?.certificates) {\n const awsCertificates: {\n certificateId: string;\n certificatePem: string;\n keyPair: { PublicKey: string; PrivateKey: string };\n } = response.data.certificates;\n await this.writeKeys(awsCertificates);\n\n return {\n private: awsCertificates.keyPair.PrivateKey,\n certificate: awsCertificates.certificatePem,\n };\n }\n this.log.error(`Cannot fetch connection certificates: ${JSON.stringify(response.data)}`);\n throw new Error(response.data);\n }\n\n async processMessage(\n type: string,\n request: any,\n ): Promise<{ error?: string; result?: string } | string | SOCKET_MESSAGE | SOCKET_TRUNK[] | AlexaCustomResponse> {\n if (request instanceof Buffer) {\n request = request.toString();\n }\n\n this.log.debug(`Data: ${JSON.stringify(request)}`);\n\n if (!request || !type) {\n return { error: 'invalid request' };\n }\n\n if (type.startsWith('remote')) {\n const start = Date.now();\n if (this.remote) {\n return this.remote\n .process(request, type as `remote${string}`)\n .then(response => {\n if (response !== NONE) {\n this.log.debug(\n `[REMOTE] Response in: ${Date.now() - start}ms (Length: ${Array.isArray(response) ? `A ${response.length}` : JSON.stringify(response).length}) for ${request}`,\n );\n }\n return response;\n })\n .catch(err => {\n this.log.error(`Error in processing of remote request: ${err.toString()}`);\n return NONE;\n });\n }\n this.log.error(`Received command, but remote already closed.`);\n } else if (type.startsWith('nightscout')) {\n if (this.config.nightscout) {\n const state = await this.getForeignStateAsync(\n `system.adapter.nightscout.${this.config.nightscout}.alive`,\n );\n if (state?.val) {\n return this.sendToAsync(`nightscout.${this.config.nightscout}`, 'send', request) as {\n error?: string;\n result?: string;\n };\n }\n return { error: `nightscout.${this.config.nightscout} is offline` };\n }\n return { error: 'Service is disabled' };\n } else if (type.startsWith('alexa')) {\n if (typeof request === 'string') {\n try {\n request = JSON.parse(request);\n } catch {\n this.log.error(`Cannot parse request: ${JSON.stringify(request)}`);\n return { error: 'Cannot parse request' };\n }\n }\n\n this.log.debug(`${Date.now()} ALEXA: ${JSON.stringify(request)}`);\n\n if (request?.directive) {\n if (this.alexaSH3) {\n try {\n const response = await this.alexaSH3.process(request);\n if (request.directive.header.messageId != response.event!.header.messageId) {\n throw new Error('Incoming and outgoing header message IDs are not equal!');\n }\n return response as any;\n } catch {\n this.log.error(`Cannot parse request: ${request}`);\n }\n }\n return { error: 'Service is disabled' };\n } else if (request?.error) {\n // answer from alexa3 events cloud actually just show it in log\n if (request.error.includes('You have no iobroker.iot license')) {\n // pause for 30 minutes send of the events\n this.alexaSH3?.pauseEvents();\n }\n this.log.error(`Error from Alexa events cloud: ${request.error}`);\n } else if (request && !request.header) {\n if (this.alexaCustom) {\n return this.alexaCustom.process(request, this.config.amazonAlexa);\n }\n return { error: 'Service is disabled' };\n } else {\n if (this.alexaSH2) {\n return this.alexaSH2.process(request, this.config.amazonAlexa) as any;\n }\n return { error: 'Service is disabled' };\n }\n } else if (type.startsWith('ifttt')) {\n try {\n if (typeof request === 'object') {\n request = JSON.stringify(request);\n } else {\n request = request.toString();\n }\n } catch {\n this.log.error(`Cannot parse request: ${request}`);\n return { error: 'Cannot parse request' };\n }\n\n await this.processIfttt(request);\n return NONE;\n } else if (type.startsWith('ghome')) {\n if (typeof request === 'string') {\n try {\n request = JSON.parse(request);\n } catch {\n this.log.error(`Cannot parse request: ${request}`);\n return { error: 'Cannot parse request' };\n }\n }\n\n if (this.googleHome) {\n return this.googleHome.process(request, this.config.googleHome);\n }\n return { error: 'Service is disabled' };\n } else if (type.startsWith('alisa')) {\n if (typeof request === 'string') {\n try {\n request = JSON.parse(request);\n } catch {\n this.log.error(`Cannot parse request: ${request}`);\n return { error: 'Cannot parse request' };\n }\n }\n\n this.log.debug(`${Date.now()} ALISA: ${JSON.stringify(request)}`);\n if (this.yandexAlisa) {\n return this.yandexAlisa.process(request, this.config.yandexAlisa) as any;\n }\n return { error: 'Service is disabled' };\n } else {\n let isCustom = false;\n let _type = type;\n if (_type.match(/^custom_/)) {\n _type = _type.substring(7);\n isCustom = true;\n }\n if (_type === 'visu') {\n this.log.debug(`Received visu command: ${JSON.stringify(request)}`);\n if (typeof request === 'object') {\n request = JSON.stringify(request);\n } else {\n request = request.toString();\n }\n\n try {\n const visuData = JSON.parse(request);\n\n if (visuData.presence) {\n await handleGeofenceData(visuData, this);\n }\n\n if (visuData.devices) {\n await handleDevicesData(visuData, this);\n }\n\n if (visuData.command === 'getInstances') {\n const res = await handleGetInstances(visuData, this);\n return { result: 'Ok', ...res };\n }\n\n if (visuData.command === 'sendToAdapter') {\n return await handleSendToAdapter(visuData, this);\n }\n } catch (e) {\n this.log.error(`Could not handle data \"${request}\" by Visu App: ${e.message}`);\n return { error: e.message };\n }\n\n return { result: 'Ok' };\n } else if (\n this.config.allowedServices[0] === '*' ||\n this.config.allowedServices.includes(_type) ||\n ALLOWED_SERVICES.includes(_type)\n ) {\n if (typeof request === 'object') {\n request = JSON.stringify(request);\n } else {\n request = request.toString();\n }\n\n if (SPECIAL_ADAPTERS.includes(_type)) {\n try {\n await this.setStateAsync(`services.${_type}`, request, true);\n } catch (err) {\n return { result: err };\n }\n\n return { result: 'Ok' };\n } else if (type.startsWith('text2command')) {\n if (this.config.text2command !== undefined && (this.config.text2command as string) !== '') {\n try {\n await this.setForeignStateAsync(`text2command.${this.config.text2command}.text`, request);\n } catch (err) {\n return { result: err };\n }\n return { result: 'Ok' };\n }\n this.log.warn('Received service text2command, but instance is not defined');\n return { result: 'but instance is not defined' };\n } else if (type.startsWith('simpleApi')) {\n return { result: 'not implemented' };\n } else if (isCustom) {\n let obj;\n try {\n obj = await this.getObjectAsync(`services.custom_${_type}`);\n } catch (e) {\n this.log.error(`Cannot get object services.custom_${_type}: ${e}`);\n }\n\n if (!obj) {\n try {\n await this.setObjectNotExistsAsync(`services.custom_${_type}`, {\n _id: `${this.namespace}.services.custom_${_type}`,\n type: 'state',\n common: {\n name: `Service for ${_type}`,\n write: false,\n read: true,\n type: 'mixed',\n role: 'value',\n },\n native: {},\n });\n await this.setStateAsync(`services.custom_${_type}`, request, true);\n } catch (err) {\n this.log.error(`Cannot control .services.custom_${_type}: ${JSON.stringify(err)}`);\n return { error: err };\n }\n } else {\n await this.setStateAsync(`services.custom_${_type}`, request, true);\n return { result: 'Ok' };\n }\n } else {\n this.log.warn(`Received service \"${type}\", but it is not allowed`);\n return { error: 'not allowed' };\n }\n } else {\n this.log.warn(`Received service \"${type}\", but it is not found in whitelist`);\n return { error: 'Unknown service' };\n }\n }\n\n this.log.warn(`Received message of unknown type: ${type}`);\n return { error: 'Unknown message type' };\n }\n\n closeDevice(): Promise<void> {\n return new Promise<void>(resolve => {\n if (this.device) {\n try {\n this.device.end(true, () => {\n this.device = null;\n resolve();\n });\n } catch {\n this.device = null;\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n async startDevice(clientId: string, login: string, password: string, retry?: number): Promise<void> {\n retry ||= 0;\n let certs:\n | {\n private: string;\n certificate: string;\n }\n | undefined;\n\n try {\n certs = await this.readCertificates();\n } catch (error) {\n if (error.message === 'Not exists') {\n try {\n certs = await this.fetchCertificates(login, password);\n } catch {\n // ignore\n }\n } else {\n throw error;\n }\n }\n\n // destroy the old device\n await this.closeDevice();\n\n if (!certs) {\n return this.log.error(`Cannot read connection certificates`);\n }\n\n try {\n this.connectStarted = Date.now();\n this.device = new DeviceModule({\n privateKey: Buffer.from(certs.private),\n clientCert: Buffer.from(certs.certificate),\n caCert: readFileSync(`${__dirname}/../keys/root-CA.crt`),\n clientId,\n username: 'ioBroker',\n host: this.config.cloudUrl,\n debug: !!this.config.debug,\n baseReconnectTimeMs: 5000,\n keepalive: 60,\n });\n this.remote?.registerDevice(this.device);\n\n this.device.subscribe(`command/${clientId}/#`);\n this.device.on('connect', () => this.onConnect(clientId));\n this.device.on('close', (): void => this.onDisconnect());\n this.device.on('reconnect', () => this.log.debug('reconnect'));\n this.device.on('offline', () => this.log.debug('offline'));\n this.device.on('error', error => {\n const errorTxt =\n ((error as Error)?.message && JSON.stringify((error as Error).message)) || JSON.stringify(error);\n this.log.error(`Error by device connection: ${errorTxt}`);\n\n // restart the iot device if DNS cannot be resolved\n if (errorTxt.includes('EAI_AGAIN')) {\n this.log.error(\n `DNS name of ${this.config.cloudUrl} cannot be resolved: connection will be retried in 10 seconds.`,\n );\n setTimeout(() => this.startDevice(clientId, login, password), 10000);\n }\n });\n\n this.device.on('message', async (topic: string, request: string | Buffer): Promise<void> => {\n this.log.debug(`Request ${topic}`);\n if (topic.startsWith(`command/${clientId}/`)) {\n const type = topic.substring(clientId.length + 9); // 9 === 'command//'.length\n\n try {\n const response = await this.processMessage(type, request);\n\n if (this.common!.loglevel === 'debug' && !type.startsWith('remote')) {\n this.log.debug(`Response: ${JSON.stringify(response)}`);\n }\n\n if (this.device && response !== NONE) {\n // It is a big file - send in trunks\n if (Array.isArray(response)) {\n try {\n for (let m = 0; m < response.length; m++) {\n const trunk = response[m];\n await new Promise<void>((resolve, reject) =>\n this.device!.publish(\n `response/${clientId}/${type}`,\n typeof trunk !== 'string' ? JSON.stringify(trunk) : trunk,\n { qos: 1 },\n error => {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n },\n ),\n );\n }\n } catch (err) {\n this.log.error(`[REMOTE] Cannot send packet: ${err}`);\n }\n } else {\n this.log.debug(\n `[REMOTE] Send response to 'response/${clientId}/${type}: ${JSON.stringify(response)}`,\n );\n\n const msg = JSON.stringify(response);\n if (msg && msg.length > MAX_IOT_MESSAGE_LENGTH) {\n const packed = deflateSync(msg).toString('base64');\n this.log.debug(\n `[REMOTE] Content was packed from ${msg.length} bytes to ${packed.length} bytes`,\n );\n if (packed.length > MAX_IOT_MESSAGE_LENGTH) {\n this.log.warn(\n `[REMOTE] Content was packed to ${packed.length} bytes which is still near/over the message limit!`,\n );\n }\n this.device.publish(`response/${clientId}/${type}`, packed);\n } else {\n // console.log(`Publish to \"response/${clientId}/${type}\": ${msg}`);\n this.device.publish(`response/${clientId}/${type}`, msg);\n }\n }\n }\n } catch (error) {\n this.log.debug(`Error processing request ${topic}`);\n this.log.debug(`${error}`);\n }\n }\n });\n } catch (error) {\n if (error && typeof error === 'object' && error.message) {\n this.log.error(`Cannot read connection certificates: ${error.message}`);\n } else {\n this.log.error(\n `Cannot read connection certificates: ${JSON.stringify(error)} / ${error && error.toString()}`,\n );\n }\n\n if ((error === 'timeout' || error.message?.includes('timeout')) && retry < 10) {\n setTimeout(() => this.startDevice(clientId, login, password, retry + 1), 10000);\n }\n }\n }\n\n async updateNightscoutSecret(): Promise<void> {\n if (!this.config.nightscout) {\n return;\n }\n\n const email = this.config.login.replace(/[^\\w\\d-_]/g, '_');\n const secret = this.config.nightscoutPass;\n const apiSecret = email + (secret ? `-${secret}` : '');\n const URL = `https://generate-key.iobroker.in/v1/generateUrlKey?user=${encodeURIComponent(this.config.login)}&pass=${encodeURIComponent(this.config.pass)}&apisecret=${encodeURIComponent(apiSecret)}`;\n let response;\n\n try {\n response = await axios.get(URL, {\n timeout: 15000,\n validateStatus: status => status < 400,\n });\n if (response.data.error) {\n this.log.error(`Api-Secret cannot be updated: ${response.data.error}`);\n } else {\n this.log.debug(`Api-Secret updated: ${JSON.stringify(response.data)}`);\n }\n } catch (error) {\n if (error.response) {\n this.log.warn(\n `Cannot update api-secret: ${error.response.data ? JSON.stringify(error.response.data) : error.response.status}`,\n );\n } else {\n this.log.warn(`Cannot update api-secret: ${error.code}`);\n }\n }\n }\n\n async createStateForAdapter(adapterName: string): Promise<void> {\n // find any instance of this adapter\n const instances = await this.getObjectViewAsync('system', 'instance', {\n startkey: `system.adapter.${adapterName}.`,\n endkey: `system.adapter.${adapterName}.\\u9999`,\n });\n if (instances?.rows?.length) {\n let obj;\n try {\n obj = await this.getObjectAsync(`service.${adapterName}`);\n } catch {\n // ignore\n }\n if (!obj) {\n try {\n await this.setForeignObjectAsync(`${this.namespace}.services.${adapterName}`, {\n type: 'state',\n common: {\n name: `Service for ${adapterName}`,\n write: false,\n read: true,\n type: 'mixed',\n role: 'value',\n },\n native: {},\n });\n } catch {\n // ignore\n }\n }\n } else {\n try {\n // delete if object exists\n const obj = await this.getObjectAsync(`service.${adapterName}`);\n if (obj) {\n await this.delObjectAsync(`service.${adapterName}`);\n }\n } catch {\n // ignore\n }\n }\n }\n\n async main(): Promise<void> {\n if (this.config.googleHome === undefined) {\n this.config.googleHome = false;\n }\n\n if (this.config.amazonAlexa === undefined) {\n this.config.amazonAlexa = true;\n }\n\n if (this.config.yandexAlisa === undefined) {\n this.config.yandexAlisa = false;\n }\n\n this.config.pingTimeout = parseInt(this.config.pingTimeout as string, 10) || 5000;\n\n if (this.config.pingTimeout < 3000) {\n this.config.pingTimeout = 3000;\n }\n\n if (this.config.deviceOffLevel === undefined) {\n this.config.deviceOffLevel = 30;\n }\n\n if (this.config.login !== (this.config.login || '').trim().toLowerCase()) {\n this.log.error('Please write your login only in lowercase!');\n }\n if (!this.config.login || !this.config.pass) {\n return this.log.error('No cloud credentials found. Please get one on https://iobroker.pro');\n }\n\n let systemConfig = await this.getForeignObjectAsync('system.config');\n if (!systemConfig) {\n this.log.warn('Object system.config not found. Please check your installation!');\n systemConfig = { common: {} } as ioBroker.SystemConfigObject;\n }\n\n // create service state for netatmo if any instance exists\n for (let a = 0; a < SPECIAL_ADAPTERS.length; a++) {\n await this.createStateForAdapter(SPECIAL_ADAPTERS[a]);\n }\n\n this.secret = systemConfig?.native?.secret || 'Zgfr56gFe87jJOM';\n\n this.config.pass = this.decryptOwn(this.secret, this.config.pass);\n this.config.deviceOffLevel = parseFloat(this.config.deviceOffLevel as string) || 0;\n this.config.concatWord = (this.config.concatWord || '').toString().trim();\n this.config.apikey = (this.config.apikey || '').trim();\n this.config.replaces = this.config.replaces ? (this.config.replaces as string).split(',') : null;\n this.config.cloudUrl = (this.config.cloudUrl || '').toString();\n this.config.nightscout = this.config.nightscout || '';\n\n if (this.config.replaces) {\n const text: string[] = [];\n for (let r = 0; r < this.config.replaces.length; r++) {\n text.push(`\"${this.config.replaces[r]}\"`);\n }\n this.log.debug(`Following strings will be replaced in names: ${text.join(', ')}`);\n }\n if (this.config.amazonAlexa) {\n this.alexaSH2 = new AlexaSH2(this);\n this.alexaCustom = new AlexaCustom(this);\n }\n if (this.config.yandexAlisa) {\n this.yandexAlisa = new YandexAlisa(this);\n }\n\n this.remote = new Remote(this, this.config.login.replace(/[^-_:a-zA-Z1-9]/g, '_'));\n\n this.config.allowedServices = ((this.config.allowedServices as string) || '')\n .split(/[,\\s]+/)\n .map(s => s.trim())\n .filter(s => s);\n\n await this.setStateAsync('info.connection', false, true);\n this.config.cloudUrl = this.config.cloudUrl || 'a18wym7vjdl22g.iot.eu-west-1.amazonaws.com';\n\n if (!this.config.login || !this.config.pass) {\n return this.log.error('No cloud credentials found. Please get one on https://iobroker.pro');\n }\n\n if (this.config.iftttKey) {\n await this.subscribeStatesAsync('services.ifttt');\n // create ifttt object\n const iftttObj = await this.getObjectAsync('.services.ifttt');\n if (!iftttObj) {\n await this.setObjectNotExistsAsync('services.ifttt', {\n _id: `${this.namespace}.services.ifttt`,\n type: 'state',\n common: {\n name: 'IFTTT value',\n write: true,\n role: 'state',\n read: true,\n type: 'mixed',\n desc: 'All written data will be sent to IFTTT. If no state specified all requests from IFTTT will be saved here',\n },\n native: {},\n });\n }\n }\n\n // detect netatmo creation\n await this.subscribeForeignObjectsAsync('system.adapter.*');\n\n await this.subscribeStatesAsync('smart.*');\n\n this.log.info(`Connecting with ${this.config.cloudUrl}`);\n\n if (this.config.language) {\n this.translate = true;\n this.lang = this.config.language;\n } else {\n this.lang = systemConfig.common.language;\n }\n\n if (this.lang !== 'en' && this.lang !== 'de' && this.lang !== 'ru') {\n this.lang = 'en';\n }\n\n if (this.alexaSH2) {\n this.alexaSH2.setLanguage(this.lang, this.translate);\n this.alexaSH2.updateDevices();\n }\n\n this.alexaCustom?.setLanguage(this.lang);\n\n this.remote?.setLanguage(this.lang);\n // check password\n if (\n this.config.pass.length < 8 ||\n !this.config.pass.match(/[a-z]/) ||\n !this.config.pass.match(/[A-Z]/) ||\n !this.config.pass.match(/\\d/)\n ) {\n return this.log.error(\n 'The password must be at least 8 characters long and have numbers, upper and lower case letters. Please change the password in the profile https://iobroker.pro/accountProfile.',\n );\n }\n\n await this.updateNightscoutSecret();\n\n const iotClientId = this.config.login.replace(/[^-_:a-zA-Z1-9]/g, '_');\n // user will be created here\n await this.startDevice(iotClientId, this.config.login, this.config.pass);\n\n // after the user created, we can try to generate URL key\n // read URL keys from server\n try {\n this.urlKey = await this.readUrlKey();\n } catch {\n if (\n this.config.googleHome ||\n this.config.yandexAlisa ||\n this.config.allowedServices.length ||\n this.config.iftttKey\n ) {\n try {\n this.urlKey = await this.createUrlKey(this.config.login, this.config.pass);\n } catch (err) {\n return this.log.error(\n `Cannot read URL key: ${typeof err === 'object' ? JSON.stringify(err) : err}`,\n );\n }\n }\n }\n\n if (this.config.amazonAlexaV3) {\n this.alexaSH3 = new AlexaSH3({\n adapter: this,\n iotClientId,\n iotDevice: this.device!,\n });\n this.alexaSH3.setLanguage(this.lang);\n await this.alexaSH3.updateDevices();\n }\n\n if (this.config.googleHome) {\n this.googleHome = new GoogleHome(this, this.urlKey);\n } // no else\n if (this.config.yandexAlisa) {\n this.yandexAlisa = new YandexAlisa(this, this.urlKey);\n }\n\n this.googleHome?.setLanguage(this.lang);\n this.googleHome?.updateDevices();\n\n this.yandexAlisa?.setLanguage(this.lang);\n this.yandexAlisa?.updateDevices();\n\n await this.subscribeStatesAsync('app.message');\n }\n}\n\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial<AdapterOptions> | undefined) => new IotAdapter(options);\n} else {\n // otherwise start the instance directly\n (() => new IotAdapter())();\n}\n"]}
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "iot",
4
- "version": "3.6.0",
4
+ "version": "4.0.2",
5
5
  "news": {
6
+ "4.0.2": {
7
+ "en": "Some files were rewritten in TypeScript\nImprovement of Alexa V3",
8
+ "de": "Einige Dateien wurden in TypeScript neu geschrieben\nVerbesserung von Alexa V3",
9
+ "ru": "Некоторые файлы были переписаны в TypeScript\nУлучшение Alexa V3",
10
+ "pt": "Alguns arquivos foram reescritos no TypeScript\nMelhoria da Alexa V3",
11
+ "nl": "Sommige bestanden zijn herschreven in TypeScript\nVerbetering van Alexa V3",
12
+ "fr": "Certains fichiers ont été réécrits dans TypeScript\nAmélioration de Alexa V3",
13
+ "it": "Alcuni file sono stati riscritti in TypeScript\nMiglioramento di Alexa V3",
14
+ "es": "Algunos archivos fueron reescritos en TipoScript\nMejora de Alexa V3",
15
+ "pl": "Niektóre pliki zostały zmienione w TypeScript\nPoprawa jakości Alexa V3",
16
+ "uk": "Деякі файли були записані у TypeScript\nУдосконалення Alexa V3",
17
+ "zh-cn": "一些文件在 TypeScript 中重写\n改进Alexa V3"
18
+ },
6
19
  "3.6.0": {
7
20
  "en": "new features for upcoming Visu App 1.4.0",
8
21
  "de": "neue Features für die kommende Visu App 1.4.0",
@@ -80,19 +93,6 @@
80
93
  "pl": "Poprawił edycję nazwy urządzeń dla Alexa 3",
81
94
  "uk": "Виправлено редагування назв пристроїв для Alexa 3",
82
95
  "zh-cn": "校正了Alexa 3设备的名称编辑"
83
- },
84
- "3.4.3": {
85
- "en": "corrected the addition of the devices for Alexa\nchanged compilation of GUI to remove deprecated packages",
86
- "de": "korrigierte die Ergänzung der Geräte für Alexa\ngeänderte Zusammenstellung von GUI, um deprecierte Pakete zu entfernen",
87
- "ru": "исправил добавление устройств для Alexa\nизмененная компиляция GUI для удаления депрецированных пакетов",
88
- "pt": "corrigiu a adição dos dispositivos para Alexa\ncompilação alterada de GUI para remover pacotes deprecated",
89
- "nl": "gecorrigeerd de toevoeging van de apparaten voor Alexa\ngewijzigde compilatie van GUI om verouderde pakketten te verwijderen",
90
- "fr": "corrigé l'ajout des dispositifs pour Alexa\nmodification de la compilation de GUI pour supprimer les paquets obsolètes",
91
- "it": "corretto l'aggiunta dei dispositivi per Alexa\nmodificato la compilazione di GUI per rimuovere i pacchetti deprecati",
92
- "es": "corregido la adición de los dispositivos para Alexa\ncambio de compilación de GUI para eliminar paquetes deprecated",
93
- "pl": "poprawiła dodanie urządzeń dla Alexa\nzmiana kompilacji GUI w celu usunięcia zdeprecjonowanych pakietów",
94
- "uk": "виправлено додавання пристроїв для Alexa\nзмінена компіляція GUI для видалення депресованих пакетів",
95
- "zh-cn": "修正了为Alexa添加的设备\n更改 GUI 的编译以删除已贬值的软件包"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.iot",
3
- "version": "3.6.0",
3
+ "version": "4.0.2",
4
4
  "description": "This adapter allows to communicate Amazon Alexa and Google Home with ioBroker.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -22,10 +22,10 @@
22
22
  "url": "https://github.com/ioBroker/ioBroker.iot"
23
23
  },
24
24
  "dependencies": {
25
- "@iobroker/adapter-core": "^3.2.3",
25
+ "@iobroker/adapter-core": "^3.3.2",
26
26
  "aws-iot-device-sdk": "^2.2.15",
27
- "axios": "^1.9.0",
28
- "iobroker.type-detector": "^3.0.5",
27
+ "axios": "^1.11.0",
28
+ "@iobroker/type-detector": "^4.5.1",
29
29
  "mime": "^3.0.0",
30
30
  "uuid": "^11.1.0"
31
31
  },
@@ -34,41 +34,44 @@
34
34
  "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
35
35
  "@alcalzone/release-script-plugin-license": "^3.7.0",
36
36
  "@iobroker/build-tools": "^2.0.15",
37
- "@iobroker/eslint-config": "^2.0.2",
37
+ "@iobroker/eslint-config": "^2.1.0",
38
38
  "@iobroker/legacy-testing": "^2.0.2",
39
39
  "@iobroker/types": "^7.0.7",
40
- "@types/node": "^22.15.29",
40
+ "@types/node": "^24.3.0",
41
+ "@types/aws-iot-device-sdk": "^2.2.8",
41
42
  "colorette": "^2.0.20",
42
- "puppeteer": "^24.9.0"
43
+ "puppeteer": "^24.16.2",
44
+ "typescript": "^5.9.2"
43
45
  },
44
46
  "bugs": {
45
47
  "url": "https://github.com/ioBroker/ioBroker.iot/issues"
46
48
  },
47
- "main": "main.js",
49
+ "main": "build-backend/main.js",
48
50
  "files": [
49
51
  "admin/",
50
52
  "doc/",
51
53
  "img/",
52
54
  "keys/",
53
- "lib/",
55
+ "build-backend/",
54
56
  "io-package.json",
55
- "LICENSE",
56
- "main.js"
57
+ "LICENSE"
57
58
  ],
58
59
  "scripts": {
59
60
  "test-gui": "mocha test/testAdapter.gui.js --exit",
60
61
  "test-package": "mocha test/testPackageFiles.js --exit",
61
62
  "test": "npm run test-gui && npm run test-package",
62
63
  "test-alexa-v3": "mocha --grep AlexaSmartHomeV3 --recursive",
63
- "prepublishOnly": "node tasks",
64
- "build": "node tasks",
64
+ "prepublishOnly": "npm run build",
65
+ "tsc": "tsc -p tsconfig.build.json && node tasks --backend",
66
+ "lint": "eslint -c eslint.config.mjs",
67
+ "build": "node tasks && npm run tsc",
65
68
  "release": "release-script",
66
69
  "release-patch": "release-script patch --yes",
67
70
  "release-minor": "release-script minor --yes",
68
71
  "release-major": "release-script major --yes",
69
72
  "translate": "translate-adapter",
70
- "update-packages": "npx -y npm-check-updates --upgrade && cd src && npx -y npm-check-updates --upgrade && cd ../src-rules && npx -y npm-check-updates --upgrade",
71
- "npm": "npm i && cd src && npm i -f && cd ../src-rules && npm i -f",
73
+ "update-packages": "npx -y npm-check-updates --upgrade && cd src-admin && npx -y npm-check-updates --upgrade && cd ../src-rules && npx -y npm-check-updates --upgrade",
74
+ "npm": "npm i && cd src-admin && npm i -f && cd ../src-rules && npm i -f",
72
75
  "rules-0-clean": "node tasks --rules-0-clean",
73
76
  "rules-1-npm": "node tasks --rules-1-npm",
74
77
  "rules-2-compile": "node tasks --rules-2-compile",