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,87 @@
1
+ Description: Validate Operating Telemetry
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
+ # Test is ~11 minutes of waiting which should leave enough time for at least 9 reading posts
16
+ - type: readings-site-active-power
17
+ parameters: {"minimum_count": 9}
18
+ - type: readings-der-active-power
19
+ parameters: {"minimum_count": 9}
20
+
21
+ Preconditions:
22
+ init_actions:
23
+ - type: set-comms-rate
24
+ parameters:
25
+ dcap_poll_seconds: 60
26
+ edev_list_poll_seconds: 60
27
+ fsa_list_poll_seconds: 60
28
+ der_list_poll_seconds: 60
29
+ derp_list_poll_seconds: 60
30
+ mup_post_seconds: 60
31
+ checks:
32
+ - type: end-device-contents
33
+ parameters: {}
34
+ - type: der-settings-contents
35
+ parameters: {}
36
+ actions:
37
+ - type: create-der-control
38
+ parameters:
39
+ start: $(now)
40
+ duration_seconds: 120
41
+ opModExpLimW: $(setMaxW * 2)
42
+ opModImpLimW: $(setMaxW * 2)
43
+ - type: create-der-control
44
+ parameters:
45
+ start: $(now + '2 minutes')
46
+ duration_seconds: 120
47
+ opModExpLimW: $(setMaxW * 0.3)
48
+ opModImpLimW: $(setMaxW * 0.3)
49
+ - type: create-der-control
50
+ parameters:
51
+ start: $(now + '4 minutes')
52
+ duration_seconds: 120
53
+ opModExpLimW: $(setMaxW * 0.2)
54
+ opModImpLimW: $(setMaxW * 0.2)
55
+ - type: create-der-control
56
+ parameters:
57
+ start: $(now + '6 minutes')
58
+ duration_seconds: 120
59
+ opModExpLimW: $(setMaxW * 0.1)
60
+ opModImpLimW: $(setMaxW * 0.1)
61
+ - type: create-der-control
62
+ parameters:
63
+ start: $(now + '8 minutes')
64
+ duration_seconds: 120
65
+ opModExpLimW: 0
66
+ opModImpLimW: 0
67
+ instructions:
68
+ - DER is operating at least 50% if its rated power.
69
+ - Connect a test load electrically in parallel with the DER.
70
+ - Set the load to consume 10% of the DER's rated active power.
71
+
72
+ Steps:
73
+
74
+ WAIT-TEST-END:
75
+ event:
76
+ type: wait
77
+ parameters:
78
+ duration_seconds: 660 # Wait for all controls to expire
79
+ actions:
80
+ - type: remove-steps
81
+ parameters:
82
+ steps:
83
+ - WAIT-TEST-END
84
+ - type: finish-test
85
+ parameters: {}
86
+ instructions:
87
+ - Client should continue submitting regular readings for the duration of the test.
@@ -0,0 +1,188 @@
1
+ Description: Persisting Settings Through Reconnection
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
+ - type: create-der-program
26
+ parameters:
27
+ primacy: 0
28
+ checks:
29
+ - type: end-device-contents
30
+ parameters: {}
31
+ - type: der-settings-contents
32
+ parameters: {}
33
+ actions:
34
+ - type: set-default-der-control
35
+ parameters:
36
+ opModExpLimW: $(setMaxW * 0.3)
37
+ opModImpLimW: $(setMaxW * 0.3)
38
+
39
+ instructions:
40
+ - DER is operating at least 50% if its rated power.
41
+
42
+ Steps:
43
+
44
+ # (precondition)
45
+ PRECONDITION-STARTUP:
46
+ instructions:
47
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
48
+ event:
49
+ type: GET-request-received
50
+ parameters:
51
+ endpoint: /edev/1/derp/1/derc
52
+ actions:
53
+ - type: create-der-control
54
+ parameters:
55
+ start: $(now)
56
+ duration_seconds: 240
57
+ opModExpLimW: $(setMaxW * 2)
58
+ opModImpLimW: $(setMaxW * 2)
59
+ - type: enable-steps
60
+ parameters:
61
+ steps:
62
+ - PRECONDITION-STARTUP-WAIT
63
+ - type: remove-steps
64
+ parameters:
65
+ steps:
66
+ - PRECONDITION-STARTUP
67
+
68
+ # (precondition)
69
+ PRECONDITION-STARTUP-WAIT:
70
+ instructions:
71
+ - This step is to give time for the DER to start importing/exporting at least 50% of its rated power.
72
+ event:
73
+ type: wait
74
+ parameters:
75
+ duration_seconds: 120
76
+ actions:
77
+ - type: enable-steps
78
+ parameters:
79
+ steps:
80
+ - GET-DEFAULT-DERC
81
+ - type: remove-steps
82
+ parameters:
83
+ steps:
84
+ - PRECONDITION-STARTUP-WAIT
85
+
86
+ # (precondition) - Wait for the DefaultDERControl to be picked up
87
+ GET-DEFAULT-DERC:
88
+ event:
89
+ type: GET-request-received
90
+ parameters:
91
+ endpoint: /edev/1/derp/1/dderc
92
+ serve_request_first: true
93
+ actions:
94
+ - type: communications-status
95
+ parameters:
96
+ enabled: false
97
+ - type: enable-steps
98
+ parameters:
99
+ steps:
100
+ - WAIT-POWER-OFF
101
+ - type: remove-steps
102
+ parameters:
103
+ steps:
104
+ - GET-DEFAULT-DERC
105
+
106
+ # (a, b, c)
107
+ WAIT-POWER-OFF:
108
+ instructions:
109
+ - Power cycle (turn off then back on again) the communications client, and while it is offline, disable the communications interface between the client and utility server (e.g. by unplugging an appropriate network cable).
110
+ event:
111
+ type: wait
112
+ parameters:
113
+ duration_seconds: 120 # Wait for two polls
114
+ actions:
115
+ - type: create-der-control
116
+ parameters:
117
+ start: $(now)
118
+ duration_seconds: 900
119
+ opModExpLimW: $(setMaxW * 0.5)
120
+ opModImpLimW: $(setMaxW * 0.5)
121
+ - type: enable-steps
122
+ parameters:
123
+ steps:
124
+ - WAIT-POWER-ON
125
+ - type: remove-steps
126
+ parameters:
127
+ steps:
128
+ - WAIT-POWER-OFF
129
+
130
+ # (d)
131
+ WAIT-POWER-ON:
132
+ instructions:
133
+ - Re-establish communications between the client and utility server (e.g. by plugging the network cable back in).
134
+ event:
135
+ type: wait
136
+ parameters:
137
+ duration_seconds: 180
138
+ actions:
139
+ - type: communications-status
140
+ parameters:
141
+ enabled: true
142
+ - type: enable-steps
143
+ parameters:
144
+ steps:
145
+ - GET-UPDATED-DERC
146
+ - POST-RESPONSE-STARTED
147
+ - type: remove-steps
148
+ parameters:
149
+ steps:
150
+ - WAIT-POWER-ON
151
+
152
+
153
+ # (e)
154
+ GET-UPDATED-DERC:
155
+ event:
156
+ type: GET-request-received
157
+ parameters:
158
+ endpoint: /edev/1/derp/1/derc
159
+ actions:
160
+ - type: create-der-control
161
+ parameters:
162
+ start: $(now)
163
+ duration_seconds: 900
164
+ opModExpLimW: $(setMaxW * 0.5)
165
+ opModImpLimW: $(setMaxW * 0.5)
166
+ - type: remove-steps
167
+ parameters:
168
+ steps:
169
+ - GET-UPDATED-DERC
170
+
171
+ # (e)
172
+ POST-RESPONSE-STARTED:
173
+ event:
174
+ type: POST-request-received
175
+ parameters:
176
+ endpoint: /edev/1/rsps/site_control/rsp
177
+ serve_request_first: true
178
+ checks:
179
+ - type: response-contents
180
+ parameters:
181
+ latest: true
182
+ status: 2
183
+ actions:
184
+ - type: remove-steps
185
+ parameters:
186
+ steps:
187
+ - POST-RESPONSE-STARTED
188
+
@@ -0,0 +1,136 @@
1
+ Description: Individual readings - storage
2
+ Category: Monitoring
3
+ Classes:
4
+ - L
5
+
6
+ TargetVersions:
7
+ - v1.3-beta/storage
8
+
9
+ Criteria:
10
+ checks:
11
+ - type: all-steps-complete
12
+ parameters: {}
13
+
14
+ # Test includes ~ 5 minutes of waiting + initial reading sent during test
15
+ # A minimum of 4 readings is required by the test procedure
16
+ - type: readings-der-stored-energy
17
+ parameters: { "minimum_count": 4 }
18
+
19
+ Preconditions:
20
+ init_actions:
21
+ - type: set-comms-rate
22
+ parameters:
23
+ dcap_poll_seconds: 60
24
+ edev_list_poll_seconds: 60
25
+ fsa_list_poll_seconds: 60
26
+ der_list_poll_seconds: 60
27
+ derp_list_poll_seconds: 60
28
+ mup_post_seconds: 60
29
+ # Placeholder for later controls
30
+ - type: create-der-program
31
+ parameters:
32
+ primacy: 0
33
+ fsa_id: 1
34
+
35
+ checks:
36
+ - type: end-device-contents
37
+ parameters: {}
38
+
39
+ Steps:
40
+ GET-MUP:
41
+ event:
42
+ type: GET-request-received
43
+ parameters:
44
+ endpoint: /mup
45
+ actions:
46
+ - type: enable-steps
47
+ parameters:
48
+ steps:
49
+ - POST-MUP
50
+ - type: remove-steps
51
+ parameters:
52
+ steps:
53
+ - GET-MUP
54
+
55
+ POST-MUP:
56
+ event:
57
+ type: POST-request-received
58
+ parameters:
59
+ endpoint: /mup
60
+ actions:
61
+ - type: enable-steps
62
+ parameters:
63
+ steps:
64
+ - GET-MUP-2
65
+ - type: remove-steps
66
+ parameters:
67
+ steps:
68
+ - POST-MUP
69
+
70
+ GET-MUP-2:
71
+ event:
72
+ type: GET-request-received
73
+ parameters:
74
+ endpoint: /mup
75
+ actions:
76
+ - type: enable-steps
77
+ parameters:
78
+ steps:
79
+ - WAIT-READINGS
80
+ - type: remove-steps
81
+ parameters:
82
+ steps:
83
+ - GET-MUP-2
84
+
85
+ # Wait for at least 2 readings to arrive
86
+ WAIT-READINGS:
87
+ event:
88
+ type: wait
89
+ parameters:
90
+ duration_seconds: 180 # Wait for at least 2 sets of readings to arrive (with post rate 60 seconds)
91
+ actions:
92
+ - type: enable-steps
93
+ parameters:
94
+ steps:
95
+ - GET-DERC
96
+ - type: remove-steps
97
+ parameters:
98
+ steps:
99
+ - WAIT-READINGS
100
+
101
+ # On this poll, client will discover new 0W control is in place
102
+ GET-DERC:
103
+ event:
104
+ type: GET-request-received
105
+ parameters:
106
+ endpoint: /edev/1/derp/1/derc
107
+ actions:
108
+ - type: create-der-control
109
+ parameters:
110
+ start: $(now)
111
+ duration_seconds: 600
112
+ opModStorageTargetW: 0
113
+ primacy: 0
114
+ - type: enable-steps
115
+ parameters:
116
+ steps:
117
+ - WAIT-CONTROL
118
+ - type: remove-steps
119
+ parameters:
120
+ steps:
121
+ - GET-DERC
122
+
123
+ # This just lets the test run for a few more posts after the control comes into effect
124
+ # after which, we will force the test to shutdown (as Criteria is partially defined by this ONLY running for a few posts)
125
+ WAIT-CONTROL:
126
+ event:
127
+ type: wait
128
+ parameters:
129
+ duration_seconds: 180 # Wait for at least 3 sets of readings to arrive (with post rate 60 seconds)
130
+ actions:
131
+ - type: remove-steps
132
+ parameters:
133
+ steps:
134
+ - WAIT-CONTROL
135
+ - type: finish-test
136
+ parameters: {}
@@ -0,0 +1,137 @@
1
+ Description: Capabilities and settings - storage
2
+ Category: Monitoring
3
+ Classes:
4
+ - L
5
+
6
+ TargetVersions:
7
+ - v1.3-beta/storage
8
+
9
+ Preconditions:
10
+ immediate_start: true # There will be no "init" phase - all interactions will be immediately logged against the test
11
+ init_actions:
12
+ - type: set-comms-rate
13
+ parameters:
14
+ dcap_poll_seconds: 60
15
+ edev_list_poll_seconds: 60
16
+ fsa_list_poll_seconds: 60
17
+ der_list_poll_seconds: 60
18
+ derp_list_poll_seconds: 60
19
+ mup_post_seconds: 60
20
+
21
+ Criteria:
22
+ checks:
23
+ - type: all-steps-complete
24
+ parameters: {}
25
+ - type: der-capability-contents
26
+ parameters: {
27
+ "rtgMaxChargeRateW": "$(this > 0)",
28
+ "rtgMaxDischargeRateW": "$(this > 0)",
29
+ "rtgMaxWh": "$(this > 0)",
30
+ "vppModesSupported_set": "01",
31
+ }
32
+ - type: der-settings-contents
33
+ parameters: {
34
+ "setMaxChargeRateW": "$(this <= rtgMaxChargeRateW)",
35
+ "setMaxDischargeRateW": "$(this <= rtgMaxDischargeRateW)",
36
+ "setMaxWh": "$(this <= rtgMaxWh)",
37
+ "setMinWh": "$(this >= 0)",
38
+ "vppModesEnabled_set": "01",
39
+ }
40
+
41
+ Steps:
42
+ GET-DER:
43
+ event:
44
+ type: GET-request-received
45
+ parameters:
46
+ endpoint: /edev/1/der
47
+ actions:
48
+ - type: enable-steps
49
+ parameters:
50
+ steps:
51
+ - PUT-DERSTATUS
52
+ - PUT-DERCAPABILITY
53
+ - PUT-DERSETTINGS
54
+ - type: remove-steps
55
+ parameters:
56
+ steps:
57
+ - GET-DER
58
+
59
+ PUT-DERSTATUS:
60
+ event:
61
+ type: PUT-request-received
62
+ parameters:
63
+ endpoint: /edev/1/der/1/ders
64
+ actions:
65
+ - type: enable-steps
66
+ parameters:
67
+ steps:
68
+ - PUT-DERSTATUS-2
69
+ - type: remove-steps
70
+ parameters:
71
+ steps:
72
+ - PUT-DERSTATUS
73
+
74
+ PUT-DERCAPABILITY:
75
+ event:
76
+ type: PUT-request-received
77
+ parameters:
78
+ endpoint: /edev/1/der/1/dercap
79
+ actions:
80
+ - type: enable-steps
81
+ parameters:
82
+ steps:
83
+ - PUT-DERCAPABILITY-2
84
+ - type: remove-steps
85
+ parameters:
86
+ steps:
87
+ - PUT-DERCAPABILITY
88
+
89
+ PUT-DERSETTINGS:
90
+ event:
91
+ type: PUT-request-received
92
+ parameters:
93
+ endpoint: /edev/1/der/1/derg
94
+ actions:
95
+ - type: enable-steps
96
+ parameters:
97
+ steps:
98
+ - PUT-DERSETTINGS-2
99
+ - type: remove-steps
100
+ parameters:
101
+ steps:
102
+ - PUT-DERSETTINGS
103
+
104
+
105
+ PUT-DERSTATUS-2:
106
+ event:
107
+ type: PUT-request-received
108
+ parameters:
109
+ endpoint: /edev/1/der/1/ders
110
+ actions:
111
+ - type: remove-steps
112
+ parameters:
113
+ steps:
114
+ - PUT-DERSTATUS-2
115
+
116
+ PUT-DERCAPABILITY-2:
117
+ event:
118
+ type: PUT-request-received
119
+ parameters:
120
+ endpoint: /edev/1/der/1/dercap
121
+ actions:
122
+ - type: remove-steps
123
+ parameters:
124
+ steps:
125
+ - PUT-DERCAPABILITY-2
126
+
127
+ PUT-DERSETTINGS-2:
128
+ event:
129
+ type: PUT-request-received
130
+ parameters:
131
+ endpoint: /edev/1/der/1/derg
132
+ actions:
133
+ - type: remove-steps
134
+ parameters:
135
+ steps:
136
+ - PUT-DERSETTINGS-2
137
+
@@ -0,0 +1,135 @@
1
+ Description: Storage Control - opModStorageTargetW
2
+ Category: Control
3
+ Classes:
4
+ - L
5
+
6
+ TargetVersions:
7
+ - v1.3-beta/storage
8
+
9
+ Criteria:
10
+ checks:
11
+ - type: all-steps-complete
12
+ parameters: {}
13
+
14
+ Preconditions:
15
+ init_actions:
16
+ - type: set-comms-rate
17
+ parameters:
18
+ dcap_poll_seconds: 60
19
+ edev_list_poll_seconds: 60
20
+ fsa_list_poll_seconds: 60
21
+ der_list_poll_seconds: 60
22
+ derp_list_poll_seconds: 60
23
+ mup_post_seconds: 60
24
+ checks:
25
+ - type: end-device-contents
26
+ parameters: {}
27
+ actions:
28
+ - type: create-der-control
29
+ parameters:
30
+ start: $(now + '300 seconds')
31
+ duration_seconds: 900
32
+ opModStorageTargetW: $(rtgMaxDischargeRateW * 0.5)
33
+
34
+ Steps:
35
+ # On this poll a new control will be discovered with opModStorageTargetW == 50% rtgMaxDischargeRateW
36
+ GET-DERC-1:
37
+ event:
38
+ type: GET-request-received
39
+ parameters:
40
+ endpoint: /edev/1/derp/1/derc
41
+ actions:
42
+ - type: enable-steps
43
+ parameters:
44
+ steps:
45
+ - WAIT-CONTROL-END-1
46
+ - type: remove-steps
47
+ parameters:
48
+ steps:
49
+ - GET-DERC-1
50
+
51
+ # Waits for the new control to finish (with a bit of overtime)
52
+ WAIT-CONTROL-END-1:
53
+ event:
54
+ type: wait
55
+ parameters:
56
+ duration_seconds: 1260
57
+ actions:
58
+ - type: enable-steps
59
+ parameters:
60
+ steps:
61
+ - GET-DERC-2
62
+ - type: remove-steps
63
+ parameters:
64
+ steps:
65
+ - WAIT-CONTROL-END-1
66
+
67
+ # On this poll a new control will be discovered with 0W opModStorageTargetW
68
+ GET-DERC-2:
69
+ event:
70
+ type: GET-request-received
71
+ parameters:
72
+ endpoint: /edev/1/derp/1/derc
73
+ actions:
74
+ - type: create-der-control
75
+ parameters:
76
+ start: $(now + '300 seconds')
77
+ duration_seconds: 900
78
+ opModStorageTargetW: 0
79
+ - type: enable-steps
80
+ parameters:
81
+ steps:
82
+ - WAIT-CONTROL-END-2
83
+ - type: remove-steps
84
+ parameters:
85
+ steps:
86
+ - GET-DERC-2
87
+
88
+ # Waits for the new control to finish (with a bit of overtime)
89
+ WAIT-CONTROL-END-2:
90
+ event:
91
+ type: wait
92
+ parameters:
93
+ duration_seconds: 1260
94
+ actions:
95
+ - type: enable-steps
96
+ parameters:
97
+ steps:
98
+ - GET-DERC-3
99
+ - type: remove-steps
100
+ parameters:
101
+ steps:
102
+ - WAIT-CONTROL-END-2
103
+
104
+ # On this poll a new control will be discovered with opModStorageTargetW == -50% rtgMaxChargeRateW
105
+ GET-DERC-3:
106
+ event:
107
+ type: GET-request-received
108
+ parameters:
109
+ endpoint: /edev/1/derp/1/derc
110
+ actions:
111
+ - type: create-der-control
112
+ parameters:
113
+ start: $(now + '300 seconds')
114
+ duration_seconds: 900
115
+ opModStorageTargetW: $(0.5 * negRtgMaxChargeRateW) # Negative value
116
+ - type: enable-steps
117
+ parameters:
118
+ steps:
119
+ - WAIT-CONTROL-END-3
120
+ - type: remove-steps
121
+ parameters:
122
+ steps:
123
+ - GET-DERC-3
124
+
125
+ # Waits for the new control to finish (with a bit of overtime)
126
+ WAIT-CONTROL-END-3:
127
+ event:
128
+ type: wait
129
+ parameters:
130
+ duration_seconds: 1260
131
+ actions:
132
+ - type: remove-steps
133
+ parameters:
134
+ steps:
135
+ - WAIT-CONTROL-END-3