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,65 @@
1
+ Description: Discovery with In-Band Registration for Aggregator Clients
2
+ Category: Registration
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+ client_type: aggregator
13
+
14
+ Steps:
15
+ - id: PRECONDITION
16
+ repeat_until_pass: true
17
+ instructions:
18
+ - Remove any existing EndDevice registrations for client.
19
+ action:
20
+ type: discovery
21
+ parameters:
22
+ resources:
23
+ - DeviceCapability
24
+ - Time
25
+ - MirrorUsagePointList
26
+ - EndDevice
27
+ - DER
28
+ checks:
29
+ - type: discovered
30
+ parameters:
31
+ resources:
32
+ - DeviceCapability
33
+ - Time
34
+ - MirrorUsagePointList
35
+ - EndDeviceList
36
+ - type: end-device # This will be the check that will block if there is an existing EndDevice registration
37
+ parameters:
38
+ matches_client: false
39
+ - type: time-synced
40
+
41
+ - id: REGISTER
42
+ action:
43
+ type: insert-end-device
44
+ checks:
45
+ - type: end-device
46
+ parameters:
47
+ matches_client: true
48
+
49
+ - id: FETCHING DER INFO
50
+ repeat_until_pass: true
51
+ instructions:
52
+ - Populate DERList with an entry that has a DERCapabilityLink, DERSettingsLink and DERStatusLink.
53
+ action:
54
+ type: discovery
55
+ parameters:
56
+ resources:
57
+ - DER
58
+ checks:
59
+ - type: discovered
60
+ parameters:
61
+ links:
62
+ - DERCapability
63
+ - DERSettings
64
+ - DERStatus
65
+
@@ -0,0 +1,137 @@
1
+ Description: Support for Multiple End Clients
2
+ Category: Registration
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: CLIENT-A
12
+ - id: CLIENT-B
13
+
14
+ Steps:
15
+ - id: CLIENT-A PRECONDITION
16
+ repeat_until_pass: true
17
+ client: CLIENT-A
18
+ instructions:
19
+ - Create at least 5 DERControls for CLIENT-A
20
+ action:
21
+ type: discovery
22
+ parameters:
23
+ resources:
24
+ - DERControl
25
+ checks:
26
+ - type: end-device
27
+ parameters:
28
+ matches_client: true
29
+ - type: der-control
30
+ parameters:
31
+ minimum_count: 5
32
+
33
+ - id: CLIENT-B PRECONDITION
34
+ repeat_until_pass: true
35
+ client: CLIENT-B
36
+ instructions:
37
+ - Create at least 5 DERControls for CLIENT-B
38
+ action:
39
+ type: discovery
40
+ parameters:
41
+ resources:
42
+ - DERControl
43
+ checks:
44
+ - type: end-device
45
+ parameters:
46
+ matches_client: true
47
+ - type: der-control
48
+ parameters:
49
+ minimum_count: 5
50
+
51
+ - id: CLIENT-A DISCOVER MUPS
52
+ repeat_until_pass: true
53
+ client: CLIENT-A
54
+ instructions:
55
+ - MirrorUsagePoints for CLIENT-A must be initially empty.
56
+ action:
57
+ type: discovery
58
+ parameters:
59
+ resources:
60
+ - MirrorUsagePoint
61
+ checks:
62
+ - type: mirror-usage-point
63
+ parameters:
64
+ matches: false # This will only match an empty list
65
+
66
+ - id: CLIENT-B DISCOVER MUPS
67
+ repeat_until_pass: true
68
+ client: CLIENT-B
69
+ instructions:
70
+ - MirrorUsagePoints for CLIENT-B must be initially empty.
71
+ action:
72
+ type: discovery
73
+ parameters:
74
+ resources:
75
+ - MirrorUsagePoint
76
+ checks:
77
+ - type: mirror-usage-point
78
+ parameters:
79
+ matches: false # This will only match an empty list
80
+
81
+ - id: CLIENT-A CREATE MUPS
82
+ client: CLIENT-A
83
+ action:
84
+ type: upsert-mup
85
+ parameters:
86
+ mup_id: mupa
87
+ location: Device
88
+ reading_types:
89
+ - ActivePowerAverage
90
+ - VoltageSinglePhaseAverage
91
+ checks:
92
+ - type: mirror-usage-point
93
+ parameters:
94
+ matches: true
95
+ location: Device
96
+ reading_types:
97
+ - ActivePowerAverage
98
+ - VoltageSinglePhaseAverage
99
+
100
+ - id: CLIENT-B CREATE MUPS
101
+ client: CLIENT-B
102
+ action:
103
+ type: upsert-mup
104
+ parameters:
105
+ mup_id: mupb
106
+ location: Device
107
+ reading_types:
108
+ - ActivePowerAverage
109
+ - VoltageSinglePhaseAverage
110
+ checks:
111
+ - type: mirror-usage-point
112
+ parameters:
113
+ matches: true
114
+ location: Device
115
+ reading_types:
116
+ - ActivePowerAverage
117
+ - VoltageSinglePhaseAverage
118
+
119
+ - id: CLIENT-A SEND READINGS
120
+ client: CLIENT-A
121
+ action:
122
+ type: insert-readings
123
+ parameters:
124
+ mup_id: mupa
125
+ values:
126
+ ActivePowerAverage: [1000, 1234, 0, -4567]
127
+ VoltageSinglePhaseAverage: [241.1, 232.2, 233.9, 244.1]
128
+
129
+ - id: CLIENT-B SEND READINGS
130
+ client: CLIENT-B
131
+ action:
132
+ type: insert-readings
133
+ parameters:
134
+ mup_id: mupb
135
+ values:
136
+ ActivePowerAverage: [2000, 2234, 0, -8567]
137
+ VoltageSinglePhaseAverage: [243.1, 233.2, 234.9, 240]
@@ -0,0 +1,111 @@
1
+ Description: Authorisation
2
+ Category: Registration
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: CLIENT-A
12
+ client_type: device
13
+ - id: CLIENT-B
14
+ client_type: device
15
+
16
+ Steps:
17
+ - id: (A) PRECONDITION
18
+ repeat_until_pass: true
19
+ client: CLIENT-A
20
+ instructions:
21
+ - Create an EndDevice registration for CLIENT-A (or rerun S-ALL-02 / S-ALL-03).
22
+ action:
23
+ type: discovery
24
+ parameters:
25
+ resources:
26
+ - EndDevice
27
+ - DERControlList
28
+ - DER
29
+ checks:
30
+ - type: end-device
31
+ parameters:
32
+ matches_client: true
33
+
34
+ - id: (B) PRECONDITION
35
+ repeat_until_pass: true
36
+ client: CLIENT-B
37
+ instructions:
38
+ - Create an EndDevice registration for CLIENT-B (or rerun S-ALL-02 / S-ALL-03).
39
+ action:
40
+ type: discovery
41
+ parameters:
42
+ resources:
43
+ - EndDevice
44
+ - DERControlList
45
+ - DER
46
+ checks:
47
+ - type: end-device
48
+ parameters:
49
+ matches_client: true
50
+
51
+ - id: (A-B) AUTH EndDeviceList
52
+ client: CLIENT-A
53
+ use_client_context: CLIENT-B
54
+ action:
55
+ type: refresh-resource
56
+ parameters:
57
+ resource: EndDeviceList
58
+ expect_rejection: true
59
+
60
+ - id: (A-B) AUTH DerControlList
61
+ client: CLIENT-A
62
+ use_client_context: CLIENT-B
63
+ action:
64
+ type: refresh-resource
65
+ parameters:
66
+ resource: DERControlList
67
+ expect_rejection: true
68
+
69
+ - id: (A-B) AUTH DERStatus
70
+ client: CLIENT-A
71
+ use_client_context: CLIENT-B
72
+ action:
73
+ type: upsert-der-status
74
+ parameters:
75
+ genConnectStatus: 1
76
+ expect_rejection: true
77
+
78
+ - id: (A-B) AUTH MirrorUsagePoint
79
+ client: CLIENT-A
80
+ use_client_context: CLIENT-B
81
+ action:
82
+ type: upsert-mup
83
+ parameters:
84
+ expect_rejection: true
85
+ mup_id: mupa
86
+ location: Device
87
+ reading_types:
88
+ - ActivePowerAverage
89
+ - VoltageSinglePhaseAverage
90
+
91
+ - id: (A) OK EndDeviceList
92
+ client: CLIENT-A
93
+ action:
94
+ type: refresh-resource
95
+ parameters:
96
+ resource: EndDeviceList
97
+ checks:
98
+ - type: end-device
99
+ parameters:
100
+ matches_client: true
101
+
102
+ - id: (A) DISALLOW ACCESS
103
+ repeat_until_pass: true
104
+ instructions:
105
+ - Remove EndDevice entry for ClientA (or disallow access).
106
+ client: CLIENT-A
107
+ action:
108
+ type: refresh-resource
109
+ parameters:
110
+ resource: EndDeviceList
111
+ expect_rejection_or_empty: true
@@ -0,0 +1,111 @@
1
+ Description: Mirror Usage Point Creation and Individual Readings
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ action:
19
+ type: discovery
20
+ parameters:
21
+ resources:
22
+ - EndDevice
23
+ - DeviceCapability
24
+ - MirrorUsagePointList
25
+ - DER
26
+ checks:
27
+ - type: end-device # This will be the check that will block UNTIL there is an existing EndDevice registration
28
+ parameters:
29
+ matches_client: true
30
+
31
+ - id: 1 - DISCOVER INITIAL MUPS
32
+ repeat_until_pass: true
33
+ action:
34
+ type: discovery
35
+ parameters:
36
+ resources:
37
+ - MirrorUsagePoint
38
+ checks:
39
+ - type: mirror-usage-point
40
+ parameters:
41
+ matches: false # MirrorUsagePoints must be initially empty for client.
42
+
43
+ - id: 2,3A - CREATE MUP FOR SITE
44
+ action:
45
+ type: upsert-mup
46
+ parameters:
47
+ mup_id: mup_site
48
+ location: Site
49
+ reading_types:
50
+ - ActivePowerAverage
51
+ - ReactivePowerAverage
52
+ - FrequencyAverage
53
+ - VoltageSinglePhaseAverage
54
+ checks:
55
+ - type: mirror-usage-point
56
+ parameters:
57
+ location: Site
58
+ matches: true
59
+ reading_types:
60
+ - ActivePowerAverage
61
+ - ReactivePowerAverage
62
+ - FrequencyAverage
63
+ - VoltageSinglePhaseAverage
64
+
65
+ - id: 2,3B - CREATE MUP FOR DEVICE
66
+ action:
67
+ type: upsert-mup
68
+ parameters:
69
+ mup_id: mup_device
70
+ location: Device
71
+ reading_types:
72
+ - ActivePowerAverage
73
+ - ReactivePowerAverage
74
+ - FrequencyAverage
75
+ - VoltageSinglePhaseAverage
76
+ checks:
77
+ - type: mirror-usage-point
78
+ parameters:
79
+ location: Device
80
+ matches: true
81
+ reading_types:
82
+ - ActivePowerAverage
83
+ - ReactivePowerAverage
84
+ - FrequencyAverage
85
+ - VoltageSinglePhaseAverage
86
+
87
+ - id: 4A - POST READINGS TO SITE
88
+ action:
89
+ type: insert-readings
90
+ parameters:
91
+ mup_id: mup_site
92
+ values:
93
+ ActivePowerAverage: [5000, 5100, 5200, 5300]
94
+ ReactivePowerAverage: [1000, 1100, 1200, 1300]
95
+ FrequencyAverage: [50.0, 50.1, 49.9, 50.0]
96
+ VoltageSinglePhaseAverage: [230.0, 231.0, 229.0, 230.5]
97
+
98
+ - id: 4B - POST READINGS TO DEVICE
99
+ action:
100
+ type: insert-readings
101
+ parameters:
102
+ mup_id: mup_device
103
+ values:
104
+ ActivePowerAverage: [5000, 5100, 5200, 5300]
105
+ ReactivePowerAverage: [1000, 1100, 1200, 1300]
106
+ FrequencyAverage: [50.0, 50.1, 49.9, 50.0]
107
+ VoltageSinglePhaseAverage: [230.0, 231.0, 229.0, 230.5]
108
+
109
+ # NOTE: The final step of this test (5) is to verify that readings are retained correctly by the server.
110
+ # As href is optional, it is assumed many servers will not currently support this.
111
+ # While waiting for a discussion by the CIRG it has been decided to omit this step of testing for now.
@@ -0,0 +1,100 @@
1
+ Description: S-ALL-07 Select Edge Cases for Telemetry Reporting
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ - Configure utility server with client's Private Enterprise Number (PEN).
19
+ action:
20
+ type: discovery
21
+ parameters:
22
+ resources:
23
+ - EndDevice
24
+ - DER
25
+ - MirrorUsagePoint
26
+ checks:
27
+ - type: end-device
28
+ parameters:
29
+ matches_client: true
30
+
31
+ - id: Create MUP # Post an initial MirrorUsagePoint to be overwritten later.
32
+ action:
33
+ type: upsert-mup
34
+ parameters:
35
+ mup_id: mup_mrid_1
36
+ reading_types:
37
+ - ActivePowerAverage
38
+ - VoltageSinglePhaseAverage
39
+ location: Site # Set the roleflage
40
+ checks:
41
+ - type: mirror-usage-point
42
+ parameters:
43
+ matches: true
44
+ reading_types:
45
+ - ActivePowerAverage
46
+ - VoltageSinglePhaseAverage
47
+ location: Site
48
+
49
+ - id: STEP 1 - UPDATE MUP ROLEFLAGS # Post same MirrorUsagePoint mRID with different roleFlags
50
+ action:
51
+ type: upsert-mup
52
+ parameters:
53
+ mup_id: mup_mrid_1
54
+ reading_types:
55
+ - ActivePowerAverage
56
+ - VoltageSinglePhaseAverage
57
+ location: Device # Update the roleflage
58
+ checks:
59
+ - type: mirror-usage-point
60
+ parameters:
61
+ matches: true
62
+ reading_types:
63
+ - ActivePowerAverage
64
+ - VoltageSinglePhaseAverage
65
+ location: Device
66
+
67
+ - id: POST INITIAL READING
68
+ action:
69
+ type: insert-readings
70
+ parameters:
71
+ mup_id: mup_mrid_1
72
+ values:
73
+ ActivePowerAverage: [5000]
74
+ VoltageSinglePhaseAverage: [240.0]
75
+
76
+ - id: STEP 2 - UPDATE READING # Post MirrorMeterReading with same mmr mRID but different value
77
+ action:
78
+ type: insert-readings
79
+ parameters:
80
+ mup_id: mup_mrid_1
81
+ values:
82
+ ActivePowerAverage: [6000] # The mmr mrid will automatically be the same as the initial reading
83
+ # NOTE: We do not have the option to request readings, so cannot verify the result of this upsert
84
+
85
+ - id: STEP 3 - Update MUP type # Post MirrorMeterReading with same mRID and no value (change the reading type)
86
+ action:
87
+ type: upsert-mup
88
+ parameters:
89
+ mup_id: mup_mrid_1
90
+ reading_types:
91
+ - ReactivePowerAverage
92
+ location: Device
93
+ checks:
94
+ - type: mirror-usage-point
95
+ parameters:
96
+ matches: true
97
+ reading_types:
98
+ - ReactivePowerAverage
99
+ - VoltageSinglePhaseAverage
100
+ location: Device
@@ -0,0 +1,77 @@
1
+ Description: S-ALL-08 Connection Status
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ action:
19
+ type: discovery
20
+ parameters:
21
+ resources:
22
+ - EndDevice
23
+ - DER
24
+ checks:
25
+ - type: end-device
26
+ parameters:
27
+ matches_client: true
28
+ - type: discovered
29
+ parameters:
30
+ links:
31
+ - DERStatus
32
+
33
+ - id: INITIALISE DER STATUS
34
+ action:
35
+ type: upsert-der-status
36
+ parameters:
37
+ genConnectStatus: 7 # 0111 - connected
38
+
39
+ - id: STEP 1 - DISCONNECT # bit 0 = 0
40
+ action:
41
+ type: upsert-der-status
42
+ parameters:
43
+ genConnectStatus: 6 # 0110
44
+
45
+ - id: STEP 2 - RECONNECT
46
+ action:
47
+ type: upsert-der-status
48
+ parameters:
49
+ genConnectStatus: 7
50
+
51
+ - id: STEP 3 - UNAVAILABLE # bit 1 = 0
52
+ action:
53
+ type: upsert-der-status
54
+ parameters:
55
+ genConnectStatus: 5 # 0101
56
+
57
+ - id: STEP 4 - RECONNECT
58
+ instructions:
59
+ - Reconnect DER
60
+ action:
61
+ type: upsert-der-status
62
+ parameters:
63
+ genConnectStatus: 7 # 0111
64
+
65
+ - id: STEP 5 - NON-OPERATING # bit 2 = 0
66
+ action:
67
+ type: upsert-der-status
68
+ parameters:
69
+ genConnectStatus: 3 # 0011
70
+
71
+ - id: STEP 6 - RECONNECT
72
+ instructions:
73
+ - Reconnect DER
74
+ action:
75
+ type: upsert-der-status
76
+ parameters:
77
+ genConnectStatus: 7
@@ -0,0 +1,43 @@
1
+ Description: S-ALL-09 Operational Mode Status
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ action:
19
+ type: discovery
20
+ parameters:
21
+ resources:
22
+ - EndDevice
23
+ - DER
24
+ checks:
25
+ - type: end-device
26
+ parameters:
27
+ matches_client: true
28
+ - type: discovered
29
+ parameters:
30
+ links:
31
+ - DERStatus
32
+
33
+ - id: STEP 1 - Set Online
34
+ action:
35
+ type: upsert-der-status
36
+ parameters:
37
+ operationalModeStatus: 1
38
+
39
+ - id: STEP 2 - Set Offline
40
+ action:
41
+ type: upsert-der-status
42
+ parameters:
43
+ operationalModeStatus: 2
@@ -0,0 +1,68 @@
1
+ Description: S-ALL-10 Capabilities and Settings
2
+ Category: Monitoring
3
+ Classes:
4
+ - A
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+
9
+ Preconditions:
10
+ required_clients:
11
+ - id: client
12
+
13
+ Steps:
14
+ - id: PRECONDITION
15
+ repeat_until_pass: true
16
+ instructions:
17
+ - Create an EndDevice registration for client.
18
+ action:
19
+ type: discovery
20
+ parameters:
21
+ resources:
22
+ - EndDevice
23
+ - DER
24
+ checks:
25
+ - type: end-device
26
+ parameters:
27
+ matches_client: true
28
+ - type: discovered
29
+ parameters:
30
+ links:
31
+ - DERCapability
32
+ - DERSettings
33
+
34
+ - id: STEP 1A - Put DERCapability
35
+ action:
36
+ type: upsert-der-capability
37
+ parameters:
38
+ type: 4
39
+ rtgMaxW: 10000
40
+ modesSupported: 3
41
+ doeModesSupported: 3
42
+
43
+ - id: STEP 1B - Put DERSettings
44
+ action:
45
+ type: upsert-der-settings
46
+ parameters:
47
+ setMaxW: 10000
48
+ setGradW: 1000
49
+ modesEnabled: 3
50
+ doeModesEnabled: 3
51
+
52
+ - id: STEP 2A - UPSERT DERCapability
53
+ action:
54
+ type: upsert-der-capability
55
+ parameters:
56
+ type: 5
57
+ rtgMaxW: 11000
58
+ modesSupported: 4
59
+ doeModesSupported: 4
60
+
61
+ - id: STEP 2B - UPSERT DERSettings
62
+ action:
63
+ type: upsert-der-settings
64
+ parameters:
65
+ setMaxW: 11000
66
+ setGradW: 1100
67
+ modesEnabled: 4
68
+ doeModesEnabled: 4