cactus-test-definitions 1.0.0__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 (135) hide show
  1. cactus_test_definitions/__init__.py +39 -0
  2. cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
  3. cactus_test_definitions/__pycache__/actions.cpython-312.pyc +0 -0
  4. cactus_test_definitions/__pycache__/checks.cpython-312.pyc +0 -0
  5. cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
  6. cactus_test_definitions/__pycache__/errors.cpython-312.pyc +0 -0
  7. cactus_test_definitions/__pycache__/events.cpython-312.pyc +0 -0
  8. cactus_test_definitions/__pycache__/parameters.cpython-312.pyc +0 -0
  9. cactus_test_definitions/__pycache__/schema.cpython-312.pyc +0 -0
  10. cactus_test_definitions/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  11. cactus_test_definitions/__pycache__/test_procedures.cpython-312.pyc +0 -0
  12. cactus_test_definitions/__pycache__/variable_expressions.cpython-312.pyc +0 -0
  13. cactus_test_definitions/__pycache__/version.cpython-312.pyc +0 -0
  14. cactus_test_definitions/client/__init__.py +26 -0
  15. cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
  16. cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
  17. cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
  18. cactus_test_definitions/client/__pycache__/events.cpython-312.pyc +0 -0
  19. cactus_test_definitions/client/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  20. cactus_test_definitions/client/actions.py +98 -0
  21. cactus_test_definitions/client/checks.py +117 -0
  22. cactus_test_definitions/client/events.py +71 -0
  23. cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
  24. cactus_test_definitions/client/procedures/ALL-02.yaml +108 -0
  25. cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
  26. cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
  27. cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
  28. cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
  29. cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
  30. cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
  31. cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
  32. cactus_test_definitions/client/procedures/ALL-09.yaml +103 -0
  33. cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
  34. cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
  35. cactus_test_definitions/client/procedures/ALL-12.yaml +108 -0
  36. cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
  37. cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
  38. cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
  39. cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
  40. cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
  41. cactus_test_definitions/client/procedures/ALL-18.yaml +288 -0
  42. cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
  43. cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
  44. cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
  45. cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
  46. cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
  47. cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
  48. cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
  49. cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
  50. cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
  51. cactus_test_definitions/client/procedures/ALL-28.yaml +274 -0
  52. cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
  53. cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
  54. cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
  55. cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
  56. cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
  57. cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
  58. cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
  59. cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
  60. cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
  61. cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
  62. cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
  63. cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
  64. cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
  65. cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
  66. cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
  67. cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
  68. cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
  69. cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
  70. cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
  71. cactus_test_definitions/client/procedures/GEN-10.yaml +737 -0
  72. cactus_test_definitions/client/procedures/GEN-11.yaml +376 -0
  73. cactus_test_definitions/client/procedures/GEN-12.yaml +376 -0
  74. cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
  75. cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
  76. cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
  77. cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
  78. cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
  79. cactus_test_definitions/client/procedures/LOA-05.yaml +85 -0
  80. cactus_test_definitions/client/procedures/LOA-06.yaml +85 -0
  81. cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
  82. cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
  83. cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
  84. cactus_test_definitions/client/procedures/LOA-10.yaml +739 -0
  85. cactus_test_definitions/client/procedures/LOA-11.yaml +376 -0
  86. cactus_test_definitions/client/procedures/LOA-12.yaml +376 -0
  87. cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
  88. cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
  89. cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
  90. cactus_test_definitions/client/procedures/MUL-03.yaml +78 -0
  91. cactus_test_definitions/client/procedures/OPT-1-IN-BAND.yaml +115 -0
  92. cactus_test_definitions/client/procedures/OPT-1-OUT-OF-BAND.yaml +101 -0
  93. cactus_test_definitions/client/procedures/test-procedures.yaml +75 -0
  94. cactus_test_definitions/client/test_procedures.py +296 -0
  95. cactus_test_definitions/csipaus.py +81 -0
  96. cactus_test_definitions/errors.py +15 -0
  97. cactus_test_definitions/parameters.py +149 -0
  98. cactus_test_definitions/py.typed +0 -0
  99. cactus_test_definitions/schema.py +22 -0
  100. cactus_test_definitions/server/README.md +170 -0
  101. cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  102. cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  103. cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  104. cactus_test_definitions/server/actions.py +139 -0
  105. cactus_test_definitions/server/checks.py +117 -0
  106. cactus_test_definitions/server/procedures/S-ALL-01.yaml +42 -0
  107. cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
  108. cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
  109. cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
  110. cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
  111. cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
  112. cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
  113. cactus_test_definitions/server/procedures/S-OPT-03.yaml +44 -0
  114. cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
  115. cactus_test_definitions/server/procedures/test-procedures.yaml +14 -0
  116. cactus_test_definitions/server/test_procedures.py +183 -0
  117. cactus_test_definitions/variable_expressions.py +419 -0
  118. cactus_test_definitions-1.0.0.dist-info/METADATA +288 -0
  119. cactus_test_definitions-1.0.0.dist-info/RECORD +135 -0
  120. cactus_test_definitions-1.0.0.dist-info/WHEEL +5 -0
  121. cactus_test_definitions-1.0.0.dist-info/licenses/LICENSE.txt +22 -0
  122. cactus_test_definitions-1.0.0.dist-info/top_level.txt +2 -0
  123. tests/__init__.py +0 -0
  124. tests/unit/__init__.py +0 -0
  125. tests/unit/client/__init__.py +0 -0
  126. tests/unit/client/test_actions.py +72 -0
  127. tests/unit/client/test_checks.py +47 -0
  128. tests/unit/client/test_config.py +61 -0
  129. tests/unit/client/test_events.py +36 -0
  130. tests/unit/client/test_test_procedures.py +150 -0
  131. tests/unit/server/__init__.py +0 -0
  132. tests/unit/server/test_test_procedures.py +86 -0
  133. tests/unit/test_csipaus.py +49 -0
  134. tests/unit/test_parameters.py +197 -0
  135. tests/unit/test_variable_expressions.py +402 -0
