cactus-test-definitions 1.8.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.
Files changed (173) 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 +30 -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/__pycache__/validate.cpython-312.pyc +0 -0
  21. cactus_test_definitions/client/actions.py +99 -0
  22. cactus_test_definitions/client/checks.py +128 -0
  23. cactus_test_definitions/client/events.py +71 -0
  24. cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
  25. cactus_test_definitions/client/procedures/ALL-02.yaml +113 -0
  26. cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
  27. cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
  28. cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
  29. cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
  30. cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
  31. cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
  32. cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
  33. cactus_test_definitions/client/procedures/ALL-09.yaml +111 -0
  34. cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
  35. cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
  36. cactus_test_definitions/client/procedures/ALL-12.yaml +126 -0
  37. cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
  38. cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
  39. cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
  40. cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
  41. cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
  42. cactus_test_definitions/client/procedures/ALL-18.yaml +289 -0
  43. cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
  44. cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
  45. cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
  46. cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
  47. cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
  48. cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
  49. cactus_test_definitions/client/procedures/ALL-25-EXT.yaml +228 -0
  50. cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
  51. cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
  52. cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
  53. cactus_test_definitions/client/procedures/ALL-28.yaml +273 -0
  54. cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
  55. cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
  56. cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
  57. cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
  58. cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
  59. cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
  60. cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
  61. cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
  62. cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
  63. cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
  64. cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
  65. cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
  66. cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
  67. cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
  68. cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
  69. cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
  70. cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
  71. cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
  72. cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
  73. cactus_test_definitions/client/procedures/GEN-10.yaml +793 -0
  74. cactus_test_definitions/client/procedures/GEN-11.yaml +402 -0
  75. cactus_test_definitions/client/procedures/GEN-12.yaml +402 -0
  76. cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
  77. cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
  78. cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
  79. cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
  80. cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
  81. cactus_test_definitions/client/procedures/LOA-05.yaml +89 -0
  82. cactus_test_definitions/client/procedures/LOA-06.yaml +89 -0
  83. cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
  84. cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
  85. cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
  86. cactus_test_definitions/client/procedures/LOA-10.yaml +793 -0
  87. cactus_test_definitions/client/procedures/LOA-11.yaml +402 -0
  88. cactus_test_definitions/client/procedures/LOA-12.yaml +402 -0
  89. cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
  90. cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
  91. cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
  92. cactus_test_definitions/client/procedures/MUL-03.yaml +74 -0
  93. cactus_test_definitions/client/test_procedures.py +185 -0
  94. cactus_test_definitions/client/validate.py +98 -0
  95. cactus_test_definitions/csipaus.py +83 -0
  96. cactus_test_definitions/errors.py +15 -0
  97. cactus_test_definitions/parameters.py +153 -0
  98. cactus_test_definitions/py.typed +0 -0
  99. cactus_test_definitions/schema.py +22 -0
  100. cactus_test_definitions/server/README.md +172 -0
  101. cactus_test_definitions/server/__init__.py +27 -0
  102. cactus_test_definitions/server/__pycache__/__init__.cpython-312.pyc +0 -0
  103. cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  104. cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  105. cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  106. cactus_test_definitions/server/__pycache__/validate.cpython-312.pyc +0 -0
  107. cactus_test_definitions/server/actions.py +140 -0
  108. cactus_test_definitions/server/checks.py +152 -0
  109. cactus_test_definitions/server/procedures/S-ALL-01.yaml +45 -0
  110. cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
  111. cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
  112. cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
  113. cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
  114. cactus_test_definitions/server/procedures/S-ALL-06.yaml +111 -0
  115. cactus_test_definitions/server/procedures/S-ALL-07.yaml +100 -0
  116. cactus_test_definitions/server/procedures/S-ALL-08.yaml +77 -0
  117. cactus_test_definitions/server/procedures/S-ALL-09.yaml +43 -0
  118. cactus_test_definitions/server/procedures/S-ALL-10.yaml +68 -0
  119. cactus_test_definitions/server/procedures/S-ALL-11.yaml +36 -0
  120. cactus_test_definitions/server/procedures/S-ALL-12.yaml +36 -0
  121. cactus_test_definitions/server/procedures/S-ALL-13.yaml +36 -0
  122. cactus_test_definitions/server/procedures/S-ALL-14.yaml +36 -0
  123. cactus_test_definitions/server/procedures/S-ALL-15.yaml +79 -0
  124. cactus_test_definitions/server/procedures/S-ALL-16.yaml +79 -0
  125. cactus_test_definitions/server/procedures/S-ALL-17.yaml +39 -0
  126. cactus_test_definitions/server/procedures/S-ALL-18.yaml +35 -0
  127. cactus_test_definitions/server/procedures/S-ALL-19.yaml +34 -0
  128. cactus_test_definitions/server/procedures/S-ALL-20.yaml +34 -0
  129. cactus_test_definitions/server/procedures/S-ALL-21.yaml +34 -0
  130. cactus_test_definitions/server/procedures/S-ALL-22.yaml +34 -0
  131. cactus_test_definitions/server/procedures/S-ALL-23.yaml +34 -0
  132. cactus_test_definitions/server/procedures/S-ALL-24.yaml +37 -0
  133. cactus_test_definitions/server/procedures/S-ALL-25.yaml +151 -0
  134. cactus_test_definitions/server/procedures/S-ALL-41.yaml +343 -0
  135. cactus_test_definitions/server/procedures/S-ALL-42.yaml +81 -0
  136. cactus_test_definitions/server/procedures/S-ALL-43.yaml +146 -0
  137. cactus_test_definitions/server/procedures/S-ALL-44.yaml +51 -0
  138. cactus_test_definitions/server/procedures/S-ALL-45.yaml +34 -0
  139. cactus_test_definitions/server/procedures/S-ALL-48.yaml +29 -0
  140. cactus_test_definitions/server/procedures/S-ALL-49.yaml +56 -0
  141. cactus_test_definitions/server/procedures/S-ALL-51.yaml +35 -0
  142. cactus_test_definitions/server/procedures/S-ALL-52.yaml +35 -0
  143. cactus_test_definitions/server/procedures/S-ALL-53.yaml +42 -0
  144. cactus_test_definitions/server/procedures/S-ALL-55.yaml +45 -0
  145. cactus_test_definitions/server/procedures/S-ALL-56.yaml +36 -0
  146. cactus_test_definitions/server/procedures/S-ALL-57.yaml +62 -0
  147. cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
  148. cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
  149. cactus_test_definitions/server/procedures/S-OPT-03.yaml +47 -0
  150. cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
  151. cactus_test_definitions/server/procedures/S-OPT-05.yaml +33 -0
  152. cactus_test_definitions/server/test_procedures.py +156 -0
  153. cactus_test_definitions/server/validate.py +30 -0
  154. cactus_test_definitions/variable_expressions.py +419 -0
  155. cactus_test_definitions-1.8.0.dist-info/METADATA +289 -0
  156. cactus_test_definitions-1.8.0.dist-info/RECORD +173 -0
  157. cactus_test_definitions-1.8.0.dist-info/WHEEL +5 -0
  158. cactus_test_definitions-1.8.0.dist-info/licenses/LICENSE.txt +22 -0
  159. cactus_test_definitions-1.8.0.dist-info/top_level.txt +2 -0
  160. tests/__init__.py +0 -0
  161. tests/unit/__init__.py +0 -0
  162. tests/unit/client/__init__.py +0 -0
  163. tests/unit/client/test_actions.py +72 -0
  164. tests/unit/client/test_checks.py +71 -0
  165. tests/unit/client/test_events.py +36 -0
  166. tests/unit/client/test_test_procedures.py +103 -0
  167. tests/unit/client/test_validate.py +200 -0
  168. tests/unit/server/__init__.py +0 -0
  169. tests/unit/server/test_test_procedures.py +60 -0
  170. tests/unit/server/test_validate.py +75 -0
  171. tests/unit/test_csipaus.py +49 -0
  172. tests/unit/test_parameters.py +197 -0
  173. tests/unit/test_variable_expressions.py +402 -0
