forked from faucetsdn/udmi
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmodel_system.json
189 lines (189 loc) · 5.82 KB
/
model_system.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
{
"$udmi_version": "1.5.2",
"title": "System Model",
"description": "High-level system information about the device. [System Model Documentation](../docs/messages/system.md)",
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"name": {
"description": "Friendly name describing this device",
"type": "string"
},
"description": {
"description": "Generic human-readable text describing the device",
"type": "string"
},
"device_version": {
"description": "Version of schema supported by the device",
"type": "string",
"examples": ["1.5.0"]
},
"zone": {
"description": "Aggregation of spaces, partial spaces or other zones that the device is serving",
"type": "string",
"pattern": "^[-_a-zA-Z0-9]+$",
"examples": ["Zone1", "Kitchen_101"]
},
"tags":{
"description": "Tags associated with the device",
"type": "array",
"uniqueItems": true,
"items": {
"pattern": "^[a-z0-9]+$"
},
"examples": [["lighting"], ["energy", "building"]]
},
"location": {
"description": "Properties of the expected physical location of the device",
"type": "object",
"additionalProperties": false,
"properties": {
"site": {
"description": "The site name according to the site model in which the device is installed in",
"type": "string",
"pattern": "^[A-Z]{2}-[A-Z]{3,4}-[A-Z0-9]{2,9}$",
"examples": ["US-SFO-XYY"]
},
"panel": {
"description": "The reference of the panel where the device is installed in",
"type": "string",
"pattern": "^[-_a-zA-Z0-9]+$",
"examples": ["Panel123", "CTRP-567"]
},
"section": {
"type": "string",
"pattern": "^[A-Z0-9-]+$"
},
"room": {
"type": "string",
"pattern": "^[-_a-zA-Z0-9]+$"
},
"floor": {
"type": "string",
"description": "Name of floor level",
"pattern": "^[A-Z0-9-]+$",
"examples": ["1", "1A", "G", "B1M", "RF"]
},
"floor_seq": {
"type": "integer",
"description": "Sequential integer representation for a floor, primarily for comparisons when non integer floors are used, e.g. 1 and 1M"
},
"position": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"description": "The `x` coordinate of the device location in a project specific coordinate system",
"type": "number"
},
"y": {
"description": "The `y` coordinate of the device location in a project specific coordinate system",
"type": "number"
},
"z": {
"description": "The `z` (height) coordinate of the device location in a project specific coordinate system",
"type": "number"
}
}
},
"coordinates": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"description": "The `latitude` coordinate of the device in the WGS84 coordinate system",
"type": "number"
},
"long": {
"description": "The `longitude` coordinate of the device in the WGS84 coordinate system",
"type": "number"
},
"alt_m": {
"description": "The `altitude` coordinate of the device in meters",
"type": "number"
}
}
}
},
"required": [
"site"
]
},
"serial_no": {
"description": "The serial number of the physical device",
"type": "string",
"examples": ["A1B2C3D4", "00001"]
},
"hardware": {
"$ref": "file:model_system_hardware.json"
},
"software": {
"additionalProperties": false,
"description": "A collection of items which can be used to describe version of software running on a device",
"examples": ["firmware", "os", "driver"],
"type": "object",
"existingJavaType": "java.util.Map<String, String>",
"patternProperties": {
"^[a-z_]+$": {
"type": "string"
}
}
},
"physical_tag": {
"description": "Information used to print a physical QR code label.",
"type": "object",
"additionalProperties": false,
"properties": {
"asset": {
"type": "object",
"additionalProperties": false,
"properties": {
"guid": {
"type": "string",
"pattern": "^[a-z]+://[-0-9a-zA-Z_$]+$"
},
"site": {
"type": "string",
"pattern": "^[A-Z]{2}-[A-Z]{3,4}-[A-Z0-9]{2,9}$"
},
"name": {
"type": "string",
"pattern": "^[A-Z]{2,6}-[1-9][0-9]*$"
}
},
"required": [
"guid",
"name"
]
}
},
"required": [
"asset"
]
},
"adjunct": {
"type": "object",
"additionalProperties": false,
"properties": {
"suffix": {
"type": "string",
"pattern": "^[a-zA-Z0-9-]+$"
}
}
},
"min_loglevel": {
"description": "The minimum loglevel for reporting log messages below which log entries should not be sent. Default to 300.",
"type": "integer",
"minimum": 100,
"maximum": 800,
"default": 300
},
"metrics_rate_sec": {
"description": "The rate at which the system should send system event updates. 0 indicates no updates.",
"type": "integer",
"minimum": 0,
"maximum": 86400
}
}
}