agentworkshop 0.7.6 → 0.7.8

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 (538) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +1 -1
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +1 -1
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/{rzGB_ojX.js → 3612gD2V.js} +2 -2
  5. package/.output/public/_nuxt/8eIQAVlb.js +1 -0
  6. package/.output/public/_nuxt/Ah9qOv1m.js +1 -0
  7. package/.output/public/_nuxt/{DdPeifHR.js → B4Fia4FB.js} +1 -1
  8. package/.output/public/_nuxt/B7aqqzkY.js +1 -0
  9. package/.output/public/_nuxt/BJ-fxrSw.js +1 -0
  10. package/.output/public/_nuxt/{DPDqAD1e.js → BSXx2vqR.js} +1 -1
  11. package/.output/public/_nuxt/{CdSgfcYR.js → BVZjSVs2.js} +1 -1
  12. package/.output/public/_nuxt/{DP6bdyIp.js → BVzDoF8t.js} +1 -1
  13. package/.output/public/_nuxt/BYL0Rjqj.js +7 -0
  14. package/.output/public/_nuxt/{CXmkVXS5.js → BjVLsC3M.js} +1 -1
  15. package/.output/public/_nuxt/{7ZABjMRh2.js → BkfchkK62.js} +1 -1
  16. package/.output/public/_nuxt/BnVoQ74r.js +1 -0
  17. package/.output/public/_nuxt/Bnp4vIAf.js +1 -0
  18. package/.output/public/_nuxt/BsMpJf7S.js +70 -0
  19. package/.output/public/_nuxt/{Z8k0uMSI.js → Bt_HDizI.js} +1 -1
  20. package/.output/public/_nuxt/Bu-P92Pe.js +18 -0
  21. package/.output/public/_nuxt/ButLXkjo.js +2 -0
  22. package/.output/public/_nuxt/{D8DDDzV62.js → C2iWjzEC2.js} +1 -1
  23. package/.output/public/_nuxt/{HWXLx5Hz.js → C8dxXc6K.js} +5 -5
  24. package/.output/public/_nuxt/CGdPdJPP.js +1 -0
  25. package/.output/public/_nuxt/{CN7Zh8GQ.js → CRGlf1Gb.js} +1 -1
  26. package/.output/public/_nuxt/{DSBfvCi5.js → CblLEiCZ.js} +7 -7
  27. package/.output/public/_nuxt/Cd15nPnG2.js +1 -0
  28. package/.output/public/_nuxt/{OwJ1LJkF.js → CsCpu2Zh.js} +1 -1
  29. package/.output/public/_nuxt/CvbHIGQY2.js +1 -0
  30. package/.output/public/_nuxt/Cyk3du4K2.js +1 -0
  31. package/.output/public/_nuxt/{DVQAz9WI.js → D4qXvjuV.js} +2 -2
  32. package/.output/public/_nuxt/{CfIXY-ET.js → DCEyMaN-.js} +1 -1
  33. package/.output/public/_nuxt/{BFYNhG9S.js → DCXIGxzT.js} +1 -1
  34. package/.output/public/_nuxt/{B9aPoQvt.js → DM8DS9MA.js} +1 -1
  35. package/.output/public/_nuxt/{ChnfyQHz.js → DNzaswei.js} +1 -1
  36. package/.output/public/_nuxt/{CrFGZYVB2.js → DYZBdSSg2.js} +1 -1
  37. package/.output/public/_nuxt/{dObsRdSQ.js → DZk24ego.js} +1 -1
  38. package/.output/public/_nuxt/{CyygA0q4.js → Dc46i75T.js} +4 -4
  39. package/.output/public/_nuxt/DeYsUzhr.js +1 -0
  40. package/.output/public/_nuxt/Dk6pq9JB2.js +1 -0
  41. package/.output/public/_nuxt/{ByGNWgAr.js → Do88WZG2.js} +3 -3
  42. package/.output/public/_nuxt/{R_WxTozV2.js → Du-eSpo2.js} +1 -1
  43. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +1 -0
  44. package/.output/public/_nuxt/R_Wv_Nd9.js +1 -0
  45. package/.output/public/_nuxt/{Bsc69G4x.js → VnIWJ0ts.js} +3 -3
  46. package/.output/public/_nuxt/_id_.BzKMZnLe.css +1 -0
  47. package/.output/public/_nuxt/_id_.CbpDAWRh.css +1 -0
  48. package/.output/public/_nuxt/{_wsId_.DET_GinP.css → _wsId_.COUzMXpP.css} +1 -1
  49. package/.output/public/_nuxt/agents.BlejnOOC.css +1 -0
  50. package/.output/public/_nuxt/builds/latest.json +1 -1
  51. package/.output/public/_nuxt/builds/meta/e5bb1803-86d9-43b3-85be-dc787dc9a978.json +1 -0
  52. package/.output/public/_nuxt/daq.zZ8GR433.css +1 -0
  53. package/.output/public/_nuxt/{default.D17kXlD6.css → default.V3_hUJq1.css} +1 -1
  54. package/.output/public/_nuxt/{entry.DvlXlPwx.css → entry.5qf6EqfN.css} +1 -1
  55. package/.output/public/_nuxt/{B4GHHF6d2.js → fQUs58kX2.js} +1 -1
  56. package/.output/public/_nuxt/p7wSGMtc.js +1 -0
  57. package/.output/public/_nuxt/tRBT-plo.js +1 -0
  58. package/.output/public/_nuxt/workshop.3kAcLB_M.css +1 -0
  59. package/.output/server/chunks/_/SearchOutlined.mjs +4 -4
  60. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  61. package/.output/server/chunks/_/character-asset.repo.mjs +3 -6
  62. package/.output/server/chunks/_/character-asset.repo.mjs.map +1 -1
  63. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  64. package/.output/server/chunks/_/nitro.mjs +12807 -9814
  65. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  66. package/.output/server/chunks/_/scene-layout.repo.mjs +4 -10
  67. package/.output/server/chunks/_/scene-layout.repo.mjs.map +1 -1
  68. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs → Col-biaNnEPf.mjs} +2 -2
  69. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs.map → Col-biaNnEPf.mjs.map} +1 -1
  70. package/.output/server/chunks/build/{OmpTerminalPanel-B_SYhmgb.mjs → OmpTerminalPanel-COphA1br.mjs} +20 -19
  71. package/.output/server/chunks/build/OmpTerminalPanel-COphA1br.mjs.map +1 -0
  72. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs → TownView-B5KifIaT.mjs} +5 -5
  73. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs.map → TownView-B5KifIaT.mjs.map} +1 -1
  74. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs → _id_-C-ewLgfl.mjs} +120 -120
  75. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs.map → _id_-C-ewLgfl.mjs.map} +1 -1
  76. package/.output/server/chunks/build/{_id_-CWLFGZjV.mjs → _id_-Ct4Jhvl1.mjs} +43 -39
  77. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +1 -0
  78. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs → _wsId_-CanI_6Su.mjs} +591 -53
  79. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs.map → _wsId_-CanI_6Su.mjs.map} +1 -1
  80. package/.output/server/chunks/build/{agents-D4l1icvn.mjs → agents-DSOptxXA.mjs} +146 -91
  81. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +1 -0
  82. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs → alert-qJnjyRcP.mjs} +3 -3
  83. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs.map → alert-qJnjyRcP.mjs.map} +1 -1
  84. package/.output/server/chunks/build/{button-BhbX5ACI.mjs → button-DEcZFcqN.mjs} +3 -3
  85. package/.output/server/chunks/build/{button-BhbX5ACI.mjs.map → button-DEcZFcqN.mjs.map} +1 -1
  86. package/.output/server/chunks/build/{card-l4BbX67w.mjs → card-Dipvaykh.mjs} +5 -5
  87. package/.output/server/chunks/build/{card-l4BbX67w.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  88. package/.output/server/chunks/build/{channel-templates-DqjtC-R0.mjs → channel-templates-BK0KuPOd.mjs} +13 -12
  89. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +1 -0
  90. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs → checkbox-dzcpU_Cd.mjs} +4 -4
  91. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs.map → checkbox-dzcpU_Cd.mjs.map} +1 -1
  92. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs → daq-D9RA_uze.mjs} +103 -103
  93. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs.map → daq-D9RA_uze.mjs.map} +1 -1
  94. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs +2 -2
  95. package/.output/server/chunks/build/{default-CKJWhkot.mjs → default-BfWGTlbj.mjs} +81 -23
  96. package/.output/server/chunks/build/{default-CKJWhkot.mjs.map → default-BfWGTlbj.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{drawer-CVValqoh.mjs → drawer-Cmh90erI.mjs} +3 -3
  98. package/.output/server/chunks/build/{drawer-CVValqoh.mjs.map → drawer-Cmh90erI.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs → dropdown-CGQ0KAzA.mjs} +2 -2
  100. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs.map → dropdown-CGQ0KAzA.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs → dropdown-vhn1NPFs.mjs} +4 -4
  102. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs.map → dropdown-vhn1NPFs.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs → input-number-Bd55elNN.mjs} +5 -5
  104. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{input--KMeLYqZ.mjs → input-sf_BT6o6.mjs} +3 -3
  106. package/.output/server/chunks/build/{input--KMeLYqZ.mjs.map → input-sf_BT6o6.mjs.map} +1 -1
  107. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs +1 -1
  108. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs → menu-WCrlpYVh.mjs} +3 -3
  109. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs.map → menu-WCrlpYVh.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs → modal-yvUquPj5.mjs} +4 -4
  111. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs.map → modal-yvUquPj5.mjs.map} +1 -1
  112. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs → monitor-MIOvsyLa.mjs} +21 -21
  113. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs.map → monitor-MIOvsyLa.mjs.map} +1 -1
  114. package/.output/server/chunks/build/pages-DR2bzczM.mjs +1 -1
  115. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs → plugins-DnOBIWGg.mjs} +7 -7
  116. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs.map → plugins-DnOBIWGg.mjs.map} +1 -1
  117. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs → popconfirm-CRaHcz5O.mjs} +4 -4
  118. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs.map → popconfirm-CRaHcz5O.mjs.map} +1 -1
  119. package/.output/server/chunks/build/{useWorkshopApi-Bh5VUHWu.mjs → segmented-DPe9ZzLO.mjs} +7 -78
  120. package/.output/server/chunks/build/segmented-DPe9ZzLO.mjs.map +1 -0
  121. package/.output/server/chunks/build/{select-D7H2ysgT.mjs → select-D-CeE5vY.mjs} +3 -3
  122. package/.output/server/chunks/build/{select-D7H2ysgT.mjs.map → select-D-CeE5vY.mjs.map} +1 -1
  123. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs → settings-DA8IkGLo.mjs} +11 -11
  124. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs.map → settings-DA8IkGLo.mjs.map} +1 -1
  125. package/.output/server/chunks/build/{space-DCwIlnkI.mjs → space-CCBYAkXt.mjs} +2 -2
  126. package/.output/server/chunks/build/{space-DCwIlnkI.mjs.map → space-CCBYAkXt.mjs.map} +1 -1
  127. package/.output/server/chunks/build/{switch-VC0m9ede.mjs → switch-CelRXpcy.mjs} +3 -3
  128. package/.output/server/chunks/build/{switch-VC0m9ede.mjs.map → switch-CelRXpcy.mjs.map} +1 -1
  129. package/.output/server/chunks/build/{table-BksLg3Q_.mjs → table-Cswq-l2r.mjs} +10 -10
  130. package/.output/server/chunks/build/{table-BksLg3Q_.mjs.map → table-Cswq-l2r.mjs.map} +1 -1
  131. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs → tabs-BM3tAh_J.mjs} +5 -5
  132. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  133. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs → tag-NO9jEqKy.mjs} +4 -4
  134. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  135. package/.output/server/chunks/build/{teams-QR3BBF7A.mjs → teams-BhSKBBBM.mjs} +15 -14
  136. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +1 -0
  137. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs → tokens-D_eyxmcv.mjs} +16 -16
  138. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs.map → tokens-D_eyxmcv.mjs.map} +1 -1
  139. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -1
  140. package/.output/server/chunks/build/{town-_4tEEEVW.mjs → town-DPtOPRRO.mjs} +4 -4
  141. package/.output/server/chunks/build/{town-_4tEEEVW.mjs.map → town-DPtOPRRO.mjs.map} +1 -1
  142. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs +1 -1
  143. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs +1 -1
  144. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +42 -0
  145. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +1 -0
  146. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +81 -0
  147. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs.map +1 -0
  148. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs +1 -1
  149. package/.output/server/chunks/build/user-Dk-ytEUV.mjs +1 -1
  150. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs → users-CmVvb1oq.mjs} +16 -16
  151. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs.map → users-CmVvb1oq.mjs.map} +1 -1
  152. package/.output/server/chunks/build/{workshop-k0XZTFKg.mjs → workshop-D5CQj2A8.mjs} +53 -47
  153. package/.output/server/chunks/build/workshop-D5CQj2A8.mjs.map +1 -0
  154. package/.output/server/chunks/build/workspaces-IfORCDJE.mjs +1 -1
  155. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  156. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  157. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  159. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  160. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  161. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  162. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  163. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/system/index.get.mjs +3 -3
  165. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -1
  167. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
  168. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -1
  170. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -1
  172. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  173. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
  174. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  175. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
  176. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
  180. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  181. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +25 -0
  182. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -0
  183. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  184. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  185. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -14
  197. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  198. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +39 -0
  199. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -0
  200. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -2
  209. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -2
  211. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -2
  213. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -3
  214. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  237. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  238. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  239. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  240. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  241. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  242. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  243. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +9 -2
  244. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  245. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -1
  246. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  247. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -2
  248. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -2
  249. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -2
  250. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +7 -4
  251. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  252. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
  253. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
  254. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -2
  255. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -2
  256. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  257. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -2
  258. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  259. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  260. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  261. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  262. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  263. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  264. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -2
  265. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  266. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  267. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -2
  268. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -2
  269. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  270. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  271. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  272. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  273. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -2
  274. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -2
  275. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -2
  276. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  277. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  278. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  279. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  280. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -2
  281. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  282. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
  283. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
  284. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
  285. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  286. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  287. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  288. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  289. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  290. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  291. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  292. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  293. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  294. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  295. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  296. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  297. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -2
  298. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  299. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
  300. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  301. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  302. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  303. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  304. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  305. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  306. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  307. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  308. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  309. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +247 -0
  310. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -0
  311. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +27 -0
  312. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -0
  313. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -2
  314. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +20 -8
  315. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -1
  319. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  320. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -2
  323. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -2
  324. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  325. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -2
  326. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  327. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  329. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  330. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  331. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -1
  332. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -1
  334. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  335. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  336. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  337. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
  338. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
  339. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  340. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  341. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  342. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  343. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  344. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  345. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  346. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  347. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  348. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  349. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  350. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  352. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  354. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  355. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  356. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  357. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  358. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  359. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  360. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
  361. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  362. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  363. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  364. package/.output/server/chunks/routes/renderer.mjs +2 -2
  365. package/.output/server/chunks/virtual/entry.mjs +132 -114
  366. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  367. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  368. package/.output/server/index.mjs +1 -1
  369. package/.output/server/package.json +1 -1
  370. package/README-zh.md +27 -7
  371. package/README.md +455 -435
  372. package/app/components/AppHeader.vue +56 -2
  373. package/app/components/workshop/ChannelSessionList.vue +703 -593
  374. package/app/components/workshop/terminal/OmpTerminalPanel.vue +2 -1
  375. package/app/composables/workshop/useLocalTime.ts +16 -0
  376. package/app/composables/workshop/useSceneLayouts.ts +2 -1
  377. package/app/composables/workshop/useWorkshopApi.ts +249 -224
  378. package/app/pages/daq/[id].vue +7 -6
  379. package/app/pages/daq/index.vue +2 -2
  380. package/app/pages/dcw/[id].vue +3 -3
  381. package/app/pages/workshop/agents.vue +432 -382
  382. package/app/pages/workshop/index.vue +25 -6
  383. package/bin/aw.mjs +0 -0
  384. package/cli/aw.mjs +8 -1
  385. package/cli/commands/stop.mjs +7 -4
  386. package/cli/commands/tui.mjs +10 -1
  387. package/cli/core/registry.mjs +5 -3
  388. package/config.yml +144 -134
  389. package/docs/tui.md +1 -1
  390. package/i18n/dicts/settings.json +4 -0
  391. package/i18n/locales/en.ts +9 -0
  392. package/i18n/locales/zh-CN.ts +9 -0
  393. package/package.json +148 -140
  394. package/scripts/_dbg-catalog-smoke.ts +20 -0
  395. package/scripts/_dbg-codex-handshake.ts +30 -0
  396. package/scripts/_dbg-codex-probe.mjs +58 -0
  397. package/scripts/_dbg-codex-sandbox.ts +58 -0
  398. package/scripts/_dbg-codex-turn.ts +65 -0
  399. package/scripts/_dbg-dsh-probe.mjs +31 -0
  400. package/scripts/_dbg-interval-config.mjs +145 -0
  401. package/scripts/_dbg-interval-scenario.mjs +126 -0
  402. package/scripts/_dbg-line-spawn.ts +31 -0
  403. package/scripts/_dbg-live-engine-probe.mjs +80 -0
  404. package/scripts/_dbg-mcp-bridge-probe.mjs +147 -0
  405. package/scripts/_dbg-opencode-sse.mjs +101 -0
  406. package/scripts/_dbg-opencode-start.ts +57 -0
  407. package/scripts/_dbg-plugin-matrix.mjs +212 -0
  408. package/scripts/_dbg-protocol-matrix.mjs +425 -0
  409. package/scripts/_dbg-real-scenario-timeline.log +123 -0
  410. package/scripts/_dbg-registry-smoke.ts +14 -0
  411. package/scripts/_dbg-setup-e2e.mjs +88 -0
  412. package/scripts/_dbg-sim-keeper.mjs +100 -0
  413. package/scripts/_dbg-team-drill.mjs +173 -0
  414. package/scripts/dev-guard.mjs +11 -3
  415. package/scripts/dev-protocol-simulators.mjs +28 -1
  416. package/scripts/e2e-harness-provider-task.mjs +126 -0
  417. package/scripts/e2e-multi-harness.ts +374 -0
  418. package/scripts/e2e-multiharness-team.mjs +319 -0
  419. package/scripts/e2e-plc-scenario.mjs +292 -0
  420. package/scripts/e2e-real-scenario.mjs +452 -0
  421. package/scripts/migrate-local-time.mjs +123 -0
  422. package/scripts/start.mjs +30 -2
  423. package/server/api/system/settings/index.get.ts +3 -3
  424. package/server/api/users/setup-status.get.ts +8 -0
  425. package/server/api/workshop/agent-tools/invoke.post.ts +27 -41
  426. package/server/api/workshop/agent-tools/list.get.ts +25 -0
  427. package/server/api/workshop/channels/[id]/index.patch.ts +38 -30
  428. package/server/api/workshop/daq/[id]/samples.get.ts +8 -3
  429. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -0
  430. package/server/api/workshop/harnesses.get.ts +12 -0
  431. package/server/api/workshop/hitl/respond.post.ts +87 -67
  432. package/server/api/workshop/ws.ts +13 -0
  433. package/server/data/daqs.json +1421 -19
  434. package/server/data/dcw-lines.json +273 -0
  435. package/server/data/dcw-products.json +224 -0
  436. package/server/data/dcw-recipes.json +868 -0
  437. package/server/data/dcw-rollback.json +1177 -1
  438. package/server/data/dcw-runs.json +3032 -2834
  439. package/server/data/dcw-writes.json +1116 -0
  440. package/server/data/dcws.json +3447 -297
  441. package/server/data/line-runs.json +52 -2
  442. package/server/harness/aw-mcp-bridge.mjs +153 -0
  443. package/server/plugins/00-local-time.ts +10 -0
  444. package/server/plugins/aw-plugins.ts +3 -0
  445. package/server/plugins/backup.ts +116 -97
  446. package/server/plugins/dev-stability-guard.ts +24 -15
  447. package/server/plugins/retention.ts +1 -0
  448. package/server/plugins/security.ts +46 -29
  449. package/server/plugins/workshop.ts +156 -153
  450. package/server/repositories/user.repository.ts +15 -22
  451. package/server/services/system-config.ts +32 -6
  452. package/server/services/user.service.ts +8 -3
  453. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +1 -0
  454. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +14 -0
  455. package/server/services/workshop/agents/adapters/line-spawn.ts +111 -0
  456. package/server/services/workshop/agents/adapters/stdio-jsonrpc.ts +316 -0
  457. package/server/services/workshop/agents/agent-interface.ts +17 -0
  458. package/server/services/workshop/agents/codex-agent.ts +822 -0
  459. package/server/services/workshop/agents/dsh-agent.ts +670 -0
  460. package/server/services/workshop/agents/factory.ts +4 -16
  461. package/server/services/workshop/agents/harness-env.ts +54 -0
  462. package/server/services/workshop/agents/harness-models.ts +270 -0
  463. package/server/services/workshop/agents/host-tool-bridge.ts +612 -0
  464. package/server/services/workshop/agents/industrial-tools.ts +7 -1
  465. package/server/services/workshop/agents/node-bindings.repo.ts +4 -5
  466. package/server/services/workshop/agents/omp-agent.ts +1178 -1957
  467. package/server/services/workshop/agents/opencode-agent.ts +987 -0
  468. package/server/services/workshop/agents/prompt-builder.ts +393 -0
  469. package/server/services/workshop/agents/registry.ts +125 -0
  470. package/server/services/workshop/assets/character-asset.repo.ts +3 -5
  471. package/server/services/workshop/assets/device-twin.repo.ts +3 -5
  472. package/server/services/workshop/daq/daq-controller.ts +38 -6
  473. package/server/services/workshop/daq/daq-node.repo.ts +3 -5
  474. package/server/services/workshop/daq/daq-node.ts +3 -3
  475. package/server/services/workshop/daq/daq-runtime.ts +4 -3
  476. package/server/services/workshop/daq/daq-templates.ts +3 -5
  477. package/server/services/workshop/daq/drivers.ts +41 -12
  478. package/server/services/workshop/daq/storage/sqlite.adapter.ts +313 -309
  479. package/server/services/workshop/db/backup-registry.ts +33 -0
  480. package/server/services/workshop/db/channel.repo.ts +104 -101
  481. package/server/services/workshop/db/database.ts +956 -949
  482. package/server/services/workshop/dcw/dcw-controller.ts +5 -1
  483. package/server/services/workshop/dcw/dcw-line.repo.ts +4 -11
  484. package/server/services/workshop/dcw/dcw-node.repo.ts +3 -5
  485. package/server/services/workshop/dcw/dcw-node.ts +13 -1
  486. package/server/services/workshop/dcw/dcw-product.repo.ts +3 -4
  487. package/server/services/workshop/dcw/dcw-recipe.repo.ts +3 -19
  488. package/server/services/workshop/dcw/dcw-templates.ts +3 -5
  489. package/server/services/workshop/dcw/drivers.ts +37 -13
  490. package/server/services/workshop/dcw/line-run.ts +3 -5
  491. package/server/services/workshop/dcw/recipe-rollback.repo.ts +4 -10
  492. package/server/services/workshop/json-store.mjs +72 -0
  493. package/server/services/workshop/plugins/host.mjs +2 -1
  494. package/server/services/workshop/runtime/agent-runtime.ts +44 -0
  495. package/server/services/workshop/runtime/manager.ts +2953 -2868
  496. package/server/services/workshop/scene/scene-layout.repo.ts +4 -11
  497. package/server/services/workshop/settings.ts +30 -0
  498. package/shared/config/schema.json +9 -0
  499. package/shared/config/single-instance.mjs +5 -1
  500. package/shared/local-time.mjs +36 -0
  501. package/shared/workshop-protocol.ts +11 -5
  502. package/tui/aw-tui.mjs +28 -10
  503. package/tui/components/hitl-card.mjs +47 -36
  504. package/tui/lib/ws.mjs +2 -1
  505. package/.output/public/_nuxt/9X0fVBD7.js +0 -57
  506. package/.output/public/_nuxt/B6M2WJWm2.js +0 -1
  507. package/.output/public/_nuxt/B9Yie5HN.js +0 -2
  508. package/.output/public/_nuxt/BF9XPEuw.js +0 -1
  509. package/.output/public/_nuxt/BbQornXa.js +0 -1
  510. package/.output/public/_nuxt/Bxgaym6j.js +0 -1
  511. package/.output/public/_nuxt/Bxh5nf8j.js +0 -1
  512. package/.output/public/_nuxt/CXLI50Sq.js +0 -1
  513. package/.output/public/_nuxt/CdfAP_IH2.js +0 -1
  514. package/.output/public/_nuxt/Ce1zyNYu.js +0 -1
  515. package/.output/public/_nuxt/D-Ne4C9a.js +0 -1
  516. package/.output/public/_nuxt/DEHNjlTq2.js +0 -1
  517. package/.output/public/_nuxt/DFnGFEav.js +0 -18
  518. package/.output/public/_nuxt/DYWgGHNo.js +0 -7
  519. package/.output/public/_nuxt/OmpTerminalPanel.Bc9GjNU5.css +0 -1
  520. package/.output/public/_nuxt/W1E3-5ML.js +0 -14
  521. package/.output/public/_nuxt/XVB9_zwP.js +0 -1
  522. package/.output/public/_nuxt/Xaf_HIR3.js +0 -1
  523. package/.output/public/_nuxt/_id_.BeqSLvl_.css +0 -1
  524. package/.output/public/_nuxt/_id_.DN3U6EF9.css +0 -1
  525. package/.output/public/_nuxt/agents.BJwgTLFZ.css +0 -1
  526. package/.output/public/_nuxt/builds/meta/55c10854-ee0e-4be4-924b-a1b0e100fe11.json +0 -1
  527. package/.output/public/_nuxt/daq.BXsnevQv.css +0 -1
  528. package/.output/public/_nuxt/workshop.B98sHiJq.css +0 -1
  529. package/.output/public/_nuxt/yIKY_V1P.js +0 -1
  530. package/.output/server/chunks/build/OmpTerminalPanel-B_SYhmgb.mjs.map +0 -1
  531. package/.output/server/chunks/build/_id_-CWLFGZjV.mjs.map +0 -1
  532. package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +0 -1
  533. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +0 -1
  534. package/.output/server/chunks/build/interval-WlxgjTzO.mjs +0 -9
  535. package/.output/server/chunks/build/interval-WlxgjTzO.mjs.map +0 -1
  536. package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +0 -1
  537. package/.output/server/chunks/build/useWorkshopApi-Bh5VUHWu.mjs.map +0 -1
  538. package/.output/server/chunks/build/workshop-k0XZTFKg.mjs.map +0 -1
