powersync-plugins-modbus/libnymea-sunspec/tools/models/json/schema.json

183 lines
5.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "JSON Schema for SunSpec information model definition",
"type": "object",
"required": ["id", "group"],
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"group": {
"$ref": "#/definitions/group"
},
"label": {
"type": "string"
},
"desc": {
"type": "string"
},
"detail": {
"type": "string"
},
"notes": {
"type": "string"
},
"comments": {
"type": "array",
"items": {
"type": "string"
}
}
},
"definitions": {
"group": {
"type": "object",
"required": ["name", "type"],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": ["group", "sync"]
},
"count": {
"type": ["integer", "string"],
"default": 1
},
"points": {
"type": "array",
"items": {
"$ref": "#/definitions/point"
}
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/group"
}
},
"label": {
"type": "string"
},
"desc": {
"type": "string"
},
"detail": {
"type": "string"
},
"notes": {
"type": "string"
},
"comments": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"point": {
"type": "object",
"required": ["name", "type", "size"],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["int16", "int32", "int64", "raw16", "uint16", "uint32", "uint64" ,"acc16", "acc32",
"acc64", "bitfield16", "bitfield32", "bitfield64", "enum16", "enum32", "float32",
"float64", "string", "sf", "pad", "ipaddr", "ipv6addr", "eui48", "sunssf", "count"]
},
"value": {
"type": ["integer", "string"]
},
"count": {
"type": "integer"
},
"size": {
"type": "integer"
},
"sf": {
"type": ["integer", "string"],
"minimum": -10,
"maximum": 10
},
"units": {
"type": "string"
},
"access": {
"type": "string",
"enum": ["R", "RW"],
"default": "R"
},
"mandatory": {
"type": "string",
"enum": ["M", "O"],
"default": "O"
},
"static": {
"type": "string",
"enum": ["D", "S"],
"default": "D"
},
"label": {
"type": "string"
},
"desc": {
"type": "string"
},
"detail": {
"type": "string"
},
"notes": {
"type": "string"
},
"comments": {
"type": "array",
"items": {
"type": "string"
}
},
"symbols": {
"type": "array",
"items": {
"$ref": "#/definitions/symbol"
}
}
}
},
"symbol": {
"type": "object",
"required": ["name", "value"],
"properties": {
"name": {
"type": "string"
},
"value": {},
"label": {
"type": "string"
},
"desc": {
"type": "string"
},
"detail": {
"type": "string"
},
"notes": {
"type": "string"
},
"comments": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}