matterbridge-roborock-vacuum-plugin-regions 1.1.1-jb.1

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 (261) hide show
  1. package/.github/workflows/build.yml +56 -0
  2. package/.github/workflows/coverage.yml +59 -0
  3. package/.github/workflows/publish.yml +37 -0
  4. package/.tarignore +5 -0
  5. package/CHANGELOG.md +62 -0
  6. package/LICENSE +202 -0
  7. package/README.md +135 -0
  8. package/README_CLEANMODE.md +29 -0
  9. package/README_DEV.md +75 -0
  10. package/README_REPORT_ISSUE.md +34 -0
  11. package/README_SUPPORTED.md +67 -0
  12. package/dist/behaviorFactory.js +26 -0
  13. package/dist/behaviors/BehaviorDeviceGeneric.js +22 -0
  14. package/dist/behaviors/roborock.vacuum/default/default.js +183 -0
  15. package/dist/behaviors/roborock.vacuum/default/initalData.js +143 -0
  16. package/dist/behaviors/roborock.vacuum/default/runtimes.js +21 -0
  17. package/dist/behaviors/roborock.vacuum/smart/initalData.js +18 -0
  18. package/dist/behaviors/roborock.vacuum/smart/runtimes.js +11 -0
  19. package/dist/behaviors/roborock.vacuum/smart/smart.js +119 -0
  20. package/dist/clientManager.js +17 -0
  21. package/dist/helper.js +76 -0
  22. package/dist/index.js +4 -0
  23. package/dist/initialData/getBatteryStatus.js +24 -0
  24. package/dist/initialData/getOperationalStates.js +82 -0
  25. package/dist/initialData/getSupportedAreas.js +120 -0
  26. package/dist/initialData/getSupportedCleanModes.js +17 -0
  27. package/dist/initialData/getSupportedRunModes.js +11 -0
  28. package/dist/initialData/getSupportedScenes.js +26 -0
  29. package/dist/initialData/index.js +6 -0
  30. package/dist/model/CloudMessageModel.js +1 -0
  31. package/dist/model/DockingStationStatus.js +26 -0
  32. package/dist/model/ExperimentalFeatureSetting.js +30 -0
  33. package/dist/model/RoomMap.js +19 -0
  34. package/dist/model/roomIndexMap.js +21 -0
  35. package/dist/notifyMessageTypes.js +9 -0
  36. package/dist/platform.js +312 -0
  37. package/dist/platformRunner.js +90 -0
  38. package/dist/roborockCommunication/RESTAPI/roborockAuthenticateApi.js +213 -0
  39. package/dist/roborockCommunication/RESTAPI/roborockIoTApi.js +95 -0
  40. package/dist/roborockCommunication/Zenum/additionalPropCode.js +4 -0
  41. package/dist/roborockCommunication/Zenum/authenticateResponseCode.js +7 -0
  42. package/dist/roborockCommunication/Zenum/dockType.js +4 -0
  43. package/dist/roborockCommunication/Zenum/operationStatusCode.js +44 -0
  44. package/dist/roborockCommunication/Zenum/vacuumAndDockErrorCode.js +68 -0
  45. package/dist/roborockCommunication/Zmodel/apiResponse.js +1 -0
  46. package/dist/roborockCommunication/Zmodel/authenticateFlowState.js +1 -0
  47. package/dist/roborockCommunication/Zmodel/authenticateResponse.js +1 -0
  48. package/dist/roborockCommunication/Zmodel/baseURL.js +1 -0
  49. package/dist/roborockCommunication/Zmodel/batteryMessage.js +1 -0
  50. package/dist/roborockCommunication/Zmodel/device.js +1 -0
  51. package/dist/roborockCommunication/Zmodel/deviceModel.js +28 -0
  52. package/dist/roborockCommunication/Zmodel/deviceSchema.js +1 -0
  53. package/dist/roborockCommunication/Zmodel/deviceStatus.js +22 -0
  54. package/dist/roborockCommunication/Zmodel/dockInfo.js +6 -0
  55. package/dist/roborockCommunication/Zmodel/home.js +1 -0
  56. package/dist/roborockCommunication/Zmodel/homeInfo.js +1 -0
  57. package/dist/roborockCommunication/Zmodel/map.js +1 -0
  58. package/dist/roborockCommunication/Zmodel/mapInfo.js +29 -0
  59. package/dist/roborockCommunication/Zmodel/messageResult.js +7 -0
  60. package/dist/roborockCommunication/Zmodel/multipleMap.js +1 -0
  61. package/dist/roborockCommunication/Zmodel/networkInfo.js +1 -0
  62. package/dist/roborockCommunication/Zmodel/product.js +1 -0
  63. package/dist/roborockCommunication/Zmodel/room.js +1 -0
  64. package/dist/roborockCommunication/Zmodel/roomInfo.js +22 -0
  65. package/dist/roborockCommunication/Zmodel/scene.js +16 -0
  66. package/dist/roborockCommunication/Zmodel/userData.js +1 -0
  67. package/dist/roborockCommunication/Zmodel/vacuumError.js +27 -0
  68. package/dist/roborockCommunication/broadcast/abstractClient.js +55 -0
  69. package/dist/roborockCommunication/broadcast/client/LocalNetworkClient.js +174 -0
  70. package/dist/roborockCommunication/broadcast/client/LocalNetworkUDPClient.js +129 -0
  71. package/dist/roborockCommunication/broadcast/client/MQTTClient.js +139 -0
  72. package/dist/roborockCommunication/broadcast/client.js +1 -0
  73. package/dist/roborockCommunication/broadcast/clientRouter.js +82 -0
  74. package/dist/roborockCommunication/broadcast/listener/abstractConnectionListener.js +1 -0
  75. package/dist/roborockCommunication/broadcast/listener/abstractMessageHandler.js +1 -0
  76. package/dist/roborockCommunication/broadcast/listener/abstractMessageListener.js +1 -0
  77. package/dist/roborockCommunication/broadcast/listener/implementation/chainedConnectionListener.js +26 -0
  78. package/dist/roborockCommunication/broadcast/listener/implementation/chainedMessageListener.js +11 -0
  79. package/dist/roborockCommunication/broadcast/listener/implementation/connectionStateListener.js +43 -0
  80. package/dist/roborockCommunication/broadcast/listener/implementation/generalSyncMessageListener.js +28 -0
  81. package/dist/roborockCommunication/broadcast/listener/implementation/simpleMessageListener.js +27 -0
  82. package/dist/roborockCommunication/broadcast/listener/implementation/syncMessageListener.js +33 -0
  83. package/dist/roborockCommunication/broadcast/listener/index.js +1 -0
  84. package/dist/roborockCommunication/broadcast/messageProcessor.js +148 -0
  85. package/dist/roborockCommunication/broadcast/model/contentMessage.js +1 -0
  86. package/dist/roborockCommunication/broadcast/model/dps.js +1 -0
  87. package/dist/roborockCommunication/broadcast/model/headerMessage.js +1 -0
  88. package/dist/roborockCommunication/broadcast/model/messageContext.js +37 -0
  89. package/dist/roborockCommunication/broadcast/model/protocol.js +28 -0
  90. package/dist/roborockCommunication/broadcast/model/requestMessage.js +38 -0
  91. package/dist/roborockCommunication/broadcast/model/responseMessage.js +14 -0
  92. package/dist/roborockCommunication/helper/chunkBuffer.js +17 -0
  93. package/dist/roborockCommunication/helper/cryptoHelper.js +23 -0
  94. package/dist/roborockCommunication/helper/messageDeserializer.js +98 -0
  95. package/dist/roborockCommunication/helper/messageSerializer.js +84 -0
  96. package/dist/roborockCommunication/helper/nameDecoder.js +66 -0
  97. package/dist/roborockCommunication/helper/sequence.js +16 -0
  98. package/dist/roborockCommunication/index.js +13 -0
  99. package/dist/roborockService.js +494 -0
  100. package/dist/runtimes/handleCloudMessage.js +110 -0
  101. package/dist/runtimes/handleHomeDataMessage.js +57 -0
  102. package/dist/runtimes/handleLocalMessage.js +169 -0
  103. package/dist/rvc.js +51 -0
  104. package/dist/settings.js +1 -0
  105. package/dist/share/function.js +93 -0
  106. package/dist/share/runtimeHelper.js +17 -0
  107. package/dist/tests/testData/mockData.js +359 -0
  108. package/eslint.config.js +80 -0
  109. package/jest.config.js +22 -0
  110. package/jest.setup.js +2 -0
  111. package/logo.png +0 -0
  112. package/matterbridge-roborock-vacuum-plugin.config.json +46 -0
  113. package/matterbridge-roborock-vacuum-plugin.schema.json +293 -0
  114. package/misc/status.md +119 -0
  115. package/package.json +111 -0
  116. package/prettier.config.js +49 -0
  117. package/screenshot/IMG_1.PNG +0 -0
  118. package/screenshot/IMG_2.PNG +0 -0
  119. package/screenshot/IMG_3.PNG +0 -0
  120. package/screenshot/IMG_4.PNG +0 -0
  121. package/screenshot/IMG_5.PNG +0 -0
  122. package/screenshot/IMG_6.PNG +0 -0
  123. package/screenshot/IMG_7.PNG +0 -0
  124. package/src/behaviorFactory.ts +41 -0
  125. package/src/behaviors/BehaviorDeviceGeneric.ts +31 -0
  126. package/src/behaviors/roborock.vacuum/default/default.ts +238 -0
  127. package/src/behaviors/roborock.vacuum/default/initalData.ts +152 -0
  128. package/src/behaviors/roborock.vacuum/default/runtimes.ts +23 -0
  129. package/src/behaviors/roborock.vacuum/smart/initalData.ts +20 -0
  130. package/src/behaviors/roborock.vacuum/smart/runtimes.ts +15 -0
  131. package/src/behaviors/roborock.vacuum/smart/smart.ts +159 -0
  132. package/src/clientManager.ts +23 -0
  133. package/src/helper.ts +97 -0
  134. package/src/index.ts +16 -0
  135. package/src/initialData/getBatteryStatus.ts +26 -0
  136. package/src/initialData/getOperationalStates.ts +94 -0
  137. package/src/initialData/getSupportedAreas.ts +162 -0
  138. package/src/initialData/getSupportedCleanModes.ts +22 -0
  139. package/src/initialData/getSupportedRunModes.ts +14 -0
  140. package/src/initialData/getSupportedScenes.ts +32 -0
  141. package/src/initialData/index.ts +6 -0
  142. package/src/model/CloudMessageModel.ts +11 -0
  143. package/src/model/DockingStationStatus.ts +41 -0
  144. package/src/model/ExperimentalFeatureSetting.ts +77 -0
  145. package/src/model/RoomMap.ts +38 -0
  146. package/src/model/roomIndexMap.ts +26 -0
  147. package/src/notifyMessageTypes.ts +8 -0
  148. package/src/platform.ts +424 -0
  149. package/src/platformRunner.ts +103 -0
  150. package/src/roborockCommunication/RESTAPI/roborockAuthenticateApi.ts +302 -0
  151. package/src/roborockCommunication/RESTAPI/roborockIoTApi.ts +107 -0
  152. package/src/roborockCommunication/Zenum/additionalPropCode.ts +3 -0
  153. package/src/roborockCommunication/Zenum/authenticateResponseCode.ts +6 -0
  154. package/src/roborockCommunication/Zenum/dockType.ts +3 -0
  155. package/src/roborockCommunication/Zenum/operationStatusCode.ts +43 -0
  156. package/src/roborockCommunication/Zenum/vacuumAndDockErrorCode.ts +68 -0
  157. package/src/roborockCommunication/Zmodel/apiResponse.ts +3 -0
  158. package/src/roborockCommunication/Zmodel/authenticateFlowState.ts +6 -0
  159. package/src/roborockCommunication/Zmodel/authenticateResponse.ts +5 -0
  160. package/src/roborockCommunication/Zmodel/baseURL.ts +5 -0
  161. package/src/roborockCommunication/Zmodel/batteryMessage.ts +16 -0
  162. package/src/roborockCommunication/Zmodel/device.ts +50 -0
  163. package/src/roborockCommunication/Zmodel/deviceModel.ts +27 -0
  164. package/src/roborockCommunication/Zmodel/deviceSchema.ts +8 -0
  165. package/src/roborockCommunication/Zmodel/deviceStatus.ts +30 -0
  166. package/src/roborockCommunication/Zmodel/dockInfo.ts +9 -0
  167. package/src/roborockCommunication/Zmodel/home.ts +13 -0
  168. package/src/roborockCommunication/Zmodel/homeInfo.ts +5 -0
  169. package/src/roborockCommunication/Zmodel/map.ts +20 -0
  170. package/src/roborockCommunication/Zmodel/mapInfo.ts +54 -0
  171. package/src/roborockCommunication/Zmodel/messageResult.ts +75 -0
  172. package/src/roborockCommunication/Zmodel/multipleMap.ts +8 -0
  173. package/src/roborockCommunication/Zmodel/networkInfo.ts +7 -0
  174. package/src/roborockCommunication/Zmodel/product.ts +9 -0
  175. package/src/roborockCommunication/Zmodel/room.ts +4 -0
  176. package/src/roborockCommunication/Zmodel/roomInfo.ts +30 -0
  177. package/src/roborockCommunication/Zmodel/scene.ts +44 -0
  178. package/src/roborockCommunication/Zmodel/userData.ts +26 -0
  179. package/src/roborockCommunication/Zmodel/vacuumError.ts +35 -0
  180. package/src/roborockCommunication/broadcast/abstractClient.ts +80 -0
  181. package/src/roborockCommunication/broadcast/client/LocalNetworkClient.ts +218 -0
  182. package/src/roborockCommunication/broadcast/client/LocalNetworkUDPClient.ts +157 -0
  183. package/src/roborockCommunication/broadcast/client/MQTTClient.ts +174 -0
  184. package/src/roborockCommunication/broadcast/client.ts +19 -0
  185. package/src/roborockCommunication/broadcast/clientRouter.ts +104 -0
  186. package/src/roborockCommunication/broadcast/listener/abstractConnectionListener.ts +6 -0
  187. package/src/roborockCommunication/broadcast/listener/abstractMessageHandler.ts +11 -0
  188. package/src/roborockCommunication/broadcast/listener/abstractMessageListener.ts +5 -0
  189. package/src/roborockCommunication/broadcast/listener/implementation/chainedConnectionListener.ts +33 -0
  190. package/src/roborockCommunication/broadcast/listener/implementation/chainedMessageListener.ts +16 -0
  191. package/src/roborockCommunication/broadcast/listener/implementation/connectionStateListener.ts +57 -0
  192. package/src/roborockCommunication/broadcast/listener/implementation/generalSyncMessageListener.ts +38 -0
  193. package/src/roborockCommunication/broadcast/listener/implementation/simpleMessageListener.ts +37 -0
  194. package/src/roborockCommunication/broadcast/listener/implementation/syncMessageListener.ts +50 -0
  195. package/src/roborockCommunication/broadcast/listener/index.ts +3 -0
  196. package/src/roborockCommunication/broadcast/messageProcessor.ts +184 -0
  197. package/src/roborockCommunication/broadcast/model/contentMessage.ts +5 -0
  198. package/src/roborockCommunication/broadcast/model/dps.ts +19 -0
  199. package/src/roborockCommunication/broadcast/model/headerMessage.ts +7 -0
  200. package/src/roborockCommunication/broadcast/model/messageContext.ts +53 -0
  201. package/src/roborockCommunication/broadcast/model/protocol.ts +28 -0
  202. package/src/roborockCommunication/broadcast/model/requestMessage.ts +51 -0
  203. package/src/roborockCommunication/broadcast/model/responseMessage.ts +19 -0
  204. package/src/roborockCommunication/helper/chunkBuffer.ts +18 -0
  205. package/src/roborockCommunication/helper/cryptoHelper.ts +30 -0
  206. package/src/roborockCommunication/helper/messageDeserializer.ts +119 -0
  207. package/src/roborockCommunication/helper/messageSerializer.ts +101 -0
  208. package/src/roborockCommunication/helper/nameDecoder.ts +78 -0
  209. package/src/roborockCommunication/helper/sequence.ts +18 -0
  210. package/src/roborockCommunication/index.ts +25 -0
  211. package/src/roborockService.ts +657 -0
  212. package/src/runtimes/handleCloudMessage.ts +134 -0
  213. package/src/runtimes/handleHomeDataMessage.ts +67 -0
  214. package/src/runtimes/handleLocalMessage.ts +209 -0
  215. package/src/rvc.ts +97 -0
  216. package/src/settings.ts +1 -0
  217. package/src/share/function.ts +103 -0
  218. package/src/share/runtimeHelper.ts +23 -0
  219. package/src/tests/behaviors/roborock.vacuum/default/default.test.ts +134 -0
  220. package/src/tests/behaviors/roborock.vacuum/smart/runtimes.test.ts +64 -0
  221. package/src/tests/behaviors/roborock.vacuum/smart/smart.test.ts +215 -0
  222. package/src/tests/helper.test.ts +162 -0
  223. package/src/tests/initialData/getSupportedAreas.test.ts +181 -0
  224. package/src/tests/model/DockingStationStatus.test.ts +39 -0
  225. package/src/tests/platformRunner.test.ts +188 -0
  226. package/src/tests/platformRunner2.test.ts +228 -0
  227. package/src/tests/platformRunner3.test.ts +46 -0
  228. package/src/tests/roborockCommunication/RESTAPI/roborockAuthenticateApi.test.ts +144 -0
  229. package/src/tests/roborockCommunication/RESTAPI/roborockIoTApi.test.ts +106 -0
  230. package/src/tests/roborockCommunication/broadcast/client/LocalNetworkClient.test.ts +189 -0
  231. package/src/tests/roborockCommunication/broadcast/client/MQTTClient.test.ts +208 -0
  232. package/src/tests/roborockCommunication/broadcast/clientRouter.test.ts +168 -0
  233. package/src/tests/roborockCommunication/broadcast/listener/implementation/chainedConnectionListener.test.ts +59 -0
  234. package/src/tests/roborockCommunication/broadcast/listener/implementation/chainedMessageListener.test.ts +46 -0
  235. package/src/tests/roborockCommunication/broadcast/listener/implementation/simpleMessageListener.test.ts +71 -0
  236. package/src/tests/roborockCommunication/broadcast/listener/implementation/syncMessageListener.test.ts +86 -0
  237. package/src/tests/roborockCommunication/broadcast/messageProcessor.test.ts +126 -0
  238. package/src/tests/roborockService.setSelectedAreas.test.ts +61 -0
  239. package/src/tests/roborockService.test.ts +517 -0
  240. package/src/tests/roborockService2.test.ts +69 -0
  241. package/src/tests/roborockService3.test.ts +133 -0
  242. package/src/tests/roborockService4.test.ts +76 -0
  243. package/src/tests/roborockService5.test.ts +79 -0
  244. package/src/tests/runtimes/handleCloudMessage.test.ts +200 -0
  245. package/src/tests/runtimes/handleHomeDataMessage.test.ts +54 -0
  246. package/src/tests/runtimes/handleLocalMessage.test.ts +227 -0
  247. package/src/tests/testData/mockData.ts +370 -0
  248. package/src/tests/testData/mockHomeData-a187.json +286 -0
  249. package/tsconfig.jest.json +21 -0
  250. package/tsconfig.json +37 -0
  251. package/tsconfig.production.json +19 -0
  252. package/tslint.json +9 -0
  253. package/web-for-testing/README.md +47 -0
  254. package/web-for-testing/nodemon.json +7 -0
  255. package/web-for-testing/package-lock.json +6600 -0
  256. package/web-for-testing/package.json +36 -0
  257. package/web-for-testing/src/app.ts +194 -0
  258. package/web-for-testing/tsconfig-ext.json +19 -0
  259. package/web-for-testing/tsconfig.json +23 -0
  260. package/web-for-testing/views/index.ejs +172 -0
  261. package/web-for-testing/watch.mjs +93 -0
