cactus-test-definitions 1.6.0__py3-none-any.whl → 1.8.1__py3-none-any.whl

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.

Potentially problematic release.


This version of cactus-test-definitions might be problematic. Click here for more details.

Files changed (74) hide show
  1. cactus_test_definitions/__init__.py +1 -1
  2. cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
  3. cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
  4. cactus_test_definitions/client/__init__.py +4 -0
  5. cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
  6. cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
  7. cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
  8. cactus_test_definitions/client/actions.py +1 -0
  9. cactus_test_definitions/client/checks.py +1 -0
  10. cactus_test_definitions/client/procedures/ALL-09.yaml +18 -18
  11. cactus_test_definitions/client/procedures/ALL-12.yaml +34 -16
  12. cactus_test_definitions/client/procedures/ALL-18.yaml +6 -5
  13. cactus_test_definitions/client/procedures/ALL-28.yaml +0 -1
  14. cactus_test_definitions/client/procedures/GEN-10.yaml +58 -4
  15. cactus_test_definitions/client/procedures/GEN-11.yaml +32 -8
  16. cactus_test_definitions/client/procedures/GEN-12.yaml +33 -9
  17. cactus_test_definitions/client/procedures/LOA-03.yaml +1 -1
  18. cactus_test_definitions/client/procedures/LOA-04.yaml +1 -1
  19. cactus_test_definitions/client/procedures/LOA-10.yaml +61 -9
  20. cactus_test_definitions/client/procedures/LOA-11.yaml +32 -8
  21. cactus_test_definitions/client/procedures/LOA-12.yaml +32 -8
  22. cactus_test_definitions/csipaus.py +2 -0
  23. cactus_test_definitions/server/README.md +8 -6
  24. cactus_test_definitions/server/__init__.py +4 -0
  25. cactus_test_definitions/server/__pycache__/__init__.cpython-312.pyc +0 -0
  26. cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  27. cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  28. cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  29. cactus_test_definitions/server/actions.py +2 -1
  30. cactus_test_definitions/server/checks.py +35 -0
  31. cactus_test_definitions/server/procedures/S-ALL-01.yaml +3 -0
  32. cactus_test_definitions/server/procedures/S-ALL-06.yaml +111 -0
  33. cactus_test_definitions/server/procedures/S-ALL-07.yaml +100 -0
  34. cactus_test_definitions/server/procedures/S-ALL-08.yaml +77 -0
  35. cactus_test_definitions/server/procedures/S-ALL-09.yaml +43 -0
  36. cactus_test_definitions/server/procedures/S-ALL-10.yaml +68 -0
  37. cactus_test_definitions/server/procedures/S-ALL-11.yaml +36 -0
  38. cactus_test_definitions/server/procedures/S-ALL-12.yaml +36 -0
  39. cactus_test_definitions/server/procedures/S-ALL-13.yaml +36 -0
  40. cactus_test_definitions/server/procedures/S-ALL-14.yaml +36 -0
  41. cactus_test_definitions/server/procedures/S-ALL-15.yaml +79 -0
  42. cactus_test_definitions/server/procedures/S-ALL-16.yaml +79 -0
  43. cactus_test_definitions/server/procedures/S-ALL-17.yaml +39 -0
  44. cactus_test_definitions/server/procedures/S-ALL-18.yaml +35 -0
  45. cactus_test_definitions/server/procedures/S-ALL-19.yaml +34 -0
  46. cactus_test_definitions/server/procedures/S-ALL-20.yaml +34 -0
  47. cactus_test_definitions/server/procedures/S-ALL-21.yaml +34 -0
  48. cactus_test_definitions/server/procedures/S-ALL-22.yaml +34 -0
  49. cactus_test_definitions/server/procedures/S-ALL-23.yaml +34 -0
  50. cactus_test_definitions/server/procedures/S-ALL-24.yaml +37 -0
  51. cactus_test_definitions/server/procedures/S-ALL-25.yaml +151 -0
  52. cactus_test_definitions/server/procedures/S-ALL-41.yaml +343 -0
  53. cactus_test_definitions/server/procedures/S-ALL-42.yaml +81 -0
  54. cactus_test_definitions/server/procedures/S-ALL-43.yaml +146 -0
  55. cactus_test_definitions/server/procedures/S-ALL-44.yaml +51 -0
  56. cactus_test_definitions/server/procedures/S-ALL-45.yaml +34 -0
  57. cactus_test_definitions/server/procedures/S-ALL-48.yaml +29 -0
  58. cactus_test_definitions/server/procedures/S-ALL-49.yaml +56 -0
  59. cactus_test_definitions/server/procedures/S-ALL-51.yaml +35 -0
  60. cactus_test_definitions/server/procedures/S-ALL-52.yaml +35 -0
  61. cactus_test_definitions/server/procedures/S-ALL-53.yaml +42 -0
  62. cactus_test_definitions/server/procedures/S-ALL-55.yaml +45 -0
  63. cactus_test_definitions/server/procedures/S-ALL-56.yaml +36 -0
  64. cactus_test_definitions/server/procedures/S-ALL-57.yaml +62 -0
  65. cactus_test_definitions/server/procedures/S-OPT-03.yaml +9 -6
  66. cactus_test_definitions/server/procedures/S-OPT-05.yaml +33 -0
  67. cactus_test_definitions/server/test_procedures.py +34 -0
  68. {cactus_test_definitions-1.6.0.dist-info → cactus_test_definitions-1.8.1.dist-info}/METADATA +1 -1
  69. {cactus_test_definitions-1.6.0.dist-info → cactus_test_definitions-1.8.1.dist-info}/RECORD +74 -40
  70. tests/unit/client/test_validate.py +47 -0
  71. tests/unit/server/test_validate.py +17 -4
  72. {cactus_test_definitions-1.6.0.dist-info → cactus_test_definitions-1.8.1.dist-info}/WHEEL +0 -0
  73. {cactus_test_definitions-1.6.0.dist-info → cactus_test_definitions-1.8.1.dist-info}/licenses/LICENSE.txt +0 -0
  74. {cactus_test_definitions-1.6.0.dist-info → cactus_test_definitions-1.8.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,36 @@
1
+ Description: Active Control - Load Limit
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure an active control with opModLoadLimW = 0W and no rampTms attribute.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: der-control
33
+ parameters:
34
+ minimum_count: 1
35
+ opModLoadLimW: 0
36
+ rampTms: null
@@ -0,0 +1,79 @@
1
+ Description: Active Control - Energise / De-energise
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure an active control with opModEnergize = true and without including the rampTms attribute.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ checks:
26
+ - type: end-device
27
+ parameters:
28
+ matches_client: true
29
+ - type: der-control
30
+ parameters:
31
+ minimum_count: 1
32
+ opModEnergize: True
33
+ rampTms: null
34
+
35
+ - id: (1) De-energize
36
+ repeat_until_pass: true
37
+ client: client
38
+ instructions:
39
+ - Configure an active control with opModEnergize = false and without including the rampTms attribute.
40
+ action:
41
+ type: discovery
42
+ parameters:
43
+ resources:
44
+ - EndDevice
45
+ - DERControlList
46
+ - DER
47
+ - DERControl
48
+ checks:
49
+ - type: end-device
50
+ parameters:
51
+ matches_client: true
52
+ - type: der-control
53
+ parameters:
54
+ minimum_count: 1
55
+ opModEnergize: False
56
+ rampTms: null
57
+
58
+ - id: (2) Energize
59
+ repeat_until_pass: true
60
+ client: client
61
+ instructions:
62
+ - Configure an active control with opModEnergize = true and without including the rampTms attribute.
63
+ action:
64
+ type: discovery
65
+ parameters:
66
+ resources:
67
+ - EndDevice
68
+ - DERControlList
69
+ - DER
70
+ - DERControl
71
+ checks:
72
+ - type: end-device
73
+ parameters:
74
+ matches_client: true
75
+ - type: der-control
76
+ parameters:
77
+ minimum_count: 1
78
+ opModEnergize: True
79
+ rampTms: null
@@ -0,0 +1,79 @@
1
+ Description: Active Control - Disconnect
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure an active control with opModConnect = true and without including the rampTms attribute.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ checks:
26
+ - type: end-device
27
+ parameters:
28
+ matches_client: true
29
+ - type: der-control
30
+ parameters:
31
+ minimum_count: 1
32
+ opModConnect: True
33
+ rampTms: null
34
+
35
+ - id: (1) De-energize
36
+ repeat_until_pass: true
37
+ client: client
38
+ instructions:
39
+ - Configure an active control with opModConnect = false and without including the rampTms attribute.
40
+ action:
41
+ type: discovery
42
+ parameters:
43
+ resources:
44
+ - EndDevice
45
+ - DERControlList
46
+ - DER
47
+ - DERControl
48
+ checks:
49
+ - type: end-device
50
+ parameters:
51
+ matches_client: true
52
+ - type: der-control
53
+ parameters:
54
+ minimum_count: 1
55
+ opModConnect: False
56
+ rampTms: null
57
+
58
+ - id: (2) Energize
59
+ repeat_until_pass: true
60
+ client: client
61
+ instructions:
62
+ - Configure an active control with opModConnect = true and without including the rampTms attribute.
63
+ action:
64
+ type: discovery
65
+ parameters:
66
+ resources:
67
+ - EndDevice
68
+ - DERControlList
69
+ - DER
70
+ - DERControl
71
+ checks:
72
+ - type: end-device
73
+ parameters:
74
+ matches_client: true
75
+ - type: der-control
76
+ parameters:
77
+ minimum_count: 1
78
+ opModConnect: True
79
+ rampTms: null
@@ -0,0 +1,39 @@
1
+ Description: Active Control - Control Combinations
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure an active control with opModExpLimW = 50% of the DER active power rating, opModGenLimW = 0W, opModImpLimW = 50% the DER active power rating, opModLoadLimW = 0W, opModEnergize = false, opModConnect = false, and without including the rampTms attribute.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ checks:
26
+ - type: end-device
27
+ parameters:
28
+ matches_client: true
29
+ - type: der-control
30
+ parameters:
31
+ minimum_count: 1
32
+ opModExpLimW: $(setMaxW * 0.5)
33
+ opModGenLimW: 0
34
+ opModImpLimW: $(setMaxW * 0.5)
35
+ opModLoadLimW: 0
36
+ opModEnergize: False
37
+ opModConnect: False
38
+ rampTms: null
39
+
@@ -0,0 +1,35 @@
1
+ Description: Active Control - Ramp Rates
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure an active control with opModExpLimW = 0, opModImpLimW = 0, rampTms=30 seconds.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ checks:
26
+ - type: end-device
27
+ parameters:
28
+ matches_client: true
29
+ - type: der-control
30
+ parameters:
31
+ minimum_count: 1
32
+ opModExpLimW: 0
33
+ opModImpLimW: 0
34
+ rampTms: 30
35
+
@@ -0,0 +1,34 @@
1
+ Description: Default Control - Export Limit
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with opModExpLimW = 30 % of DER max rated active power.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ opModExpLimW: $(setMaxW * 0.3)
@@ -0,0 +1,34 @@
1
+ Description: Default Control - Generation Limit
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with opModGenLimW = 30 % of DER max rated active power.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ opModGenLimW: $(setMaxW * 0.3)
@@ -0,0 +1,34 @@
1
+ Description: Default Control - Import Limit
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with opModImpLimW = 30 % of DER max rated active power.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ opModImpLimW: $(setMaxW * 0.3)
@@ -0,0 +1,34 @@
1
+ Description: Default Control - Load Limit
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with opModLoadLimW = 30 % of DER max rated active power.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ opModLoadLimW: $(setMaxW * 0.3)
@@ -0,0 +1,34 @@
1
+ Description: Default Control - Ramp Rate
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with setGradW = 1 % per second.
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ setGradW: 1
@@ -0,0 +1,37 @@
1
+ Description: Default Control - Control Combinations
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: (A) PRECONDITION
15
+ repeat_until_pass: true
16
+ client: client
17
+ instructions:
18
+ - Create an EndDevice registration.
19
+ - Configure a default control with - opModExpLimW = 50% of the DER active power rating, opModGenLimW = 0W, opModImpLimW = 50% of the DER active power rating, opModLoadLimW = 0W
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - EndDevice
25
+ - DERControlList
26
+ - DER
27
+ - DefaultDERControl
28
+ checks:
29
+ - type: end-device
30
+ parameters:
31
+ matches_client: true
32
+ - type: default-der-control
33
+ parameters:
34
+ opModExpLimW: $(setMaxW * 0.5)
35
+ opModGenLimW: 0
36
+ opModImpLimW: $(setMaxW * 0.5)
37
+ opModLoadLimW: 0
@@ -0,0 +1,151 @@
1
+ Description: Subscribe
2
+ Category: Subscription / Notification
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ action:
19
+ type: discovery
20
+ parameters:
21
+ resources:
22
+ - EndDevice
23
+ - FunctionSetAssignments
24
+ - DERProgram
25
+ - SubscriptionList
26
+ checks:
27
+ - type: end-device
28
+ parameters:
29
+ matches_client: true
30
+
31
+ - id: EDEV LIST SUBSCRIBE
32
+ action:
33
+ type: create-subscription
34
+ parameters:
35
+ sub_id: edev_list_sub
36
+ resource: EndDeviceList
37
+
38
+ - id: AWAIT EDEV LIST NOTIFICATION
39
+ repeat_until_pass: true
40
+ instructions:
41
+ - Change the EndDeviceList to have a pollRate of 30 seconds. Ensure it sends a Notification.
42
+ action:
43
+ type: notifications
44
+ parameters:
45
+ sub_id: edev_list_sub
46
+ collect: true
47
+ checks:
48
+ - type: end-device-list
49
+ parameters:
50
+ minimum_count: 1
51
+ maximum_count: 1
52
+ poll_rate: 30
53
+ sub_id: edev_list_sub
54
+
55
+ - id: FSA LIST SUBSCRIBE
56
+ action:
57
+ type: create-subscription
58
+ parameters:
59
+ sub_id: fsa_list_sub
60
+ resource: FunctionSetAssignmentsList
61
+
62
+ - id: AWAIT FSA LIST NOTIFICATION
63
+ repeat_until_pass: true
64
+ instructions:
65
+ - Add a new FunctionSetAssignment to client EndDevice. Ensure it sends a Notification.
66
+ action:
67
+ type: notifications
68
+ parameters:
69
+ sub_id: fsa_list_sub
70
+ collect: true
71
+ checks:
72
+ - type: function-set-assignment
73
+ parameters:
74
+ minimum_count: 1
75
+ maximum_count: 1
76
+ matches_client_edev: true
77
+ sub_id: fsa_list_sub
78
+
79
+
80
+ # At this point the client will have a FunctionSetAssignment with a LINK to a DERProgramList but NO
81
+ # physical record of that DERProgramList - we can't just subscribe to a ListLink.href as the actual underlying
82
+ # record might NOT be subscribable (we can only discover that by resolving the record)
83
+ #
84
+ # For these reasons - we are forced to actually resolve the DERProgramList via discovery.
85
+ - id: DISCOVER NEW DERP LIST
86
+ action:
87
+ type: discovery
88
+ parameters:
89
+ resources:
90
+ - DERProgramList
91
+
92
+ - id: DERP LIST SUBSCRIBE
93
+ action:
94
+ type: create-subscription
95
+ parameters:
96
+ sub_id: derp_list_sub
97
+ resource: DERProgramList
98
+
99
+ - id: AWAIT DERP LIST NOTIFICATION
100
+ repeat_until_pass: true
101
+ instructions:
102
+ - Add a new DERProgram to the newly created FunctionSetAssignment. Ensure it sends a Notification.
103
+ action:
104
+ type: notifications
105
+ parameters:
106
+ sub_id: derp_list_sub
107
+ collect: true
108
+ checks:
109
+ - type: der-program
110
+ parameters:
111
+ minimum_count: 1
112
+ maximum_count: 1
113
+ fsa_index: -1 # Must belong to the latest FunctionSetAssignment
114
+ sub_id: derp_list_sub
115
+
116
+ # Same as above - we don't have the DefaultDERControl (only a link) - we need to resolve it
117
+ - id: DISCOVER NEW DERC
118
+ repeat_until_pass: true
119
+ instructions:
120
+ - Add a DefaultDERControl to the recently created DERProgram. Ensure it's subscribable.
121
+ action:
122
+ type: discovery
123
+ parameters:
124
+ resources:
125
+ - DefaultDERControl
126
+ checks:
127
+ - type: default-der-control
128
+ parameters:
129
+ minimum_count: 1
130
+
131
+ - id: DEFAULT DERC SUBSCRIBE
132
+ action:
133
+ type: create-subscription
134
+ parameters:
135
+ sub_id: dderc_sub
136
+ resource: DefaultDERControl
137
+
138
+ - id: AWAIT DEFAULT DERC NOTIFICATION
139
+ repeat_until_pass: true
140
+ instructions:
141
+ - Adjust the DefaultDERControl to have opModeExpLimW 2000 W. Ensure it sends a Notification.
142
+ action:
143
+ type: notifications
144
+ parameters:
145
+ sub_id: dderc_sub
146
+ collect: true
147
+ checks:
148
+ - type: default-der-control
149
+ parameters:
150
+ opModExpLimW: 2000
151
+ sub_id: dderc_sub