@@ -0,0 +1,111 @@
1
+ Description: Capabilities and Settings
2
+ Category: Monitoring
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
+ - type: der-capability-contents
15
+ parameters:
16
+ #
17
+ # NOTE - These checks have been loosened from TS:5573 (which requires EVERYTHING) until clarification on
18
+ # about what the MINIMUM subset of values is determined for each class of device
19
+ #
20
+ # rtgMaxChargeRateW: true # Maximum rate of energy transfer received
21
+ # rtgMaxDischargeRateW: true # Maximum rate of energy transfer delivered
22
+ # rtgMaxVA: true # Maximum apparent power
23
+ # rtgMaxVar: true # Maximum reactive power delivered
24
+ # rtgMaxVarNeg: true # Maximum reactive power received
25
+ rtgMaxW: true # Maximum active power
26
+ # rtgMinPFOverExcited: true # Minimum power factor displacement
27
+ # rtgMinPFUnderExcited: true # Minimum power factor displacement
28
+ doeModesSupported: true # CSIP-Aus DOE modes supported
29
+ - type: der-settings-contents
30
+ parameters:
31
+ #
32
+ # NOTE - These checks have been loosened from TS:5573 (which requires EVERYTHING) until clarification on
33
+ # about what the MINIMUM subset of values is determined for each class of device
34
+ #
35
+ # setMaxChargeRateW: true # Maximum rate of energy transfer received
36
+ # setMaxDischargeRateW: true # Maximum rate of energy transfer delivered
37
+ # setMaxVA: true # Maximum apparent power
38
+ # setMaxVar: true # Maximum reactive power delivered
39
+ # setMaxVarNeg: true # Maximum reactive power received
40
+ setMaxW: true # Maximum active power
41
+ # setMinPFOverExcited: true # Minimum power factor displacement
42
+ # setMinPFUnderExcited: true # Minimum power factor displacement
43
+ doeModesEnabled: true # CSIP-Aus DOE modes enabled
44
+ - type: der-status-contents
45
+ parameters: {}
46
+
47
+ Preconditions:
48
+ immediate_start: true # There will be no "init" phase - all interactions will be immediately logged against the test
49
+ init_actions:
50
+ - type: set-comms-rate
51
+ parameters:
52
+ dcap_poll_seconds: 60
53
+ edev_list_poll_seconds: 60
54
+ fsa_list_poll_seconds: 60
55
+ der_list_poll_seconds: 60
56
+ derp_list_poll_seconds: 60
57
+ mup_post_seconds: 60
58
+
59
+ Steps:
60
+ # (a) - This is a proxy that assumes the device has underwent initial registration / discovery
61
+ GET-DER:
62
+ event:
63
+ type: GET-request-received
64
+ parameters:
65
+ endpoint: /edev/1/der
66
+ actions:
67
+ - type: enable-steps
68
+ parameters:
69
+ steps:
70
+ - PUT-DERSTATUS
71
+ - PUT-DERCAPABILITY
72
+ - PUT-DERSETTINGS
73
+ - type: remove-steps
74
+ parameters:
75
+ steps:
76
+ - GET-DER
77
+ # (b)
78
+ PUT-DERSTATUS:
79
+ event:
80
+ type: PUT-request-received
81
+ parameters:
82
+ endpoint: /edev/1/der/1/ders
83
+ actions:
84
+ - type: remove-steps
85
+ parameters:
86
+ steps:
87
+ - PUT-DERSTATUS
88
+
89
+ # (b)
90
+ PUT-DERCAPABILITY:
91
+ event:
92
+ type: PUT-request-received
93
+ parameters:
94
+ endpoint: /edev/1/der/1/dercap
95
+ actions:
96
+ - type: remove-steps
97
+ parameters:
98
+ steps:
99
+ - PUT-DERCAPABILITY
100
+
101
+ # (b)
102
+ PUT-DERSETTINGS:
103
+ event:
104
+ type: PUT-request-received
105
+ parameters:
106
+ endpoint: /edev/1/der/1/derg
107
+ actions:
108
+ - type: remove-steps
109
+ parameters:
110
+ steps:
111
+ - PUT-DERSETTINGS
@@ -0,0 +1,128 @@
1
+ Description: Update telemetry post rates
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+ - DR-A
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ # Test is ~11.5 minutes of waiting which should leave enough time for:
16
+ # one post @ 60 seconds (during startup - might not happen if timings line up)
17
+ # two posts @ 300 seconds
18
+ # one post @ 60 seconds (after update)
19
+ - type: readings-site-active-power
20
+ parameters: {"minimum_count": 3}
21
+ - type: readings-site-reactive-power
22
+ parameters: {"minimum_count": 3}
23
+ - type: readings-voltage
24
+ parameters: {"minimum_count": 3}
25
+ - type: readings-der-active-power
26
+ parameters: {"minimum_count": 3}
27
+ - type: readings-der-reactive-power
28
+ parameters: {"minimum_count": 3}
29
+
30
+ Preconditions:
31
+ init_actions:
32
+ - type: set-comms-rate
33
+ parameters:
34
+ dcap_poll_seconds: 60
35
+ edev_list_poll_seconds: 60
36
+ fsa_list_poll_seconds: 60
37
+ der_list_poll_seconds: 60
38
+ derp_list_poll_seconds: 60
39
+ mup_post_seconds: 60
40
+ checks:
41
+ - type: end-device-contents
42
+ parameters: {}
43
+
44
+ Steps:
45
+
46
+ # (a, b)
47
+ GET-MUP-INITIAL:
48
+ event:
49
+ type: GET-request-received
50
+ parameters:
51
+ endpoint: /mup
52
+ actions:
53
+ - type: set-comms-rate
54
+ parameters:
55
+ mup_post_seconds: 300
56
+ - type: enable-steps
57
+ parameters:
58
+ steps:
59
+ - WAIT-TILL-UPDATE
60
+ - type: remove-steps
61
+ parameters:
62
+ steps:
63
+ - GET-MUP-INITIAL
64
+
65
+ # NOTE - (c) will be evaluated via TestCriteria checks
66
+
67
+ # (d, e)
68
+ WAIT-TILL-UPDATE:
69
+ event:
70
+ type: wait
71
+ parameters:
72
+ duration_seconds: 600
73
+ actions:
74
+ - type: enable-steps
75
+ parameters:
76
+ steps:
77
+ - GET-MUP-UPDATED
78
+ - type: remove-steps
79
+ parameters:
80
+ steps:
81
+ - WAIT-TILL-UPDATE
82
+
83
+ # (d, e)
84
+ GET-MUP-UPDATED:
85
+ event:
86
+ type: GET-request-received
87
+ parameters:
88
+ endpoint: /mup
89
+ actions:
90
+ - type: set-comms-rate
91
+ parameters:
92
+ mup_post_seconds: 60
93
+ - type: enable-steps
94
+ parameters:
95
+ steps:
96
+ - POST-MUP-1
97
+ - WAIT-TILL-END
98
+ - type: remove-steps
99
+ parameters:
100
+ steps:
101
+ - GET-MUP-UPDATED
102
+
103
+ # (f) - This is our proxy for making sure that post rate has returned to 60s - it has 90 seconds to be hit after GET-MUP-UPDATED
104
+ POST-MUP-1:
105
+ event:
106
+ type: POST-request-received
107
+ parameters:
108
+ endpoint: /mup/*
109
+ actions:
110
+ - type: remove-steps
111
+ parameters:
112
+ steps:
113
+ - POST-MUP-1
114
+
115
+ # (f)
116
+ WAIT-TILL-END:
117
+ event:
118
+ type: wait
119
+ parameters:
120
+ duration_seconds: 90
121
+ actions:
122
+ - type: remove-steps
123
+ parameters:
124
+ steps:
125
+ - WAIT-TILL-END
126
+ - type: finish-test
127
+ parameters: {}
128
+
@@ -0,0 +1,111 @@
1
+ Description: Active Control – Energise / De-energise
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: 300
23
+ derp_list_poll_seconds: 300
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-control
32
+ parameters:
33
+ start: $(now)
34
+ duration_seconds: 900
35
+ opModEnergize: true
36
+ - type: create-der-control
37
+ parameters:
38
+ start: $(now + '5 minutes')
39
+ duration_seconds: 300
40
+ opModEnergize: false
41
+ instructions:
42
+ - DER shall be generating or consuming at least 50% of its active power rating.
43
+
44
+ Steps:
45
+
46
+ # (b) - Wait until just before the opModEnergize: False control before accepting a DERStatus update
47
+ WAIT-CONTROL-START:
48
+ event:
49
+ type: wait
50
+ parameters:
51
+ duration_seconds: 270
52
+ actions:
53
+ - type: enable-steps
54
+ parameters:
55
+ steps:
56
+ - PUT-DERSTATUS-DISCONNECT
57
+ - WAIT-CONTROL-END
58
+ - type: remove-steps
59
+ parameters:
60
+ steps:
61
+ - WAIT-CONTROL-START
62
+
63
+ # (c)
64
+ PUT-DERSTATUS-DISCONNECT:
65
+ event:
66
+ type: PUT-request-received
67
+ parameters:
68
+ endpoint: /edev/1/der/1/ders
69
+ serve_request_first: true # Run this AFTER server receives the request
70
+ checks:
71
+ - type: der-status-contents
72
+ parameters:
73
+ genConnectStatus_bit0: false
74
+ actions:
75
+ - type: remove-steps
76
+ parameters:
77
+ steps:
78
+ - PUT-DERSTATUS-DISCONNECT
79
+
80
+ # (d) - This is soley to prevent a client from reporting reconnect too early
81
+ WAIT-CONTROL-END:
82
+ event:
83
+ type: wait
84
+ parameters:
85
+ duration_seconds: 600
86
+ actions:
87
+ - type: enable-steps
88
+ parameters:
89
+ steps:
90
+ - PUT-DERSTATUS-RECONNECT
91
+ - type: remove-steps
92
+ parameters:
93
+ steps:
94
+ - WAIT-CONTROL-END
95
+
96
+ # (d)
97
+ PUT-DERSTATUS-RECONNECT:
98
+ event:
99
+ type: PUT-request-received
100
+ parameters:
101
+ endpoint: /edev/1/der/1/ders
102
+ serve_request_first: true # Run this AFTER server receives the request
103
+ checks:
104
+ - type: der-status-contents
105
+ parameters:
106
+ genConnectStatus_bit0: true
107
+ actions:
108
+ - type: remove-steps
109
+ parameters:
110
+ steps:
111
+ - PUT-DERSTATUS-RECONNECT
@@ -0,0 +1,126 @@
1
+ Description: Active Control – Disconnect
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
+ checks:
26
+ - type: end-device-contents
27
+ parameters: {}
28
+ actions:
29
+ - type: create-der-program
30
+ parameters:
31
+ primacy: 0
32
+
33
+ instructions:
34
+ - DER shall be generating or consuming at least 50% of its active power rating.
35
+
36
+ Steps:
37
+ # (precondition, a, b)
38
+ GET-DERC:
39
+ event:
40
+ type: GET-request-received
41
+ parameters:
42
+ endpoint: /edev/1/derp/1/derc
43
+ actions:
44
+ - type: create-der-control
45
+ parameters:
46
+ start: $(now + '5 minutes')
47
+ duration_seconds: 600
48
+ opModConnect: false
49
+ - type: enable-steps
50
+ parameters:
51
+ steps:
52
+ - WAIT-CONTROL-START
53
+ - type: remove-steps
54
+ parameters:
55
+ steps:
56
+ - GET-DERC
57
+
58
+ # (b) - Wait until just before the opModEnergize: False control before accepting a DERStatus update
59
+ WAIT-CONTROL-START:
60
+ event:
61
+ type: wait
62
+ parameters:
63
+ duration_seconds: 270
64
+ actions:
65
+ - type: enable-steps
66
+ parameters:
67
+ steps:
68
+ - PUT-DERSTATUS-DISCONNECT
69
+ - WAIT-CONTROL-END
70
+ - type: remove-steps
71
+ parameters:
72
+ steps:
73
+ - WAIT-CONTROL-START
74
+
75
+ # (c) waits for a DERStatus disconnected
76
+ PUT-DERSTATUS-DISCONNECT:
77
+ event:
78
+ type: PUT-request-received
79
+ parameters:
80
+ endpoint: /edev/1/der/1/ders
81
+ serve_request_first: true # Run this AFTER server receives the request
82
+ checks:
83
+ - type: der-status-contents
84
+ parameters:
85
+ genConnectStatus_bit0: false
86
+ actions:
87
+ - type: remove-steps
88
+ parameters:
89
+ steps:
90
+ - PUT-DERSTATUS-DISCONNECT
91
+
92
+ # (d) - This is soley to prevent a client from reporting reconnect too early
93
+ WAIT-CONTROL-END:
94
+ event:
95
+ type: wait
96
+ parameters:
97
+ duration_seconds: 600 # We enable this 30 seconds before the control expires to allow for timing errors
98
+ actions:
99
+ - type: enable-steps
100
+ parameters:
101
+ steps:
102
+ - PUT-DERSTATUS-RECONNECT
103
+ - type: remove-steps
104
+ parameters:
105
+ steps:
106
+ - WAIT-CONTROL-END
107
+
108
+ # (d) This will wait until the client POST's a DERStatus saying it has reconnected
109
+ PUT-DERSTATUS-RECONNECT:
110
+ event:
111
+ type: PUT-request-received
112
+ parameters:
113
+ endpoint: /edev/1/der/1/ders
114
+ serve_request_first: true # Run this AFTER server receives the request
115
+ checks:
116
+ - type: der-status-contents
117
+ parameters:
118
+ genConnectStatus_bit0: true
119
+ actions:
120
+ - type: remove-steps
121
+ parameters:
122
+ steps:
123
+ - PUT-DERSTATUS-RECONNECT
124
+
125
+
126
+
@@ -0,0 +1,112 @@
1
+ Description: Default Controls – Ramp Rate
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
+ checks:
29
+ - type: end-device-contents
30
+ parameters: {}
31
+
32
+ Steps:
33
+
34
+ # (a, b)
35
+ # On first poll of default control - set setGradW to 1%/s
36
+ GET-DEFAULT-DERC-100:
37
+ event:
38
+ type: GET-request-received
39
+ parameters:
40
+ endpoint: /edev/1/derp/1/dderc
41
+ actions:
42
+ - type: set-default-der-control
43
+ parameters:
44
+ setGradW: 100 # hundredths of a percent - this is 1%
45
+ - type: enable-steps
46
+ parameters:
47
+ steps:
48
+ - PUT-DERSETTINGS-SET-GRAD-W-100
49
+ - type: remove-steps
50
+ parameters:
51
+ steps:
52
+ - GET-DEFAULT-DERC-100
53
+
54
+ # (c)
55
+ # This will wait until the client POST's a DERSettings with the 1% setGradW
56
+ PUT-DERSETTINGS-SET-GRAD-W-100:
57
+ event:
58
+ type: PUT-request-received
59
+ parameters:
60
+ endpoint: /edev/1/der/1/derg
61
+ serve_request_first: true # Run this AFTER server receives the request
62
+ checks:
63
+ - type: der-settings-contents
64
+ parameters:
65
+ setGradW: 100
66
+ actions:
67
+ - type: enable-steps
68
+ parameters:
69
+ steps:
70
+ - GET-DEFAULT-DERC-27
71
+ - type: remove-steps
72
+ parameters:
73
+ steps:
74
+ - PUT-DERSETTINGS-SET-GRAD-W-100
75
+
76
+ # (after)
77
+ GET-DEFAULT-DERC-27:
78
+ event:
79
+ type: GET-request-received
80
+ parameters:
81
+ endpoint: /edev/1/derp/1/dderc
82
+ actions:
83
+ - type: set-default-der-control
84
+ parameters:
85
+ setGradW: 27 # hundredths of a percent - this is 0.27%
86
+ - type: enable-steps
87
+ parameters:
88
+ steps:
89
+ - PUT-DERSETTINGS-SET-GRAD-W-27
90
+ - type: remove-steps
91
+ parameters:
92
+ steps:
93
+ - GET-DEFAULT-DERC-27
94
+
95
+ # (after)
96
+ # This will wait until the client POST's a DERSettings with the 0.27% setGradW
97
+ PUT-DERSETTINGS-SET-GRAD-W-27:
98
+ event:
99
+ type: PUT-request-received
100
+ parameters:
101
+ endpoint: /edev/1/der/1/derg
102
+ serve_request_first: true # Run this AFTER server receives the request
103
+ checks:
104
+ - type: der-settings-contents
105
+ parameters:
106
+ setGradW: 27
107
+ actions:
108
+ - type: remove-steps
109
+ parameters:
110
+ steps:
111
+ - PUT-DERSETTINGS-SET-GRAD-W-27
112
+