@@ -0,0 +1,286 @@
1
+ {
2
+ "id": 1234,
3
+ "name": "My Home",
4
+ "lon": null,
5
+ "lat": null,
6
+ "geoName": null,
7
+ "products": [
8
+ {
9
+ "id": "654321",
10
+ "name": "Roborock Qrevo Edge Series",
11
+ "model": "roborock.vacuum.a187",
12
+ "iconUrl": null,
13
+ "attribute": null,
14
+ "capability": 0,
15
+ "category": "robot.vacuum.cleaner",
16
+ "schema": [
17
+ {
18
+ "id": 101,
19
+ "name": "rpc_request",
20
+ "code": "rpc_request",
21
+ "mode": "rw",
22
+ "type": "RAW",
23
+ "property": null
24
+ },
25
+ {
26
+ "id": 102,
27
+ "name": "rpc_response",
28
+ "code": "rpc_response",
29
+ "mode": "rw",
30
+ "type": "RAW",
31
+ "property": null
32
+ },
33
+ {
34
+ "id": 120,
35
+ "name": "้”™่ฏฏไปฃ็ ",
36
+ "code": "error_code",
37
+ "mode": "ro",
38
+ "type": "ENUM",
39
+ "property": "{\"range\": [\"\"]}"
40
+ },
41
+ {
42
+ "id": 121,
43
+ "name": "่ฎพๅค‡็Šถๆ€",
44
+ "code": "state",
45
+ "mode": "ro",
46
+ "type": "ENUM",
47
+ "property": "{\"range\": [\"\"]}"
48
+ },
49
+ {
50
+ "id": 122,
51
+ "name": "่ฎพๅค‡็”ต้‡",
52
+ "code": "battery",
53
+ "mode": "ro",
54
+ "type": "ENUM",
55
+ "property": "{\"range\": [\"\"]}"
56
+ },
57
+ {
58
+ "id": 123,
59
+ "name": "ๆธ…ๆ‰ซๆจกๅผ",
60
+ "code": "fan_power",
61
+ "mode": "rw",
62
+ "type": "ENUM",
63
+ "property": "{\"range\": [\"\"]}"
64
+ },
65
+ {
66
+ "id": 124,
67
+ "name": "ๆ‹–ๅœฐๆจกๅผ",
68
+ "code": "water_box_mode",
69
+ "mode": "rw",
70
+ "type": "ENUM",
71
+ "property": "{\"range\": [\"\"]}"
72
+ },
73
+ {
74
+ "id": 125,
75
+ "name": "ไธปๅˆทๅฏฟๅ‘ฝ",
76
+ "code": "main_brush_life",
77
+ "mode": "rw",
78
+ "type": "VALUE",
79
+ "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": \"null\", \"scale\": 1}"
80
+ },
81
+ {
82
+ "id": 126,
83
+ "name": "่พนๅˆทๅฏฟๅ‘ฝ",
84
+ "code": "side_brush_life",
85
+ "mode": "rw",
86
+ "type": "VALUE",
87
+ "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": \"null\", \"scale\": 1}"
88
+ },
89
+ {
90
+ "id": 127,
91
+ "name": "ๆปค็ฝ‘ๅฏฟๅ‘ฝ",
92
+ "code": "filter_life",
93
+ "mode": "rw",
94
+ "type": "VALUE",
95
+ "property": "{\"max\": 100, \"min\": 0, \"step\": 1, \"unit\": \"null\", \"scale\": 1}"
96
+ },
97
+ {
98
+ "id": 128,
99
+ "name": "้ขๅค–็Šถๆ€",
100
+ "code": "additional_props",
101
+ "mode": "ro",
102
+ "type": "RAW",
103
+ "property": null
104
+ },
105
+ {
106
+ "id": 130,
107
+ "name": "ๅฎŒๆˆไบ‹ไปถ",
108
+ "code": "task_complete",
109
+ "mode": "ro",
110
+ "type": "RAW",
111
+ "property": null
112
+ },
113
+ {
114
+ "id": 131,
115
+ "name": "็”ต้‡ไธ่ถณไปปๅŠกๅ–ๆถˆ",
116
+ "code": "task_cancel_low_power",
117
+ "mode": "ro",
118
+ "type": "RAW",
119
+ "property": null
120
+ },
121
+ {
122
+ "id": 132,
123
+ "name": "่ฟๅŠจไธญไปปๅŠกๅ–ๆถˆ",
124
+ "code": "task_cancel_in_motion",
125
+ "mode": "ro",
126
+ "type": "RAW",
127
+ "property": null
128
+ },
129
+ {
130
+ "id": 133,
131
+ "name": "ๅ……็”ต็Šถๆ€",
132
+ "code": "charge_status",
133
+ "mode": "ro",
134
+ "type": "RAW",
135
+ "property": null
136
+ },
137
+ {
138
+ "id": 134,
139
+ "name": "็ƒ˜ๅนฒ็Šถๆ€",
140
+ "code": "drying_status",
141
+ "mode": "ro",
142
+ "type": "RAW",
143
+ "property": null
144
+ },
145
+ {
146
+ "id": 135,
147
+ "name": "็ฆป็บฟๅŽŸๅ› ็ป†ๅˆ†",
148
+ "code": "offline_status",
149
+ "mode": "ro",
150
+ "type": "RAW",
151
+ "property": null
152
+ },
153
+ {
154
+ "id": 139,
155
+ "name": "ๅ›žๅŸบ็ซ™็›ฎ็š„",
156
+ "code": "back_type",
157
+ "mode": "ro",
158
+ "type": "RAW",
159
+ "property": null
160
+ }
161
+ ]
162
+ }
163
+ ],
164
+ "devices": [
165
+ {
166
+ "duid": "123456",
167
+ "name": "Roborock Qrevo Edge Series",
168
+ "attribute": null,
169
+ "activeTime": 1746940587,
170
+ "createTime": 1746940587,
171
+ "localKey": "111111",
172
+ "runtimeEnv": null,
173
+ "timeZoneId": "Asia/Ho_Chi_Minh",
174
+ "iconUrl": "",
175
+ "productId": "654321",
176
+ "lon": null,
177
+ "lat": null,
178
+ "share": false,
179
+ "shareTime": null,
180
+ "online": true,
181
+ "fv": "02.27.26",
182
+ "pv": "1.0",
183
+ "roomId": null,
184
+ "tuyaUuid": null,
185
+ "tuyaMigrated": false,
186
+ "extra": null,
187
+ "setting": null,
188
+ "sn": "66666",
189
+ "cid": "",
190
+ "featureSet": "2247397454282751",
191
+ "newFeatureSet": "00000000082834C1C2FA8F5C7EDEFFFE",
192
+ "deviceStatus": {
193
+ "120": 0,
194
+ "121": 5,
195
+ "122": 98,
196
+ "123": 110,
197
+ "124": 209,
198
+ "125": 98,
199
+ "126": 94,
200
+ "127": 95,
201
+ "128": 1,
202
+ "133": 1,
203
+ "134": 0,
204
+ "135": 0,
205
+ "139": 0
206
+ },
207
+ "silentOtaSwitch": true,
208
+ "f": false,
209
+ "rrHomeId": 3645093,
210
+ "rooms": [
211
+ {
212
+ "id": 11100849,
213
+ "name": "Study"
214
+ },
215
+ {
216
+ "id": 11100847,
217
+ "name": "Bedroom"
218
+ },
219
+ {
220
+ "id": 11100845,
221
+ "name": "Kitchen"
222
+ },
223
+ {
224
+ "id": 11100842,
225
+ "name": "Living room"
226
+ }
227
+ ],
228
+ "serialNumber": "66666",
229
+ "data": {
230
+ "id": "123456",
231
+ "firmwareVersion": "02.27.26",
232
+ "serialNumber": "66666",
233
+ "model": "roborock.vacuum.a187",
234
+ "category": "robot.vacuum.cleaner",
235
+ "batteryLevel": 98
236
+ },
237
+ "store": {
238
+ "userData": {
239
+ "uid": 3635748,
240
+ "tokentype": "",
241
+ "token": "1:2+3==:4",
242
+ "rruid": "1",
243
+ "region": "us",
244
+ "countrycode": "84",
245
+ "country": "VN",
246
+ "nickname": "Ryan",
247
+ "rriot": {
248
+ "u": "1",
249
+ "s": "2",
250
+ "h": "3",
251
+ "k": "4",
252
+ "r": {
253
+ "r": "US",
254
+ "a": "https://api-us.roborock.com",
255
+ "m": "ssl://mqtt-us-2.roborock.com:8883",
256
+ "l": "https://wood-us.roborock.com"
257
+ }
258
+ },
259
+ "tuyaDeviceState": 0
260
+ },
261
+ "localKey": "",
262
+ "pv": "1.0",
263
+ "model": "roborock.vacuum.a187"
264
+ }
265
+ }
266
+ ],
267
+ "receivedDevices": [],
268
+ "rooms": [
269
+ {
270
+ "id": 11100849,
271
+ "name": "Study"
272
+ },
273
+ {
274
+ "id": 11100847,
275
+ "name": "Bedroom"
276
+ },
277
+ {
278
+ "id": 11100845,
279
+ "name": "Kitchen"
280
+ },
281
+ {
282
+ "id": 11100842,
283
+ "name": "Living room"
284
+ }
285
+ ]
286
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ // enable isolatedModules just for ts-jest
5
+ "isolatedModules": true,
6
+ "types": [
7
+ "jest"
8
+ ]
9
+ },
10
+ "include": [
11
+ "**/*.spec.ts",
12
+ "**/*.test.ts",
13
+ "**/__test__/*"
14
+ ],
15
+ "exclude": [
16
+ "node_modules",
17
+ "dist",
18
+ "build",
19
+ "coverage",
20
+ ]
21
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "compilerOptions": {
3
+ "incremental": true,
4
+ "composite": true,
5
+ "target": "esnext",
6
+ "lib": [
7
+ "ESNext"
8
+ ],
9
+ "module": "nodenext",
10
+ "rootDir": "./src",
11
+ "moduleResolution": "nodenext",
12
+ "resolveJsonModule": true,
13
+ "allowJs": true,
14
+ "checkJs": true,
15
+ "declaration": true,
16
+ "declarationMap": true,
17
+ "sourceMap": true,
18
+ "outDir": "./dist",
19
+ "preserveConstEnums": true,
20
+ "allowSyntheticDefaultImports": true,
21
+ "esModuleInterop": true,
22
+ "forceConsistentCasingInFileNames": true,
23
+ "strict": true,
24
+ "noImplicitAny": true,
25
+ "alwaysStrict": true,
26
+ "noImplicitOverride": true,
27
+ "skipLibCheck": true
28
+ },
29
+ "include": [
30
+ "src/**/*.ts"
31
+ ],
32
+ "exclude": [
33
+ "**/*.spec.ts",
34
+ "**/*.test.ts",
35
+ "**/__test__/*"
36
+ ]
37
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "incremental": false,
5
+ "composite": false,
6
+ "declaration": false,
7
+ "declarationMap": false,
8
+ "sourceMap": false,
9
+ "removeComments": true
10
+ },
11
+ "include": [
12
+ "src/**/*.ts"
13
+ ],
14
+ "exclude": [
15
+ "**/*.spec.ts",
16
+ "**/*.test.ts",
17
+ "**/__test__/*"
18
+ ]
19
+ }
package/tslint.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "defaultSeverity": "error",
3
+ "extends": ["tslint:recommended"],
4
+ "jsRules": {},
5
+ "rules": {
6
+ "no-console": false
7
+ },
8
+ "rulesDirectory": []
9
+ }
@@ -0,0 +1,47 @@
1
+ # Web Testing Interface
2
+
3
+ This is a web-based testing interface for the Matterbridge Roborock Vacuum Plugin.
4
+
5
+ ## ๐Ÿš€ Quick Start
6
+
7
+ ### Prerequisites
8
+ - Node.js installed on your system
9
+ - Access to the main plugin source code
10
+
11
+ ### Installation & Setup
12
+
13
+ 1. **Copy source files:**
14
+ ```bash
15
+ npm run copy-src
16
+ ```
17
+
18
+ 2. **Build the project:**
19
+ ```bash
20
+ npm run build
21
+ ```
22
+
23
+ 3. **Start the development server:**
24
+ ```bash
25
+ npm run dev
26
+ ```
27
+
28
+ ## ๐ŸŒ Access
29
+
30
+ Once the server is running, open your browser and navigate to:
31
+ ```
32
+ http://localhost:3000
33
+ ```
34
+
35
+ ## ๐Ÿ” Authentication
36
+
37
+ Log in using your Roborock account credentials:
38
+ - **Username:** Your Roborock account username/email
39
+ - **Password:** Your Roborock account password
40
+
41
+ ## ๐Ÿงช Testing
42
+
43
+ After successful authentication, you can start testing the plugin functionality through the web interface.
44
+
45
+ ---
46
+
47
+ **Note:** This is a development/testing tool and should not be used in production environments.
@@ -0,0 +1,7 @@
1
+ {
2
+ "watch": [
3
+ "src"
4
+ ],
5
+ "ext": "ts",
6
+ "exec": "node --loader ts-node/esm --experimental-specifier-resolution=node ./src/app.ts"
7
+ }