@mhome/app-facade-protocol 1.49.2 → 1.59.0

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.
@@ -0,0 +1,1078 @@
1
+ [
2
+ {
3
+ "name": "dashboard-detail",
4
+ "target": "/app/dashboard/card/detail/get",
5
+ "data": {
6
+ "scopeId": "space-1",
7
+ "items": [
8
+ {
9
+ "cardId": "card-1",
10
+ "status": "found",
11
+ "card": {
12
+ "cardId": "card-1",
13
+ "type": "widget",
14
+ "title": "Power",
15
+ "layouts": {
16
+ "sm": {
17
+ "x": 0,
18
+ "y": 0,
19
+ "width": 2,
20
+ "height": 2
21
+ }
22
+ },
23
+ "views": [
24
+ {
25
+ "id": "power",
26
+ "name": "Power",
27
+ "source": {
28
+ "type": "widget",
29
+ "baseId": "automation-1",
30
+ "widgetId": "widget-1"
31
+ },
32
+ "pattern": "default"
33
+ }
34
+ ],
35
+ "primaryViewId": "power",
36
+ "widgets": [
37
+ {
38
+ "widgetId": "widget-1",
39
+ "name": "Power",
40
+ "widgetType": "DATA",
41
+ "dataType": "NUMBER"
42
+ }
43
+ ]
44
+ },
45
+ "canvasId": "canvas-1"
46
+ },
47
+ {
48
+ "cardId": "gone",
49
+ "status": "not_found"
50
+ }
51
+ ]
52
+ },
53
+ "status": "success",
54
+ "essential": {
55
+ "scopeId": "space-1",
56
+ "items": [
57
+ {
58
+ "cardId": "card-1",
59
+ "status": "found",
60
+ "card": {
61
+ "cardId": "card-1",
62
+ "type": "widget",
63
+ "title": "Power",
64
+ "primaryViewId": "power",
65
+ "views": [
66
+ {
67
+ "id": "power",
68
+ "name": "Power"
69
+ }
70
+ ],
71
+ "viewCount": 1
72
+ },
73
+ "canvasId": "canvas-1"
74
+ },
75
+ {
76
+ "cardId": "gone",
77
+ "status": "not_found"
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "name": "brief-does-not-invent-view-count",
84
+ "target": "/app/dashboard/card/list",
85
+ "data": {
86
+ "cards": [
87
+ {
88
+ "cardId": "card-1",
89
+ "type": "entity",
90
+ "title": "Lamp"
91
+ }
92
+ ]
93
+ },
94
+ "status": "success",
95
+ "essential": {
96
+ "cards": [
97
+ {
98
+ "cardId": "card-1",
99
+ "type": "entity",
100
+ "title": "Lamp"
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ {
106
+ "name": "room-partial",
107
+ "target": "/app/room/devices/move",
108
+ "data": {
109
+ "moved": [
110
+ "a"
111
+ ],
112
+ "notMoved": [
113
+ {
114
+ "deviceId": "b",
115
+ "reason": "offline"
116
+ }
117
+ ]
118
+ },
119
+ "status": "partial",
120
+ "essential": {
121
+ "moved": [
122
+ "a"
123
+ ],
124
+ "notMoved": [
125
+ {
126
+ "deviceId": "b",
127
+ "reason": "offline"
128
+ }
129
+ ]
130
+ }
131
+ },
132
+ {
133
+ "name": "query-resource-failed",
134
+ "target": "/app/plugin/enable/status",
135
+ "data": {
136
+ "status": "failed",
137
+ "success": false,
138
+ "reason": "download failed"
139
+ },
140
+ "status": "success",
141
+ "essential": {
142
+ "status": "failed",
143
+ "success": false,
144
+ "reason": "download failed"
145
+ }
146
+ },
147
+ {
148
+ "name": "explicit-mutation-failed",
149
+ "target": "/app/room/delete",
150
+ "data": {
151
+ "success": false,
152
+ "message": "Room changed"
153
+ },
154
+ "status": "error",
155
+ "code": "OPERATION_FAILED"
156
+ },
157
+ {
158
+ "name": "camera-plugin-failed",
159
+ "target": "/app/plugin/camera/connection/disconnect",
160
+ "data": {
161
+ "data": {
162
+ "ok": false,
163
+ "reason": "CONNECTION_CHANGED"
164
+ }
165
+ },
166
+ "status": "error",
167
+ "code": "PLUGIN_OPERATION_FAILED"
168
+ },
169
+ {
170
+ "name": "null-is-a-valid-full-value",
171
+ "target": "/app/test/read",
172
+ "data": null,
173
+ "status": "success",
174
+ "essential": null
175
+ },
176
+ {
177
+ "name": "automation-list",
178
+ "target": "/app/automation/list",
179
+ "status": "success",
180
+ "data": {
181
+ "automations": [
182
+ {
183
+ "id": "a1",
184
+ "name": "Morning",
185
+ "description": "Turn on light",
186
+ "type": "TASK_FLOW",
187
+ "enabled": true,
188
+ "singleUse": false,
189
+ "createdAt": 1,
190
+ "tags": [
191
+ "internal"
192
+ ]
193
+ }
194
+ ]
195
+ },
196
+ "essential": {
197
+ "automations": [
198
+ {
199
+ "id": "a1",
200
+ "name": "Morning",
201
+ "description": "Turn on light",
202
+ "type": "TASK_FLOW",
203
+ "enabled": true,
204
+ "singleUse": false
205
+ }
206
+ ]
207
+ }
208
+ },
209
+ {
210
+ "name": "automation-detail",
211
+ "target": "/app/automation/detail/get",
212
+ "status": "success",
213
+ "data": {
214
+ "automations": [
215
+ {
216
+ "id": "a1",
217
+ "name": "Morning",
218
+ "description": "Turn on light",
219
+ "type": "TASK_FLOW",
220
+ "enabled": true,
221
+ "singleUse": false,
222
+ "hasExpire": false,
223
+ "usedCapabilities": [
224
+ "light.command.on"
225
+ ],
226
+ "memberIds": [],
227
+ "inputVars": [
228
+ {
229
+ "name": "$room",
230
+ "type": "String",
231
+ "description": "Room"
232
+ }
233
+ ],
234
+ "scriptHash": "source-hash",
235
+ "script": {
236
+ "script": "private source",
237
+ "scripts": {
238
+ "function": "private"
239
+ }
240
+ },
241
+ "updatedAt": 2,
242
+ "descriptionTemplate": "Turn on {! $room !}"
243
+ }
244
+ ]
245
+ },
246
+ "essential": {
247
+ "automations": [
248
+ {
249
+ "id": "a1",
250
+ "name": "Morning",
251
+ "description": "Turn on light",
252
+ "type": "TASK_FLOW",
253
+ "enabled": true,
254
+ "singleUse": false,
255
+ "hasExpire": false,
256
+ "usedCapabilities": [
257
+ "light.command.on"
258
+ ],
259
+ "memberIds": [],
260
+ "inputVars": [
261
+ {
262
+ "name": "$room",
263
+ "type": "String",
264
+ "description": "Room"
265
+ }
266
+ ],
267
+ "scriptHash": "source-hash",
268
+ "descriptionTemplate": "Turn on {! $room !}"
269
+ }
270
+ ]
271
+ }
272
+ },
273
+ {
274
+ "name": "automation-now",
275
+ "target": "/app/automation/activity/now/list",
276
+ "status": "success",
277
+ "data": {
278
+ "automations": [
279
+ {
280
+ "automationId": "a1",
281
+ "automationName": "Morning",
282
+ "automationType": "TASK_FLOW",
283
+ "origin": "RECURRING",
284
+ "description": "duplicate"
285
+ }
286
+ ]
287
+ },
288
+ "essential": {
289
+ "automations": [
290
+ {
291
+ "automationId": "a1",
292
+ "automationName": "Morning",
293
+ "automationType": "TASK_FLOW",
294
+ "origin": "RECURRING"
295
+ }
296
+ ]
297
+ }
298
+ },
299
+ {
300
+ "name": "automation-recent",
301
+ "target": "/app/automation/activity/recent/list",
302
+ "status": "success",
303
+ "data": {
304
+ "since": "10min",
305
+ "from": 0,
306
+ "until": 100,
307
+ "activities": [
308
+ {
309
+ "automationId": "a1",
310
+ "automationName": "Morning",
311
+ "automationType": "TASK_FLOW",
312
+ "origin": "RECURRING",
313
+ "activityType": "RUN_FAILED",
314
+ "timestamp": 100,
315
+ "instanceId": "run",
316
+ "threadId": 0,
317
+ "error": true,
318
+ "panic": false,
319
+ "actorUserId": "user",
320
+ "clientId": "client",
321
+ "description": "duplicate"
322
+ }
323
+ ]
324
+ },
325
+ "essential": {
326
+ "since": "10min",
327
+ "from": 0,
328
+ "until": 100,
329
+ "activities": [
330
+ {
331
+ "automationId": "a1",
332
+ "automationName": "Morning",
333
+ "automationType": "TASK_FLOW",
334
+ "origin": "RECURRING",
335
+ "activityType": "RUN_FAILED",
336
+ "timestamp": 100,
337
+ "instanceId": "run",
338
+ "threadId": 0,
339
+ "error": true,
340
+ "panic": false
341
+ }
342
+ ]
343
+ }
344
+ },
345
+ {
346
+ "name": "automation-diagnostic-list",
347
+ "target": "/app/automation/diagnostic/list",
348
+ "status": "success",
349
+ "data": {
350
+ "diagnostics": [
351
+ {
352
+ "automationId": "a1",
353
+ "name": "Morning",
354
+ "threadId": 0,
355
+ "instanceId": "run",
356
+ "timestamp": 100,
357
+ "status": "failed",
358
+ "reportMode": "STD",
359
+ "logCount": 2,
360
+ "omittedLogs": 1,
361
+ "truncated": true,
362
+ "logsMissing": false,
363
+ "failure": {
364
+ "message": "device unavailable",
365
+ "code": "TIMEOUT"
366
+ },
367
+ "revision": 3,
368
+ "startedAt": 90,
369
+ "finishedAt": 100
370
+ }
371
+ ]
372
+ },
373
+ "essential": {
374
+ "diagnostics": [
375
+ {
376
+ "automationId": "a1",
377
+ "name": "Morning",
378
+ "threadId": 0,
379
+ "instanceId": "run",
380
+ "timestamp": 100,
381
+ "status": "failed",
382
+ "reportMode": "STD",
383
+ "logCount": 2,
384
+ "omittedLogs": 1,
385
+ "truncated": true,
386
+ "logsMissing": false,
387
+ "failure": {
388
+ "message": "device unavailable",
389
+ "code": "TIMEOUT"
390
+ }
391
+ }
392
+ ]
393
+ }
394
+ },
395
+ {
396
+ "name": "automation-diagnostic-detail",
397
+ "target": "/app/automation/diagnostic/detail",
398
+ "status": "success",
399
+ "data": {
400
+ "diagnostic": {
401
+ "automationId": "a1",
402
+ "name": "Morning",
403
+ "threadId": 0,
404
+ "instanceId": "run",
405
+ "timestamp": 100,
406
+ "status": "failed",
407
+ "reportMode": "STD",
408
+ "logCount": 2,
409
+ "omittedLogs": 1,
410
+ "truncated": true,
411
+ "logsMissing": false,
412
+ "failure": {
413
+ "message": "device unavailable",
414
+ "code": "TIMEOUT"
415
+ },
416
+ "revision": 3,
417
+ "startedAt": 90,
418
+ "finishedAt": 100
419
+ },
420
+ "logs": [
421
+ {
422
+ "level": "INFO",
423
+ "message": "Invoked device",
424
+ "context": {
425
+ "id": "light"
426
+ }
427
+ },
428
+ {
429
+ "level": "ERROR",
430
+ "message": "Timed out"
431
+ }
432
+ ]
433
+ },
434
+ "essential": {
435
+ "diagnostic": {
436
+ "automationId": "a1",
437
+ "name": "Morning",
438
+ "threadId": 0,
439
+ "instanceId": "run",
440
+ "timestamp": 100,
441
+ "status": "failed",
442
+ "reportMode": "STD",
443
+ "logCount": 2,
444
+ "omittedLogs": 1,
445
+ "truncated": true,
446
+ "logsMissing": false,
447
+ "failure": {
448
+ "message": "device unavailable",
449
+ "code": "TIMEOUT"
450
+ },
451
+ "revision": 3,
452
+ "startedAt": 90,
453
+ "finishedAt": 100
454
+ },
455
+ "logs": [
456
+ {
457
+ "level": "INFO",
458
+ "message": "Invoked device",
459
+ "context": {
460
+ "id": "light"
461
+ }
462
+ },
463
+ {
464
+ "level": "ERROR",
465
+ "message": "Timed out"
466
+ }
467
+ ]
468
+ }
469
+ },
470
+ {
471
+ "name": "automation-snapshot-list",
472
+ "target": "/app/automation/snapshot/list",
473
+ "status": "success",
474
+ "data": {
475
+ "automationId": "a1",
476
+ "snapshots": [
477
+ {
478
+ "snapshotId": "v1",
479
+ "createdAt": 90,
480
+ "description": "Prior behavior",
481
+ "type": "TASK_FLOW",
482
+ "script": {
483
+ "script": "private"
484
+ }
485
+ }
486
+ ]
487
+ },
488
+ "essential": {
489
+ "automationId": "a1",
490
+ "snapshots": [
491
+ {
492
+ "snapshotId": "v1",
493
+ "createdAt": 90,
494
+ "description": "Prior behavior",
495
+ "type": "TASK_FLOW"
496
+ }
497
+ ]
498
+ }
499
+ },
500
+ {
501
+ "name": "dashboard card list retains canvas layout",
502
+ "target": "/app/dashboard/card/brief/list",
503
+ "status": "success",
504
+ "data": {
505
+ "canvasId": "canvas",
506
+ "cards": [
507
+ {
508
+ "cardId": "card-1",
509
+ "type": "widget",
510
+ "title": "Power",
511
+ "layouts": {
512
+ "sm": {
513
+ "x": 0,
514
+ "y": 0,
515
+ "width": 2,
516
+ "height": 2
517
+ }
518
+ },
519
+ "views": [
520
+ {
521
+ "id": "power",
522
+ "name": "Power",
523
+ "source": {
524
+ "type": "widget",
525
+ "baseId": "automation-1",
526
+ "widgetId": "widget-1"
527
+ },
528
+ "pattern": "default"
529
+ }
530
+ ],
531
+ "primaryViewId": "power",
532
+ "widgets": [
533
+ {
534
+ "widgetId": "widget-1",
535
+ "name": "Power",
536
+ "widgetType": "DATA",
537
+ "dataType": "NUMBER"
538
+ }
539
+ ]
540
+ }
541
+ ]
542
+ },
543
+ "essential": {
544
+ "canvasId": "canvas",
545
+ "cards": [
546
+ {
547
+ "cardId": "card-1",
548
+ "type": "widget",
549
+ "title": "Power",
550
+ "primaryViewId": "power",
551
+ "views": [
552
+ {
553
+ "id": "power",
554
+ "name": "Power"
555
+ }
556
+ ],
557
+ "viewCount": 1,
558
+ "layouts": {
559
+ "sm": {
560
+ "x": 0,
561
+ "y": 0,
562
+ "width": 2,
563
+ "height": 2
564
+ }
565
+ }
566
+ }
567
+ ]
568
+ }
569
+ },
570
+ {
571
+ "name": "device-briefs-keep-discovery-and-unknown-state",
572
+ "target": "/app/device/brief/list",
573
+ "data": {
574
+ "devices": [
575
+ {
576
+ "entityId": "d1",
577
+ "name": "Lamp",
578
+ "active": false,
579
+ "roomId": "r1",
580
+ "roomName": "Living room",
581
+ "capabilities": [
582
+ "state.onOff",
583
+ "command.onOff"
584
+ ],
585
+ "group": false,
586
+ "integration": "demo.device",
587
+ "connectId": "connection-1",
588
+ "manufacturerId": "demo",
589
+ "manufacturerName": "Example maker",
590
+ "online": false,
591
+ "availabilityStatus": "unavailable",
592
+ "twinTags": [
593
+ "light"
594
+ ]
595
+ },
596
+ {
597
+ "entityId": "g:1",
598
+ "name": "Lights",
599
+ "active": true,
600
+ "roomId": "",
601
+ "roomName": "",
602
+ "capabilities": [
603
+ "command.onOff"
604
+ ],
605
+ "group": true,
606
+ "integration": "demo.device"
607
+ }
608
+ ]
609
+ },
610
+ "status": "success",
611
+ "essential": {
612
+ "devices": [
613
+ {
614
+ "entityId": "d1",
615
+ "name": "Lamp",
616
+ "active": false,
617
+ "roomId": "r1",
618
+ "roomName": "Living room",
619
+ "capabilities": [
620
+ "state.onOff",
621
+ "command.onOff"
622
+ ],
623
+ "group": false,
624
+ "integration": "demo.device",
625
+ "online": false,
626
+ "availabilityStatus": "unavailable",
627
+ "twinTags": [
628
+ "light"
629
+ ]
630
+ },
631
+ {
632
+ "entityId": "g:1",
633
+ "name": "Lights",
634
+ "active": true,
635
+ "roomId": "",
636
+ "roomName": "",
637
+ "capabilities": [
638
+ "command.onOff"
639
+ ],
640
+ "group": true,
641
+ "integration": "demo.device"
642
+ }
643
+ ]
644
+ }
645
+ },
646
+ {
647
+ "name": "device-empty-briefs",
648
+ "target": "/app/device/brief/list",
649
+ "data": {
650
+ "devices": []
651
+ },
652
+ "status": "success",
653
+ "essential": {
654
+ "devices": []
655
+ }
656
+ },
657
+ {
658
+ "name": "device-detail-retains-identity-state-and-missing-items",
659
+ "target": "/app/device/detail/get",
660
+ "data": {
661
+ "items": [
662
+ {
663
+ "requestedId": "d1",
664
+ "found": true,
665
+ "device": {
666
+ "entityId": "d1",
667
+ "name": "Lamp",
668
+ "active": false,
669
+ "roomId": "r1",
670
+ "roomName": "Living room",
671
+ "capabilities": [
672
+ "state.onOff",
673
+ "command.onOff"
674
+ ],
675
+ "group": false,
676
+ "integration": "demo.device",
677
+ "connectId": "connection-1",
678
+ "manufacturerId": "demo",
679
+ "manufacturerName": "Example maker",
680
+ "online": false,
681
+ "availabilityStatus": "unavailable",
682
+ "twinTags": [
683
+ "light"
684
+ ],
685
+ "states": [
686
+ {
687
+ "capabilityId": "state.onOff",
688
+ "value": "off"
689
+ }
690
+ ],
691
+ "memberIds": []
692
+ }
693
+ },
694
+ {
695
+ "requestedId": "g:1",
696
+ "found": true,
697
+ "device": {
698
+ "entityId": "g:1",
699
+ "name": "Lights",
700
+ "active": true,
701
+ "roomId": "",
702
+ "roomName": "",
703
+ "capabilities": [
704
+ "command.onOff"
705
+ ],
706
+ "group": true,
707
+ "integration": "demo.device",
708
+ "states": [],
709
+ "memberIds": [
710
+ "d1"
711
+ ]
712
+ }
713
+ },
714
+ {
715
+ "requestedId": "gone",
716
+ "found": false,
717
+ "reason": "not_found"
718
+ }
719
+ ]
720
+ },
721
+ "status": "success",
722
+ "essential": {
723
+ "items": [
724
+ {
725
+ "requestedId": "d1",
726
+ "found": true,
727
+ "device": {
728
+ "entityId": "d1",
729
+ "name": "Lamp",
730
+ "active": false,
731
+ "roomId": "r1",
732
+ "roomName": "Living room",
733
+ "capabilities": [
734
+ "state.onOff",
735
+ "command.onOff"
736
+ ],
737
+ "group": false,
738
+ "integration": "demo.device",
739
+ "connectId": "connection-1",
740
+ "manufacturerId": "demo",
741
+ "manufacturerName": "Example maker",
742
+ "online": false,
743
+ "availabilityStatus": "unavailable",
744
+ "twinTags": [
745
+ "light"
746
+ ],
747
+ "states": [
748
+ {
749
+ "capabilityId": "state.onOff",
750
+ "value": "off"
751
+ }
752
+ ],
753
+ "memberIds": []
754
+ }
755
+ },
756
+ {
757
+ "requestedId": "g:1",
758
+ "found": true,
759
+ "device": {
760
+ "entityId": "g:1",
761
+ "name": "Lights",
762
+ "active": true,
763
+ "roomId": "",
764
+ "roomName": "",
765
+ "capabilities": [
766
+ "command.onOff"
767
+ ],
768
+ "group": true,
769
+ "integration": "demo.device",
770
+ "states": [],
771
+ "memberIds": [
772
+ "d1"
773
+ ]
774
+ }
775
+ },
776
+ {
777
+ "requestedId": "gone",
778
+ "found": false,
779
+ "reason": "not_found"
780
+ }
781
+ ]
782
+ }
783
+ },
784
+ {
785
+ "name": "device-cli-full-list-keeps-details",
786
+ "target": "/app/device/list",
787
+ "data": {
788
+ "devices": [
789
+ {
790
+ "entityId": "d1",
791
+ "name": "Lamp",
792
+ "active": false,
793
+ "roomId": "r1",
794
+ "roomName": "Living room",
795
+ "capabilities": [
796
+ "state.onOff",
797
+ "command.onOff"
798
+ ],
799
+ "group": false,
800
+ "integration": "demo.device",
801
+ "connectId": "connection-1",
802
+ "manufacturerId": "demo",
803
+ "manufacturerName": "Example maker",
804
+ "online": false,
805
+ "availabilityStatus": "unavailable",
806
+ "twinTags": [
807
+ "light"
808
+ ],
809
+ "states": [
810
+ {
811
+ "capabilityId": "state.onOff",
812
+ "value": "off"
813
+ }
814
+ ],
815
+ "memberIds": []
816
+ }
817
+ ]
818
+ },
819
+ "status": "success",
820
+ "essential": {
821
+ "devices": [
822
+ {
823
+ "entityId": "d1",
824
+ "name": "Lamp",
825
+ "active": false,
826
+ "roomId": "r1",
827
+ "roomName": "Living room",
828
+ "capabilities": [
829
+ "state.onOff",
830
+ "command.onOff"
831
+ ],
832
+ "group": false,
833
+ "integration": "demo.device",
834
+ "connectId": "connection-1",
835
+ "manufacturerId": "demo",
836
+ "manufacturerName": "Example maker",
837
+ "online": false,
838
+ "availabilityStatus": "unavailable",
839
+ "twinTags": [
840
+ "light"
841
+ ],
842
+ "states": [
843
+ {
844
+ "capabilityId": "state.onOff",
845
+ "value": "off"
846
+ }
847
+ ],
848
+ "memberIds": []
849
+ }
850
+ ]
851
+ }
852
+ },
853
+ {
854
+ "name": "device-history-preserves-evidence",
855
+ "target": "/app/device/history/list",
856
+ "data": {
857
+ "deviceId": "d1",
858
+ "timeline": [
859
+ {
860
+ "time": "2026-10-27 10:00:00",
861
+ "type": "command",
862
+ "entityId": "d1",
863
+ "capabilityId": "command.onOff",
864
+ "data": {
865
+ "value": false,
866
+ "level": 0,
867
+ "optional": null
868
+ },
869
+ "traceSteps": [
870
+ {
871
+ "type": "Automation",
872
+ "value": "automation-1"
873
+ }
874
+ ]
875
+ }
876
+ ]
877
+ },
878
+ "status": "success",
879
+ "essential": {
880
+ "deviceId": "d1",
881
+ "timeline": [
882
+ {
883
+ "time": "2026-10-27 10:00:00",
884
+ "type": "command",
885
+ "entityId": "d1",
886
+ "capabilityId": "command.onOff",
887
+ "data": {
888
+ "value": false,
889
+ "level": 0,
890
+ "optional": null
891
+ },
892
+ "traceSteps": [
893
+ {
894
+ "type": "Automation",
895
+ "value": "automation-1"
896
+ }
897
+ ]
898
+ }
899
+ ]
900
+ }
901
+ },
902
+ {
903
+ "name": "device-recent-preserves-window-truncation-and-values",
904
+ "target": "/app/device/activity/recent/list",
905
+ "data": {
906
+ "since": "10min",
907
+ "from": 1793065800000,
908
+ "until": 1793066400000,
909
+ "truncated": true,
910
+ "updates": [
911
+ {
912
+ "deviceId": "d1",
913
+ "deviceName": "Lamp",
914
+ "capabilityId": "state.onOff",
915
+ "changedAt": 1793066400000,
916
+ "state": false
917
+ },
918
+ {
919
+ "deviceId": "d2",
920
+ "deviceName": "Dimmer",
921
+ "capabilityId": "state.level",
922
+ "changedAt": 1793066399000,
923
+ "state": 0
924
+ },
925
+ {
926
+ "deviceId": "d3",
927
+ "deviceName": "Button",
928
+ "capabilityId": "event.click",
929
+ "changedAt": 1793066398000,
930
+ "event": {
931
+ "value": null
932
+ }
933
+ },
934
+ {
935
+ "deviceId": "d4",
936
+ "deviceName": "Lamp",
937
+ "capabilityId": "command.onOff",
938
+ "changedAt": 1793066397000,
939
+ "log": {
940
+ "source": "Automation",
941
+ "data": {
942
+ "onOff": false
943
+ }
944
+ }
945
+ }
946
+ ]
947
+ },
948
+ "status": "success",
949
+ "essential": {
950
+ "since": "10min",
951
+ "from": 1793065800000,
952
+ "until": 1793066400000,
953
+ "truncated": true,
954
+ "updates": [
955
+ {
956
+ "deviceId": "d1",
957
+ "deviceName": "Lamp",
958
+ "capabilityId": "state.onOff",
959
+ "changedAt": 1793066400000,
960
+ "state": false
961
+ },
962
+ {
963
+ "deviceId": "d2",
964
+ "deviceName": "Dimmer",
965
+ "capabilityId": "state.level",
966
+ "changedAt": 1793066399000,
967
+ "state": 0
968
+ },
969
+ {
970
+ "deviceId": "d3",
971
+ "deviceName": "Button",
972
+ "capabilityId": "event.click",
973
+ "changedAt": 1793066398000,
974
+ "event": {
975
+ "value": null
976
+ }
977
+ },
978
+ {
979
+ "deviceId": "d4",
980
+ "deviceName": "Lamp",
981
+ "capabilityId": "command.onOff",
982
+ "changedAt": 1793066397000,
983
+ "log": {
984
+ "source": "Automation",
985
+ "data": {
986
+ "onOff": false
987
+ }
988
+ }
989
+ }
990
+ ]
991
+ }
992
+ },
993
+ {
994
+ "name": "device-enable-retains-pending",
995
+ "target": "/app/device/enable",
996
+ "data": {
997
+ "requestedIds": [
998
+ "d1",
999
+ "d2",
1000
+ "d3"
1001
+ ],
1002
+ "enabledIds": [
1003
+ "d1"
1004
+ ],
1005
+ "alreadyEnabledIds": [
1006
+ "d2"
1007
+ ],
1008
+ "pendingIds": [
1009
+ "d3"
1010
+ ]
1011
+ },
1012
+ "status": "partial",
1013
+ "essential": {
1014
+ "requestedIds": [
1015
+ "d1",
1016
+ "d2",
1017
+ "d3"
1018
+ ],
1019
+ "enabledIds": [
1020
+ "d1"
1021
+ ],
1022
+ "alreadyEnabledIds": [
1023
+ "d2"
1024
+ ],
1025
+ "pendingIds": [
1026
+ "d3"
1027
+ ]
1028
+ }
1029
+ },
1030
+ {
1031
+ "name": "device-disable-retains-pending",
1032
+ "target": "/app/device/disable",
1033
+ "data": {
1034
+ "requestedIds": [
1035
+ "d1",
1036
+ "d2",
1037
+ "d3"
1038
+ ],
1039
+ "disabledIds": [
1040
+ "d1"
1041
+ ],
1042
+ "alreadyDisabledIds": [
1043
+ "d2"
1044
+ ],
1045
+ "pendingIds": [
1046
+ "d3"
1047
+ ]
1048
+ },
1049
+ "status": "partial",
1050
+ "essential": {
1051
+ "requestedIds": [
1052
+ "d1",
1053
+ "d2",
1054
+ "d3"
1055
+ ],
1056
+ "disabledIds": [
1057
+ "d1"
1058
+ ],
1059
+ "alreadyDisabledIds": [
1060
+ "d2"
1061
+ ],
1062
+ "pendingIds": [
1063
+ "d3"
1064
+ ]
1065
+ }
1066
+ },
1067
+ {
1068
+ "name": "device-refresh-not-applicable-is-resource-status",
1069
+ "target": "/app/device/refresh",
1070
+ "data": {
1071
+ "status": "notApplicable"
1072
+ },
1073
+ "status": "success",
1074
+ "essential": {
1075
+ "status": "notApplicable"
1076
+ }
1077
+ }
1078
+ ]