@@ -17,9 +17,9 @@
17
17
  "posZ": 1360,
18
18
  "lineId": "ln-af002514",
19
19
  "value": 182,
20
- "readValue": 182,
21
- "lastReadAt": "2026-09-04T05:35:29.869Z",
22
- "lastReadError": null,
20
+ "readValue": 180,
21
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
22
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
23
23
  "lastAckAt": "2026-09-03T11:18:01.215Z",
24
24
  "lastWriteAt": "2026-09-03T11:18:01.215Z",
25
25
  "state": "ok",
@@ -42,9 +42,9 @@
42
42
  "driverConfig": {},
43
43
  "lineId": "ln-17b2d0ae",
44
44
  "value": 162,
45
- "readValue": 182,
46
- "lastReadAt": "2026-09-04T05:35:29.869Z",
47
- "lastReadError": null,
45
+ "readValue": 180,
46
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
47
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
48
48
  "lastAckAt": "2026-08-30T10:04:50.179Z",
49
49
  "lastWriteAt": "2026-08-30T10:04:50.179Z",
50
50
  "state": "idle",
@@ -69,9 +69,9 @@
69
69
  "posZ": 1360,
70
70
  "lineId": "ln-af002514",
71
71
  "value": 0.92,
72
- "readValue": 182,
73
- "lastReadAt": "2026-09-04T05:35:29.869Z",
74
- "lastReadError": null,
72
+ "readValue": 180,
73
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
74
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
75
75
  "lastAckAt": "2026-09-03T11:18:01.287Z",
76
76
  "lastWriteAt": "2026-09-03T11:18:01.287Z",
77
77
  "state": "ok",
@@ -94,9 +94,9 @@
94
94
  "driverConfig": {},
95
95
  "lineId": "ln-9569b340",
96
96
  "value": 182,
97
- "readValue": 182,
98
- "lastReadAt": "2026-09-04T05:35:29.869Z",
99
- "lastReadError": null,
97
+ "readValue": 180,
98
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
99
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
100
100
  "lastAckAt": "2026-08-29T04:36:21.159Z",
101
101
  "lastWriteAt": "2026-08-29T04:36:21.159Z",
102
102
  "state": "idle",
@@ -119,9 +119,9 @@
119
119
  "driverConfig": {},
120
120
  "lineId": "ln-52abf49b",
121
121
  "value": 182,
122
- "readValue": 182,
123
- "lastReadAt": "2026-09-04T05:35:29.869Z",
124
- "lastReadError": null,
122
+ "readValue": 180,
123
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
124
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
125
125
  "lastAckAt": "2026-08-29T04:37:32.352Z",
126
126
  "lastWriteAt": "2026-08-29T04:37:32.352Z",
127
127
  "state": "idle",
@@ -155,8 +155,8 @@
155
155
  },
156
156
  "lineId": "ln-6a48c16d",
157
157
  "value": 182,
158
- "readValue": 150.1,
159
- "lastReadAt": "2026-09-04T05:35:29.869Z",
158
+ "readValue": 150,
159
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
160
160
  "lastReadError": null,
161
161
  "lastAckAt": "2026-08-29T13:16:25.564Z",
162
162
  "lastWriteAt": "2026-08-29T13:16:25.564Z",
@@ -191,8 +191,8 @@
191
191
  },
192
192
  "lineId": "ln-feef6e4d",
193
193
  "value": 182,
194
- "readValue": 150.1,
195
- "lastReadAt": "2026-09-04T05:35:29.869Z",
194
+ "readValue": 150,
195
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
196
196
  "lastReadError": null,
197
197
  "lastAckAt": "2026-08-29T14:12:02.609Z",
198
198
  "lastWriteAt": "2026-08-31T14:26:24.124Z",
@@ -228,8 +228,8 @@
228
228
  "lineId": "ln-06f06656",
229
229
  "semantics": "PROBE-SEM-7741:熔体温度决定塑化均化质量,波动超过4℃将导致制品内应力超标",
230
230
  "value": 180,
231
- "readValue": 150.1,
232
- "lastReadAt": "2026-09-04T05:35:29.869Z",
231
+ "readValue": 150,
232
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
233
233
  "lastReadError": null,
234
234
  "lastAckAt": "2026-08-29T16:55:05.852Z",
235
235
  "lastWriteAt": "2026-08-29T16:55:05.852Z",
@@ -253,9 +253,9 @@
253
253
  "driverConfig": {},
254
254
  "lineId": "",
255
255
  "value": 180,
256
- "readValue": 182,
257
- "lastReadAt": "2026-09-04T05:35:29.869Z",
258
- "lastReadError": null,
256
+ "readValue": 180,
257
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
258
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
259
259
  "lastAckAt": "2026-08-30T08:35:56.489Z",
260
260
  "lastWriteAt": "2026-08-30T08:35:56.489Z",
261
261
  "state": "idle",
@@ -289,8 +289,8 @@
289
289
  },
290
290
  "lineId": "",
291
291
  "value": 175,
292
- "readValue": 150.1,
293
- "lastReadAt": "2026-09-04T05:35:29.869Z",
292
+ "readValue": 150,
293
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
294
294
  "lastReadError": null,
295
295
  "lastAckAt": "2026-08-30T08:35:56.720Z",
296
296
  "lastWriteAt": "2026-08-30T08:35:56.720Z",
@@ -314,9 +314,9 @@
314
314
  "driverConfig": {},
315
315
  "lineId": "",
316
316
  "value": null,
317
- "readValue": 182,
318
- "lastReadAt": "2026-09-04T05:35:29.869Z",
319
- "lastReadError": null,
317
+ "readValue": 180,
318
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
319
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
320
320
  "lastAckAt": null,
321
321
  "lastWriteAt": null,
322
322
  "state": "idle",
@@ -339,9 +339,9 @@
339
339
  "driverConfig": {},
340
340
  "lineId": "",
341
341
  "value": 180,
342
- "readValue": 182,
343
- "lastReadAt": "2026-09-04T05:35:29.869Z",
344
- "lastReadError": null,
342
+ "readValue": 180,
343
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
344
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
345
345
  "lastAckAt": "2026-08-30T08:40:09.061Z",
346
346
  "lastWriteAt": "2026-08-30T08:40:09.061Z",
347
347
  "state": "idle",
@@ -375,8 +375,8 @@
375
375
  },
376
376
  "lineId": "",
377
377
  "value": 175,
378
- "readValue": 150.1,
379
- "lastReadAt": "2026-09-04T05:35:29.869Z",
378
+ "readValue": 150,
379
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
380
380
  "lastReadError": null,
381
381
  "lastAckAt": "2026-08-30T08:40:09.232Z",
382
382
  "lastWriteAt": "2026-08-30T08:40:09.232Z",
@@ -400,9 +400,9 @@
400
400
  "driverConfig": {},
401
401
  "lineId": "",
402
402
  "value": null,
403
- "readValue": 182,
404
- "lastReadAt": "2026-09-04T05:35:29.869Z",
405
- "lastReadError": null,
403
+ "readValue": 180,
404
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
405
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
406
406
  "lastAckAt": null,
407
407
  "lastWriteAt": null,
408
408
  "state": "idle",
@@ -436,8 +436,8 @@
436
436
  },
437
437
  "lineId": "ln-af002514",
438
438
  "value": 180,
439
- "readValue": 150.1,
440
- "lastReadAt": "2026-09-04T05:35:29.869Z",
439
+ "readValue": 150,
440
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
441
441
  "lastReadError": null,
442
442
  "lastAckAt": "2026-08-31T04:09:38.997Z",
443
443
  "lastWriteAt": "2026-08-31T04:09:38.997Z",
@@ -461,9 +461,9 @@
461
461
  "driverConfig": {},
462
462
  "lineId": "ln-3aff4d75",
463
463
  "value": 182,
464
- "readValue": 182,
465
- "lastReadAt": "2026-09-04T05:35:29.869Z",
466
- "lastReadError": null,
464
+ "readValue": 180,
465
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
466
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
467
467
  "lastAckAt": "2026-08-31T15:03:29.913Z",
468
468
  "lastWriteAt": "2026-08-31T15:03:29.913Z",
469
469
  "state": "ok",
@@ -486,9 +486,9 @@
486
486
  "driverConfig": {},
487
487
  "lineId": "ln-427909b2",
488
488
  "value": 179,
489
- "readValue": 182,
490
- "lastReadAt": "2026-09-04T05:35:29.869Z",
491
- "lastReadError": null,
489
+ "readValue": 180,
490
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
491
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
492
492
  "lastAckAt": "2026-08-31T16:15:59.857Z",
493
493
  "lastWriteAt": "2026-08-31T16:15:59.857Z",
494
494
  "state": "ok",
@@ -511,9 +511,9 @@
511
511
  "driverConfig": {},
512
512
  "lineId": "ln-427909b2",
513
513
  "value": 173,
514
- "readValue": 182,
515
- "lastReadAt": "2026-09-04T05:35:29.869Z",
516
- "lastReadError": null,
514
+ "readValue": 180,
515
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
516
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
517
517
  "lastAckAt": "2026-08-31T16:16:00.128Z",
518
518
  "lastWriteAt": "2026-08-31T16:16:00.128Z",
519
519
  "state": "ok",
@@ -536,9 +536,9 @@
536
536
  "driverConfig": {},
537
537
  "lineId": "ln-29c185e7",
538
538
  "value": 182,
539
- "readValue": 182,
540
- "lastReadAt": "2026-09-04T05:35:29.869Z",
541
- "lastReadError": null,
539
+ "readValue": 180,
540
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
541
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
542
542
  "lastAckAt": "2026-08-31T16:20:13.708Z",
543
543
  "lastWriteAt": "2026-08-31T16:20:13.708Z",
544
544
  "state": "ok",
@@ -561,9 +561,9 @@
561
561
  "driverConfig": {},
562
562
  "lineId": "ln-29c185e7",
563
563
  "value": 320,
564
- "readValue": 182,
565
- "lastReadAt": "2026-09-04T05:35:29.869Z",
566
- "lastReadError": null,
564
+ "readValue": 180,
565
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
566
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
567
567
  "lastAckAt": "2026-08-31T16:20:13.858Z",
568
568
  "lastWriteAt": "2026-08-31T16:20:13.858Z",
569
569
  "state": "ok",
@@ -586,9 +586,9 @@
586
586
  "driverConfig": {},
587
587
  "lineId": "ln-d41a0d5e",
588
588
  "value": 175,
589
- "readValue": 182,
590
- "lastReadAt": "2026-09-04T05:35:29.869Z",
591
- "lastReadError": null,
589
+ "readValue": 180,
590
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
591
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
592
592
  "lastAckAt": "2026-08-31T16:22:50.138Z",
593
593
  "lastWriteAt": "2026-08-31T16:22:50.138Z",
594
594
  "state": "ok",
@@ -611,9 +611,9 @@
611
611
  "driverConfig": {},
612
612
  "lineId": "ln-d41a0d5e",
613
613
  "value": 173,
614
- "readValue": 182,
615
- "lastReadAt": "2026-09-04T05:35:29.869Z",
616
- "lastReadError": null,
614
+ "readValue": 180,
615
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
616
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
617
617
  "lastAckAt": "2026-08-31T16:22:49.717Z",
618
618
  "lastWriteAt": "2026-08-31T16:22:49.717Z",
619
619
  "state": "ok",
@@ -636,9 +636,9 @@
636
636
  "driverConfig": {},
637
637
  "lineId": "ln-4d38b02c",
638
638
  "value": 176,
639
- "readValue": 182,
640
- "lastReadAt": "2026-09-04T05:35:29.869Z",
641
- "lastReadError": null,
639
+ "readValue": 180,
640
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
641
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
642
642
  "lastAckAt": "2026-08-31T16:23:16.771Z",
643
643
  "lastWriteAt": "2026-08-31T16:23:16.771Z",
644
644
  "state": "ok",
@@ -661,9 +661,9 @@
661
661
  "driverConfig": {},
662
662
  "lineId": "ln-2d1adacd",
663
663
  "value": 175,
664
- "readValue": 182,
665
- "lastReadAt": "2026-09-04T05:35:29.869Z",
666
- "lastReadError": null,
664
+ "readValue": 180,
665
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
666
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
667
667
  "lastAckAt": "2026-08-31T16:24:30.386Z",
668
668
  "lastWriteAt": "2026-08-31T16:24:30.386Z",
669
669
  "state": "ok",
@@ -686,9 +686,9 @@
686
686
  "driverConfig": {},
687
687
  "lineId": "ln-2d1adacd",
688
688
  "value": 173,
689
- "readValue": 182,
690
- "lastReadAt": "2026-09-04T05:35:29.869Z",
691
- "lastReadError": null,
689
+ "readValue": 180,
690
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
691
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
692
692
  "lastAckAt": "2026-08-31T16:24:29.934Z",
693
693
  "lastWriteAt": "2026-08-31T16:24:29.934Z",
694
694
  "state": "ok",
@@ -711,9 +711,9 @@
711
711
  "driverConfig": {},
712
712
  "lineId": "ln-572ac0ff",
713
713
  "value": 175,
714
- "readValue": 182,
715
- "lastReadAt": "2026-09-04T05:35:29.869Z",
716
- "lastReadError": null,
714
+ "readValue": 180,
715
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
716
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
717
717
  "lastAckAt": "2026-08-31T16:27:33.818Z",
718
718
  "lastWriteAt": "2026-08-31T16:27:33.818Z",
719
719
  "state": "ok",
@@ -736,9 +736,9 @@
736
736
  "driverConfig": {},
737
737
  "lineId": "ln-572ac0ff",
738
738
  "value": 173,
739
- "readValue": 182,
740
- "lastReadAt": "2026-09-04T05:35:29.869Z",
741
- "lastReadError": null,
739
+ "readValue": 180,
740
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
741
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
742
742
  "lastAckAt": "2026-08-31T16:27:33.415Z",
743
743
  "lastWriteAt": "2026-08-31T16:27:33.415Z",
744
744
  "state": "ok",
@@ -761,9 +761,9 @@
761
761
  "driverConfig": {},
762
762
  "lineId": "ln-f8fee4c7",
763
763
  "value": null,
764
- "readValue": 182,
765
- "lastReadAt": "2026-09-04T05:35:29.869Z",
766
- "lastReadError": null,
764
+ "readValue": 180,
765
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
766
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
767
767
  "lastAckAt": null,
768
768
  "lastWriteAt": null,
769
769
  "state": "idle",
@@ -786,9 +786,9 @@
786
786
  "driverConfig": {},
787
787
  "lineId": "ln-f8fee4c7",
788
788
  "value": null,
789
- "readValue": 182,
790
- "lastReadAt": "2026-09-04T05:35:29.869Z",
791
- "lastReadError": null,
789
+ "readValue": 180,
790
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
791
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
792
792
  "lastAckAt": null,
793
793
  "lastWriteAt": null,
794
794
  "state": "idle",
@@ -811,9 +811,9 @@
811
811
  "driverConfig": {},
812
812
  "lineId": "ln-e132a42f",
813
813
  "value": 175,
814
- "readValue": 182,
815
- "lastReadAt": "2026-09-04T05:35:29.869Z",
816
- "lastReadError": null,
814
+ "readValue": 180,
815
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
816
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
817
817
  "lastAckAt": "2026-08-31T16:30:22.764Z",
818
818
  "lastWriteAt": "2026-08-31T16:30:22.764Z",
819
819
  "state": "ok",
@@ -836,9 +836,9 @@
836
836
  "driverConfig": {},
837
837
  "lineId": "ln-e132a42f",
838
838
  "value": 173,
839
- "readValue": 182,
840
- "lastReadAt": "2026-09-04T05:35:29.869Z",
841
- "lastReadError": null,
839
+ "readValue": 180,
840
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
841
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
842
842
  "lastAckAt": "2026-08-31T16:30:22.362Z",
843
843
  "lastWriteAt": "2026-08-31T16:30:22.362Z",
844
844
  "state": "ok",
@@ -861,9 +861,9 @@
861
861
  "driverConfig": {},
862
862
  "lineId": "ln-f178ca43",
863
863
  "value": 175,
864
- "readValue": 182,
865
- "lastReadAt": "2026-09-04T05:35:29.869Z",
866
- "lastReadError": null,
864
+ "readValue": 180,
865
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
866
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
867
867
  "lastAckAt": "2026-08-31T16:30:46.020Z",
868
868
  "lastWriteAt": "2026-08-31T16:30:46.020Z",
869
869
  "state": "ok",
@@ -886,9 +886,9 @@
886
886
  "driverConfig": {},
887
887
  "lineId": "ln-f178ca43",
888
888
  "value": 173,
889
- "readValue": 182,
890
- "lastReadAt": "2026-09-04T05:35:29.869Z",
891
- "lastReadError": null,
889
+ "readValue": 180,
890
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
891
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
892
892
  "lastAckAt": "2026-08-31T16:30:45.644Z",
893
893
  "lastWriteAt": "2026-08-31T16:30:45.644Z",
894
894
  "state": "ok",
@@ -911,9 +911,9 @@
911
911
  "driverConfig": {},
912
912
  "lineId": "ln-c9e7ccee",
913
913
  "value": 175,
914
- "readValue": 182,
915
- "lastReadAt": "2026-09-04T05:35:29.869Z",
916
- "lastReadError": null,
914
+ "readValue": 180,
915
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
916
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
917
917
  "lastAckAt": "2026-08-31T16:31:39.256Z",
918
918
  "lastWriteAt": "2026-08-31T16:31:39.256Z",
919
919
  "state": "ok",
@@ -936,9 +936,9 @@
936
936
  "driverConfig": {},
937
937
  "lineId": "ln-c9e7ccee",
938
938
  "value": 173,
939
- "readValue": 182,
940
- "lastReadAt": "2026-09-04T05:35:29.869Z",
941
- "lastReadError": null,
939
+ "readValue": 180,
940
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
941
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
942
942
  "lastAckAt": "2026-08-31T16:31:38.883Z",
943
943
  "lastWriteAt": "2026-08-31T16:31:38.883Z",
944
944
  "state": "ok",
@@ -963,9 +963,9 @@
963
963
  "posZ": 1070,
964
964
  "lineId": "ln-2398a086",
965
965
  "value": 174,
966
- "readValue": 182,
967
- "lastReadAt": "2026-09-04T05:35:29.869Z",
968
- "lastReadError": null,
966
+ "readValue": 180,
967
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
968
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
969
969
  "lastAckAt": "2026-08-31T16:50:16.266Z",
970
970
  "lastWriteAt": "2026-08-31T16:50:16.266Z",
971
971
  "state": "ok",
@@ -988,9 +988,9 @@
988
988
  "driverConfig": {},
989
989
  "lineId": "ln-1b52b78a",
990
990
  "value": 175,
991
- "readValue": 182,
992
- "lastReadAt": "2026-09-04T05:35:29.869Z",
993
- "lastReadError": null,
991
+ "readValue": 180,
992
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
993
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
994
994
  "lastAckAt": "2026-09-01T01:32:13.199Z",
995
995
  "lastWriteAt": "2026-09-01T01:32:13.199Z",
996
996
  "state": "ok",
@@ -1013,9 +1013,9 @@
1013
1013
  "driverConfig": {},
1014
1014
  "lineId": "ln-1b52b78a",
1015
1015
  "value": 173,
1016
- "readValue": 182,
1017
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1018
- "lastReadError": null,
1016
+ "readValue": 180,
1017
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1018
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1019
1019
  "lastAckAt": "2026-09-01T01:32:12.684Z",
1020
1020
  "lastWriteAt": "2026-09-01T01:32:12.684Z",
1021
1021
  "state": "ok",
@@ -1038,9 +1038,9 @@
1038
1038
  "driverConfig": {},
1039
1039
  "lineId": "ln-b689deb1",
1040
1040
  "value": 175,
1041
- "readValue": 182,
1042
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1043
- "lastReadError": null,
1041
+ "readValue": 180,
1042
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1043
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1044
1044
  "lastAckAt": "2026-09-01T02:24:40.946Z",
1045
1045
  "lastWriteAt": "2026-09-01T02:24:40.946Z",
1046
1046
  "state": "ok",
@@ -1063,9 +1063,9 @@
1063
1063
  "driverConfig": {},
1064
1064
  "lineId": "ln-b689deb1",
1065
1065
  "value": 173,
1066
- "readValue": 182,
1067
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1068
- "lastReadError": null,
1066
+ "readValue": 180,
1067
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1068
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1069
1069
  "lastAckAt": "2026-09-01T02:24:40.527Z",
1070
1070
  "lastWriteAt": "2026-09-01T02:24:40.527Z",
1071
1071
  "state": "ok",
@@ -1088,9 +1088,9 @@
1088
1088
  "driverConfig": {},
1089
1089
  "lineId": "ln-c377a6bf",
1090
1090
  "value": 175,
1091
- "readValue": 182,
1092
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1093
- "lastReadError": null,
1091
+ "readValue": 180,
1092
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1093
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1094
1094
  "lastAckAt": "2026-09-01T03:23:18.235Z",
1095
1095
  "lastWriteAt": "2026-09-01T03:23:18.235Z",
1096
1096
  "state": "ok",
@@ -1113,9 +1113,9 @@
1113
1113
  "driverConfig": {},
1114
1114
  "lineId": "ln-9224d3d7",
1115
1115
  "value": 175,
1116
- "readValue": 182,
1117
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1118
- "lastReadError": null,
1116
+ "readValue": 180,
1117
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1118
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1119
1119
  "lastAckAt": "2026-09-01T05:59:24.065Z",
1120
1120
  "lastWriteAt": "2026-09-01T05:59:24.065Z",
1121
1121
  "state": "ok",
@@ -1138,9 +1138,9 @@
1138
1138
  "driverConfig": {},
1139
1139
  "lineId": "ln-386c53ed",
1140
1140
  "value": 175,
1141
- "readValue": 182,
1142
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1143
- "lastReadError": null,
1141
+ "readValue": 180,
1142
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1143
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1144
1144
  "lastAckAt": "2026-09-01T06:05:53.065Z",
1145
1145
  "lastWriteAt": "2026-09-01T06:05:53.065Z",
1146
1146
  "state": "ok",
@@ -1163,9 +1163,9 @@
1163
1163
  "driverConfig": {},
1164
1164
  "lineId": "ln-5957f6db",
1165
1165
  "value": 175,
1166
- "readValue": 182,
1167
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1168
- "lastReadError": null,
1166
+ "readValue": 180,
1167
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1168
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1169
1169
  "lastAckAt": "2026-09-01T06:09:02.150Z",
1170
1170
  "lastWriteAt": "2026-09-01T06:09:02.150Z",
1171
1171
  "state": "ok",
@@ -1188,9 +1188,9 @@
1188
1188
  "driverConfig": {},
1189
1189
  "lineId": "ln-9ec42f08",
1190
1190
  "value": 175,
1191
- "readValue": 182,
1192
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1193
- "lastReadError": null,
1191
+ "readValue": 180,
1192
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1193
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1194
1194
  "lastAckAt": "2026-09-01T06:13:44.316Z",
1195
1195
  "lastWriteAt": "2026-09-01T06:13:44.316Z",
1196
1196
  "state": "ok",
@@ -1213,9 +1213,9 @@
1213
1213
  "driverConfig": {},
1214
1214
  "lineId": "ln-69e37924",
1215
1215
  "value": 175,
1216
- "readValue": 182,
1217
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1218
- "lastReadError": null,
1216
+ "readValue": 180,
1217
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1218
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1219
1219
  "lastAckAt": "2026-09-01T06:16:47.470Z",