@@ -0,0 +1,161 @@
1
+ Description: Default Control – Generation Limit
2
+ Category: Control
3
+ Classes:
4
+ - G
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+
15
+
16
+ Preconditions:
17
+ init_actions:
18
+ - type: set-comms-rate
19
+ parameters:
20
+ dcap_poll_seconds: 60
21
+ edev_list_poll_seconds: 60
22
+ fsa_list_poll_seconds: 60
23
+ der_list_poll_seconds: 60
24
+ derp_list_poll_seconds: 60
25
+ mup_post_seconds: 60
26
+ checks:
27
+ - type: end-device-contents
28
+ parameters: {}
29
+ - type: der-settings-contents
30
+ parameters: {}
31
+ actions:
32
+ - type: create-der-control
33
+ parameters:
34
+ start: $(now)
35
+ duration_seconds: 900
36
+ opModGenLimW: $(setMaxW * 2)
37
+ instructions:
38
+ - DER shall be generating at least 50% of its active power rating.
39
+
40
+ Steps:
41
+
42
+ # (a, b)
43
+ GET-DEFAULT-DERC:
44
+ event:
45
+ type: GET-request-received
46
+ parameters:
47
+ endpoint: /edev/1/derp/1/dderc
48
+ actions:
49
+ - type: set-default-der-control
50
+ parameters:
51
+ opModGenLimW: $(setMaxW * 0.3)
52
+ - type: enable-steps
53
+ parameters:
54
+ steps:
55
+ - GET-DERC-1
56
+ - type: remove-steps
57
+ parameters:
58
+ steps:
59
+ - GET-DEFAULT-DERC
60
+
61
+ # (b, c, d) This will be the first poll after client has received the defaults
62
+ # the client will see the existing control but it will be cancelled immediately after
63
+ GET-DERC-1:
64
+ event:
65
+ type: GET-request-received
66
+ parameters:
67
+ endpoint: /edev/1/derp/1/derc
68
+ serve_request_first: true # Run this AFTER server receives the request
69
+ actions:
70
+ - type: cancel-active-der-controls
71
+ parameters: {}
72
+ - type: enable-steps
73
+ parameters:
74
+ steps:
75
+ - GET-DERC-2
76
+ - type: remove-steps
77
+ parameters:
78
+ steps:
79
+ - GET-DERC-1
80
+
81
+ # (d, e) On this poll, client will discover control was cancelled and a new control will be added at 200% of setMaxW
82
+ GET-DERC-2:
83
+ event:
84
+ type: GET-request-received
85
+ parameters:
86
+ endpoint: /edev/1/derp/1/derc
87
+ serve_request_first: true # Run this AFTER server receives the request
88
+ actions:
89
+ - type: create-der-control
90
+ parameters:
91
+ start: $(now)
92
+ duration_seconds: 600
93
+ opModGenLimW: $(setMaxW * 2)
94
+ - type: enable-steps
95
+ parameters:
96
+ steps:
97
+ - WAIT-CONTROL-END
98
+ - type: remove-steps
99
+ parameters:
100
+ steps:
101
+ - GET-DERC-2
102
+
103
+ # (f, g) Waits for the new control to finish (with a bit of overtime)
104
+ WAIT-CONTROL-END:
105
+ event:
106
+ type: wait
107
+ parameters:
108
+ duration_seconds: 660
109
+ actions:
110
+ - type: enable-steps
111
+ parameters:
112
+ steps:
113
+ - GET-DERC-3
114
+ - type: remove-steps
115
+ parameters:
116
+ steps:
117
+ - WAIT-CONTROL-END
118
+ instructions:
119
+ - DER should ramp down generation to 30% at the rate of setGradW (default 0.27%/s)
120
+ - DER should then discover a new control and then ramp up to unconstrained at the rate of setGradW (default 0.27%/s)
121
+ - Upon control completion, DER should then ramp down to 30% at the rate of setGradW (default 0.27%/s)
122
+
123
+ # (h) On this poll, client will discover control the DefaultDERControl is cancelled and a new 0W control is in place
124
+ GET-DERC-3:
125
+ event:
126
+ type: GET-request-received
127
+ parameters:
128
+ endpoint: /edev/1/derp/1/derc
129
+ actions:
130
+ - type: create-der-control
131
+ parameters:
132
+ start: $(now)
133
+ duration_seconds: 600
134
+ opModGenLimW: 0
135
+ - type: set-default-der-control
136
+ parameters:
137
+ cancelled: true
138
+ - type: enable-steps
139
+ parameters:
140
+ steps:
141
+ - WAIT-TEST-END
142
+ - type: remove-steps
143
+ parameters:
144
+ steps:
145
+ - GET-DERC-3
146
+
147
+
148
+ WAIT-TEST-END:
149
+ event:
150
+ type: wait
151
+ parameters:
152
+ duration_seconds: 120
153
+ actions:
154
+ - type: remove-steps
155
+ parameters:
156
+ steps:
157
+ - WAIT-TEST-END
158
+ - type: finish-test
159
+ parameters: {}
160
+ instructions:
161
+ - DER shall ramp down generation to 0W at the rate of setGradW (default 0.27%/s)
@@ -0,0 +1,89 @@
1
+ Description: Active Control – Export Limit
2
+ Category: Control
3
+ Classes:
4
+ - G
5
+ - S
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ - type: all-notifications-transmitted
16
+ parameters: {}
17
+
18
+ Preconditions:
19
+ init_actions:
20
+ - type: set-comms-rate
21
+ parameters:
22
+ dcap_poll_seconds: 60
23
+ edev_list_poll_seconds: 60
24
+ fsa_list_poll_seconds: 60
25
+ der_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
26
+ derp_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
27
+ mup_post_seconds: 60
28
+ - type: create-der-program
29
+ parameters:
30
+ primacy: 0
31
+
32
+ checks:
33
+ - type: end-device-contents
34
+ parameters: {}
35
+ - type: der-settings-contents
36
+ parameters: {}
37
+ - type: subscription-contents
38
+ parameters:
39
+ subscribed_resource: /edev/1/derp/1/derc
40
+
41
+ actions:
42
+ - type: create-der-control
43
+ parameters:
44
+ start: $(now)
45
+ duration_seconds: 300
46
+ opModExpLimW: $(setMaxW * 2)
47
+ instructions:
48
+ - EndDevice should be registered with active subscriptions before starting.
49
+ - DER shall be exporting at the connection point at least 50% of its active power rating.
50
+
51
+ Steps:
52
+
53
+ # NOTE - The majority of this test's validation is watching
54
+
55
+ # (a, b, c)
56
+ # After a short delay (to allow precondition actions to propagate subscriptions)
57
+ WAIT-CREATE-DERC:
58
+ event:
59
+ type: wait
60
+ parameters:
61
+ duration_seconds: 60
62
+ actions:
63
+ - type: create-der-control
64
+ parameters:
65
+ start: $(now + '5 minutes')
66
+ duration_seconds: 120
67
+ opModExpLimW: 0
68
+ - type: enable-steps
69
+ parameters:
70
+ steps:
71
+ - WAIT-TEST-FINISH
72
+ - type: remove-steps
73
+ parameters:
74
+ steps:
75
+ - WAIT-CREATE-DERC
76
+
77
+ # (a, b, c)
78
+ WAIT-TEST-FINISH:
79
+ event:
80
+ type: wait
81
+ parameters:
82
+ duration_seconds: 480 # enough time for the control to start, run and then finish
83
+ actions:
84
+ - type: remove-steps
85
+ parameters:
86
+ steps:
87
+ - WAIT-TEST-FINISH
88
+ instructions:
89
+ - DER should be observed ramping to and then from 0W control.
@@ -0,0 +1,90 @@
1
+ Description: Active Control – Generation Limit
2
+ Category: Control
3
+ Classes:
4
+ - G
5
+ - S
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ - type: all-notifications-transmitted
16
+ parameters: {}
17
+
18
+ Preconditions:
19
+ init_actions:
20
+ - type: set-comms-rate
21
+ parameters:
22
+ dcap_poll_seconds: 60
23
+ edev_list_poll_seconds: 60
24
+ fsa_list_poll_seconds: 60
25
+ der_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
26
+ derp_list_poll_seconds: 900 # Set to a large value - testing whether they respond due to notification - not polls
27
+ mup_post_seconds: 60
28
+ - type: create-der-program
29
+ parameters:
30
+ primacy: 0
31
+
32
+ checks:
33
+ - type: end-device-contents
34
+ parameters: {}
35
+ - type: der-settings-contents
36
+ parameters: {}
37
+ - type: subscription-contents
38
+ parameters:
39
+ subscribed_resource: /edev/1/derp/1/derc
40
+
41
+ actions:
42
+ - type: create-der-control
43
+ parameters:
44
+ start: $(now)
45
+ duration_seconds: 300
46
+ opModGenLimW: $(setMaxW * 2)
47
+
48
+ instructions:
49
+ - EndDevice should be registered with active subscriptions before starting.
50
+ - DER shall be generating at least 50% of its active power rating.
51
+
52
+ Steps:
53
+
54
+ # NOTE - The majority of this test's validation is watching
55
+
56
+ # (a, b, c)
57
+ # After a short delay (to allow precondition actions to propagate subscriptions)
58
+ WAIT-CREATE-DERC:
59
+ event:
60
+ type: wait
61
+ parameters:
62
+ duration_seconds: 60
63
+ actions:
64
+ - type: create-der-control
65
+ parameters:
66
+ start: $(now + '5 minutes')
67
+ duration_seconds: 120
68
+ opModGenLimW: 0
69
+ - type: enable-steps
70
+ parameters:
71
+ steps:
72
+ - WAIT-TEST-FINISH
73
+ - type: remove-steps
74
+ parameters:
75
+ steps:
76
+ - WAIT-CREATE-DERC
77
+
78
+ # (a, b, c)
79
+ WAIT-TEST-FINISH:
80
+ event:
81
+ type: wait
82
+ parameters:
83
+ duration_seconds: 480 # enough time for the control to start, run and then finish
84
+ actions:
85
+ - type: remove-steps
86
+ parameters:
87
+ steps:
88
+ - WAIT-TEST-FINISH
89
+ instructions:
90
+ - DER should be observed ramping to and then from 0W control.
@@ -0,0 +1,145 @@
1
+ Description: Default Controls – Export Limit
2
+ Category: Control
3
+ Classes:
4
+ - G
5
+ - S
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ - type: all-notifications-transmitted
16
+ parameters: {}
17
+
18
+ Preconditions:
19
+ init_actions:
20
+ - type: set-comms-rate
21
+ parameters:
22
+ dcap_poll_seconds: 60
23
+ edev_list_poll_seconds: 60
24
+ fsa_list_poll_seconds: 60
25
+ der_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
26
+ derp_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
27
+ mup_post_seconds: 60
28
+ - type: create-der-program
29
+ parameters:
30
+ primacy: 0
31
+
32
+ checks:
33
+ - type: end-device-contents
34
+ parameters: {}
35
+ - type: der-settings-contents
36
+ parameters: {}
37
+ - type: subscription-contents
38
+ parameters:
39
+ subscribed_resource: /edev/1/derp/1/derc
40
+ - type: subscription-contents
41
+ parameters:
42
+ subscribed_resource: /edev/1/derp/1/dderc
43
+
44
+ actions:
45
+ - type: create-der-control
46
+ parameters:
47
+ start: $(now)
48
+ duration_seconds: 300
49
+ opModExpLimW: $(setMaxW * 2)
50
+ # (a, b)
51
+ - type: set-default-der-control
52
+ parameters:
53
+ opModExpLimW: $(setMaxW * 0.3)
54
+ instructions:
55
+ - EndDevice should be registered with active subscriptions before starting.
56
+ - DER shall be exporting at the connection point with at least 50% of its active power rating.
57
+
58
+ Steps:
59
+
60
+ # (c)
61
+ # Give enough time for precondition notifications to propagate before cancelling all DERControls
62
+ WAIT-CANCEL-DERC:
63
+ event:
64
+ type: wait
65
+ parameters:
66
+ duration_seconds: 60
67
+ actions:
68
+ - type: cancel-active-der-controls
69
+ parameters: {}
70
+
71
+ - type: enable-steps
72
+ parameters:
73
+ steps:
74
+ - WAIT-DEVICE-RAMP
75
+ - type: remove-steps
76
+ parameters:
77
+ steps:
78
+ - WAIT-CANCEL-DERC
79
+
80
+ # (d, e)
81
+ WAIT-DEVICE-RAMP:
82
+ event:
83
+ type: wait
84
+ parameters:
85
+ duration_seconds: 120
86
+ actions:
87
+ - type: create-der-control
88
+ parameters:
89
+ start: $(now)
90
+ duration_seconds: 600
91
+ opModExpLimW: $(setMaxW * 2)
92
+ - type: enable-steps
93
+ parameters:
94
+ steps:
95
+ - WAIT-CONTROL-FINISH
96
+ - type: remove-steps
97
+ parameters:
98
+ steps:
99
+ - WAIT-DEVICE-RAMP
100
+ instructions:
101
+ - DER should be ramping to the DefaultDERControl value of 30% max power at rate setGradW (default 0.27%/s).
102
+
103
+ # (f, g, h)
104
+ WAIT-CONTROL-FINISH:
105
+ event:
106
+ type: wait
107
+ parameters:
108
+ duration_seconds: 720
109
+ actions:
110
+ - type: create-der-control
111
+ parameters:
112
+ start: $(now)
113
+ duration_seconds: 600
114
+ opModExpLimW: 0
115
+ - type: set-default-der-control
116
+ parameters:
117
+ cancelled: true
118
+
119
+ - type: enable-steps
120
+ parameters:
121
+ steps:
122
+ - WAIT-TEST-FINISH
123
+ - type: remove-steps
124
+ parameters:
125
+ steps:
126
+ - WAIT-CONTROL-FINISH
127
+ instructions:
128
+ - DER should be ramping to the active DERControl unconstrained value at rate setGradW (default 0.27%/s).
129
+ - Upon completion of the active DERControl (10 minutes) the DER should ramp to the DefaultDERControl value of 30% max power.
130
+
131
+ # (i)
132
+ WAIT-TEST-FINISH:
133
+ event:
134
+ type: wait
135
+ parameters:
136
+ duration_seconds: 720
137
+ actions:
138
+ - type: remove-steps
139
+ parameters:
140
+ steps:
141
+ - WAIT-TEST-FINISH
142
+ - type: finish-test
143
+ parameters: {}
144
+ instructions:
145
+ - DER should be ramping to the active DERControl 0W value at rate setGradW (default 0.27%/s).
@@ -0,0 +1,145 @@
1
+ Description: Default Controls – Generation Limit
2
+ Category: Control
3
+ Classes:
4
+ - G
5
+ - S
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ - type: all-notifications-transmitted
16
+ parameters: {}
17
+
18
+ Preconditions:
19
+ init_actions:
20
+ - type: set-comms-rate
21
+ parameters:
22
+ dcap_poll_seconds: 60
23
+ edev_list_poll_seconds: 60
24
+ fsa_list_poll_seconds: 60
25
+ der_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
26
+ derp_list_poll_seconds: 1800 # Set to a large value - testing whether they respond due to notification - not polls
27
+ mup_post_seconds: 60
28
+ - type: create-der-program
29
+ parameters:
30
+ primacy: 0
31
+
32
+ checks:
33
+ - type: end-device-contents
34
+ parameters: {}
35
+ - type: der-settings-contents
36
+ parameters: {}
37
+ - type: subscription-contents
38
+ parameters:
39
+ subscribed_resource: /edev/1/derp/1/derc
40
+ - type: subscription-contents
41
+ parameters:
42
+ subscribed_resource: /edev/1/derp/1/dderc
43
+
44
+ actions:
45
+ - type: create-der-control
46
+ parameters:
47
+ start: $(now)
48
+ duration_seconds: 300
49
+ opModGenLimW: $(setMaxW * 2)
50
+ # (a, b)
51
+ - type: set-default-der-control
52
+ parameters:
53
+ opModGenLimW: $(setMaxW * 0.3)
54
+ instructions:
55
+ - EndDevice should be registered with active subscriptions before starting.
56
+ - DER shall be generating at least 50% of its active power rating.
57
+
58
+ Steps:
59
+
60
+ # (c)
61
+ # Give enough time for precondition notifications to propagate before cancelling all DERControls
62
+ WAIT-CANCEL-DERC:
63
+ event:
64
+ type: wait
65
+ parameters:
66
+ duration_seconds: 60
67
+ actions:
68
+ - type: cancel-active-der-controls
69
+ parameters: {}
70
+
71
+ - type: enable-steps
72
+ parameters:
73
+ steps:
74
+ - WAIT-DEVICE-RAMP
75
+ - type: remove-steps
76
+ parameters:
77
+ steps:
78
+ - WAIT-CANCEL-DERC
79
+
80
+ # (d, e)
81
+ WAIT-DEVICE-RAMP:
82
+ event:
83
+ type: wait
84
+ parameters:
85
+ duration_seconds: 120
86
+ actions:
87
+ - type: create-der-control
88
+ parameters:
89
+ start: $(now)
90
+ duration_seconds: 600
91
+ opModGenLimW: $(setMaxW * 2)
92
+ - type: enable-steps
93
+ parameters:
94
+ steps:
95
+ - WAIT-CONTROL-FINISH
96
+ - type: remove-steps
97
+ parameters:
98
+ steps:
99
+ - WAIT-DEVICE-RAMP
100
+ instructions:
101
+ - DER should be ramping to the DefaultDERControl value of 30% max power at rate setGradW (default 0.27%/s).
102
+
103
+ # (f, g, h)
104
+ WAIT-CONTROL-FINISH:
105
+ event:
106
+ type: wait
107
+ parameters:
108
+ duration_seconds: 720
109
+ actions:
110
+ - type: create-der-control
111
+ parameters:
112
+ start: $(now)
113
+ duration_seconds: 600
114
+ opModGenLimW: 0
115
+ - type: set-default-der-control
116
+ parameters:
117
+ cancelled: true
118
+
119
+ - type: enable-steps
120
+ parameters:
121
+ steps:
122
+ - WAIT-TEST-FINISH
123
+ - type: remove-steps
124
+ parameters:
125
+ steps:
126
+ - WAIT-CONTROL-FINISH
127
+ instructions:
128
+ - DER should be ramping to the active DERControl unconstrained value at rate setGradW (default 0.27%/s).
129
+ - Upon completion of the active DERControl (10 minutes) the DER should ramp to the DefaultDERControl value of 30% max power.
130
+
131
+ # (i)
132
+ WAIT-TEST-FINISH:
133
+ event:
134
+ type: wait
135
+ parameters:
136
+ duration_seconds: 720
137
+ actions:
138
+ - type: remove-steps
139
+ parameters:
140
+ steps:
141
+ - WAIT-TEST-FINISH
142
+ - type: finish-test
143
+ parameters: {}
144
+ instructions:
145
+ - DER should be ramping to the active DERControl 0W value at rate setGradW (default 0.27%/s).