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,136 @@
1
+ Description: Active control ramp rates
2
+ Category: Control
3
+ Classes:
4
+ - A
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
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+ - type: create-der-program
26
+ parameters:
27
+ primacy: 0
28
+
29
+ checks:
30
+ - type: end-device-contents
31
+ parameters: {}
32
+ - type: der-settings-contents
33
+ parameters: {}
34
+
35
+ instructions:
36
+ - DER shall be exporting or importing at least 50% of its active power rating at the connection point.
37
+
38
+ Steps:
39
+ # (precondition)
40
+ # On first poll of default control - set setGradW to 1%/s
41
+ GET-DEFAULT-DERC-100:
42
+ event:
43
+ type: GET-request-received
44
+ parameters:
45
+ endpoint: /edev/1/derp/1/dderc
46
+ actions:
47
+ - type: set-default-der-control
48
+ parameters:
49
+ setGradW: 100 # hundredths of a percent - this is 1%
50
+ - type: enable-steps
51
+ parameters:
52
+ steps:
53
+ - GET-DERC-LIST-1
54
+ - type: remove-steps
55
+ parameters:
56
+ steps:
57
+ - GET-DEFAULT-DERC-100
58
+
59
+ # (a, b)
60
+ GET-DERC-LIST-1:
61
+ event:
62
+ type: GET-request-received
63
+ parameters:
64
+ endpoint: /edev/1/derp/1/derc
65
+ actions:
66
+ - type: create-der-control
67
+ parameters:
68
+ start: $(now)
69
+ duration_seconds: 120
70
+ opModExpLimW: $(setMaxW * 0.3)
71
+ opModImpLimW: $(setMaxW * 0.3)
72
+ ramp_time_seconds: 60
73
+ - type: enable-steps
74
+ parameters:
75
+ steps:
76
+ - WAIT-CONTROL-1-FINISH
77
+ - type: remove-steps
78
+ parameters:
79
+ steps:
80
+ - GET-DERC-LIST-1
81
+
82
+ # (b)
83
+ WAIT-CONTROL-1-FINISH:
84
+ event:
85
+ type: wait
86
+ parameters:
87
+ duration_seconds: 130
88
+ actions:
89
+ - type: enable-steps
90
+ parameters:
91
+ steps:
92
+ - GET-DERC-LIST-2
93
+ - type: remove-steps
94
+ parameters:
95
+ steps:
96
+ - WAIT-CONTROL-1-FINISH
97
+ instructions:
98
+ - DER should ramp to 30% of the DER's active power over a 60s period
99
+
100
+ # (c, d)
101
+ GET-DERC-LIST-2:
102
+ event:
103
+ type: GET-request-received
104
+ parameters:
105
+ endpoint: /edev/1/derp/1/derc
106
+ actions:
107
+ - type: create-der-control
108
+ parameters:
109
+ start: $(now)
110
+ duration_seconds: 120
111
+ opModExpLimW: $(setMaxW * 0.5)
112
+ opModImpLimW: $(setMaxW * 0.5)
113
+ - type: enable-steps
114
+ parameters:
115
+ steps:
116
+ - WAIT-CONTROL-2-FINISH
117
+ - type: remove-steps
118
+ parameters:
119
+ steps:
120
+ - GET-DERC-LIST-2
121
+
122
+ # (d)
123
+ WAIT-CONTROL-2-FINISH:
124
+ event:
125
+ type: wait
126
+ parameters:
127
+ duration_seconds: 180
128
+ actions:
129
+ - type: remove-steps
130
+ parameters:
131
+ steps:
132
+ - WAIT-CONTROL-2-FINISH
133
+ - type: finish-test
134
+ parameters: {}
135
+ instructions:
136
+ - DER should ramp to 50% of the DER's active power at the rate of setGradW (currently 1 %/s)
@@ -0,0 +1,147 @@
1
+ Description: De-energization of DER
2
+ Category: DER
3
+ Classes:
4
+ - DER-A
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
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+ checks:
26
+ - type: end-device-contents
27
+ parameters: {}
28
+ - type: der-settings-contents
29
+ parameters: {}
30
+ actions:
31
+ - type: create-der-program
32
+ parameters:
33
+ primacy: 0
34
+ instructions:
35
+ - DER shall be exporting or importing at least 50% of its active power rating at the connection point.
36
+
37
+ Steps:
38
+
39
+ # (precondition)
40
+ PRECONDITION-STARTUP:
41
+ instructions:
42
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
43
+ event:
44
+ type: GET-request-received
45
+ parameters:
46
+ endpoint: /edev/1/derp/1/derc
47
+ actions:
48
+ - type: create-der-control
49
+ parameters:
50
+ start: $(now)
51
+ duration_seconds: 240
52
+ opModExpLimW: $(setMaxW * 2)
53
+ opModImpLimW: $(setMaxW * 2)
54
+ - type: enable-steps
55
+ parameters:
56
+ steps:
57
+ - PRECONDITION-STARTUP-WAIT
58
+ - type: remove-steps
59
+ parameters:
60
+ steps:
61
+ - PRECONDITION-STARTUP
62
+
63
+ # (precondition)
64
+ PRECONDITION-STARTUP-WAIT:
65
+ instructions:
66
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
67
+ event:
68
+ type: wait
69
+ parameters:
70
+ duration_seconds: 120
71
+ actions:
72
+ - type: enable-steps
73
+ parameters:
74
+ steps:
75
+ - GET-DERC
76
+ - type: remove-steps
77
+ parameters:
78
+ steps:
79
+ - PRECONDITION-STARTUP-WAIT
80
+
81
+ # (a, b)
82
+ GET-DERC:
83
+ event:
84
+ type: GET-request-received
85
+ parameters:
86
+ endpoint: /edev/1/derp/1/derc
87
+ actions:
88
+ - type: create-der-control
89
+ parameters:
90
+ start: $(now)
91
+ duration_seconds: 300
92
+ opModEnergize: false
93
+ - type: enable-steps
94
+ parameters:
95
+ steps:
96
+ - PUT-DERSTATUS-DISCONNECT
97
+ - type: remove-steps
98
+ parameters:
99
+ steps:
100
+ - GET-DERC
101
+
102
+ # (c, d)
103
+ PUT-DERSTATUS-DISCONNECT:
104
+ event:
105
+ type: PUT-request-received
106
+ parameters:
107
+ endpoint: /edev/1/der/1/ders
108
+ serve_request_first: true # Run this AFTER server receives the request
109
+ # Only trigger this if the server has an updated DERStatus
110
+ checks:
111
+ - type: der-status-contents
112
+ parameters:
113
+ genConnectStatus_bit2: false
114
+ actions:
115
+ - type: remove-steps
116
+ parameters:
117
+ steps:
118
+ - PUT-DERSTATUS-DISCONNECT
119
+ - type: create-der-control
120
+ parameters:
121
+ start: $(now)
122
+ duration_seconds: 300
123
+ opModEnergize: true
124
+ - type: enable-steps
125
+ parameters:
126
+ steps:
127
+ - PUT-DERSTATUS-CONNECT
128
+
129
+ # (e)
130
+ PUT-DERSTATUS-CONNECT:
131
+ event:
132
+ type: PUT-request-received
133
+ parameters:
134
+ endpoint: /edev/1/der/1/ders
135
+ serve_request_first: true # Run this AFTER server receives the request
136
+ # Only trigger this if the server has an updated DERStatus
137
+ checks:
138
+ - type: der-status-contents
139
+ parameters:
140
+ genConnectStatus_bit2: true
141
+ actions:
142
+ - type: remove-steps
143
+ parameters:
144
+ steps:
145
+ - PUT-DERSTATUS-CONNECT
146
+
147
+
@@ -0,0 +1,144 @@
1
+ Description: Disconnection of DER
2
+ Category: DER
3
+ Classes:
4
+ - DER-A
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
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+ checks:
26
+ - type: end-device-contents
27
+ parameters: {}
28
+ - type: der-settings-contents
29
+ parameters: {}
30
+ actions:
31
+ - type: create-der-program
32
+ parameters:
33
+ primacy: 0
34
+
35
+ Steps:
36
+ # (precondition)
37
+ PRECONDITION-STARTUP:
38
+ instructions:
39
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
40
+ event:
41
+ type: GET-request-received
42
+ parameters:
43
+ endpoint: /edev/1/derp/1/derc
44
+ actions:
45
+ - type: create-der-control
46
+ parameters:
47
+ start: $(now)
48
+ duration_seconds: 240
49
+ opModExpLimW: $(setMaxW * 2)
50
+ opModImpLimW: $(setMaxW * 2)
51
+ - type: enable-steps
52
+ parameters:
53
+ steps:
54
+ - PRECONDITION-STARTUP-WAIT
55
+ - type: remove-steps
56
+ parameters:
57
+ steps:
58
+ - PRECONDITION-STARTUP
59
+
60
+ # (precondition)
61
+ PRECONDITION-STARTUP-WAIT:
62
+ instructions:
63
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
64
+ event:
65
+ type: wait
66
+ parameters:
67
+ duration_seconds: 120
68
+ actions:
69
+ - type: enable-steps
70
+ parameters:
71
+ steps:
72
+ - GET-DERC
73
+ - type: remove-steps
74
+ parameters:
75
+ steps:
76
+ - PRECONDITION-STARTUP-WAIT
77
+
78
+ # (a, b)
79
+ GET-DERC:
80
+ event:
81
+ type: GET-request-received
82
+ parameters:
83
+ endpoint: /edev/1/derp/1/derc
84
+ actions:
85
+ - type: create-der-control
86
+ parameters:
87
+ start: $(now)
88
+ duration_seconds: 300
89
+ opModConnect: false
90
+ - type: enable-steps
91
+ parameters:
92
+ steps:
93
+ - PUT-DERSTATUS-DISCONNECT
94
+ - type: remove-steps
95
+ parameters:
96
+ steps:
97
+ - GET-DERC
98
+
99
+ # (c, d)
100
+ PUT-DERSTATUS-DISCONNECT:
101
+ event:
102
+ type: PUT-request-received
103
+ parameters:
104
+ endpoint: /edev/1/der/1/ders
105
+ serve_request_first: true # Run this AFTER server receives the request
106
+ # Only trigger this if the server has an updated DERStatus
107
+ checks:
108
+ - type: der-status-contents
109
+ parameters:
110
+ genConnectStatus_bit0: false
111
+ actions:
112
+ - type: remove-steps
113
+ parameters:
114
+ steps:
115
+ - PUT-DERSTATUS-DISCONNECT
116
+ - type: create-der-control
117
+ parameters:
118
+ start: $(now)
119
+ duration_seconds: 300
120
+ opModConnect: true
121
+ - type: enable-steps
122
+ parameters:
123
+ steps:
124
+ - PUT-DERSTATUS-CONNECT
125
+
126
+ # (e)
127
+ PUT-DERSTATUS-CONNECT:
128
+ event:
129
+ type: PUT-request-received
130
+ parameters:
131
+ endpoint: /edev/1/der/1/ders
132
+ serve_request_first: true # Run this AFTER server receives the request
133
+ # Only trigger this if the server has an updated DERStatus
134
+ checks:
135
+ - type: der-status-contents
136
+ parameters:
137
+ genConnectStatus_bit0: true
138
+ actions:
139
+ - type: remove-steps
140
+ parameters:
141
+ steps:
142
+ - PUT-DERSTATUS-CONNECT
143
+
144
+
@@ -0,0 +1,274 @@
1
+ Description: Response to Changing Ramp-Rates
2
+ Category: DER
3
+ Classes:
4
+ - DER-A
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
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+ checks:
26
+ - type: end-device-contents
27
+ parameters: {}
28
+ - type: der-settings-contents
29
+ parameters: {}
30
+ actions:
31
+ - type: create-der-program
32
+ parameters:
33
+ primacy: 0
34
+ - type: set-default-der-control
35
+ parameters:
36
+ opModImpLimW: 0
37
+ opModExpLimW: 0
38
+ instructions:
39
+ - DER is exporting or importing at the connection point at least 50% of its rated power.
40
+
41
+ Steps:
42
+ # (precondition)
43
+ PRECONDITION-STARTUP:
44
+ instructions:
45
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
46
+ event:
47
+ type: GET-request-received
48
+ parameters:
49
+ endpoint: /edev/1/derp/1/derc
50
+ actions:
51
+ - type: create-der-control
52
+ parameters:
53
+ start: $(now)
54
+ duration_seconds: 240
55
+ opModExpLimW: $(setMaxW * 2)
56
+ opModImpLimW: $(setMaxW * 2)
57
+ - type: enable-steps
58
+ parameters:
59
+ steps:
60
+ - PRECONDITION-STARTUP-WAIT
61
+ - type: remove-steps
62
+ parameters:
63
+ steps:
64
+ - PRECONDITION-STARTUP
65
+
66
+ # (precondition)
67
+ PRECONDITION-STARTUP-WAIT:
68
+ instructions:
69
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
70
+ event:
71
+ type: wait
72
+ parameters:
73
+ duration_seconds: 120
74
+ actions:
75
+ - type: enable-steps
76
+ parameters:
77
+ steps:
78
+ - GET-DERC-1
79
+ - type: remove-steps
80
+ parameters:
81
+ steps:
82
+ - PRECONDITION-STARTUP-WAIT
83
+
84
+ # (precondition)
85
+ GET-DERC-1:
86
+ event:
87
+ type: GET-request-received
88
+ parameters:
89
+ endpoint: /edev/1/derp/1/derc
90
+ actions:
91
+ - type: create-der-control
92
+ parameters:
93
+ start: $(now)
94
+ duration_seconds: 900
95
+ opModExpLimW: $(setMaxW * 0.3)
96
+ opModImpLimW: $(setMaxW * 0.3)
97
+ - type: enable-steps
98
+ parameters:
99
+ steps:
100
+ - GET-DERC-2
101
+ - type: remove-steps
102
+ parameters:
103
+ steps:
104
+ - GET-DERC-1
105
+
106
+ # (a, b)
107
+ GET-DERC-2:
108
+ event:
109
+ type: GET-request-received
110
+ parameters:
111
+ endpoint: /edev/1/derp/1/derc
112
+ actions:
113
+ - type: create-der-control
114
+ parameters:
115
+ start: $(now)
116
+ duration_seconds: 300
117
+ opModExpLimW: $(setMaxW * 0.1)
118
+ opModImpLimW: $(setMaxW * 0.1)
119
+ - type: enable-steps
120
+ parameters:
121
+ steps:
122
+ - GET-DERC-3
123
+ - type: remove-steps
124
+ parameters:
125
+ steps:
126
+ - GET-DERC-2
127
+
128
+ # (c, d)
129
+ GET-DERC-3:
130
+ event:
131
+ type: GET-request-received
132
+ parameters:
133
+ endpoint: /edev/1/derp/1/derc
134
+ actions:
135
+ - type: create-der-control
136
+ parameters:
137
+ start: $(now)
138
+ duration_seconds: 600 # Extra long but will be cancelled (give clients enough time to see cancellation)
139
+ opModExpLimW: $(setMaxW * 0.5)
140
+ opModImpLimW: $(setMaxW * 0.5)
141
+ ramp_time_seconds: 60
142
+ - type: enable-steps
143
+ parameters:
144
+ steps:
145
+ - GET-DEFAULT-DERC
146
+ - type: remove-steps
147
+ parameters:
148
+ steps:
149
+ - GET-DERC-3
150
+
151
+ # (e)
152
+ GET-DEFAULT-DERC:
153
+ event:
154
+ type: GET-request-received
155
+ parameters:
156
+ endpoint: /edev/1/derp/1/dderc
157
+ actions:
158
+ - type: set-default-der-control
159
+ parameters:
160
+ setGradW: 100 # hundredths of a percent - this is 1%
161
+ opModImpLimW: 0
162
+ opModExpLimW: 0
163
+ - type: enable-steps
164
+ parameters:
165
+ steps:
166
+ - PUT-DERSETTINGS-SET-GRAD-W
167
+ - type: remove-steps
168
+ parameters:
169
+ steps:
170
+ - GET-DEFAULT-DERC
171
+
172
+ # (f, g)
173
+ PUT-DERSETTINGS-SET-GRAD-W:
174
+ event:
175
+ type: PUT-request-received
176
+ parameters:
177
+ endpoint: /edev/1/der/1/derg
178
+ serve_request_first: true # Run this AFTER server receives the request
179
+ checks:
180
+ type: der-settings-contents
181
+ parameters:
182
+ setGradW: 100
183
+ actions:
184
+ - type: cancel-active-der-controls
185
+ parameters: {}
186
+ - type: enable-steps
187
+ parameters:
188
+ steps:
189
+ - POST-RESPONSE-CANCELLED
190
+ - type: remove-steps
191
+ parameters:
192
+ steps:
193
+ - PUT-DERSETTINGS-SET-GRAD-W
194
+
195
+ # (h)
196
+ POST-RESPONSE-CANCELLED:
197
+ event:
198
+ type: POST-request-received
199
+ parameters:
200
+ endpoint: /edev/1/rsps/site_control/rsp
201
+ serve_request_first: true
202
+ checks:
203
+ - type: response-contents
204
+ parameters:
205
+ latest: true
206
+ status: 6
207
+ actions:
208
+ - type: enable-steps
209
+ parameters:
210
+ steps:
211
+ - WAIT-RAMP
212
+ - type: remove-steps
213
+ parameters:
214
+ steps:
215
+ - POST-RESPONSE-CANCELLED
216
+
217
+ # (i)
218
+ WAIT-RAMP:
219
+ event:
220
+ type: wait
221
+ parameters:
222
+ duration_seconds: 120
223
+ actions:
224
+ - type: enable-steps
225
+ parameters:
226
+ steps:
227
+ - GET-DERC-4
228
+ - type: remove-steps
229
+ parameters:
230
+ steps:
231
+ - WAIT-RAMP
232
+ instructions:
233
+ - The DER shall reduce export/import to the current DefaultDERControl limit of 0W at the new ramp rate of 1 %/s.
234
+
235
+ # (j)
236
+ GET-DERC-4:
237
+ event:
238
+ type: GET-request-received
239
+ parameters:
240
+ endpoint: /edev/1/derp/1/derc
241
+ actions:
242
+ - type: create-der-control
243
+ parameters:
244
+ start: $(now)
245
+ duration_seconds: 300
246
+ opModExpLimW: $(setMaxW * 0.3)
247
+ opModImpLimW: $(setMaxW * 0.3)
248
+ ramp_time_seconds: 60
249
+ - type: enable-steps
250
+ parameters:
251
+ steps:
252
+ - POST-RESPONSE-STARTED
253
+ - type: remove-steps
254
+ parameters:
255
+ steps:
256
+ - GET-DERC-4
257
+
258
+ # (k)
259
+ POST-RESPONSE-STARTED:
260
+ event:
261
+ type: POST-request-received
262
+ parameters:
263
+ endpoint: /edev/1/rsps/site_control/rsp
264
+ serve_request_first: true
265
+ checks:
266
+ - type: response-contents
267
+ parameters:
268
+ latest: true
269
+ status: 2
270
+ actions:
271
+ - type: remove-steps
272
+ parameters:
273
+ steps:
274
+ - POST-RESPONSE-STARTED