1220
1220
  "lastWriteAt": "2026-09-01T06:16:47.470Z",
1221
1221
  "state": "ok",
@@ -1238,9 +1238,9 @@
1238
1238
  "driverConfig": {},
1239
1239
  "lineId": "ln-c269e692",
1240
1240
  "value": 175,
1241
- "readValue": 182,
1242
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1243
- "lastReadError": null,
1241
+ "readValue": 180,
1242
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1243
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1244
1244
  "lastAckAt": "2026-09-01T06:56:05.895Z",
1245
1245
  "lastWriteAt": "2026-09-01T06:56:05.895Z",
1246
1246
  "state": "ok",
@@ -1263,9 +1263,9 @@
1263
1263
  "driverConfig": {},
1264
1264
  "lineId": "ln-229d1637",
1265
1265
  "value": 175,
1266
- "readValue": 182,
1267
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1268
- "lastReadError": null,
1266
+ "readValue": 180,
1267
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1268
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1269
1269
  "lastAckAt": "2026-09-01T06:57:29.289Z",
1270
1270
  "lastWriteAt": "2026-09-01T06:57:29.289Z",
1271
1271
  "state": "ok",
@@ -1288,9 +1288,9 @@
1288
1288
  "driverConfig": {},
1289
1289
  "lineId": "ln-9546f91f",
1290
1290
  "value": 175,
1291
- "readValue": 182,
1292
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1293
- "lastReadError": null,
1291
+ "readValue": 180,
1292
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1293
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1294
1294
  "lastAckAt": "2026-09-01T07:00:25.060Z",
1295
1295
  "lastWriteAt": "2026-09-01T07:00:25.060Z",
1296
1296
  "state": "ok",
@@ -1313,9 +1313,9 @@
1313
1313
  "driverConfig": {},
1314
1314
  "lineId": "ln-087aad5b",
1315
1315
  "value": 175,
1316
- "readValue": 182,
1317
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1318
- "lastReadError": null,
1316
+ "readValue": 180,
1317
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1318
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1319
1319
  "lastAckAt": "2026-09-01T07:09:07.308Z",
1320
1320
  "lastWriteAt": "2026-09-01T07:09:07.308Z",
1321
1321
  "state": "ok",
@@ -1338,9 +1338,9 @@
1338
1338
  "driverConfig": {},
1339
1339
  "lineId": "ln-c1be3295",
1340
1340
  "value": null,
1341
- "readValue": 182,
1342
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1343
- "lastReadError": null,
1341
+ "readValue": 180,
1342
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1343
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1344
1344
  "lastAckAt": null,
1345
1345
  "lastWriteAt": null,
1346
1346
  "state": "idle",
@@ -1363,9 +1363,9 @@
1363
1363
  "driverConfig": {},
1364
1364
  "lineId": "ln-97d44f8a",
1365
1365
  "value": 175,
1366
- "readValue": 182,
1367
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1368
- "lastReadError": null,
1366
+ "readValue": 180,
1367
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1368
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1369
1369
  "lastAckAt": "2026-09-01T07:13:44.913Z",
1370
1370
  "lastWriteAt": "2026-09-01T07:13:44.913Z",
1371
1371
  "state": "ok",
@@ -1388,9 +1388,9 @@
1388
1388
  "driverConfig": {},
1389
1389
  "lineId": "ln-a9551770",
1390
1390
  "value": 175,
1391
- "readValue": 182,
1392
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1393
- "lastReadError": null,
1391
+ "readValue": 180,
1392
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1393
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1394
1394
  "lastAckAt": "2026-09-01T07:15:40.114Z",
1395
1395
  "lastWriteAt": "2026-09-01T07:15:40.114Z",
1396
1396
  "state": "ok",
@@ -1415,9 +1415,9 @@
1415
1415
  "posZ": 1704,
1416
1416
  "lineId": "ln-635c2cfa",
1417
1417
  "value": 174,
1418
- "readValue": 182,
1419
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1420
- "lastReadError": null,
1418
+ "readValue": 180,
1419
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1420
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1421
1421
  "lastAckAt": "2026-09-01T07:16:43.827Z",
1422
1422
  "lastWriteAt": "2026-09-01T07:16:43.827Z",
1423
1423
  "state": "ok",
@@ -1442,9 +1442,9 @@
1442
1442
  "posZ": 1704,
1443
1443
  "lineId": "ln-6f95b193",
1444
1444
  "value": 174,
1445
- "readValue": 182,
1446
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1447
- "lastReadError": null,
1445
+ "readValue": 180,
1446
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1447
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1448
1448
  "lastAckAt": "2026-09-01T07:17:39.977Z",
1449
1449
  "lastWriteAt": "2026-09-01T07:17:39.977Z",
1450
1450
  "state": "ok",
@@ -1469,9 +1469,9 @@
1469
1469
  "posZ": 1704,
1470
1470
  "lineId": "ln-b8caafb9",
1471
1471
  "value": 174,
1472
- "readValue": 182,
1473
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1474
- "lastReadError": null,
1472
+ "readValue": 180,
1473
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1474
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1475
1475
  "lastAckAt": "2026-09-01T07:21:29.346Z",
1476
1476
  "lastWriteAt": "2026-09-01T07:21:29.346Z",
1477
1477
  "state": "ok",
@@ -1496,9 +1496,9 @@
1496
1496
  "posZ": 1704,
1497
1497
  "lineId": "ln-cff04274",
1498
1498
  "value": 174,
1499
- "readValue": 182,
1500
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1501
- "lastReadError": null,
1499
+ "readValue": 180,
1500
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1501
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1502
1502
  "lastAckAt": "2026-09-01T07:23:03.311Z",
1503
1503
  "lastWriteAt": "2026-09-01T07:23:03.311Z",
1504
1504
  "state": "ok",
@@ -1523,9 +1523,9 @@
1523
1523
  "posZ": 1704,
1524
1524
  "lineId": "ln-4746929d",
1525
1525
  "value": 174,
1526
- "readValue": 182,
1527
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1528
- "lastReadError": null,
1526
+ "readValue": 180,
1527
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1528
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1529
1529
  "lastAckAt": "2026-09-01T07:28:13.909Z",
1530
1530
  "lastWriteAt": "2026-09-01T07:28:13.909Z",
1531
1531
  "state": "ok",
@@ -1548,9 +1548,9 @@
1548
1548
  "driverConfig": {},
1549
1549
  "lineId": "ln-fd22576a",
1550
1550
  "value": 175,
1551
- "readValue": 182,
1552
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1553
- "lastReadError": null,
1551
+ "readValue": 180,
1552
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1553
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1554
1554
  "lastAckAt": "2026-09-01T07:28:30.328Z",
1555
1555
  "lastWriteAt": "2026-09-01T07:28:30.328Z",
1556
1556
  "state": "ok",
@@ -1573,9 +1573,9 @@
1573
1573
  "driverConfig": {},
1574
1574
  "lineId": "ln-fd22576a",
1575
1575
  "value": 173,
1576
- "readValue": 182,
1577
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1578
- "lastReadError": null,
1576
+ "readValue": 180,
1577
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1578
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1579
1579
  "lastAckAt": "2026-09-01T07:28:29.957Z",
1580
1580
  "lastWriteAt": "2026-09-01T07:28:29.957Z",
1581
1581
  "state": "ok",
@@ -1598,9 +1598,9 @@
1598
1598
  "driverConfig": {},
1599
1599
  "lineId": "ln-4b84a228",
1600
1600
  "value": 180,
1601
- "readValue": 182,
1602
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1603
- "lastReadError": null,
1601
+ "readValue": 180,
1602
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1603
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1604
1604
  "lastAckAt": "2026-09-01T07:28:35.451Z",
1605
1605
  "lastWriteAt": "2026-09-01T07:28:35.451Z",
1606
1606
  "state": "ok",
@@ -1634,8 +1634,8 @@
1634
1634
  },
1635
1635
  "lineId": "",
1636
1636
  "value": 175,
1637
- "readValue": 150.1,
1638
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1637
+ "readValue": 150,
1638
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1639
1639
  "lastReadError": null,
1640
1640
  "lastAckAt": "2026-09-01T07:28:35.685Z",
1641
1641
  "lastWriteAt": "2026-09-01T07:28:35.685Z",
@@ -1659,9 +1659,9 @@
1659
1659
  "driverConfig": {},
1660
1660
  "lineId": "ln-4b84a228",
1661
1661
  "value": null,
1662
- "readValue": 182,
1663
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1664
- "lastReadError": null,
1662
+ "readValue": 180,
1663
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1664
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1665
1665
  "lastAckAt": null,
1666
1666
  "lastWriteAt": null,
1667
1667
  "state": "idle",
@@ -1684,9 +1684,9 @@
1684
1684
  "driverConfig": {},
1685
1685
  "lineId": "ln-2d785bd8",
1686
1686
  "value": 176,
1687
- "readValue": 182,
1688
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1689
- "lastReadError": null,
1687
+ "readValue": 180,
1688
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1689
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1690
1690
  "lastAckAt": "2026-09-01T08:52:41.707Z",
1691
1691
  "lastWriteAt": "2026-09-01T08:52:41.707Z",
1692
1692
  "state": "ok",
@@ -1709,9 +1709,9 @@
1709
1709
  "driverConfig": {},
1710
1710
  "lineId": "ln-ec406cd4",
1711
1711
  "value": 176,
1712
- "readValue": 182,
1713
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1714
- "lastReadError": null,
1712
+ "readValue": 180,
1713
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1714
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1715
1715
  "lastAckAt": "2026-09-01T08:54:00.988Z",
1716
1716
  "lastWriteAt": "2026-09-01T08:54:00.988Z",
1717
1717
  "state": "ok",
@@ -1734,9 +1734,9 @@
1734
1734
  "driverConfig": {},
1735
1735
  "lineId": "ln-844ad82f",
1736
1736
  "value": 175,
1737
- "readValue": 182,
1738
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1739
- "lastReadError": null,
1737
+ "readValue": 180,
1738
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1739
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1740
1740
  "lastAckAt": "2026-09-01T09:06:55.731Z",
1741
1741
  "lastWriteAt": "2026-09-01T09:06:55.731Z",
1742
1742
  "state": "ok",
@@ -1761,9 +1761,9 @@
1761
1761
  "posZ": 1704,
1762
1762
  "lineId": "ln-fcd8023a",
1763
1763
  "value": 174,
1764
- "readValue": 182,
1765
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1766
- "lastReadError": null,
1764
+ "readValue": 180,
1765
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1766
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1767
1767
  "lastAckAt": "2026-09-01T09:08:10.909Z",
1768
1768
  "lastWriteAt": "2026-09-01T09:08:10.909Z",
1769
1769
  "state": "ok",
@@ -1786,9 +1786,9 @@
1786
1786
  "driverConfig": {},
1787
1787
  "lineId": "ln-dd871047",
1788
1788
  "value": 175,
1789
- "readValue": 182,
1790
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1791
- "lastReadError": null,
1789
+ "readValue": 180,
1790
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1791
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1792
1792
  "lastAckAt": "2026-09-01T09:08:17.743Z",
1793
1793
  "lastWriteAt": "2026-09-01T09:08:17.743Z",
1794
1794
  "state": "ok",
@@ -1811,9 +1811,9 @@
1811
1811
  "driverConfig": {},
1812
1812
  "lineId": "ln-dd871047",
1813
1813
  "value": 173,
1814
- "readValue": 182,
1815
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1816
- "lastReadError": null,
1814
+ "readValue": 180,
1815
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1816
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1817
1817
  "lastAckAt": "2026-09-01T09:08:17.345Z",
1818
1818
  "lastWriteAt": "2026-09-01T09:08:17.345Z",
1819
1819
  "state": "ok",
@@ -1836,9 +1836,9 @@
1836
1836
  "driverConfig": {},
1837
1837
  "lineId": "ln-6dc23d6d",
1838
1838
  "value": 175,
1839
- "readValue": 182,
1840
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1841
- "lastReadError": null,
1839
+ "readValue": 180,
1840
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1841
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1842
1842
  "lastAckAt": "2026-09-01T09:08:44.710Z",
1843
1843
  "lastWriteAt": "2026-09-01T09:08:44.710Z",
1844
1844
  "state": "ok",
@@ -1861,9 +1861,9 @@
1861
1861
  "driverConfig": {},
1862
1862
  "lineId": "ln-6dc23d6d",
1863
1863
  "value": 173,
1864
- "readValue": 182,
1865
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1866
- "lastReadError": null,
1864
+ "readValue": 180,
1865
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1866
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1867
1867
  "lastAckAt": "2026-09-01T09:08:44.377Z",
1868
1868
  "lastWriteAt": "2026-09-01T09:08:44.377Z",
1869
1869
  "state": "ok",
@@ -1886,9 +1886,9 @@
1886
1886
  "driverConfig": {},
1887
1887
  "lineId": "ln-2a2ae15e",
1888
1888
  "value": 175,
1889
- "readValue": 182,
1890
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1891
- "lastReadError": null,
1889
+ "readValue": 180,
1890
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1891
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1892
1892
  "lastAckAt": "2026-09-01T09:16:35.330Z",
1893
1893
  "lastWriteAt": "2026-09-01T09:16:35.330Z",
1894
1894
  "state": "ok",
@@ -1911,9 +1911,9 @@
1911
1911
  "driverConfig": {},
1912
1912
  "lineId": "ln-2a2ae15e",
1913
1913
  "value": 173,
1914
- "readValue": 182,
1915
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1916
- "lastReadError": null,
1914
+ "readValue": 180,
1915
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1916
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1917
1917
  "lastAckAt": "2026-09-01T09:16:34.947Z",
1918
1918
  "lastWriteAt": "2026-09-01T09:16:34.947Z",
1919
1919
  "state": "ok",
@@ -1936,9 +1936,9 @@
1936
1936
  "driverConfig": {},
1937
1937
  "lineId": "ln-9b54577f",
1938
1938
  "value": 176,
1939
- "readValue": 182,
1940
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1941
- "lastReadError": null,
1939
+ "readValue": 180,
1940
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1941
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1942
1942
  "lastAckAt": "2026-09-01T09:16:39.619Z",
1943
1943
  "lastWriteAt": "2026-09-01T09:16:39.619Z",
1944
1944
  "state": "ok",
@@ -1961,9 +1961,9 @@
1961
1961
  "driverConfig": {},
1962
1962
  "lineId": "ln-7b9f19d9",
1963
1963
  "value": 180,
1964
- "readValue": 182,
1965
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1966
- "lastReadError": null,
1964
+ "readValue": 180,
1965
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1966
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1967
1967
  "lastAckAt": "2026-09-01T11:03:23.453Z",
1968
1968
  "lastWriteAt": "2026-09-01T11:03:23.453Z",
1969
1969
  "state": "ok",
@@ -1986,9 +1986,9 @@
1986
1986
  "driverConfig": {},
1987
1987
  "lineId": "ln-5a7d0d1f",
1988
1988
  "value": null,
1989
- "readValue": 182,
1990
- "lastReadAt": "2026-09-04T05:35:29.869Z",
1991
- "lastReadError": null,
1989
+ "readValue": 180,
1990
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
1991
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
1992
1992
  "lastAckAt": null,
1993
1993
  "lastWriteAt": null,
1994
1994
  "state": "idle",
@@ -2011,9 +2011,9 @@
2011
2011
  "driverConfig": {},
2012
2012
  "lineId": "ln-847bee7f",
2013
2013
  "value": 180,
2014
- "readValue": 182,
2015
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2016
- "lastReadError": null,
2014
+ "readValue": 180,
2015
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2016
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2017
2017
  "lastAckAt": "2026-09-01T12:25:43.183Z",
2018
2018
  "lastWriteAt": "2026-09-01T12:25:43.183Z",
2019
2019
  "state": "ok",
@@ -2036,9 +2036,9 @@
2036
2036
  "driverConfig": {},
2037
2037
  "lineId": "ln-d32ca422",
2038
2038
  "value": 180,
2039
- "readValue": 182,
2040
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2041
- "lastReadError": null,
2039
+ "readValue": 180,
2040
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2041
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2042
2042
  "lastAckAt": "2026-09-01T12:27:14.395Z",
2043
2043
  "lastWriteAt": "2026-09-01T12:27:14.395Z",
2044
2044
  "state": "ok",
@@ -2061,9 +2061,9 @@
2061
2061
  "driverConfig": {},
2062
2062
  "lineId": "ln-6e75316a",
2063
2063
  "value": null,
2064
- "readValue": 182,
2065
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2066
- "lastReadError": null,
2064
+ "readValue": 180,
2065
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2066
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2067
2067
  "lastAckAt": null,
2068
2068
  "lastWriteAt": null,
2069
2069
  "state": "idle",
@@ -2086,9 +2086,9 @@
2086
2086
  "driverConfig": {},
2087
2087
  "lineId": "ln-e2d8aebc",
2088
2088
  "value": null,
2089
- "readValue": 182,
2090
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2091
- "lastReadError": null,
2089
+ "readValue": 180,
2090
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2091
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2092
2092
  "lastAckAt": null,
2093
2093
  "lastWriteAt": null,
2094
2094
  "state": "idle",
@@ -2111,9 +2111,9 @@
2111
2111
  "driverConfig": {},
2112
2112
  "lineId": "ln-4849768e",
2113
2113
  "value": null,
2114
- "readValue": 182,
2115
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2116
- "lastReadError": null,
2114
+ "readValue": 180,
2115
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2116
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2117
2117
  "lastAckAt": null,
2118
2118
  "lastWriteAt": null,
2119
2119
  "state": "idle",
@@ -2136,9 +2136,9 @@
2136
2136
  "driverConfig": {},
2137
2137
  "lineId": "ln-e0769d5b",
2138
2138
  "value": null,
2139
- "readValue": 182,
2140
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2141
- "lastReadError": null,
2139
+ "readValue": 180,
2140
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2141
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2142
2142
  "lastAckAt": null,
2143
2143
  "lastWriteAt": null,
2144
2144
  "state": "idle",
@@ -2161,9 +2161,9 @@
2161
2161
  "driverConfig": {},
2162
2162
  "lineId": "ln-8c17f4e7",
2163
2163
  "value": null,
2164
- "readValue": 182,
2165
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2166
- "lastReadError": null,
2164
+ "readValue": 180,
2165
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2166
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2167
2167
  "lastAckAt": null,
2168
2168
  "lastWriteAt": null,
2169
2169
  "state": "idle",
@@ -2186,9 +2186,9 @@
2186
2186
  "driverConfig": {},
2187
2187
  "lineId": "ln-0eccf6ba",
2188
2188
  "value": null,
2189
- "readValue": 182,
2190
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2191
- "lastReadError": null,
2189
+ "readValue": 180,
2190
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2191
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2192
2192
  "lastAckAt": null,
2193
2193
  "lastWriteAt": null,
2194
2194
  "state": "idle",
@@ -2211,9 +2211,9 @@
2211
2211
  "driverConfig": {},
2212
2212
  "lineId": "ln-e984246e",
2213
2213
  "value": null,
2214
- "readValue": 182,
2215
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2216
- "lastReadError": null,
2214
+ "readValue": 180,
2215
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2216
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2217
2217
  "lastAckAt": null,
2218
2218
  "lastWriteAt": null,
2219
2219
  "state": "idle",
@@ -2236,9 +2236,9 @@
2236
2236
  "driverConfig": {},
2237
2237
  "lineId": "ln-1fe0b5bc",
2238
2238
  "value": null,
2239
- "readValue": 182,
2240
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2241
- "lastReadError": null,
2239
+ "readValue": 180,
2240
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2241
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2242
2242
  "lastAckAt": null,
2243
2243
  "lastWriteAt": null,
2244
2244
  "state": "idle",
@@ -2261,9 +2261,9 @@
2261
2261
  "driverConfig": {},
2262
2262
  "lineId": "ln-d826473e",
2263
2263
  "value": null,
2264
- "readValue": 182,
2265
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2266
- "lastReadError": null,
2264
+ "readValue": 180,
2265
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2266
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2267
2267
  "lastAckAt": null,
2268
2268
  "lastWriteAt": null,
2269
2269
  "state": "idle",
@@ -2286,9 +2286,9 @@
2286
2286
  "driverConfig": {},
2287
2287
  "lineId": "ln-156abb71",
2288
2288
  "value": null,
2289
- "readValue": 182,
2290
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2291
- "lastReadError": null,
2289
+ "readValue": 180,
2290
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2291
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2292
2292
  "lastAckAt": null,
2293
2293
  "lastWriteAt": null,
2294
2294
  "state": "idle",
@@ -2311,9 +2311,9 @@
2311
2311
  "driverConfig": {},
2312
2312
  "lineId": "ln-bac43927",
2313
2313
  "value": null,
2314
- "readValue": 182,
2315
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2316
- "lastReadError": null,
2314
+ "readValue": 180,
2315
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2316
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2317
2317
  "lastAckAt": null,
2318
2318
  "lastWriteAt": null,
2319
2319
  "state": "idle",
@@ -2336,9 +2336,9 @@
2336
2336
  "driverConfig": {},
2337
2337
  "lineId": "ln-f223008a",
2338
2338
  "value": null,
2339
- "readValue": 182,
2340
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2341
- "lastReadError": null,
2339
+ "readValue": 180,
2340
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2341
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2342
2342
  "lastAckAt": null,
2343
2343
  "lastWriteAt": null,
2344
2344
  "state": "idle",
@@ -2361,9 +2361,9 @@
2361
2361
  "driverConfig": {},
2362
2362
  "lineId": "ln-fb06f10b",
2363
2363
  "value": 182,
2364
- "readValue": 182,
2365
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2366
- "lastReadError": null,
2364
+ "readValue": 180,
2365
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2366
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2367
2367
  "lastAckAt": "2026-09-02T08:39:25.301Z",
2368
2368
  "lastWriteAt": "2026-09-02T08:39:25.301Z",
2369
2369
  "state": "ok",
@@ -2386,9 +2386,9 @@
2386
2386
  "driverConfig": {},
2387
2387
  "lineId": "ln-9f15af4e",
2388
2388
  "value": 182,
2389
- "readValue": 182,
2390
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2391
- "lastReadError": null,
2389
+ "readValue": 180,
2390
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2391
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2392
2392
  "lastAckAt": "2026-09-02T08:46:51.079Z",
2393
2393
  "lastWriteAt": "2026-09-02T08:46:51.079Z",
2394
2394
  "state": "ok",
@@ -2411,9 +2411,9 @@
2411
2411
  "driverConfig": {},
2412
2412
  "lineId": "ln-69eaecb9",
2413
2413
  "value": 182,
2414
- "readValue": 182,
2415
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2416
- "lastReadError": null,
2414
+ "readValue": 180,
2415
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2416
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2417
2417
  "lastAckAt": "2026-09-02T10:39:20.083Z",
2418
2418
  "lastWriteAt": "2026-09-02T10:39:20.083Z",
2419
2419
  "state": "ok",
@@ -2436,9 +2436,9 @@
2436
2436
  "driverConfig": {},
2437
2437
  "lineId": "ln-af1e04a3",
2438
2438
  "value": 182,
2439
- "readValue": 182,
2440
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2441
- "lastReadError": null,
2439
+ "readValue": 180,
2440
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2441
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2442
2442
  "lastAckAt": "2026-09-02T11:42:48.318Z",
2443
2443
  "lastWriteAt": "2026-09-02T11:42:48.318Z",
2444
2444
  "state": "ok",
@@ -2461,9 +2461,9 @@
2461
2461
  "driverConfig": {},
2462
2462
  "lineId": "ln-c1ef6c0d",
2463
2463
  "value": 180,
2464
- "readValue": 182,
2465
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2466
- "lastReadError": null,
2464
+ "readValue": 180,
2465
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2466
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2467
2467
  "lastAckAt": "2026-09-02T11:55:28.777Z",
2468
2468
  "lastWriteAt": "2026-09-02T11:55:28.777Z",
2469
2469
  "state": "ok",
@@ -2486,9 +2486,9 @@
2486
2486
  "driverConfig": {},
2487
2487
  "lineId": "ln-b587c5ec",
2488
2488
  "value": 182,
2489
- "readValue": 182,
2490
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2491
- "lastReadError": null,
2489
+ "readValue": 180,
2490
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2491
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2492
2492
  "lastAckAt": "2026-09-02T13:05:36.771Z",
2493
2493
  "lastWriteAt": "2026-09-02T13:05:36.771Z",
2494
2494
  "state": "ok",
@@ -2713,7 +2713,7 @@
2713
2713
  "lineId": "",
2714
2714
  "value": 155,
2715
2715
  "readValue": 155,
2716
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2716
+ "lastReadAt": "2026-09-06T00:43:32.350+08:00",
2717
2717
  "lastReadError": "Mock PLC 无设定记录(rw-e2e-3-mtlkgr9s;从未写入)",
2718
2718
  "lastAckAt": "2026-09-03T13:34:22.239Z",
2719
2719
  "lastWriteAt": "2026-09-03T13:34:22.239Z",
@@ -2796,9 +2796,9 @@
2796
2796
  "driverConfig": {},
2797
2797
  "lineId": "",
2798
2798
  "value": 182,
2799
- "readValue": 182,
2800
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2801
- "lastReadError": null,
2799
+ "readValue": 180,
2800
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2801
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2802
2802
  "lastAckAt": "2026-09-04T04:58:20.275Z",
2803
2803
  "lastWriteAt": "2026-09-04T04:58:20.275Z",
2804
2804
  "state": "ok",
@@ -2821,9 +2821,9 @@
2821
2821
  "driverConfig": {},
2822
2822
  "lineId": "",
2823
2823
  "value": 182,
2824
- "readValue": 182,
2825
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2826
- "lastReadError": null,
2824
+ "readValue": 180,
2825
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2826
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2827
2827
  "lastAckAt": "2026-09-04T05:03:56.066Z",
2828
2828
  "lastWriteAt": "2026-09-04T05:03:56.066Z",
2829
2829
  "state": "ok",
@@ -2846,9 +2846,9 @@
2846
2846
  "driverConfig": {},
2847
2847
  "lineId": "ln-1b318320",
2848
2848
  "value": 182,
2849
- "readValue": 182,
2850
- "lastReadAt": "2026-09-04T05:35:29.356Z",
2851
- "lastReadError": null,
2849
+ "readValue": 180,
2850
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2851
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2852
2852
  "lastAckAt": "2026-09-04T05:08:10.216Z",
2853
2853
  "lastWriteAt": "2026-09-04T05:08:10.216Z",
2854
2854
  "state": "ok",
@@ -2871,9 +2871,9 @@
2871
2871
  "driverConfig": {},
2872
2872
  "lineId": "",
2873
2873
  "value": 182,
2874
- "readValue": 182,
2875
- "lastReadAt": "2026-09-04T05:35:29.869Z",
2876
- "lastReadError": null,
2874
+ "readValue": 180,
2875
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2876
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2877
2877
  "lastAckAt": "2026-09-04T05:08:56.411Z",
2878
2878
  "lastWriteAt": "2026-09-04T05:08:56.411Z",
2879
2879
  "state": "ok",
@@ -2896,13 +2896,3163 @@
2896
2896
  "driverConfig": {},
2897
2897
  "lineId": "",
2898
2898
  "value": 182,
2899
- "readValue": 182,
2900
- "lastReadAt": "2026-09-04T05:35:29.356Z",
2901
- "lastReadError": null,
2899
+ "readValue": 180,
2900
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2901
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2902
2902
  "lastAckAt": "2026-09-04T05:12:13.804Z",
2903
2903
  "lastWriteAt": "2026-09-04T05:12:13.804Z",
2904
2904
  "state": "ok",
2905
2905
  "lastError": null,
2906
2906
  "createdAt": "2026-09-04T05:12:03.588Z"
2907
+ },
2908
+ {
2909
+ "id": "dw-190ebb88",
2910
+ "templateRef": "dcw-temp-sp",
2911
+ "name": "联调温度设定器",
2912
+ "driver": "mock",
2913
+ "enabled": true,
2914
+ "holdIntervalMs": null,
2915
+ "readIntervalMs": 2000,
2916
+ "unit": "℃",
2917
+ "decimals": 1,
2918
+ "min": 150,
2919
+ "max": 200,
2920
+ "deviceBindingId": null,
2921
+ "driverConfig": {},
2922
+ "lineId": "",
2923
+ "value": null,
2924
+ "readValue": 180,
2925
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
2926
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2927
+ "lastAckAt": null,
2928
+ "lastWriteAt": null,
2929
+ "state": "idle",
2930
+ "lastError": null,
2931
+ "createdAt": "2026-09-05T01:40:56.651Z"
2932
+ },
2933
+ {
2934
+ "id": "dw-a60ec78d",
2935
+ "templateRef": "dcw-temp-sp",
2936
+ "name": "联调温度设定器",
2937
+ "driver": "mock",
2938
+ "enabled": true,
2939
+ "holdIntervalMs": null,
2940
+ "readIntervalMs": 2000,
2941
+ "unit": "℃",
2942
+ "decimals": 1,
2943
+ "min": 150,
2944
+ "max": 200,
2945
+ "deviceBindingId": null,
2946
+ "driverConfig": {},
2947
+ "lineId": "ln-549b1062",
2948
+ "value": null,
2949
+ "readValue": 180,
2950
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
2951
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2952
+ "lastAckAt": null,
2953
+ "lastWriteAt": null,
2954
+ "state": "idle",
2955
+ "lastError": null,
2956
+ "createdAt": "2026-09-05T01:42:17.706Z"
2957
+ },
2958
+ {
2959
+ "id": "dw-63357d2b",
2960
+ "templateRef": "dcw-temp-sp",
2961
+ "name": "探针温控",
2962
+ "driver": "mock",
2963
+ "enabled": true,
2964
+ "holdIntervalMs": null,
2965
+ "readIntervalMs": null,
2966
+ "unit": "℃",
2967
+ "decimals": 1,
2968
+ "min": 150,
2969
+ "max": 200,
2970
+ "deviceBindingId": null,
2971
+ "driverConfig": {},
2972
+ "lineId": "",
2973
+ "value": null,
2974
+ "readValue": 180,
2975
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
2976
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
2977
+ "lastAckAt": null,
2978
+ "lastWriteAt": null,
2979
+ "state": "idle",
2980
+ "lastError": null,
2981
+ "createdAt": "2026-09-05T01:43:54.594Z"
2982
+ },
2983
+ {
2984
+ "id": "dw-f5707911",
2985
+ "templateRef": "dcw-temp-sp",
2986
+ "name": "联调温度设定器",
2987
+ "driver": "mock",
2988
+ "enabled": true,
2989
+ "holdIntervalMs": null,
2990
+ "readIntervalMs": 2000,
2991
+ "unit": "℃",
2992
+ "decimals": 1,
2993
+ "min": 150,
2994
+ "max": 200,
2995
+ "deviceBindingId": null,
2996
+ "driverConfig": {},
2997
+ "lineId": "ln-b18fbae0",
2998
+ "value": null,
2999
+ "readValue": 180,
3000
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
3001
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3002
+ "lastAckAt": null,
3003
+ "lastWriteAt": null,
3004
+ "state": "idle",
3005
+ "lastError": null,
3006
+ "createdAt": "2026-09-05T01:44:24.335Z"
3007
+ },
3008
+ {
3009
+ "id": "dw-3e6f469f",
3010
+ "templateRef": "dcw-temp-sp",
3011
+ "name": "探针温控2",
3012
+ "driver": "mock",
3013
+ "enabled": true,
3014
+ "holdIntervalMs": null,
3015
+ "readIntervalMs": null,
3016
+ "unit": "℃",
3017
+ "decimals": 1,
3018
+ "min": 150,
3019
+ "max": 200,
3020
+ "deviceBindingId": null,
3021
+ "driverConfig": {},
3022
+ "lineId": "",
3023
+ "value": null,
3024
+ "readValue": 180,
3025
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3026
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3027
+ "lastAckAt": null,
3028
+ "lastWriteAt": null,
3029
+ "state": "idle",
3030
+ "lastError": null,
3031
+ "createdAt": "2026-09-05T01:46:12.465Z"
3032
+ },
3033
+ {
3034
+ "id": "dw-5b0d764a",
3035
+ "templateRef": "dcw-temp-sp",
3036
+ "name": "联调温度设定器",
3037
+ "driver": "mock",
3038
+ "enabled": true,
3039
+ "holdIntervalMs": null,
3040
+ "readIntervalMs": 2000,
3041
+ "unit": "℃",
3042
+ "decimals": 1,
3043
+ "min": 150,
3044
+ "max": 200,
3045
+ "deviceBindingId": null,
3046
+ "driverConfig": {},
3047
+ "lineId": "ln-7024c512",
3048
+ "value": 175,
3049
+ "readValue": 180,
3050
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
3051
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3052
+ "lastAckAt": "2026-09-05T02:05:03.057Z",
3053
+ "lastWriteAt": "2026-09-05T02:05:03.057Z",
3054
+ "state": "ok",
3055
+ "lastError": null,
3056
+ "createdAt": "2026-09-05T01:47:27.901Z"
3057
+ },
3058
+ {
3059
+ "id": "dw-ca91fe4b",
3060
+ "templateRef": "dcw-temp-sp",
3061
+ "name": "联调温度设定器",
3062
+ "driver": "mock",
3063
+ "enabled": true,
3064
+ "holdIntervalMs": null,
3065
+ "readIntervalMs": 2000,
3066
+ "unit": "℃",
3067
+ "decimals": 1,
3068
+ "min": 150,
3069
+ "max": 200,
3070
+ "deviceBindingId": null,
3071
+ "driverConfig": {},
3072
+ "lineId": "ln-32cc515d",
3073
+ "value": 175,
3074
+ "readValue": 180,
3075
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
3076
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3077
+ "lastAckAt": "2026-09-05T02:42:52.519Z",
3078
+ "lastWriteAt": "2026-09-05T02:42:52.519Z",
3079
+ "state": "ok",
3080
+ "lastError": null,
3081
+ "createdAt": "2026-09-05T02:25:18.725Z"
3082
+ },
3083
+ {
3084
+ "id": "dw-a9e448a3",
3085
+ "templateRef": "dcw-temp-sp",
3086
+ "name": "联调温度设定器",
3087
+ "driver": "mock",
3088
+ "enabled": true,
3089
+ "holdIntervalMs": null,
3090
+ "readIntervalMs": 2000,
3091
+ "unit": "℃",
3092
+ "decimals": 1,
3093
+ "min": 150,
3094
+ "max": 200,
3095
+ "deviceBindingId": null,
3096
+ "driverConfig": {},
3097
+ "lineId": "ln-a5c1a8c8",
3098
+ "value": 175,
3099
+ "readValue": 180,
3100
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
3101
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3102
+ "lastAckAt": "2026-09-05T03:07:49.558Z",
3103
+ "lastWriteAt": "2026-09-05T03:07:49.558Z",
3104
+ "state": "ok",
3105
+ "lastError": null,
3106
+ "createdAt": "2026-09-05T02:56:21.199Z"
3107
+ },
3108
+ {
3109
+ "id": "dw-c5cc2e42",
3110
+ "templateRef": "dcw-temp-sp",
3111
+ "name": "联调温度设定器",
3112
+ "driver": "mock",
3113
+ "enabled": true,
3114
+ "holdIntervalMs": null,
3115
+ "readIntervalMs": 2000,
3116
+ "unit": "℃",
3117
+ "decimals": 1,
3118
+ "min": 150,
3119
+ "max": 200,
3120
+ "deviceBindingId": null,
3121
+ "driverConfig": {},
3122
+ "lineId": "ln-4beac4a4",
3123
+ "value": 175,
3124
+ "readValue": 180,
3125
+ "lastReadAt": "2026-09-06T00:43:32.862+08:00",
3126
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3127
+ "lastAckAt": "2026-09-05T03:32:31.881Z",
3128
+ "lastWriteAt": "2026-09-05T03:32:31.881Z",
3129
+ "state": "ok",
3130
+ "lastError": null,
3131
+ "createdAt": "2026-09-05T03:22:05.023Z"
3132
+ },
3133
+ {
3134
+ "id": "dw-f257789a",
3135
+ "templateRef": "dcw-temp-sp",
3136
+ "name": "演练温度设定器",
3137
+ "driver": "mock",
3138
+ "enabled": true,
3139
+ "holdIntervalMs": null,
3140
+ "readIntervalMs": null,
3141
+ "unit": "℃",
3142
+ "decimals": 1,
3143
+ "min": 150,
3144
+ "max": 200,
3145
+ "deviceBindingId": null,
3146
+ "driverConfig": {},
3147
+ "lineId": "ln-d79822f5",
3148
+ "value": null,
3149
+ "readValue": 180,
3150
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3151
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3152
+ "lastAckAt": null,
3153
+ "lastWriteAt": null,
3154
+ "state": "idle",
3155
+ "lastError": null,
3156
+ "createdAt": "2026-09-05T04:47:26.773Z"
3157
+ },
3158
+ {
3159
+ "id": "dw-34014c7e",
3160
+ "templateRef": "dcw-temp-sp",
3161
+ "name": "PLC-SP温度-mtny0lcv",
3162
+ "driver": "modbus-tcp",
3163
+ "enabled": true,
3164
+ "holdIntervalMs": null,
3165
+ "readIntervalMs": null,
3166
+ "unit": "℃",
3167
+ "decimals": 1,
3168
+ "min": 150,
3169
+ "max": 200,
3170
+ "deviceBindingId": null,
3171
+ "driverConfig": {
3172
+ "host": "127.0.0.1",
3173
+ "port": 15040,
3174
+ "unitId": 1,
3175
+ "register": 40021,
3176
+ "dataType": "float32",
3177
+ "byteOrder": "big"
3178
+ },
3179
+ "lineId": "",
3180
+ "value": 182,
3181
+ "readValue": 0,
3182
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3183
+ "lastReadError": null,
3184
+ "lastAckAt": "2026-09-05T05:29:42.239Z",
3185
+ "lastWriteAt": "2026-09-05T05:29:42.239Z",
3186
+ "state": "ok",
3187
+ "lastError": null,
3188
+ "createdAt": "2026-09-05T05:29:21.372Z"
3189
+ },
3190
+ {
3191
+ "id": "dw-0f49c369",
3192
+ "templateRef": "dcw-temp-sp",
3193
+ "name": "OPCUA-SP-mtny0lcv",
3194
+ "driver": "opcua",
3195
+ "enabled": true,
3196
+ "holdIntervalMs": null,
3197
+ "readIntervalMs": null,
3198
+ "unit": "℃",
3199
+ "decimals": 1,
3200
+ "min": 150,
3201
+ "max": 200,
3202
+ "deviceBindingId": null,
3203
+ "driverConfig": {
3204
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3205
+ "nodeId": "ns=2;s=AW.SetTemp"
3206
+ },
3207
+ "lineId": "",
3208
+ "value": 172.5,
3209
+ "readValue": 180,
3210
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3211
+ "lastReadError": null,
3212
+ "lastAckAt": "2026-09-05T05:29:40.977Z",
3213
+ "lastWriteAt": "2026-09-05T05:29:40.977Z",
3214
+ "state": "ok",
3215
+ "lastError": null,
3216
+ "createdAt": "2026-09-05T05:29:21.418Z"
3217
+ },
3218
+ {
3219
+ "id": "dw-1fead1a0",
3220
+ "templateRef": "dcw-temp-sp",
3221
+ "name": "MQTT-SP-mtny0lcv",
3222
+ "driver": "mqtt",
3223
+ "enabled": true,
3224
+ "holdIntervalMs": null,
3225
+ "readIntervalMs": null,
3226
+ "unit": "℃",
3227
+ "decimals": 1,
3228
+ "min": 150,
3229
+ "max": 200,
3230
+ "deviceBindingId": null,
3231
+ "driverConfig": {
3232
+ "host": "127.0.0.1",
3233
+ "port": 1883,
3234
+ "topic": "aw/sim/setpoint-mtny0lcv",
3235
+ "jsonKey": "setpoint",
3236
+ "qos": 1
3237
+ },
3238
+ "lineId": "",
3239
+ "value": 165.5,
3240
+ "readValue": null,
3241
+ "lastReadAt": null,
3242
+ "lastReadError": null,
3243
+ "lastAckAt": "2026-09-05T05:29:30.923Z",
3244
+ "lastWriteAt": "2026-09-05T05:29:30.923Z",
3245
+ "state": "ok",
3246
+ "lastError": null,
3247
+ "createdAt": "2026-09-05T05:29:21.439Z"
3248
+ },
3249
+ {
3250
+ "id": "dw-b0e970e1",
3251
+ "templateRef": "dcw-temp-sp",
3252
+ "name": "HTTP-SP-mtny0lcv",
3253
+ "driver": "http",
3254
+ "enabled": true,
3255
+ "holdIntervalMs": null,
3256
+ "readIntervalMs": null,
3257
+ "unit": "℃",
3258
+ "decimals": 1,
3259
+ "min": 150,
3260
+ "max": 200,
3261
+ "deviceBindingId": null,
3262
+ "driverConfig": {
3263
+ "url": "http://127.0.0.1:1889/api/setpoint",
3264
+ "bodyKey": "setpoint"
3265
+ },
3266
+ "lineId": "",
3267
+ "value": 168.3,
3268
+ "readValue": null,
3269
+ "lastReadAt": null,
3270
+ "lastReadError": null,
3271
+ "lastAckAt": "2026-09-05T05:29:40.960Z",
3272
+ "lastWriteAt": "2026-09-05T05:29:40.960Z",
3273
+ "state": "ok",
3274
+ "lastError": null,
3275
+ "createdAt": "2026-09-05T05:29:21.480Z"
3276
+ },
3277
+ {
3278
+ "id": "dw-07787cf7",
3279
+ "templateRef": "dcw-temp-sp",
3280
+ "name": "PLC-SP温度-mtnyemlz",
3281
+ "driver": "modbus-tcp",
3282
+ "enabled": true,
3283
+ "holdIntervalMs": null,
3284
+ "readIntervalMs": null,
3285
+ "unit": "℃",
3286
+ "decimals": 1,
3287
+ "min": 150,
3288
+ "max": 200,
3289
+ "deviceBindingId": null,
3290
+ "driverConfig": {
3291
+ "host": "127.0.0.1",
3292
+ "port": 15040,
3293
+ "unitId": 1,
3294
+ "register": 40021,
3295
+ "dataType": "float32",
3296
+ "byteOrder": "big"
3297
+ },
3298
+ "lineId": "ln-81865050",
3299
+ "value": 180,
3300
+ "readValue": 0,
3301
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3302
+ "lastReadError": null,
3303
+ "lastAckAt": "2026-09-05T05:40:12.228Z",
3304
+ "lastWriteAt": "2026-09-05T05:40:12.228Z",
3305
+ "state": "ok",
3306
+ "lastError": null,
3307
+ "createdAt": "2026-09-05T05:40:12.044Z"
3308
+ },
3309
+ {
3310
+ "id": "dw-c62ed812",
3311
+ "templateRef": "dcw-temp-sp",
3312
+ "name": "OPCUA-SP-mtnyemlz",
3313
+ "driver": "opcua",
3314
+ "enabled": true,
3315
+ "holdIntervalMs": null,
3316
+ "readIntervalMs": null,
3317
+ "unit": "℃",
3318
+ "decimals": 1,
3319
+ "min": 150,
3320
+ "max": 200,
3321
+ "deviceBindingId": null,
3322
+ "driverConfig": {
3323
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3324
+ "nodeId": "ns=2;s=AW.SetTemp"
3325
+ },
3326
+ "lineId": "ln-81865050",
3327
+ "value": 172.5,
3328
+ "readValue": 180,
3329
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3330
+ "lastReadError": null,
3331
+ "lastAckAt": "2026-09-05T05:40:31.611Z",
3332
+ "lastWriteAt": "2026-09-05T05:40:31.611Z",
3333
+ "state": "ok",
3334
+ "lastError": null,
3335
+ "createdAt": "2026-09-05T05:40:12.073Z"
3336
+ },
3337
+ {
3338
+ "id": "dw-4937418a",
3339
+ "templateRef": "dcw-temp-sp",
3340
+ "name": "MQTT-SP-mtnyemlz",
3341
+ "driver": "mqtt",
3342
+ "enabled": true,
3343
+ "holdIntervalMs": null,
3344
+ "readIntervalMs": null,
3345
+ "unit": "℃",
3346
+ "decimals": 1,
3347
+ "min": 150,
3348
+ "max": 200,
3349
+ "deviceBindingId": null,
3350
+ "driverConfig": {
3351
+ "host": "127.0.0.1",
3352
+ "port": 1883,
3353
+ "topic": "aw/sim/setpoint-mtnyemlz",
3354
+ "jsonKey": "setpoint",
3355
+ "qos": 1
3356
+ },
3357
+ "lineId": "ln-81865050",
3358
+ "value": 165.5,
3359
+ "readValue": null,
3360
+ "lastReadAt": null,
3361
+ "lastReadError": null,
3362
+ "lastAckAt": "2026-09-05T05:40:21.578Z",
3363
+ "lastWriteAt": "2026-09-05T05:40:21.578Z",
3364
+ "state": "ok",
3365
+ "lastError": null,
3366
+ "createdAt": "2026-09-05T05:40:12.094Z"
3367
+ },
3368
+ {
3369
+ "id": "dw-b1fb42e5",
3370
+ "templateRef": "dcw-temp-sp",
3371
+ "name": "HTTP-SP-mtnyemlz",
3372
+ "driver": "http",
3373
+ "enabled": true,
3374
+ "holdIntervalMs": null,
3375
+ "readIntervalMs": null,
3376
+ "unit": "℃",
3377
+ "decimals": 1,
3378
+ "min": 150,
3379
+ "max": 200,
3380
+ "deviceBindingId": null,
3381
+ "driverConfig": {
3382
+ "url": "http://127.0.0.1:1889/api/setpoint",
3383
+ "bodyKey": "setpoint"
3384
+ },
3385
+ "lineId": "ln-81865050",
3386
+ "value": 168.3,
3387
+ "readValue": null,
3388
+ "lastReadAt": null,
3389
+ "lastReadError": null,
3390
+ "lastAckAt": "2026-09-05T05:40:31.604Z",
3391
+ "lastWriteAt": "2026-09-05T05:40:31.604Z",
3392
+ "state": "ok",
3393
+ "lastError": null,
3394
+ "createdAt": "2026-09-05T05:40:12.135Z"
3395
+ },
3396
+ {
3397
+ "id": "dw-9aed2808",
3398
+ "templateRef": "dcw-temp-sp",
3399
+ "name": "sb-node",
3400
+ "driver": "mqtt",
3401
+ "enabled": true,
3402
+ "holdIntervalMs": null,
3403
+ "readIntervalMs": null,
3404
+ "unit": "℃",
3405
+ "decimals": 1,
3406
+ "min": 150,
3407
+ "max": 200,
3408
+ "deviceBindingId": null,
3409
+ "driverConfig": {
3410
+ "host": "127.0.0.1",
3411
+ "port": 1883,
3412
+ "topic": "aw/split-brain-1788587015630",
3413
+ "jsonKey": "setpoint",
3414
+ "qos": 1
3415
+ },
3416
+ "lineId": "ln-cbce2a90",
3417
+ "value": 165.5,
3418
+ "readValue": null,
3419
+ "lastReadAt": null,
3420
+ "lastReadError": null,
3421
+ "lastAckAt": "2026-09-05T05:43:36.258Z",
3422
+ "lastWriteAt": "2026-09-05T05:43:36.258Z",
3423
+ "state": "ok",
3424
+ "lastError": null,
3425
+ "createdAt": "2026-09-05T05:43:36.244Z"
3426
+ },
3427
+ {
3428
+ "id": "dw-9f5250ae",
3429
+ "templateRef": "dcw-temp-sp",
3430
+ "name": "PLC-SP温度-mtnylkz4",
3431
+ "driver": "modbus-tcp",
3432
+ "enabled": true,
3433
+ "holdIntervalMs": null,
3434
+ "readIntervalMs": null,
3435
+ "unit": "℃",
3436
+ "decimals": 1,
3437
+ "min": 150,
3438
+ "max": 200,
3439
+ "deviceBindingId": null,
3440
+ "driverConfig": {
3441
+ "host": "127.0.0.1",
3442
+ "port": 15040,
3443
+ "unitId": 1,
3444
+ "register": 40021,
3445
+ "dataType": "float32",
3446
+ "byteOrder": "big"
3447
+ },
3448
+ "lineId": "ln-498547a2",
3449
+ "value": null,
3450
+ "readValue": 0,
3451
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3452
+ "lastReadError": null,
3453
+ "lastAckAt": null,
3454
+ "lastWriteAt": null,
3455
+ "state": "idle",
3456
+ "lastError": null,
3457
+ "createdAt": "2026-09-05T05:45:35.996Z"
3458
+ },
3459
+ {
3460
+ "id": "dw-d5754ebe",
3461
+ "templateRef": "dcw-temp-sp",
3462
+ "name": "OPCUA-SP-mtnylkz4",
3463
+ "driver": "opcua",
3464
+ "enabled": true,
3465
+ "holdIntervalMs": null,
3466
+ "readIntervalMs": null,
3467
+ "unit": "℃",
3468
+ "decimals": 1,
3469
+ "min": 150,
3470
+ "max": 200,
3471
+ "deviceBindingId": null,
3472
+ "driverConfig": {
3473
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3474
+ "nodeId": "ns=2;s=AW.SetTemp"
3475
+ },
3476
+ "lineId": "ln-498547a2",
3477
+ "value": null,
3478
+ "readValue": 180,
3479
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3480
+ "lastReadError": null,
3481
+ "lastAckAt": null,
3482
+ "lastWriteAt": null,
3483
+ "state": "idle",
3484
+ "lastError": null,
3485
+ "createdAt": "2026-09-05T05:45:36.043Z"
3486
+ },
3487
+ {
3488
+ "id": "dw-88e2f61c",
3489
+ "templateRef": "dcw-temp-sp",
3490
+ "name": "MQTT-SP-mtnylkz4",
3491
+ "driver": "mqtt",
3492
+ "enabled": true,
3493
+ "holdIntervalMs": null,
3494
+ "readIntervalMs": null,
3495
+ "unit": "℃",
3496
+ "decimals": 1,
3497
+ "min": 150,
3498
+ "max": 200,
3499
+ "deviceBindingId": null,
3500
+ "driverConfig": {
3501
+ "host": "127.0.0.1",
3502
+ "port": 18830,
3503
+ "topic": "aw/sim/setpoint-mtnylkz4",
3504
+ "jsonKey": "setpoint",
3505
+ "qos": 1
3506
+ },
3507
+ "lineId": "ln-498547a2",
3508
+ "value": null,
3509
+ "readValue": null,
3510
+ "lastReadAt": null,
3511
+ "lastReadError": null,
3512
+ "lastAckAt": null,
3513
+ "lastWriteAt": null,
3514
+ "state": "idle",
3515
+ "lastError": null,
3516
+ "createdAt": "2026-09-05T05:45:36.086Z"
3517
+ },
3518
+ {
3519
+ "id": "dw-471ff900",
3520
+ "templateRef": "dcw-temp-sp",
3521
+ "name": "HTTP-SP-mtnylkz4",
3522
+ "driver": "http",
3523
+ "enabled": true,
3524
+ "holdIntervalMs": null,
3525
+ "readIntervalMs": null,
3526
+ "unit": "℃",
3527
+ "decimals": 1,
3528
+ "min": 150,
3529
+ "max": 200,
3530
+ "deviceBindingId": null,
3531
+ "driverConfig": {
3532
+ "url": "http://127.0.0.1:1889/api/setpoint",
3533
+ "bodyKey": "setpoint"
3534
+ },
3535
+ "lineId": "ln-498547a2",
3536
+ "value": null,
3537
+ "readValue": null,
3538
+ "lastReadAt": null,
3539
+ "lastReadError": null,
3540
+ "lastAckAt": null,
3541
+ "lastWriteAt": null,
3542
+ "state": "idle",
3543
+ "lastError": null,
3544
+ "createdAt": "2026-09-05T05:45:36.138Z"
3545
+ },
3546
+ {
3547
+ "id": "dw-fda7ca54",
3548
+ "templateRef": "dcw-temp-sp",
3549
+ "name": "PLC-SP温度-mtnymjc2",
3550
+ "driver": "modbus-tcp",
3551
+ "enabled": true,
3552
+ "holdIntervalMs": null,
3553
+ "readIntervalMs": null,
3554
+ "unit": "℃",
3555
+ "decimals": 1,
3556
+ "min": 150,
3557
+ "max": 200,
3558
+ "deviceBindingId": null,
3559
+ "driverConfig": {
3560
+ "host": "127.0.0.1",
3561
+ "port": 15040,
3562
+ "unitId": 1,
3563
+ "register": 40021,
3564
+ "dataType": "float32",
3565
+ "byteOrder": "big"
3566
+ },
3567
+ "lineId": "ln-66ec0c1a",
3568
+ "value": null,
3569
+ "readValue": 0,
3570
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3571
+ "lastReadError": null,
3572
+ "lastAckAt": null,
3573
+ "lastWriteAt": null,
3574
+ "state": "idle",
3575
+ "lastError": null,
3576
+ "createdAt": "2026-09-05T05:46:18.696Z"
3577
+ },
3578
+ {
3579
+ "id": "dw-f70a54e8",
3580
+ "templateRef": "dcw-temp-sp",
3581
+ "name": "OPCUA-SP-mtnymjc2",
3582
+ "driver": "opcua",
3583
+ "enabled": true,
3584
+ "holdIntervalMs": null,
3585
+ "readIntervalMs": null,
3586
+ "unit": "℃",
3587
+ "decimals": 1,
3588
+ "min": 150,
3589
+ "max": 200,
3590
+ "deviceBindingId": null,
3591
+ "driverConfig": {
3592
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3593
+ "nodeId": "ns=2;s=AW.SetTemp"
3594
+ },
3595
+ "lineId": "ln-66ec0c1a",
3596
+ "value": null,
3597
+ "readValue": 180,
3598
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3599
+ "lastReadError": null,
3600
+ "lastAckAt": null,
3601
+ "lastWriteAt": null,
3602
+ "state": "idle",
3603
+ "lastError": null,
3604
+ "createdAt": "2026-09-05T05:46:18.744Z"
3605
+ },
3606
+ {
3607
+ "id": "dw-4c5574c2",
3608
+ "templateRef": "dcw-temp-sp",
3609
+ "name": "MQTT-SP-mtnymjc2",
3610
+ "driver": "mqtt",
3611
+ "enabled": true,
3612
+ "holdIntervalMs": null,
3613
+ "readIntervalMs": null,
3614
+ "unit": "℃",
3615
+ "decimals": 1,
3616
+ "min": 150,
3617
+ "max": 200,
3618
+ "deviceBindingId": null,
3619
+ "driverConfig": {
3620
+ "host": "127.0.0.1",
3621
+ "port": 18830,
3622
+ "topic": "aw/sim/setpoint-mtnymjc2",
3623
+ "jsonKey": "setpoint",
3624
+ "qos": 1
3625
+ },
3626
+ "lineId": "ln-66ec0c1a",
3627
+ "value": null,
3628
+ "readValue": null,
3629
+ "lastReadAt": null,
3630
+ "lastReadError": null,
3631
+ "lastAckAt": null,
3632
+ "lastWriteAt": null,
3633
+ "state": "idle",
3634
+ "lastError": null,
3635
+ "createdAt": "2026-09-05T05:46:18.765Z"
3636
+ },
3637
+ {
3638
+ "id": "dw-7f6816a3",
3639
+ "templateRef": "dcw-temp-sp",
3640
+ "name": "HTTP-SP-mtnymjc2",
3641
+ "driver": "http",
3642
+ "enabled": true,
3643
+ "holdIntervalMs": null,
3644
+ "readIntervalMs": null,
3645
+ "unit": "℃",
3646
+ "decimals": 1,
3647
+ "min": 150,
3648
+ "max": 200,
3649
+ "deviceBindingId": null,
3650
+ "driverConfig": {
3651
+ "url": "http://127.0.0.1:1889/api/setpoint",
3652
+ "bodyKey": "setpoint"
3653
+ },
3654
+ "lineId": "ln-66ec0c1a",
3655
+ "value": null,
3656
+ "readValue": null,
3657
+ "lastReadAt": null,
3658
+ "lastReadError": null,
3659
+ "lastAckAt": null,
3660
+ "lastWriteAt": null,
3661
+ "state": "idle",
3662
+ "lastError": null,
3663
+ "createdAt": "2026-09-05T05:46:18.806Z"
3664
+ },
3665
+ {
3666
+ "id": "dw-8960e2f8",
3667
+ "templateRef": "dcw-temp-sp",
3668
+ "name": "PLC-SP温度-mtnynfph",
3669
+ "driver": "modbus-tcp",
3670
+ "enabled": true,
3671
+ "holdIntervalMs": null,
3672
+ "readIntervalMs": null,
3673
+ "unit": "℃",
3674
+ "decimals": 1,
3675
+ "min": 150,
3676
+ "max": 200,
3677
+ "deviceBindingId": null,
3678
+ "driverConfig": {
3679
+ "host": "127.0.0.1",
3680
+ "port": 15040,
3681
+ "unitId": 1,
3682
+ "register": 40021,
3683
+ "dataType": "float32",
3684
+ "byteOrder": "big"
3685
+ },
3686
+ "lineId": "ln-6a34fbc7",
3687
+ "value": 180,
3688
+ "readValue": 0,
3689
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3690
+ "lastReadError": null,
3691
+ "lastAckAt": null,
3692
+ "lastWriteAt": "2026-09-05T05:47:26.481Z",
3693
+ "state": "error",
3694
+ "lastError": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
3695
+ "createdAt": "2026-09-05T05:47:03.725Z"
3696
+ },
3697
+ {
3698
+ "id": "dw-75093843",
3699
+ "templateRef": "dcw-temp-sp",
3700
+ "name": "OPCUA-SP-mtnynfph",
3701
+ "driver": "opcua",
3702
+ "enabled": true,
3703
+ "holdIntervalMs": null,
3704
+ "readIntervalMs": null,
3705
+ "unit": "℃",
3706
+ "decimals": 1,
3707
+ "min": 150,
3708
+ "max": 200,
3709
+ "deviceBindingId": null,
3710
+ "driverConfig": {
3711
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3712
+ "nodeId": "ns=2;s=AW.SetTemp"
3713
+ },
3714
+ "lineId": "ln-6a34fbc7",
3715
+ "value": 172.5,
3716
+ "readValue": 180,
3717
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3718
+ "lastReadError": null,
3719
+ "lastAckAt": null,
3720
+ "lastWriteAt": "2026-09-05T05:47:36.311Z",
3721
+ "state": "error",
3722
+ "lastError": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
3723
+ "createdAt": "2026-09-05T05:47:04.284Z"
3724
+ },
3725
+ {
3726
+ "id": "dw-eb9c0606",
3727
+ "templateRef": "dcw-temp-sp",
3728
+ "name": "MQTT-SP-mtnynfph",
3729
+ "driver": "mqtt",
3730
+ "enabled": true,
3731
+ "holdIntervalMs": null,
3732
+ "readIntervalMs": null,
3733
+ "unit": "℃",
3734
+ "decimals": 1,
3735
+ "min": 150,
3736
+ "max": 200,
3737
+ "deviceBindingId": null,
3738
+ "driverConfig": {
3739
+ "host": "127.0.0.1",
3740
+ "port": 18830,
3741
+ "topic": "aw/sim/setpoint-mtnynfph",
3742
+ "jsonKey": "setpoint",
3743
+ "qos": 1
3744
+ },
3745
+ "lineId": "ln-6a34fbc7",
3746
+ "value": null,
3747
+ "readValue": null,
3748
+ "lastReadAt": null,
3749
+ "lastReadError": null,
3750
+ "lastAckAt": null,
3751
+ "lastWriteAt": null,
3752
+ "state": "idle",
3753
+ "lastError": null,
3754
+ "createdAt": "2026-09-05T05:47:04.321Z"
3755
+ },
3756
+ {
3757
+ "id": "dw-782343d3",
3758
+ "templateRef": "dcw-temp-sp",
3759
+ "name": "HTTP-SP-mtnynfph",
3760
+ "driver": "http",
3761
+ "enabled": true,
3762
+ "holdIntervalMs": null,
3763
+ "readIntervalMs": null,
3764
+ "unit": "℃",
3765
+ "decimals": 1,
3766
+ "min": 150,
3767
+ "max": 200,
3768
+ "deviceBindingId": null,
3769
+ "driverConfig": {
3770
+ "url": "http://127.0.0.1:1889/api/setpoint",
3771
+ "bodyKey": "setpoint"
3772
+ },
3773
+ "lineId": "ln-6a34fbc7",
3774
+ "value": 168.3,
3775
+ "readValue": null,
3776
+ "lastReadAt": null,
3777
+ "lastReadError": null,
3778
+ "lastAckAt": null,
3779
+ "lastWriteAt": "2026-09-05T05:47:36.294Z",
3780
+ "state": "error",
3781
+ "lastError": "HTTP 写入失败: fetch failed",
3782
+ "createdAt": "2026-09-05T05:47:04.381Z"
3783
+ },
3784
+ {
3785
+ "id": "dw-ded0b84a",
3786
+ "templateRef": "dcw-temp-sp",
3787
+ "name": "PLC-SP温度-mtnyz0bo",
3788
+ "driver": "modbus-tcp",
3789
+ "enabled": true,
3790
+ "holdIntervalMs": null,
3791
+ "readIntervalMs": null,
3792
+ "unit": "℃",
3793
+ "decimals": 1,
3794
+ "min": 150,
3795
+ "max": 200,
3796
+ "deviceBindingId": null,
3797
+ "driverConfig": {
3798
+ "host": "127.0.0.1",
3799
+ "port": 15040,
3800
+ "unitId": 1,
3801
+ "register": 40021,
3802
+ "dataType": "float32",
3803
+ "byteOrder": "big"
3804
+ },
3805
+ "lineId": "",
3806
+ "value": 182,
3807
+ "readValue": 0,
3808
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3809
+ "lastReadError": null,
3810
+ "lastAckAt": null,
3811
+ "lastWriteAt": "2026-09-05T05:56:49.055Z",
3812
+ "state": "error",
3813
+ "lastError": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
3814
+ "createdAt": "2026-09-05T05:56:14.070Z"
3815
+ },
3816
+ {
3817
+ "id": "dw-e10b0378",
3818
+ "templateRef": "dcw-temp-sp",
3819
+ "name": "OPCUA-SP-mtnyz0bo",
3820
+ "driver": "opcua",
3821
+ "enabled": true,
3822
+ "holdIntervalMs": null,
3823
+ "readIntervalMs": null,
3824
+ "unit": "℃",
3825
+ "decimals": 1,
3826
+ "min": 150,
3827
+ "max": 200,
3828
+ "deviceBindingId": null,
3829
+ "driverConfig": {
3830
+ "endpoint": "opc.tcp://127.0.0.1:4840",
3831
+ "nodeId": "ns=2;s=AW.SetTemp"
3832
+ },
3833
+ "lineId": "",
3834
+ "value": 172.5,
3835
+ "readValue": 180,
3836
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3837
+ "lastReadError": null,
3838
+ "lastAckAt": null,
3839
+ "lastWriteAt": "2026-09-05T05:56:46.753Z",
3840
+ "state": "error",
3841
+ "lastError": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
3842
+ "createdAt": "2026-09-05T05:56:14.631Z"
3843
+ },
3844
+ {
3845
+ "id": "dw-ef2e0cf9",
3846
+ "templateRef": "dcw-temp-sp",
3847
+ "name": "MQTT-SP-mtnyz0bo",
3848
+ "driver": "mqtt",
3849
+ "enabled": true,
3850
+ "holdIntervalMs": null,
3851
+ "readIntervalMs": null,
3852
+ "unit": "℃",
3853
+ "decimals": 1,
3854
+ "min": 150,
3855
+ "max": 200,
3856
+ "deviceBindingId": null,
3857
+ "driverConfig": {
3858
+ "host": "127.0.0.1",
3859
+ "port": 18830,
3860
+ "topic": "aw/sim/setpoint-mtnyz0bo",
3861
+ "jsonKey": "setpoint",
3862
+ "qos": 1
3863
+ },
3864
+ "lineId": "",
3865
+ "value": null,
3866
+ "readValue": null,
3867
+ "lastReadAt": null,
3868
+ "lastReadError": null,
3869
+ "lastAckAt": null,
3870
+ "lastWriteAt": null,
3871
+ "state": "idle",
3872
+ "lastError": null,
3873
+ "createdAt": "2026-09-05T05:56:14.692Z"
3874
+ },
3875
+ {
3876
+ "id": "dw-20311c49",
3877
+ "templateRef": "dcw-temp-sp",
3878
+ "name": "HTTP-SP-mtnyz0bo",
3879
+ "driver": "http",
3880
+ "enabled": true,
3881
+ "holdIntervalMs": null,
3882
+ "readIntervalMs": null,
3883
+ "unit": "℃",
3884
+ "decimals": 1,
3885
+ "min": 150,
3886
+ "max": 200,
3887
+ "deviceBindingId": null,
3888
+ "driverConfig": {
3889
+ "url": "http://127.0.0.1:1889/api/setpoint",
3890
+ "bodyKey": "setpoint"
3891
+ },
3892
+ "lineId": "",
3893
+ "value": 168.3,
3894
+ "readValue": null,
3895
+ "lastReadAt": null,
3896
+ "lastReadError": null,
3897
+ "lastAckAt": null,
3898
+ "lastWriteAt": "2026-09-05T05:56:46.719Z",
3899
+ "state": "error",
3900
+ "lastError": "HTTP 写入失败: fetch failed",
3901
+ "createdAt": "2026-09-05T05:56:14.753Z"
3902
+ },
3903
+ {
3904
+ "id": "dw-a5ac7f99",
3905
+ "templateRef": "dcw-temp-sp",
3906
+ "name": "演练温度设定器",
3907
+ "driver": "mock",
3908
+ "enabled": true,
3909
+ "holdIntervalMs": null,
3910
+ "readIntervalMs": null,
3911
+ "unit": "℃",
3912
+ "decimals": 1,
3913
+ "min": 150,
3914
+ "max": 200,
3915
+ "deviceBindingId": null,
3916
+ "driverConfig": {},
3917
+ "lineId": "ln-65121e6f",
3918
+ "value": null,
3919
+ "readValue": 180,
3920
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3921
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3922
+ "lastAckAt": null,
3923
+ "lastWriteAt": null,
3924
+ "state": "idle",
3925
+ "lastError": null,
3926
+ "createdAt": "2026-09-05T05:56:25.898Z"
3927
+ },
3928
+ {
3929
+ "id": "dw-a13b6985",
3930
+ "templateRef": "dcw-temp-sp",
3931
+ "name": "演练温度设定器",
3932
+ "driver": "mock",
3933
+ "enabled": true,
3934
+ "holdIntervalMs": null,
3935
+ "readIntervalMs": null,
3936
+ "unit": "℃",
3937
+ "decimals": 1,
3938
+ "min": 150,
3939
+ "max": 200,
3940
+ "deviceBindingId": null,
3941
+ "driverConfig": {},
3942
+ "lineId": "ln-f4db9e02",
3943
+ "value": null,
3944
+ "readValue": 180,
3945
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3946
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
3947
+ "lastAckAt": null,
3948
+ "lastWriteAt": null,
3949
+ "state": "idle",
3950
+ "lastError": null,
3951
+ "createdAt": "2026-09-05T06:08:17.416Z"
3952
+ },
3953
+ {
3954
+ "id": "dw-9f172fc2",
3955
+ "templateRef": "dcw-temp-sp",
3956
+ "name": "PLC-SP温度-mtnzg090",
3957
+ "driver": "modbus-tcp",
3958
+ "enabled": true,
3959
+ "holdIntervalMs": null,
3960
+ "readIntervalMs": null,
3961
+ "unit": "℃",
3962
+ "decimals": 1,
3963
+ "min": 150,
3964
+ "max": 200,
3965
+ "deviceBindingId": null,
3966
+ "driverConfig": {
3967
+ "host": "127.0.0.1",
3968
+ "port": 15040,
3969
+ "unitId": 1,
3970
+ "register": 40021,
3971
+ "dataType": "float32",
3972
+ "byteOrder": "big"
3973
+ },
3974
+ "lineId": "ln-419463e0",
3975
+ "value": 182,
3976
+ "readValue": 0,
3977
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
3978
+ "lastReadError": null,
3979
+ "lastAckAt": null,
3980
+ "lastWriteAt": "2026-09-05T06:09:49.071Z",
3981
+ "state": "error",
3982
+ "lastError": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
3983
+ "createdAt": "2026-09-05T06:09:14.221Z"
3984
+ },
3985
+ {
3986
+ "id": "dw-695d97ed",
3987
+ "templateRef": "dcw-temp-sp",
3988
+ "name": "OPCUA-SP-mtnzg090",
3989
+ "driver": "opcua",
3990
+ "enabled": true,
3991
+ "holdIntervalMs": null,
3992
+ "readIntervalMs": null,
3993
+ "unit": "℃",
3994
+ "decimals": 1,
3995
+ "min": 150,
3996
+ "max": 200,
3997
+ "deviceBindingId": null,
3998
+ "driverConfig": {
3999
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4000
+ "nodeId": "ns=2;s=AW.SetTemp"
4001
+ },
4002
+ "lineId": "ln-419463e0",
4003
+ "value": 172.5,
4004
+ "readValue": 180,
4005
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4006
+ "lastReadError": null,
4007
+ "lastAckAt": null,
4008
+ "lastWriteAt": "2026-09-05T06:09:46.778Z",
4009
+ "state": "error",
4010
+ "lastError": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
4011
+ "createdAt": "2026-09-05T06:09:14.750Z"
4012
+ },
4013
+ {
4014
+ "id": "dw-b8ab8806",
4015
+ "templateRef": "dcw-temp-sp",
4016
+ "name": "MQTT-SP-mtnzg090",
4017
+ "driver": "mqtt",
4018
+ "enabled": true,
4019
+ "holdIntervalMs": null,
4020
+ "readIntervalMs": null,
4021
+ "unit": "℃",
4022
+ "decimals": 1,
4023
+ "min": 150,
4024
+ "max": 200,
4025
+ "deviceBindingId": null,
4026
+ "driverConfig": {
4027
+ "host": "127.0.0.1",
4028
+ "port": 18830,
4029
+ "topic": "aw/sim/setpoint-mtnzg090",
4030
+ "jsonKey": "setpoint",
4031
+ "qos": 1
4032
+ },
4033
+ "lineId": "ln-419463e0",
4034
+ "value": null,
4035
+ "readValue": null,
4036
+ "lastReadAt": null,
4037
+ "lastReadError": null,
4038
+ "lastAckAt": null,
4039
+ "lastWriteAt": null,
4040
+ "state": "idle",
4041
+ "lastError": null,
4042
+ "createdAt": "2026-09-05T06:09:14.790Z"
4043
+ },
4044
+ {
4045
+ "id": "dw-514628fa",
4046
+ "templateRef": "dcw-temp-sp",
4047
+ "name": "HTTP-SP-mtnzg090",
4048
+ "driver": "http",
4049
+ "enabled": true,
4050
+ "holdIntervalMs": null,
4051
+ "readIntervalMs": null,
4052
+ "unit": "℃",
4053
+ "decimals": 1,
4054
+ "min": 150,
4055
+ "max": 200,
4056
+ "deviceBindingId": null,
4057
+ "driverConfig": {
4058
+ "url": "http://127.0.0.1:1889/api/setpoint",
4059
+ "bodyKey": "setpoint"
4060
+ },
4061
+ "lineId": "ln-419463e0",
4062
+ "value": 168.3,
4063
+ "readValue": null,
4064
+ "lastReadAt": null,
4065
+ "lastReadError": null,
4066
+ "lastAckAt": null,
4067
+ "lastWriteAt": "2026-09-05T06:09:46.766Z",
4068
+ "state": "error",
4069
+ "lastError": "HTTP 写入失败: fetch failed",
4070
+ "createdAt": "2026-09-05T06:09:14.844Z"
4071
+ },
4072
+ {
4073
+ "id": "dw-e9bb9fb1",
4074
+ "templateRef": "dcw-temp-sp",
4075
+ "name": "演练温度设定器",
4076
+ "driver": "mock",
4077
+ "enabled": true,
4078
+ "holdIntervalMs": null,
4079
+ "readIntervalMs": null,
4080
+ "unit": "℃",
4081
+ "decimals": 1,
4082
+ "min": 150,
4083
+ "max": 200,
4084
+ "deviceBindingId": null,
4085
+ "driverConfig": {},
4086
+ "lineId": "ln-b0e94f9e",
4087
+ "value": null,
4088
+ "readValue": 180,
4089
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4090
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
4091
+ "lastAckAt": null,
4092
+ "lastWriteAt": null,
4093
+ "state": "idle",
4094
+ "lastError": null,
4095
+ "createdAt": "2026-09-05T06:11:45.916Z"
4096
+ },
4097
+ {
4098
+ "id": "dw-c30656ec",
4099
+ "templateRef": "dcw-temp-sp",
4100
+ "name": "PLC-SP温度-mtnzli8v",
4101
+ "driver": "modbus-tcp",
4102
+ "enabled": true,
4103
+ "holdIntervalMs": null,
4104
+ "readIntervalMs": null,
4105
+ "unit": "℃",
4106
+ "decimals": 1,
4107
+ "min": 150,
4108
+ "max": 200,
4109
+ "deviceBindingId": null,
4110
+ "driverConfig": {
4111
+ "host": "127.0.0.1",
4112
+ "port": 15040,
4113
+ "unitId": 1,
4114
+ "register": 40021,
4115
+ "dataType": "float32",
4116
+ "byteOrder": "big"
4117
+ },
4118
+ "lineId": "",
4119
+ "value": 182,
4120
+ "readValue": 0,
4121
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4122
+ "lastReadError": null,
4123
+ "lastAckAt": "2026-09-05T06:14:19.351Z",
4124
+ "lastWriteAt": "2026-09-05T06:14:19.351Z",
4125
+ "state": "ok",
4126
+ "lastError": null,
4127
+ "createdAt": "2026-09-05T06:13:36.420Z"
4128
+ },
4129
+ {
4130
+ "id": "dw-318f7efc",
4131
+ "templateRef": "dcw-temp-sp",
4132
+ "name": "OPCUA-SP-mtnzli8v",
4133
+ "driver": "opcua",
4134
+ "enabled": true,
4135
+ "holdIntervalMs": null,
4136
+ "readIntervalMs": null,
4137
+ "unit": "℃",
4138
+ "decimals": 1,
4139
+ "min": 150,
4140
+ "max": 200,
4141
+ "deviceBindingId": null,
4142
+ "driverConfig": {
4143
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4144
+ "nodeId": "ns=2;s=AW.SetTemp"
4145
+ },
4146
+ "lineId": "",
4147
+ "value": 172.5,
4148
+ "readValue": 180,
4149
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4150
+ "lastReadError": null,
4151
+ "lastAckAt": "2026-09-05T06:14:18.111Z",
4152
+ "lastWriteAt": "2026-09-05T06:14:18.111Z",
4153
+ "state": "ok",
4154
+ "lastError": null,
4155
+ "createdAt": "2026-09-05T06:13:36.448Z"
4156
+ },
4157
+ {
4158
+ "id": "dw-2dddfcb3",
4159
+ "templateRef": "dcw-temp-sp",
4160
+ "name": "MQTT-SP-mtnzli8v",
4161
+ "driver": "mqtt",
4162
+ "enabled": true,
4163
+ "holdIntervalMs": null,
4164
+ "readIntervalMs": null,
4165
+ "unit": "℃",
4166
+ "decimals": 1,
4167
+ "min": 150,
4168
+ "max": 200,
4169
+ "deviceBindingId": null,
4170
+ "driverConfig": {
4171
+ "host": "127.0.0.1",
4172
+ "port": 18830,
4173
+ "topic": "aw/sim/setpoint-mtnzli8v",
4174
+ "jsonKey": "setpoint",
4175
+ "qos": 1
4176
+ },
4177
+ "lineId": "",
4178
+ "value": 165.5,
4179
+ "readValue": null,
4180
+ "lastReadAt": null,
4181
+ "lastReadError": null,
4182
+ "lastAckAt": "2026-09-05T06:14:08.076Z",
4183
+ "lastWriteAt": "2026-09-05T06:14:08.076Z",
4184
+ "state": "ok",
4185
+ "lastError": null,
4186
+ "createdAt": "2026-09-05T06:13:36.477Z"
4187
+ },
4188
+ {
4189
+ "id": "dw-f475e275",
4190
+ "templateRef": "dcw-temp-sp",
4191
+ "name": "HTTP-SP-mtnzli8v",
4192
+ "driver": "http",
4193
+ "enabled": true,
4194
+ "holdIntervalMs": null,
4195
+ "readIntervalMs": null,
4196
+ "unit": "℃",
4197
+ "decimals": 1,
4198
+ "min": 150,
4199
+ "max": 200,
4200
+ "deviceBindingId": null,
4201
+ "driverConfig": {
4202
+ "url": "http://127.0.0.1:1889/api/setpoint",
4203
+ "bodyKey": "setpoint"
4204
+ },
4205
+ "lineId": "",
4206
+ "value": 168.3,
4207
+ "readValue": null,
4208
+ "lastReadAt": null,
4209
+ "lastReadError": null,
4210
+ "lastAckAt": "2026-09-05T06:14:18.101Z",
4211
+ "lastWriteAt": "2026-09-05T06:14:18.101Z",
4212
+ "state": "ok",
4213
+ "lastError": null,
4214
+ "createdAt": "2026-09-05T06:13:36.523Z"
4215
+ },
4216
+ {
4217
+ "id": "dw-6bbb6cd8",
4218
+ "templateRef": "dcw-temp-sp",
4219
+ "name": "演练温度设定器",
4220
+ "driver": "mock",
4221
+ "enabled": true,
4222
+ "holdIntervalMs": null,
4223
+ "readIntervalMs": null,
4224
+ "unit": "℃",
4225
+ "decimals": 1,
4226
+ "min": 150,
4227
+ "max": 200,
4228
+ "deviceBindingId": null,
4229
+ "driverConfig": {},
4230
+ "lineId": "ln-536af8ec",
4231
+ "value": null,
4232
+ "readValue": 180,
4233
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4234
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
4235
+ "lastAckAt": null,
4236
+ "lastWriteAt": null,
4237
+ "state": "idle",
4238
+ "lastError": null,
4239
+ "createdAt": "2026-09-05T06:22:24.593Z"
4240
+ },
4241
+ {
4242
+ "id": "dw-553bf1fb",
4243
+ "templateRef": "dcw-temp-sp",
4244
+ "name": "PLC-SP温度-mto01hxw",
4245
+ "driver": "modbus-tcp",
4246
+ "enabled": true,
4247
+ "holdIntervalMs": null,
4248
+ "readIntervalMs": null,
4249
+ "unit": "℃",
4250
+ "decimals": 1,
4251
+ "min": 150,
4252
+ "max": 200,
4253
+ "deviceBindingId": null,
4254
+ "driverConfig": {
4255
+ "host": "127.0.0.1",
4256
+ "port": 15040,
4257
+ "unitId": 1,
4258
+ "register": 40021,
4259
+ "dataType": "float32",
4260
+ "byteOrder": "big"
4261
+ },
4262
+ "lineId": "",
4263
+ "value": 182,
4264
+ "readValue": 0,
4265
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4266
+ "lastReadError": null,
4267
+ "lastAckAt": "2026-09-05T06:26:39.295Z",
4268
+ "lastWriteAt": "2026-09-05T06:26:39.295Z",
4269
+ "state": "ok",
4270
+ "lastError": null,
4271
+ "createdAt": "2026-09-05T06:25:56.403Z"
4272
+ },
4273
+ {
4274
+ "id": "dw-2a3792ba",
4275
+ "templateRef": "dcw-temp-sp",
4276
+ "name": "OPCUA-SP-mto01hxw",
4277
+ "driver": "opcua",
4278
+ "enabled": true,
4279
+ "holdIntervalMs": null,
4280
+ "readIntervalMs": null,
4281
+ "unit": "℃",
4282
+ "decimals": 1,
4283
+ "min": 150,
4284
+ "max": 200,
4285
+ "deviceBindingId": null,
4286
+ "driverConfig": {
4287
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4288
+ "nodeId": "ns=2;s=AW.SetTemp"
4289
+ },
4290
+ "lineId": "",
4291
+ "value": 172.5,
4292
+ "readValue": 180,
4293
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4294
+ "lastReadError": null,
4295
+ "lastAckAt": "2026-09-05T06:26:38.050Z",
4296
+ "lastWriteAt": "2026-09-05T06:26:38.050Z",
4297
+ "state": "ok",
4298
+ "lastError": null,
4299
+ "createdAt": "2026-09-05T06:25:56.436Z"
4300
+ },
4301
+ {
4302
+ "id": "dw-640da431",
4303
+ "templateRef": "dcw-temp-sp",
4304
+ "name": "MQTT-SP-mto01hxw",
4305
+ "driver": "mqtt",
4306
+ "enabled": true,
4307
+ "holdIntervalMs": null,
4308
+ "readIntervalMs": null,
4309
+ "unit": "℃",
4310
+ "decimals": 1,
4311
+ "min": 150,
4312
+ "max": 200,
4313
+ "deviceBindingId": null,
4314
+ "driverConfig": {
4315
+ "host": "127.0.0.1",
4316
+ "port": 18830,
4317
+ "topic": "aw/sim/setpoint-mto01hxw",
4318
+ "jsonKey": "setpoint",
4319
+ "qos": 1
4320
+ },
4321
+ "lineId": "",
4322
+ "value": 165.5,
4323
+ "readValue": null,
4324
+ "lastReadAt": null,
4325
+ "lastReadError": null,
4326
+ "lastAckAt": "2026-09-05T06:26:28.009Z",
4327
+ "lastWriteAt": "2026-09-05T06:26:28.009Z",
4328
+ "state": "ok",
4329
+ "lastError": null,
4330
+ "createdAt": "2026-09-05T06:25:56.468Z"
4331
+ },
4332
+ {
4333
+ "id": "dw-d88af90e",
4334
+ "templateRef": "dcw-temp-sp",
4335
+ "name": "HTTP-SP-mto01hxw",
4336
+ "driver": "http",
4337
+ "enabled": true,
4338
+ "holdIntervalMs": null,
4339
+ "readIntervalMs": null,
4340
+ "unit": "℃",
4341
+ "decimals": 1,
4342
+ "min": 150,
4343
+ "max": 200,
4344
+ "deviceBindingId": null,
4345
+ "driverConfig": {
4346
+ "url": "http://127.0.0.1:1889/api/setpoint",
4347
+ "bodyKey": "setpoint"
4348
+ },
4349
+ "lineId": "",
4350
+ "value": 168.3,
4351
+ "readValue": null,
4352
+ "lastReadAt": null,
4353
+ "lastReadError": null,
4354
+ "lastAckAt": "2026-09-05T06:26:38.040Z",
4355
+ "lastWriteAt": "2026-09-05T06:26:38.040Z",
4356
+ "state": "ok",
4357
+ "lastError": null,
4358
+ "createdAt": "2026-09-05T06:25:56.530Z"
4359
+ },
4360
+ {
4361
+ "id": "dw-8e07e4f3",
4362
+ "templateRef": "dcw-temp-sp",
4363
+ "name": "PLC-SP温度-mto0h8o5",
4364
+ "driver": "modbus-tcp",
4365
+ "enabled": true,
4366
+ "holdIntervalMs": null,
4367
+ "readIntervalMs": null,
4368
+ "unit": "℃",
4369
+ "decimals": 1,
4370
+ "min": 150,
4371
+ "max": 200,
4372
+ "deviceBindingId": null,
4373
+ "driverConfig": {
4374
+ "host": "127.0.0.1",
4375
+ "port": 15040,
4376
+ "unitId": 1,
4377
+ "register": 40021,
4378
+ "dataType": "float32",
4379
+ "byteOrder": "big"
4380
+ },
4381
+ "lineId": "",
4382
+ "value": 182,
4383
+ "readValue": 0,
4384
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4385
+ "lastReadError": null,
4386
+ "lastAckAt": "2026-09-05T06:38:54.283Z",
4387
+ "lastWriteAt": "2026-09-05T06:38:54.283Z",
4388
+ "state": "ok",
4389
+ "lastError": null,
4390
+ "createdAt": "2026-09-05T06:38:11.334Z"
4391
+ },
4392
+ {
4393
+ "id": "dw-bd474c10",
4394
+ "templateRef": "dcw-temp-sp",
4395
+ "name": "OPCUA-SP-mto0h8o5",
4396
+ "driver": "opcua",
4397
+ "enabled": true,
4398
+ "holdIntervalMs": null,
4399
+ "readIntervalMs": null,
4400
+ "unit": "℃",
4401
+ "decimals": 1,
4402
+ "min": 150,
4403
+ "max": 200,
4404
+ "deviceBindingId": null,
4405
+ "driverConfig": {
4406
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4407
+ "nodeId": "ns=2;s=AW.SetTemp"
4408
+ },
4409
+ "lineId": "",
4410
+ "value": 172.5,
4411
+ "readValue": 180,
4412
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4413
+ "lastReadError": null,
4414
+ "lastAckAt": "2026-09-05T06:38:53.044Z",
4415
+ "lastWriteAt": "2026-09-05T06:38:53.044Z",
4416
+ "state": "ok",
4417
+ "lastError": null,
4418
+ "createdAt": "2026-09-05T06:38:11.381Z"
4419
+ },
4420
+ {
4421
+ "id": "dw-338fd553",
4422
+ "templateRef": "dcw-temp-sp",
4423
+ "name": "MQTT-SP-mto0h8o5",
4424
+ "driver": "mqtt",
4425
+ "enabled": true,
4426
+ "holdIntervalMs": null,
4427
+ "readIntervalMs": null,
4428
+ "unit": "℃",
4429
+ "decimals": 1,
4430
+ "min": 150,
4431
+ "max": 200,
4432
+ "deviceBindingId": null,
4433
+ "driverConfig": {
4434
+ "host": "127.0.0.1",
4435
+ "port": 18830,
4436
+ "topic": "aw/sim/setpoint-mto0h8o5",
4437
+ "jsonKey": "setpoint",
4438
+ "qos": 1
4439
+ },
4440
+ "lineId": "",
4441
+ "value": 165.5,
4442
+ "readValue": null,
4443
+ "lastReadAt": null,
4444
+ "lastReadError": null,
4445
+ "lastAckAt": "2026-09-05T06:38:42.952Z",
4446
+ "lastWriteAt": "2026-09-05T06:38:42.952Z",
4447
+ "state": "ok",
4448
+ "lastError": null,
4449
+ "createdAt": "2026-09-05T06:38:11.428Z"
4450
+ },
4451
+ {
4452
+ "id": "dw-9b5d4225",
4453
+ "templateRef": "dcw-temp-sp",
4454
+ "name": "HTTP-SP-mto0h8o5",
4455
+ "driver": "http",
4456
+ "enabled": true,
4457
+ "holdIntervalMs": null,
4458
+ "readIntervalMs": null,
4459
+ "unit": "℃",
4460
+ "decimals": 1,
4461
+ "min": 150,
4462
+ "max": 200,
4463
+ "deviceBindingId": null,
4464
+ "driverConfig": {
4465
+ "url": "http://127.0.0.1:1889/api/setpoint",
4466
+ "bodyKey": "setpoint"
4467
+ },
4468
+ "lineId": "",
4469
+ "value": 168.3,
4470
+ "readValue": null,
4471
+ "lastReadAt": null,
4472
+ "lastReadError": null,
4473
+ "lastAckAt": "2026-09-05T06:38:53.028Z",
4474
+ "lastWriteAt": "2026-09-05T06:38:53.028Z",
4475
+ "state": "ok",
4476
+ "lastError": null,
4477
+ "createdAt": "2026-09-05T06:38:11.475Z"
4478
+ },
4479
+ {
4480
+ "id": "dw-9165705f",
4481
+ "templateRef": "dcw-temp-sp",
4482
+ "name": "演练温度设定器",
4483
+ "driver": "mock",
4484
+ "enabled": true,
4485
+ "holdIntervalMs": null,
4486
+ "readIntervalMs": null,
4487
+ "unit": "℃",
4488
+ "decimals": 1,
4489
+ "min": 150,
4490
+ "max": 200,
4491
+ "deviceBindingId": null,
4492
+ "driverConfig": {},
4493
+ "lineId": "ln-476d81d5",
4494
+ "value": null,
4495
+ "readValue": 180,
4496
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4497
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
4498
+ "lastAckAt": null,
4499
+ "lastWriteAt": null,
4500
+ "state": "idle",
4501
+ "lastError": null,
4502
+ "createdAt": "2026-09-05T06:38:15.600Z"
4503
+ },
4504
+ {
4505
+ "id": "dw-96091e58",
4506
+ "templateRef": "dcw-temp-sp",
4507
+ "name": "PLC-SP温度-mto0m9es",
4508
+ "driver": "modbus-tcp",
4509
+ "enabled": true,
4510
+ "holdIntervalMs": null,
4511
+ "readIntervalMs": null,
4512
+ "unit": "℃",
4513
+ "decimals": 1,
4514
+ "min": 150,
4515
+ "max": 200,
4516
+ "deviceBindingId": null,
4517
+ "driverConfig": {
4518
+ "host": "127.0.0.1",
4519
+ "port": 15040,
4520
+ "unitId": 1,
4521
+ "register": 40021,
4522
+ "dataType": "float32",
4523
+ "byteOrder": "big"
4524
+ },
4525
+ "lineId": "",
4526
+ "value": 182,
4527
+ "readValue": 0,
4528
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4529
+ "lastReadError": null,
4530
+ "lastAckAt": "2026-09-05T06:42:57.442Z",
4531
+ "lastWriteAt": "2026-09-05T06:42:57.442Z",
4532
+ "state": "ok",
4533
+ "lastError": null,
4534
+ "createdAt": "2026-09-05T06:42:06.399Z"
4535
+ },
4536
+ {
4537
+ "id": "dw-9ae723f6",
4538
+ "templateRef": "dcw-temp-sp",
4539
+ "name": "OPCUA-SP-mto0m9es",
4540
+ "driver": "opcua",
4541
+ "enabled": true,
4542
+ "holdIntervalMs": null,
4543
+ "readIntervalMs": null,
4544
+ "unit": "℃",
4545
+ "decimals": 1,
4546
+ "min": 150,
4547
+ "max": 200,
4548
+ "deviceBindingId": null,
4549
+ "driverConfig": {
4550
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4551
+ "nodeId": "ns=2;s=AW.SetTemp"
4552
+ },
4553
+ "lineId": "",
4554
+ "value": 172.5,
4555
+ "readValue": 180,
4556
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4557
+ "lastReadError": null,
4558
+ "lastAckAt": "2026-09-05T06:42:56.196Z",
4559
+ "lastWriteAt": "2026-09-05T06:42:56.196Z",
4560
+ "state": "ok",
4561
+ "lastError": null,
4562
+ "createdAt": "2026-09-05T06:42:06.446Z"
4563
+ },
4564
+ {
4565
+ "id": "dw-bc310f3b",
4566
+ "templateRef": "dcw-temp-sp",
4567
+ "name": "MQTT-SP-mto0m9es",
4568
+ "driver": "mqtt",
4569
+ "enabled": true,
4570
+ "holdIntervalMs": null,
4571
+ "readIntervalMs": null,
4572
+ "unit": "℃",
4573
+ "decimals": 1,
4574
+ "min": 150,
4575
+ "max": 200,
4576
+ "deviceBindingId": null,
4577
+ "driverConfig": {
4578
+ "host": "127.0.0.1",
4579
+ "port": 18830,
4580
+ "topic": "aw/sim/setpoint-mto0m9es",
4581
+ "jsonKey": "setpoint",
4582
+ "qos": 1
4583
+ },
4584
+ "lineId": "",
4585
+ "value": 165.5,
4586
+ "readValue": null,
4587
+ "lastReadAt": null,
4588
+ "lastReadError": null,
4589
+ "lastAckAt": "2026-09-05T06:42:48.154Z",
4590
+ "lastWriteAt": "2026-09-05T06:42:48.154Z",
4591
+ "state": "ok",
4592
+ "lastError": null,
4593
+ "createdAt": "2026-09-05T06:42:06.491Z"
4594
+ },
4595
+ {
4596
+ "id": "dw-1f0372a3",
4597
+ "templateRef": "dcw-temp-sp",
4598
+ "name": "HTTP-SP-mto0m9es",
4599
+ "driver": "http",
4600
+ "enabled": true,
4601
+ "holdIntervalMs": null,
4602
+ "readIntervalMs": null,
4603
+ "unit": "℃",
4604
+ "decimals": 1,
4605
+ "min": 150,
4606
+ "max": 200,
4607
+ "deviceBindingId": null,
4608
+ "driverConfig": {
4609
+ "url": "http://127.0.0.1:1889/api/setpoint",
4610
+ "bodyKey": "setpoint"
4611
+ },
4612
+ "lineId": "",
4613
+ "value": 168.3,
4614
+ "readValue": null,
4615
+ "lastReadAt": null,
4616
+ "lastReadError": null,
4617
+ "lastAckAt": "2026-09-05T06:42:56.186Z",
4618
+ "lastWriteAt": "2026-09-05T06:42:56.186Z",
4619
+ "state": "ok",
4620
+ "lastError": null,
4621
+ "createdAt": "2026-09-05T06:42:06.539Z"
4622
+ },
4623
+ {
4624
+ "id": "dw-f1c1826f",
4625
+ "templateRef": "dcw-temp-sp",
4626
+ "name": "iso-node",
4627
+ "driver": "mqtt",
4628
+ "enabled": true,
4629
+ "holdIntervalMs": null,
4630
+ "readIntervalMs": null,
4631
+ "unit": "℃",
4632
+ "decimals": 1,
4633
+ "min": 150,
4634
+ "max": 200,
4635
+ "deviceBindingId": null,
4636
+ "driverConfig": {
4637
+ "host": "127.0.0.1",
4638
+ "port": 18830,
4639
+ "topic": "aw/sim/setpoint-isolate-1788590796405",
4640
+ "jsonKey": "setpoint",
4641
+ "qos": 1
4642
+ },
4643
+ "lineId": "ln-f14fc302",
4644
+ "value": 165.5,
4645
+ "readValue": null,
4646
+ "lastReadAt": null,
4647
+ "lastReadError": null,
4648
+ "lastAckAt": "2026-09-05T06:46:36.572Z",
4649
+ "lastWriteAt": "2026-09-05T06:46:36.572Z",
4650
+ "state": "ok",
4651
+ "lastError": null,
4652
+ "createdAt": "2026-09-05T06:46:36.490Z"
4653
+ },
4654
+ {
4655
+ "id": "dw-13c13e86",
4656
+ "templateRef": "dcw-temp-sp",
4657
+ "name": "dbg-node",
4658
+ "driver": "mqtt",
4659
+ "enabled": true,
4660
+ "holdIntervalMs": null,
4661
+ "readIntervalMs": null,
4662
+ "unit": "℃",
4663
+ "decimals": 1,
4664
+ "min": 150,
4665
+ "max": 200,
4666
+ "deviceBindingId": null,
4667
+ "driverConfig": {
4668
+ "host": "127.0.0.1",
4669
+ "port": 18830,
4670
+ "topic": "aw/sim/setpoint-dbg-1788590901692",
4671
+ "jsonKey": "setpoint",
4672
+ "qos": 1
4673
+ },
4674
+ "lineId": "ln-12c4dfdc",
4675
+ "value": null,
4676
+ "readValue": null,
4677
+ "lastReadAt": null,
4678
+ "lastReadError": null,
4679
+ "lastAckAt": null,
4680
+ "lastWriteAt": null,
4681
+ "state": "idle",
4682
+ "lastError": null,
4683
+ "createdAt": "2026-09-05T06:48:21.753Z"
4684
+ },
4685
+ {
4686
+ "id": "dw-28bd6390",
4687
+ "templateRef": "dcw-temp-sp",
4688
+ "name": "演练温度设定器",
4689
+ "driver": "mock",
4690
+ "enabled": true,
4691
+ "holdIntervalMs": null,
4692
+ "readIntervalMs": null,
4693
+ "unit": "℃",
4694
+ "decimals": 1,
4695
+ "min": 150,
4696
+ "max": 200,
4697
+ "deviceBindingId": null,
4698
+ "driverConfig": {},
4699
+ "lineId": "ln-8d5cae82",
4700
+ "value": null,
4701
+ "readValue": 180,
4702
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4703
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
4704
+ "lastAckAt": null,
4705
+ "lastWriteAt": null,
4706
+ "state": "idle",
4707
+ "lastError": null,
4708
+ "createdAt": "2026-09-05T06:49:48.697Z"
4709
+ },
4710
+ {
4711
+ "id": "dw-ceb01b44",
4712
+ "templateRef": "dcw-temp-sp",
4713
+ "name": "dbg2-node",
4714
+ "driver": "mqtt",
4715
+ "enabled": true,
4716
+ "holdIntervalMs": null,
4717
+ "readIntervalMs": null,
4718
+ "unit": "℃",
4719
+ "decimals": 1,
4720
+ "min": 150,
4721
+ "max": 200,
4722
+ "deviceBindingId": null,
4723
+ "driverConfig": {
4724
+ "host": "127.0.0.1",
4725
+ "port": 18830,
4726
+ "topic": "aw/sim/setpoint-dbg2-1788591014909",
4727
+ "jsonKey": "setpoint",
4728
+ "qos": 1
4729
+ },
4730
+ "lineId": "ln-1ed34ab1",
4731
+ "value": 165.5,
4732
+ "readValue": null,
4733
+ "lastReadAt": null,
4734
+ "lastReadError": null,
4735
+ "lastAckAt": "2026-09-05T06:50:15.592Z",
4736
+ "lastWriteAt": "2026-09-05T06:50:15.592Z",
4737
+ "state": "ok",
4738
+ "lastError": null,
4739
+ "createdAt": "2026-09-05T06:50:14.994Z"
4740
+ },
4741
+ {
4742
+ "id": "dw-77703120",
4743
+ "templateRef": "dcw-temp-sp",
4744
+ "name": "1883check-node",
4745
+ "driver": "mqtt",
4746
+ "enabled": true,
4747
+ "holdIntervalMs": null,
4748
+ "readIntervalMs": null,
4749
+ "unit": "℃",
4750
+ "decimals": 1,
4751
+ "min": 150,
4752
+ "max": 200,
4753
+ "deviceBindingId": null,
4754
+ "driverConfig": {
4755
+ "host": "127.0.0.1",
4756
+ "port": 1883,
4757
+ "topic": "aw/sim/setpoint-1883check-1788591049995",
4758
+ "jsonKey": "setpoint",
4759
+ "qos": 1
4760
+ },
4761
+ "lineId": "ln-0e57a6e6",
4762
+ "value": 165.5,
4763
+ "readValue": null,
4764
+ "lastReadAt": null,
4765
+ "lastReadError": null,
4766
+ "lastAckAt": "2026-09-05T06:50:50.654Z",
4767
+ "lastWriteAt": "2026-09-05T06:50:50.654Z",
4768
+ "state": "ok",
4769
+ "lastError": null,
4770
+ "createdAt": "2026-09-05T06:50:50.069Z"
4771
+ },
4772
+ {
4773
+ "id": "dw-ab89beb3",
4774
+ "templateRef": "dcw-temp-sp",
4775
+ "name": "PLC-SP温度-mto113i2",
4776
+ "driver": "modbus-tcp",
4777
+ "enabled": true,
4778
+ "holdIntervalMs": null,
4779
+ "readIntervalMs": null,
4780
+ "unit": "℃",
4781
+ "decimals": 1,
4782
+ "min": 150,
4783
+ "max": 200,
4784
+ "deviceBindingId": null,
4785
+ "driverConfig": {
4786
+ "host": "127.0.0.1",
4787
+ "port": 15040,
4788
+ "unitId": 1,
4789
+ "register": 40021,
4790
+ "dataType": "float32",
4791
+ "byteOrder": "big"
4792
+ },
4793
+ "lineId": "",
4794
+ "value": 182,
4795
+ "readValue": 0,
4796
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4797
+ "lastReadError": null,
4798
+ "lastAckAt": "2026-09-05T06:54:23.219Z",
4799
+ "lastWriteAt": "2026-09-05T06:54:23.219Z",
4800
+ "state": "ok",
4801
+ "lastError": null,
4802
+ "createdAt": "2026-09-05T06:53:39.405Z"
4803
+ },
4804
+ {
4805
+ "id": "dw-767219b4",
4806
+ "templateRef": "dcw-temp-sp",
4807
+ "name": "OPCUA-SP-mto113i2",
4808
+ "driver": "opcua",
4809
+ "enabled": true,
4810
+ "holdIntervalMs": null,
4811
+ "readIntervalMs": null,
4812
+ "unit": "℃",
4813
+ "decimals": 1,
4814
+ "min": 150,
4815
+ "max": 200,
4816
+ "deviceBindingId": null,
4817
+ "driverConfig": {
4818
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4819
+ "nodeId": "ns=2;s=AW.SetTemp"
4820
+ },
4821
+ "lineId": "",
4822
+ "value": 172.5,
4823
+ "readValue": 180,
4824
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4825
+ "lastReadError": null,
4826
+ "lastAckAt": "2026-09-05T06:54:21.997Z",
4827
+ "lastWriteAt": "2026-09-05T06:54:21.997Z",
4828
+ "state": "ok",
4829
+ "lastError": null,
4830
+ "createdAt": "2026-09-05T06:53:39.435Z"
4831
+ },
4832
+ {
4833
+ "id": "dw-b221bb65",
4834
+ "templateRef": "dcw-temp-sp",
4835
+ "name": "MQTT-SP-mto113i2",
4836
+ "driver": "mqtt",
4837
+ "enabled": true,
4838
+ "holdIntervalMs": null,
4839
+ "readIntervalMs": null,
4840
+ "unit": "℃",
4841
+ "decimals": 1,
4842
+ "min": 150,
4843
+ "max": 200,
4844
+ "deviceBindingId": null,
4845
+ "driverConfig": {
4846
+ "host": "127.0.0.1",
4847
+ "port": 18830,
4848
+ "topic": "aw/sim/setpoint-mto113i2",
4849
+ "jsonKey": "setpoint",
4850
+ "qos": 1
4851
+ },
4852
+ "lineId": "",
4853
+ "value": 165.5,
4854
+ "readValue": null,
4855
+ "lastReadAt": null,
4856
+ "lastReadError": null,
4857
+ "lastAckAt": "2026-09-05T06:54:10.939Z",
4858
+ "lastWriteAt": "2026-09-05T06:54:10.939Z",
4859
+ "state": "ok",
4860
+ "lastError": null,
4861
+ "createdAt": "2026-09-05T06:53:39.466Z"
4862
+ },
4863
+ {
4864
+ "id": "dw-4350c146",
4865
+ "templateRef": "dcw-temp-sp",
4866
+ "name": "HTTP-SP-mto113i2",
4867
+ "driver": "http",
4868
+ "enabled": true,
4869
+ "holdIntervalMs": null,
4870
+ "readIntervalMs": null,
4871
+ "unit": "℃",
4872
+ "decimals": 1,
4873
+ "min": 150,
4874
+ "max": 200,
4875
+ "deviceBindingId": null,
4876
+ "driverConfig": {
4877
+ "url": "http://127.0.0.1:1889/api/setpoint",
4878
+ "bodyKey": "setpoint"
4879
+ },
4880
+ "lineId": "",
4881
+ "value": 168.3,
4882
+ "readValue": null,
4883
+ "lastReadAt": null,
4884
+ "lastReadError": null,
4885
+ "lastAckAt": "2026-09-05T06:54:21.980Z",
4886
+ "lastWriteAt": "2026-09-05T06:54:21.980Z",
4887
+ "state": "ok",
4888
+ "lastError": null,
4889
+ "createdAt": "2026-09-05T06:53:39.513Z"
4890
+ },
4891
+ {
4892
+ "id": "dw-ffcf8a59",
4893
+ "templateRef": "dcw-temp-sp",
4894
+ "name": "演练温度设定器",
4895
+ "driver": "mock",
4896
+ "enabled": true,
4897
+ "holdIntervalMs": null,
4898
+ "readIntervalMs": null,
4899
+ "unit": "℃",
4900
+ "decimals": 1,
4901
+ "min": 150,
4902
+ "max": 200,
4903
+ "deviceBindingId": null,
4904
+ "driverConfig": {},
4905
+ "lineId": "ln-ee6d4693",
4906
+ "value": null,
4907
+ "readValue": 180,
4908
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4909
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
4910
+ "lastAckAt": null,
4911
+ "lastWriteAt": null,
4912
+ "state": "idle",
4913
+ "lastError": null,
4914
+ "createdAt": "2026-09-05T06:59:56.604Z"
4915
+ },
4916
+ {
4917
+ "id": "dw-4c6c6920",
4918
+ "templateRef": "dcw-temp-sp",
4919
+ "name": "PLC-SP温度-mto1771y",
4920
+ "driver": "modbus-tcp",
4921
+ "enabled": true,
4922
+ "holdIntervalMs": null,
4923
+ "readIntervalMs": null,
4924
+ "unit": "℃",
4925
+ "decimals": 1,
4926
+ "min": 150,
4927
+ "max": 200,
4928
+ "deviceBindingId": null,
4929
+ "driverConfig": {
4930
+ "host": "127.0.0.1",
4931
+ "port": 15040,
4932
+ "unitId": 1,
4933
+ "register": 40021,
4934
+ "dataType": "float32",
4935
+ "byteOrder": "big"
4936
+ },
4937
+ "lineId": "",
4938
+ "value": 182,
4939
+ "readValue": 0,
4940
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4941
+ "lastReadError": null,
4942
+ "lastAckAt": "2026-09-05T07:14:44.613Z",
4943
+ "lastWriteAt": "2026-09-05T07:14:44.613Z",
4944
+ "state": "ok",
4945
+ "lastError": null,
4946
+ "createdAt": "2026-09-05T07:14:00.673Z"
4947
+ },
4948
+ {
4949
+ "id": "dw-59162a94",
4950
+ "templateRef": "dcw-temp-sp",
4951
+ "name": "OPCUA-SP-mto1771y",
4952
+ "driver": "opcua",
4953
+ "enabled": true,
4954
+ "holdIntervalMs": null,
4955
+ "readIntervalMs": null,
4956
+ "unit": "℃",
4957
+ "decimals": 1,
4958
+ "min": 150,
4959
+ "max": 200,
4960
+ "deviceBindingId": null,
4961
+ "driverConfig": {
4962
+ "endpoint": "opc.tcp://127.0.0.1:4840",
4963
+ "nodeId": "ns=2;s=AW.SetTemp"
4964
+ },
4965
+ "lineId": "",
4966
+ "value": 172.5,
4967
+ "readValue": 180,
4968
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
4969
+ "lastReadError": null,
4970
+ "lastAckAt": "2026-09-05T07:14:43.371Z",
4971
+ "lastWriteAt": "2026-09-05T07:14:43.371Z",
4972
+ "state": "ok",
4973
+ "lastError": null,
4974
+ "createdAt": "2026-09-05T07:14:00.720Z"
4975
+ },
4976
+ {
4977
+ "id": "dw-d89fb28d",
4978
+ "templateRef": "dcw-temp-sp",
4979
+ "name": "MQTT-SP-mto1771y",
4980
+ "driver": "mqtt",
4981
+ "enabled": true,
4982
+ "holdIntervalMs": null,
4983
+ "readIntervalMs": null,
4984
+ "unit": "℃",
4985
+ "decimals": 1,
4986
+ "min": 150,
4987
+ "max": 200,
4988
+ "deviceBindingId": null,
4989
+ "driverConfig": {
4990
+ "host": "127.0.0.1",
4991
+ "port": 18830,
4992
+ "topic": "aw/sim/setpoint-mto1771y",
4993
+ "jsonKey": "setpoint",
4994
+ "qos": 1
4995
+ },
4996
+ "lineId": "",
4997
+ "value": 165.5,
4998
+ "readValue": null,
4999
+ "lastReadAt": null,
5000
+ "lastReadError": null,
5001
+ "lastAckAt": "2026-09-05T07:14:32.326Z",
5002
+ "lastWriteAt": "2026-09-05T07:14:32.326Z",
5003
+ "state": "ok",
5004
+ "lastError": null,
5005
+ "createdAt": "2026-09-05T07:14:00.781Z"
5006
+ },
5007
+ {
5008
+ "id": "dw-5cbf4389",
5009
+ "templateRef": "dcw-temp-sp",
5010
+ "name": "HTTP-SP-mto1771y",
5011
+ "driver": "http",
5012
+ "enabled": true,
5013
+ "holdIntervalMs": null,
5014
+ "readIntervalMs": null,
5015
+ "unit": "℃",
5016
+ "decimals": 1,
5017
+ "min": 150,
5018
+ "max": 200,
5019
+ "deviceBindingId": null,
5020
+ "driverConfig": {
5021
+ "url": "http://127.0.0.1:1889/api/setpoint",
5022
+ "bodyKey": "setpoint"
5023
+ },
5024
+ "lineId": "",
5025
+ "value": 168.3,
5026
+ "readValue": null,
5027
+ "lastReadAt": null,
5028
+ "lastReadError": null,
5029
+ "lastAckAt": "2026-09-05T07:14:43.360Z",
5030
+ "lastWriteAt": "2026-09-05T07:14:43.360Z",
5031
+ "state": "ok",
5032
+ "lastError": null,
5033
+ "createdAt": "2026-09-05T07:14:00.830Z"
5034
+ },
5035
+ {
5036
+ "id": "dw-7b76051c",
5037
+ "templateRef": "dcw-temp-sp",
5038
+ "name": "runprobe-dcw",
5039
+ "driver": "modbus-tcp",
5040
+ "enabled": true,
5041
+ "holdIntervalMs": null,
5042
+ "readIntervalMs": null,
5043
+ "unit": "℃",
5044
+ "decimals": 1,
5045
+ "min": 150,
5046
+ "max": 200,
5047
+ "deviceBindingId": null,
5048
+ "driverConfig": {
5049
+ "host": "127.0.0.1",
5050
+ "port": 15040,
5051
+ "unitId": 1,
5052
+ "register": 40021,
5053
+ "dataType": "float32",
5054
+ "byteOrder": "big"
5055
+ },
5056
+ "lineId": "ln-be60aa74",
5057
+ "value": null,
5058
+ "readValue": 0,
5059
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5060
+ "lastReadError": null,
5061
+ "lastAckAt": null,
5062
+ "lastWriteAt": null,
5063
+ "state": "idle",
5064
+ "lastError": null,
5065
+ "createdAt": "2026-09-05T07:20:41.893Z"
5066
+ },
5067
+ {
5068
+ "id": "dw-b393fc82",
5069
+ "templateRef": "dcw-temp-sp",
5070
+ "name": "runp2-dcw",
5071
+ "driver": "modbus-tcp",
5072
+ "enabled": true,
5073
+ "holdIntervalMs": null,
5074
+ "readIntervalMs": null,
5075
+ "unit": "℃",
5076
+ "decimals": 1,
5077
+ "min": 150,
5078
+ "max": 200,
5079
+ "deviceBindingId": null,
5080
+ "driverConfig": {
5081
+ "host": "127.0.0.1",
5082
+ "port": 15040,
5083
+ "unitId": 1,
5084
+ "register": 40021,
5085
+ "dataType": "float32",
5086
+ "byteOrder": "big"
5087
+ },
5088
+ "lineId": "ln-43f61780",
5089
+ "value": 182,
5090
+ "readValue": 0,
5091
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5092
+ "lastReadError": null,
5093
+ "lastAckAt": "2026-09-05T07:21:42.887Z",
5094
+ "lastWriteAt": "2026-09-05T07:21:42.887Z",
5095
+ "state": "ok",
5096
+ "lastError": null,
5097
+ "createdAt": "2026-09-05T07:21:24.619Z"
5098
+ },
5099
+ {
5100
+ "id": "dw-b3bb14d6",
5101
+ "templateRef": "dcw-temp-sp",
5102
+ "name": "演练温度设定器",
5103
+ "driver": "mock",
5104
+ "enabled": true,
5105
+ "holdIntervalMs": null,
5106
+ "readIntervalMs": null,
5107
+ "unit": "℃",
5108
+ "decimals": 1,
5109
+ "min": 150,
5110
+ "max": 200,
5111
+ "deviceBindingId": null,
5112
+ "driverConfig": {},
5113
+ "lineId": "ln-ad666e87",
5114
+ "value": null,
5115
+ "readValue": 180,
5116
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5117
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5118
+ "lastAckAt": null,
5119
+ "lastWriteAt": null,
5120
+ "state": "idle",
5121
+ "lastError": null,
5122
+ "createdAt": "2026-09-05T07:21:28.780Z"
5123
+ },
5124
+ {
5125
+ "id": "dw-06590507",
5126
+ "templateRef": "dcw-temp-sp",
5127
+ "name": "runp3-dcw",
5128
+ "driver": "modbus-tcp",
5129
+ "enabled": true,
5130
+ "holdIntervalMs": null,
5131
+ "readIntervalMs": null,
5132
+ "unit": "℃",
5133
+ "decimals": 1,
5134
+ "min": 150,
5135
+ "max": 200,
5136
+ "deviceBindingId": null,
5137
+ "driverConfig": {
5138
+ "host": "127.0.0.1",
5139
+ "port": 15040,
5140
+ "unitId": 1,
5141
+ "register": 40021,
5142
+ "dataType": "float32",
5143
+ "byteOrder": "big"
5144
+ },
5145
+ "lineId": "ln-3548f325",
5146
+ "value": 182,
5147
+ "readValue": 0,
5148
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5149
+ "lastReadError": null,
5150
+ "lastAckAt": "2026-09-05T07:24:04.091Z",
5151
+ "lastWriteAt": "2026-09-05T07:24:04.091Z",
5152
+ "state": "ok",
5153
+ "lastError": null,
5154
+ "createdAt": "2026-09-05T07:23:51.885Z"
5155
+ },
5156
+ {
5157
+ "id": "dw-ed7f4682",
5158
+ "templateRef": "dcw-temp-sp",
5159
+ "name": "PLC-SP温度-mto2mf6i",
5160
+ "driver": "modbus-tcp",
5161
+ "enabled": true,
5162
+ "holdIntervalMs": null,
5163
+ "readIntervalMs": null,
5164
+ "unit": "℃",
5165
+ "decimals": 1,
5166
+ "min": 150,
5167
+ "max": 200,
5168
+ "deviceBindingId": null,
5169
+ "driverConfig": {
5170
+ "host": "127.0.0.1",
5171
+ "port": 15040,
5172
+ "unitId": 1,
5173
+ "register": 40021,
5174
+ "dataType": "float32",
5175
+ "byteOrder": "big"
5176
+ },
5177
+ "lineId": "",
5178
+ "value": 182,
5179
+ "readValue": 0,
5180
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5181
+ "lastReadError": null,
5182
+ "lastAckAt": "2026-09-05T07:39:09.089Z",
5183
+ "lastWriteAt": "2026-09-05T07:39:09.089Z",
5184
+ "state": "ok",
5185
+ "lastError": null,
5186
+ "createdAt": "2026-09-05T07:38:25.191Z"
5187
+ },
5188
+ {
5189
+ "id": "dw-1e1ccafe",
5190
+ "templateRef": "dcw-temp-sp",
5191
+ "name": "OPCUA-SP-mto2mf6i",
5192
+ "driver": "opcua",
5193
+ "enabled": true,
5194
+ "holdIntervalMs": null,
5195
+ "readIntervalMs": null,
5196
+ "unit": "℃",
5197
+ "decimals": 1,
5198
+ "min": 150,
5199
+ "max": 200,
5200
+ "deviceBindingId": null,
5201
+ "driverConfig": {
5202
+ "endpoint": "opc.tcp://127.0.0.1:4840",
5203
+ "nodeId": "ns=2;s=AW.SetTemp"
5204
+ },
5205
+ "lineId": "",
5206
+ "value": 172.5,
5207
+ "readValue": 180,
5208
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5209
+ "lastReadError": null,
5210
+ "lastAckAt": "2026-09-05T07:39:07.849Z",
5211
+ "lastWriteAt": "2026-09-05T07:39:07.849Z",
5212
+ "state": "ok",
5213
+ "lastError": null,
5214
+ "createdAt": "2026-09-05T07:38:25.237Z"
5215
+ },
5216
+ {
5217
+ "id": "dw-94177895",
5218
+ "templateRef": "dcw-temp-sp",
5219
+ "name": "MQTT-SP-mto2mf6i",
5220
+ "driver": "mqtt",
5221
+ "enabled": true,
5222
+ "holdIntervalMs": null,
5223
+ "readIntervalMs": null,
5224
+ "unit": "℃",
5225
+ "decimals": 1,
5226
+ "min": 150,
5227
+ "max": 200,
5228
+ "deviceBindingId": null,
5229
+ "driverConfig": {
5230
+ "host": "127.0.0.1",
5231
+ "port": 18830,
5232
+ "topic": "aw/sim/setpoint-mto2mf6i",
5233
+ "jsonKey": "setpoint",
5234
+ "qos": 1
5235
+ },
5236
+ "lineId": "",
5237
+ "value": 165.5,
5238
+ "readValue": null,
5239
+ "lastReadAt": null,
5240
+ "lastReadError": null,
5241
+ "lastAckAt": "2026-09-05T07:38:56.770Z",
5242
+ "lastWriteAt": "2026-09-05T07:38:56.770Z",
5243
+ "state": "ok",
5244
+ "lastError": null,
5245
+ "createdAt": "2026-09-05T07:38:25.267Z"
5246
+ },
5247
+ {
5248
+ "id": "dw-fed28840",
5249
+ "templateRef": "dcw-temp-sp",
5250
+ "name": "HTTP-SP-mto2mf6i",
5251
+ "driver": "http",
5252
+ "enabled": true,
5253
+ "holdIntervalMs": null,
5254
+ "readIntervalMs": null,
5255
+ "unit": "℃",
5256
+ "decimals": 1,
5257
+ "min": 150,
5258
+ "max": 200,
5259
+ "deviceBindingId": null,
5260
+ "driverConfig": {
5261
+ "url": "http://127.0.0.1:1889/api/setpoint",
5262
+ "bodyKey": "setpoint"
5263
+ },
5264
+ "lineId": "",
5265
+ "value": 168.3,
5266
+ "readValue": null,
5267
+ "lastReadAt": null,
5268
+ "lastReadError": null,
5269
+ "lastAckAt": "2026-09-05T07:39:07.832Z",
5270
+ "lastWriteAt": "2026-09-05T07:39:07.832Z",
5271
+ "state": "ok",
5272
+ "lastError": null,
5273
+ "createdAt": "2026-09-05T07:38:25.300Z"
5274
+ },
5275
+ {
5276
+ "id": "dw-5fdc7f6f",
5277
+ "templateRef": "dcw-temp-sp",
5278
+ "name": "PLC-SP温度-mto2w44t",
5279
+ "driver": "modbus-tcp",
5280
+ "enabled": true,
5281
+ "holdIntervalMs": null,
5282
+ "readIntervalMs": null,
5283
+ "unit": "℃",
5284
+ "decimals": 1,
5285
+ "min": 150,
5286
+ "max": 200,
5287
+ "deviceBindingId": null,
5288
+ "driverConfig": {
5289
+ "host": "127.0.0.1",
5290
+ "port": 15040,
5291
+ "unitId": 1,
5292
+ "register": 40021,
5293
+ "dataType": "float32",
5294
+ "byteOrder": "big"
5295
+ },
5296
+ "lineId": "ln-c3a7ba01",
5297
+ "value": 182,
5298
+ "readValue": 0,
5299
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5300
+ "lastReadError": null,
5301
+ "lastAckAt": "2026-09-05T07:46:45.140Z",
5302
+ "lastWriteAt": "2026-09-05T07:46:45.140Z",
5303
+ "state": "ok",
5304
+ "lastError": null,
5305
+ "createdAt": "2026-09-05T07:46:01.233Z"
5306
+ },
5307
+ {
5308
+ "id": "dw-ea296377",
5309
+ "templateRef": "dcw-temp-sp",
5310
+ "name": "OPCUA-SP-mto2w44t",
5311
+ "driver": "opcua",
5312
+ "enabled": true,
5313
+ "holdIntervalMs": null,
5314
+ "readIntervalMs": null,
5315
+ "unit": "℃",
5316
+ "decimals": 1,
5317
+ "min": 150,
5318
+ "max": 200,
5319
+ "deviceBindingId": null,
5320
+ "driverConfig": {
5321
+ "endpoint": "opc.tcp://127.0.0.1:4840",
5322
+ "nodeId": "ns=2;s=AW.SetTemp"
5323
+ },
5324
+ "lineId": "ln-c3a7ba01",
5325
+ "value": 172.5,
5326
+ "readValue": 180,
5327
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5328
+ "lastReadError": null,
5329
+ "lastAckAt": "2026-09-05T07:46:43.898Z",
5330
+ "lastWriteAt": "2026-09-05T07:46:43.898Z",
5331
+ "state": "ok",
5332
+ "lastError": null,
5333
+ "createdAt": "2026-09-05T07:46:01.278Z"
5334
+ },
5335
+ {
5336
+ "id": "dw-d6b03bf8",
5337
+ "templateRef": "dcw-temp-sp",
5338
+ "name": "MQTT-SP-mto2w44t",
5339
+ "driver": "mqtt",
5340
+ "enabled": true,
5341
+ "holdIntervalMs": null,
5342
+ "readIntervalMs": null,
5343
+ "unit": "℃",
5344
+ "decimals": 1,
5345
+ "min": 150,
5346
+ "max": 200,
5347
+ "deviceBindingId": null,
5348
+ "driverConfig": {
5349
+ "host": "127.0.0.1",
5350
+ "port": 18830,
5351
+ "topic": "aw/sim/setpoint-mto2w44t",
5352
+ "jsonKey": "setpoint",
5353
+ "qos": 1
5354
+ },
5355
+ "lineId": "ln-c3a7ba01",
5356
+ "value": 165.5,
5357
+ "readValue": null,
5358
+ "lastReadAt": null,
5359
+ "lastReadError": null,
5360
+ "lastAckAt": "2026-09-05T07:46:32.819Z",
5361
+ "lastWriteAt": "2026-09-05T07:46:32.819Z",
5362
+ "state": "ok",
5363
+ "lastError": null,
5364
+ "createdAt": "2026-09-05T07:46:01.310Z"
5365
+ },
5366
+ {
5367
+ "id": "dw-8c8f6183",
5368
+ "templateRef": "dcw-temp-sp",
5369
+ "name": "HTTP-SP-mto2w44t",
5370
+ "driver": "http",
5371
+ "enabled": true,
5372
+ "holdIntervalMs": null,
5373
+ "readIntervalMs": null,
5374
+ "unit": "℃",
5375
+ "decimals": 1,
5376
+ "min": 150,
5377
+ "max": 200,
5378
+ "deviceBindingId": null,
5379
+ "driverConfig": {
5380
+ "url": "http://127.0.0.1:1889/api/setpoint",
5381
+ "bodyKey": "setpoint"
5382
+ },
5383
+ "lineId": "ln-c3a7ba01",
5384
+ "value": 168.3,
5385
+ "readValue": null,
5386
+ "lastReadAt": null,
5387
+ "lastReadError": null,
5388
+ "lastAckAt": "2026-09-05T07:46:43.888Z",
5389
+ "lastWriteAt": "2026-09-05T07:46:43.888Z",
5390
+ "state": "ok",
5391
+ "lastError": null,
5392
+ "createdAt": "2026-09-05T07:46:01.357Z"
5393
+ },
5394
+ {
5395
+ "id": "dw-cc608298",
5396
+ "templateRef": "dcw-temp-sp",
5397
+ "name": "演练温度设定器",
5398
+ "driver": "mock",
5399
+ "enabled": true,
5400
+ "holdIntervalMs": null,
5401
+ "readIntervalMs": null,
5402
+ "unit": "℃",
5403
+ "decimals": 1,
5404
+ "min": 150,
5405
+ "max": 200,
5406
+ "deviceBindingId": null,
5407
+ "driverConfig": {},
5408
+ "lineId": "ln-60f2d1ef",
5409
+ "value": null,
5410
+ "readValue": 180,
5411
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5412
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5413
+ "lastAckAt": null,
5414
+ "lastWriteAt": null,
5415
+ "state": "idle",
5416
+ "lastError": null,
5417
+ "createdAt": "2026-09-05T07:46:49.437Z"
5418
+ },
5419
+ {
5420
+ "id": "dw-d324afad",
5421
+ "templateRef": "dcw-temp-sp",
5422
+ "name": "PLC-SP温度-mto30yeb",
5423
+ "driver": "modbus-tcp",
5424
+ "enabled": true,
5425
+ "holdIntervalMs": null,
5426
+ "readIntervalMs": null,
5427
+ "unit": "℃",
5428
+ "decimals": 1,
5429
+ "min": 150,
5430
+ "max": 200,
5431
+ "deviceBindingId": null,
5432
+ "driverConfig": {
5433
+ "host": "127.0.0.1",
5434
+ "port": 15040,
5435
+ "unitId": 1,
5436
+ "register": 40021,
5437
+ "dataType": "float32",
5438
+ "byteOrder": "big"
5439
+ },
5440
+ "lineId": "ln-c570b64e",
5441
+ "value": 182,
5442
+ "readValue": 0,
5443
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5444
+ "lastReadError": null,
5445
+ "lastAckAt": "2026-09-05T07:50:36.180Z",
5446
+ "lastWriteAt": "2026-09-05T07:50:36.180Z",
5447
+ "state": "ok",
5448
+ "lastError": null,
5449
+ "createdAt": "2026-09-05T07:49:52.256Z"
5450
+ },
5451
+ {
5452
+ "id": "dw-f6809af1",
5453
+ "templateRef": "dcw-temp-sp",
5454
+ "name": "OPCUA-SP-mto30yeb",
5455
+ "driver": "opcua",
5456
+ "enabled": true,
5457
+ "holdIntervalMs": null,
5458
+ "readIntervalMs": null,
5459
+ "unit": "℃",
5460
+ "decimals": 1,
5461
+ "min": 150,
5462
+ "max": 200,
5463
+ "deviceBindingId": null,
5464
+ "driverConfig": {
5465
+ "endpoint": "opc.tcp://127.0.0.1:4840",
5466
+ "nodeId": "ns=2;s=AW.SetTemp"
5467
+ },
5468
+ "lineId": "ln-c570b64e",
5469
+ "value": 172.5,
5470
+ "readValue": 180,
5471
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5472
+ "lastReadError": null,
5473
+ "lastAckAt": "2026-09-05T07:50:34.915Z",
5474
+ "lastWriteAt": "2026-09-05T07:50:34.915Z",
5475
+ "state": "ok",
5476
+ "lastError": null,
5477
+ "createdAt": "2026-09-05T07:49:52.287Z"
5478
+ },
5479
+ {
5480
+ "id": "dw-92561dfb",
5481
+ "templateRef": "dcw-temp-sp",
5482
+ "name": "MQTT-SP-mto30yeb",
5483
+ "driver": "mqtt",
5484
+ "enabled": true,
5485
+ "holdIntervalMs": null,
5486
+ "readIntervalMs": null,
5487
+ "unit": "℃",
5488
+ "decimals": 1,
5489
+ "min": 150,
5490
+ "max": 200,
5491
+ "deviceBindingId": null,
5492
+ "driverConfig": {
5493
+ "host": "127.0.0.1",
5494
+ "port": 18830,
5495
+ "topic": "aw/sim/setpoint-mto30yeb",
5496
+ "jsonKey": "setpoint",
5497
+ "qos": 1
5498
+ },
5499
+ "lineId": "ln-c570b64e",
5500
+ "value": 165.5,
5501
+ "readValue": null,
5502
+ "lastReadAt": null,
5503
+ "lastReadError": null,
5504
+ "lastAckAt": "2026-09-05T07:50:23.866Z",
5505
+ "lastWriteAt": "2026-09-05T07:50:23.866Z",
5506
+ "state": "ok",
5507
+ "lastError": null,
5508
+ "createdAt": "2026-09-05T07:49:52.356Z"
5509
+ },
5510
+ {
5511
+ "id": "dw-3c44cc62",
5512
+ "templateRef": "dcw-temp-sp",
5513
+ "name": "HTTP-SP-mto30yeb",
5514
+ "driver": "http",
5515
+ "enabled": true,
5516
+ "holdIntervalMs": null,
5517
+ "readIntervalMs": null,
5518
+ "unit": "℃",
5519
+ "decimals": 1,
5520
+ "min": 150,
5521
+ "max": 200,
5522
+ "deviceBindingId": null,
5523
+ "driverConfig": {
5524
+ "url": "http://127.0.0.1:1889/api/setpoint",
5525
+ "bodyKey": "setpoint"
5526
+ },
5527
+ "lineId": "ln-c570b64e",
5528
+ "value": 168.3,
5529
+ "readValue": null,
5530
+ "lastReadAt": null,
5531
+ "lastReadError": null,
5532
+ "lastAckAt": "2026-09-05T07:50:34.907Z",
5533
+ "lastWriteAt": "2026-09-05T07:50:34.907Z",
5534
+ "state": "ok",
5535
+ "lastError": null,
5536
+ "createdAt": "2026-09-05T07:49:52.416Z"
5537
+ },
5538
+ {
5539
+ "id": "dw-49f16e60",
5540
+ "templateRef": "dcw-temp-sp",
5541
+ "name": "演练温度设定器",
5542
+ "driver": "mock",
5543
+ "enabled": true,
5544
+ "holdIntervalMs": null,
5545
+ "readIntervalMs": null,
5546
+ "unit": "℃",
5547
+ "decimals": 1,
5548
+ "min": 150,
5549
+ "max": 200,
5550
+ "deviceBindingId": null,
5551
+ "driverConfig": {},
5552
+ "lineId": "ln-af8f95db",
5553
+ "value": null,
5554
+ "readValue": 180,
5555
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5556
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5557
+ "lastAckAt": null,
5558
+ "lastWriteAt": null,
5559
+ "state": "idle",
5560
+ "lastError": null,
5561
+ "createdAt": "2026-09-05T08:07:16.635Z"
5562
+ },
5563
+ {
5564
+ "id": "dw-511d0e81",
5565
+ "templateRef": "dcw-temp-sp",
5566
+ "name": "插件参数-mto3p7ny",
5567
+ "driver": "mock",
5568
+ "enabled": true,
5569
+ "holdIntervalMs": null,
5570
+ "readIntervalMs": null,
5571
+ "unit": "℃",
5572
+ "decimals": 1,
5573
+ "min": 150,
5574
+ "max": 200,
5575
+ "deviceBindingId": null,
5576
+ "driverConfig": {},
5577
+ "lineId": "",
5578
+ "value": 180,
5579
+ "readValue": 180,
5580
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5581
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5582
+ "lastAckAt": "2026-09-05T08:08:23.555Z",
5583
+ "lastWriteAt": "2026-09-05T08:08:23.555Z",
5584
+ "state": "ok",
5585
+ "lastError": null,
5586
+ "createdAt": "2026-09-05T08:08:23.463Z"
5587
+ },
5588
+ {
5589
+ "id": "dw-09aea436",
5590
+ "templateRef": "dcw-temp-sp",
5591
+ "name": "OPCUA设定-mto47ec9",
5592
+ "driver": "opcua",
5593
+ "enabled": true,
5594
+ "holdIntervalMs": null,
5595
+ "readIntervalMs": null,
5596
+ "unit": "℃",
5597
+ "decimals": 1,
5598
+ "min": 150,
5599
+ "max": 200,
5600
+ "deviceBindingId": null,
5601
+ "driverConfig": {
5602
+ "endpoint": "opc.tcp://127.0.0.1:4840",
5603
+ "nodeId": "ns=2;s=AW.SetTemp"
5604
+ },
5605
+ "lineId": "",
5606
+ "value": null,
5607
+ "readValue": 180,
5608
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5609
+ "lastReadError": null,
5610
+ "lastAckAt": null,
5611
+ "lastWriteAt": null,
5612
+ "state": "idle",
5613
+ "lastError": null,
5614
+ "createdAt": "2026-09-05T08:23:06.177Z"
5615
+ },
5616
+ {
5617
+ "id": "dw-a470230d",
5618
+ "templateRef": "dcw-temp-sp",
5619
+ "name": "PLC设定-mto47ec9",
5620
+ "driver": "modbus-tcp",
5621
+ "enabled": true,
5622
+ "holdIntervalMs": null,
5623
+ "readIntervalMs": null,
5624
+ "unit": "℃",
5625
+ "decimals": 1,
5626
+ "min": 150,
5627
+ "max": 200,
5628
+ "deviceBindingId": null,
5629
+ "driverConfig": {
5630
+ "host": "127.0.0.1",
5631
+ "port": 15040,
5632
+ "unitId": 1,
5633
+ "register": 40021,
5634
+ "dataType": "float32",
5635
+ "byteOrder": "big"
5636
+ },
5637
+ "lineId": "",
5638
+ "value": 180,
5639
+ "readValue": 0,
5640
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5641
+ "lastReadError": null,
5642
+ "lastAckAt": "2026-09-05T08:23:06.423Z",
5643
+ "lastWriteAt": "2026-09-05T08:23:06.423Z",
5644
+ "state": "ok",
5645
+ "lastError": null,
5646
+ "createdAt": "2026-09-05T08:23:06.260Z"
5647
+ },
5648
+ {
5649
+ "id": "dw-ebe09e19",
5650
+ "templateRef": "dcw-temp-sp",
5651
+ "name": "演练温度设定器",
5652
+ "driver": "mock",
5653
+ "enabled": true,
5654
+ "holdIntervalMs": null,
5655
+ "readIntervalMs": null,
5656
+ "unit": "℃",
5657
+ "decimals": 1,
5658
+ "min": 150,
5659
+ "max": 200,
5660
+ "deviceBindingId": null,
5661
+ "driverConfig": {},
5662
+ "lineId": "ln-1bda4fba",
5663
+ "value": null,
5664
+ "readValue": 180,
5665
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5666
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5667
+ "lastAckAt": null,
5668
+ "lastWriteAt": null,
5669
+ "state": "idle",
5670
+ "lastError": null,
5671
+ "createdAt": "2026-09-05T08:35:12.062Z"
5672
+ },
5673
+ {
5674
+ "id": "dw-17102fe9",
5675
+ "templateRef": "dcw-temp-sp",
5676
+ "name": "OPCUA设定-mto4xd17",
5677
+ "driver": "opcua",
5678
+ "enabled": true,
5679
+ "holdIntervalMs": null,
5680
+ "readIntervalMs": null,
5681
+ "unit": "℃",
5682
+ "decimals": 1,
5683
+ "min": 150,
5684
+ "max": 200,
5685
+ "deviceBindingId": null,
5686
+ "driverConfig": {
5687
+ "endpoint": "opc.tcp://127.0.0.1:4840",
5688
+ "nodeId": "ns=2;s=AW.SetTemp"
5689
+ },
5690
+ "lineId": "",
5691
+ "value": null,
5692
+ "readValue": 180,
5693
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5694
+ "lastReadError": null,
5695
+ "lastAckAt": null,
5696
+ "lastWriteAt": null,
5697
+ "state": "idle",
5698
+ "lastError": null,
5699
+ "createdAt": "2026-09-05T08:42:47.769Z"
5700
+ },
5701
+ {
5702
+ "id": "dw-dc216d75",
5703
+ "templateRef": "dcw-temp-sp",
5704
+ "name": "PLC设定-mto4xd17",
5705
+ "driver": "modbus-tcp",
5706
+ "enabled": true,
5707
+ "holdIntervalMs": null,
5708
+ "readIntervalMs": null,
5709
+ "unit": "℃",
5710
+ "decimals": 1,
5711
+ "min": 150,
5712
+ "max": 200,
5713
+ "deviceBindingId": null,
5714
+ "driverConfig": {
5715
+ "host": "127.0.0.1",
5716
+ "port": 15040,
5717
+ "unitId": 1,
5718
+ "register": 40021,
5719
+ "dataType": "float32",
5720
+ "byteOrder": "big"
5721
+ },
5722
+ "lineId": "",
5723
+ "value": 180,
5724
+ "readValue": 0,
5725
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5726
+ "lastReadError": null,
5727
+ "lastAckAt": "2026-09-05T08:42:47.820Z",
5728
+ "lastWriteAt": "2026-09-05T08:42:47.820Z",
5729
+ "state": "ok",
5730
+ "lastError": null,
5731
+ "createdAt": "2026-09-05T08:42:47.774Z"
5732
+ },
5733
+ {
5734
+ "id": "dw-5c9e5e75",
5735
+ "templateRef": "dcw-temp-sp",
5736
+ "name": "HITL探针",
5737
+ "driver": "mock",
5738
+ "enabled": true,
5739
+ "holdIntervalMs": null,
5740
+ "readIntervalMs": null,
5741
+ "unit": "℃",
5742
+ "decimals": 1,
5743
+ "min": 150,
5744
+ "max": 200,
5745
+ "deviceBindingId": null,
5746
+ "driverConfig": {},
5747
+ "lineId": "",
5748
+ "value": null,
5749
+ "readValue": 180,
5750
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5751
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5752
+ "lastAckAt": null,
5753
+ "lastWriteAt": null,
5754
+ "state": "idle",
5755
+ "lastError": null,
5756
+ "createdAt": "2026-09-05T08:57:42.442Z"
5757
+ },
5758
+ {
5759
+ "id": "dw-83d2fdae",
5760
+ "templateRef": "dcw-temp-sp",
5761
+ "name": "可见性探针",
5762
+ "driver": "mock",
5763
+ "enabled": true,
5764
+ "holdIntervalMs": null,
5765
+ "readIntervalMs": null,
5766
+ "unit": "℃",
5767
+ "decimals": 1,
5768
+ "min": 150,
5769
+ "max": 200,
5770
+ "deviceBindingId": null,
5771
+ "driverConfig": {},
5772
+ "lineId": "",
5773
+ "value": 172,
5774
+ "readValue": 180,
5775
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5776
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5777
+ "lastAckAt": "2026-09-05T08:59:06.974Z",
5778
+ "lastWriteAt": "2026-09-05T08:59:06.974Z",
5779
+ "state": "ok",
5780
+ "lastError": null,
5781
+ "createdAt": "2026-09-05T08:59:04.389Z"
5782
+ },
5783
+ {
5784
+ "id": "dw-0ed9deab",
5785
+ "templateRef": "dcw-temp-sp",
5786
+ "name": "间隔参数-mto6rqqa",
5787
+ "driver": "mock",
5788
+ "enabled": true,
5789
+ "holdIntervalMs": null,
5790
+ "readIntervalMs": null,
5791
+ "unit": "℃",
5792
+ "decimals": 1,
5793
+ "min": 150,
5794
+ "max": 200,
5795
+ "deviceBindingId": null,
5796
+ "driverConfig": {},
5797
+ "lineId": "",
5798
+ "value": 180,
5799
+ "readValue": 180,
5800
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5801
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5802
+ "lastAckAt": "2026-09-05T09:34:20.928Z",
5803
+ "lastWriteAt": "2026-09-05T09:34:20.928Z",
5804
+ "state": "ok",
5805
+ "lastError": null,
5806
+ "createdAt": "2026-09-05T09:34:20.868Z"
5807
+ },
5808
+ {
5809
+ "id": "dw-37f5153e",
5810
+ "templateRef": "dcw-temp-sp",
5811
+ "name": "插件参数-mto6ysj1",
5812
+ "driver": "mock",
5813
+ "enabled": true,
5814
+ "holdIntervalMs": null,
5815
+ "readIntervalMs": null,
5816
+ "unit": "℃",
5817
+ "decimals": 1,
5818
+ "min": 150,
5819
+ "max": 200,
5820
+ "deviceBindingId": null,
5821
+ "driverConfig": {},
5822
+ "lineId": "",
5823
+ "value": 180,
5824
+ "readValue": 180,
5825
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5826
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5827
+ "lastAckAt": "2026-09-05T09:39:59.373Z",
5828
+ "lastWriteAt": "2026-09-05T09:39:59.373Z",
5829
+ "state": "ok",
5830
+ "lastError": null,
5831
+ "createdAt": "2026-09-05T09:39:59.331Z"
5832
+ },
5833
+ {
5834
+ "id": "dw-f9a5e01e",
5835
+ "templateRef": "dcw-temp-sp",
5836
+ "name": "插件参数-mto73j6f",
5837
+ "driver": "mock",
5838
+ "enabled": true,
5839
+ "holdIntervalMs": null,
5840
+ "readIntervalMs": null,
5841
+ "unit": "℃",
5842
+ "decimals": 1,
5843
+ "min": 150,
5844
+ "max": 200,
5845
+ "deviceBindingId": null,
5846
+ "driverConfig": {},
5847
+ "lineId": "",
5848
+ "value": 180,
5849
+ "readValue": 180,
5850
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5851
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5852
+ "lastAckAt": "2026-09-05T09:43:40.423Z",
5853
+ "lastWriteAt": "2026-09-05T09:43:40.423Z",
5854
+ "state": "ok",
5855
+ "lastError": null,
5856
+ "createdAt": "2026-09-05T09:43:40.374Z"
5857
+ },
5858
+ {
5859
+ "id": "dw-1a99b8ea",
5860
+ "templateRef": "dcw-temp-sp",
5861
+ "name": "插件参数-mto75hw0",
5862
+ "driver": "mock",
5863
+ "enabled": true,
5864
+ "holdIntervalMs": null,
5865
+ "readIntervalMs": null,
5866
+ "unit": "℃",
5867
+ "decimals": 1,
5868
+ "min": 150,
5869
+ "max": 200,
5870
+ "deviceBindingId": null,
5871
+ "driverConfig": {},
5872
+ "lineId": "",
5873
+ "value": 180,
5874
+ "readValue": 180,
5875
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5876
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5877
+ "lastAckAt": "2026-09-05T09:45:11.766Z",
5878
+ "lastWriteAt": "2026-09-05T09:45:11.766Z",
5879
+ "state": "ok",
5880
+ "lastError": null,
5881
+ "createdAt": "2026-09-05T09:45:11.726Z"
5882
+ },
5883
+ {
5884
+ "id": "dw-edbf2b95",
5885
+ "templateRef": "dcw-temp-sp",
5886
+ "name": "pp-dcw",
5887
+ "driver": "mock",
5888
+ "enabled": true,
5889
+ "holdIntervalMs": null,
5890
+ "readIntervalMs": null,
5891
+ "unit": "℃",
5892
+ "decimals": 1,
5893
+ "min": 150,
5894
+ "max": 200,
5895
+ "deviceBindingId": null,
5896
+ "driverConfig": {},
5897
+ "lineId": "ln-871ac52d",
5898
+ "value": 180,
5899
+ "readValue": 180,
5900
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5901
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5902
+ "lastAckAt": "2026-09-05T09:47:55.529Z",
5903
+ "lastWriteAt": "2026-09-05T09:47:55.529Z",
5904
+ "state": "ok",
5905
+ "lastError": null,
5906
+ "createdAt": "2026-09-05T09:47:55.494Z"
5907
+ },
5908
+ {
5909
+ "id": "dw-fb6b0f5a",
5910
+ "templateRef": "dcw-temp-sp",
5911
+ "name": "pp2-dcw",
5912
+ "driver": "mock",
5913
+ "enabled": true,
5914
+ "holdIntervalMs": null,
5915
+ "readIntervalMs": null,
5916
+ "unit": "℃",
5917
+ "decimals": 1,
5918
+ "min": 150,
5919
+ "max": 200,
5920
+ "deviceBindingId": null,
5921
+ "driverConfig": {},
5922
+ "lineId": "",
5923
+ "value": 180,
5924
+ "readValue": 180,
5925
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5926
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5927
+ "lastAckAt": "2026-09-05T09:53:24.693Z",
5928
+ "lastWriteAt": "2026-09-05T09:53:24.693Z",
5929
+ "state": "ok",
5930
+ "lastError": null,
5931
+ "createdAt": "2026-09-05T09:53:24.643Z"
5932
+ },
5933
+ {
5934
+ "id": "dw-e5fcf0a3",
5935
+ "templateRef": "dcw-temp-sp",
5936
+ "name": "插件参数-mto7gthj",
5937
+ "driver": "mock",
5938
+ "enabled": true,
5939
+ "holdIntervalMs": null,
5940
+ "readIntervalMs": null,
5941
+ "unit": "℃",
5942
+ "decimals": 1,
5943
+ "min": 150,
5944
+ "max": 200,
5945
+ "deviceBindingId": null,
5946
+ "driverConfig": {},
5947
+ "lineId": "",
5948
+ "value": 180,
5949
+ "readValue": 180,
5950
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5951
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5952
+ "lastAckAt": "2026-09-05T09:53:58.818Z",
5953
+ "lastWriteAt": "2026-09-05T09:53:58.818Z",
5954
+ "state": "ok",
5955
+ "lastError": null,
5956
+ "createdAt": "2026-09-05T09:53:58.790Z"
5957
+ },
5958
+ {
5959
+ "id": "dw-db743eb4",
5960
+ "templateRef": "dcw-temp-sp",
5961
+ "name": "tzc-dcw",
5962
+ "driver": "mock",
5963
+ "enabled": true,
5964
+ "holdIntervalMs": null,
5965
+ "readIntervalMs": null,
5966
+ "unit": "℃",
5967
+ "decimals": 1,
5968
+ "min": 150,
5969
+ "max": 200,
5970
+ "deviceBindingId": null,
5971
+ "driverConfig": {},
5972
+ "lineId": "",
5973
+ "value": 180,
5974
+ "readValue": 180,
5975
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
5976
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
5977
+ "lastAckAt": "2026-09-05T19:05:14.657+08:00",
5978
+ "lastWriteAt": "2026-09-05T19:05:14.657+08:00",
5979
+ "state": "ok",
5980
+ "lastError": null,
5981
+ "createdAt": "2026-09-05T19:05:14.608+08:00"
5982
+ },
5983
+ {
5984
+ "id": "dw-204b00c4",
5985
+ "templateRef": "dcw-temp-sp",
5986
+ "name": "cfg-dcw",
5987
+ "driver": "mock",
5988
+ "enabled": true,
5989
+ "holdIntervalMs": null,
5990
+ "readIntervalMs": null,
5991
+ "unit": "℃",
5992
+ "decimals": 1,
5993
+ "min": 150,
5994
+ "max": 200,
5995
+ "deviceBindingId": null,
5996
+ "driverConfig": {},
5997
+ "lineId": "",
5998
+ "value": 180,
5999
+ "readValue": 180,
6000
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
6001
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
6002
+ "lastAckAt": "2026-09-05T19:59:44.420+08:00",
6003
+ "lastWriteAt": "2026-09-05T19:59:44.420+08:00",
6004
+ "state": "ok",
6005
+ "lastError": null,
6006
+ "createdAt": "2026-09-05T19:59:44.372+08:00"
6007
+ },
6008
+ {
6009
+ "id": "dw-2dcce3c7",
6010
+ "templateRef": "dcw-temp-sp",
6011
+ "name": "cfg-dcw",
6012
+ "driver": "mock",
6013
+ "enabled": true,
6014
+ "holdIntervalMs": null,
6015
+ "readIntervalMs": null,
6016
+ "unit": "℃",
6017
+ "decimals": 1,
6018
+ "min": 150,
6019
+ "max": 200,
6020
+ "deviceBindingId": null,
6021
+ "driverConfig": {},
6022
+ "lineId": "",
6023
+ "value": 180,
6024
+ "readValue": 180,
6025
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
6026
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
6027
+ "lastAckAt": "2026-09-05T20:04:40.535+08:00",
6028
+ "lastWriteAt": "2026-09-05T20:04:40.535+08:00",
6029
+ "state": "ok",
6030
+ "lastError": null,
6031
+ "createdAt": "2026-09-05T20:04:40.485+08:00"
6032
+ },
6033
+ {
6034
+ "id": "dw-07cca4c7",
6035
+ "templateRef": "dcw-temp-sp",
6036
+ "name": "cfg-dcw",
6037
+ "driver": "mock",
6038
+ "enabled": true,
6039
+ "holdIntervalMs": null,
6040
+ "readIntervalMs": null,
6041
+ "unit": "℃",
6042
+ "decimals": 1,
6043
+ "min": 150,
6044
+ "max": 200,
6045
+ "deviceBindingId": null,
6046
+ "driverConfig": {},
6047
+ "lineId": "",
6048
+ "value": 180,
6049
+ "readValue": 180,
6050
+ "lastReadAt": "2026-09-06T00:43:31.839+08:00",
6051
+ "lastReadError": "Mock PLC 无设定记录(default;从未写入)",
6052
+ "lastAckAt": "2026-09-05T20:08:42.288+08:00",
6053
+ "lastWriteAt": "2026-09-05T20:08:42.288+08:00",
6054
+ "state": "ok",
6055
+ "lastError": null,
6056
+ "createdAt": "2026-09-05T20:08:42.240+08:00"
2907
6057
  }
2908
6058
  ]