Skip to content

Instantly share code, notes, and snippets.

@irudoy
Last active February 28, 2022 13:19
Show Gist options
  • Save irudoy/80a63135f7134982c671d37cc41d2906 to your computer and use it in GitHub Desktop.
Save irudoy/80a63135f7134982c671d37cc41d2906 to your computer and use it in GitHub Desktop.
{
"$schema": "http://json-schema.org/draft-06/schema#",
"type": "object",
"properties": {
"associations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"overview": {
"type": "string"
},
"controller": {
"type": "boolean"
},
"nodes": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"association": {
"type": "string"
},
"id": {
"type": "integer"
},
"version": {
"type": "string"
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"name",
"id"
]
}
},
"init": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"wait": {
"type": "integer"
},
"bind": {
"type": "boolean"
},
"statusUnavailable": {
"type": "boolean"
},
"link": {
"type": "object",
"properties": {
"output": {
"type": "boolean"
},
"cluster": {
"type": "string"
},
"endpoint": {
"type": "integer"
},
"attribute": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
]
},
"manufacturerCode": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"cluster",
"endpoint"
]
},
"report": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "integer"
},
"max": {
"type": "integer"
},
"change": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"min",
"max"
]
},
{
"type": [
"boolean",
"integer"
]
}
]
},
"optional": {
"type": "boolean"
},
"pollingTime": {
"type": "integer"
},
"skipExtraSteps": {
"type": "boolean"
},
"bindGroup": {
"type": "boolean"
},
"type": {
"type": "string"
},
"value": {
"type": "string"
},
"command": {
"type": "integer"
}
},
"additionalProperties": false
}
},
{
"type": "object",
"properties": {
"modelId": {
"type": "object",
"properties": {
"address": {
"type": "integer"
},
"function": {
"type": "string"
},
"length": {
"type": "integer"
},
"type": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"address",
"function",
"type"
]
},
"firmware": {
"type": "object",
"properties": {
"address": {
"type": "integer"
},
"function": {
"type": "string"
},
"length": {
"type": "integer"
},
"type": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"address",
"function",
"type"
]
}
},
"additionalProperties": false,
"required": [
"modelId"
]
}
]
},
"visible": {
"type": "boolean"
},
"modelId": {
"type": "string"
},
"manufacturerId": {
"type": "string"
},
"description": {
"type": "string"
},
"optional": {
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"characteristics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"checkValue": {
"type": "boolean"
},
"pollingTime": {
"type": "integer"
},
"SwitchOffTime": {
"type": "integer"
},
"SwitchOffDelay": {
"type": "integer"
}
},
"additionalProperties": false
},
"maxValue": {
"type": "integer"
},
"link": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"cluster": {
"type": "string"
},
"address": {
"type": "integer"
},
"read": {
"type": "boolean"
},
"source": {
"type": "boolean"
},
"manufacturerCode": {
"type": "integer"
},
"type": {
"type": "string"
},
"command": {
"type": "string"
},
"output": {
"type": "boolean"
},
"endpoint": {
"type": "integer"
},
"param": {
"type": "string"
},
"function": {
"type": "string"
},
"subType": {
"type": "string"
},
"attribute": {
"type": "string"
},
"class": {
"type": "string"
},
"value": {
"type": "string"
},
"map": {
"type": "object",
"properties": {
"0": {
"type": "string"
},
"1": {
"type": "string"
},
"2": {
"type": "string"
},
"3": {
"type": "string"
},
"4": {
"type": "string"
},
"5": {
"type": "string"
},
"6": {
"type": "string"
},
"7": {
"type": "string"
},
"8": {
"type": "string"
},
"9": {
"type": "string"
},
"10": {
"type": "string"
},
"-1": {
"type": "string"
},
"false": {
"type": "string"
},
"true": {
"type": "string"
}
},
"additionalProperties": false
},
"write": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
{
"type": "object",
"properties": {
"cluster": {
"type": "string"
},
"topicSet": {
"type": "string"
},
"scale": {
"type": "number"
},
"pollingTime": {
"type": "integer"
},
"source": {
"type": "boolean"
},
"type": {
"type": "string"
},
"output": {
"type": "boolean"
},
"transitionTime": {
"type": "integer"
},
"endpoint": {
"type": "integer"
},
"sendCommand": {
"type": "boolean"
},
"min": {
"type": "integer"
},
"param": {
"type": "string"
},
"topicGet": {
"type": "string"
},
"minStep": {
"type": "number"
},
"function": {
"type": "string"
},
"topicSearch": {
"type": "string"
},
"checkValue": {
"type": "boolean"
},
"attribute": {
"type": "string"
},
"map": {
"type": "object",
"properties": {
"0": {
"type": [
"string",
"integer"
]
},
"1": {
"type": "string"
},
"2": {
"type": "string"
},
"3": {
"type": "string"
},
"4": {
"type": "string"
},
"5": {
"type": "string"
},
"6": {
"type": "string"
},
"7": {
"type": "string"
},
"8": {
"type": "string"
},
"9": {
"type": "string"
},
"10": {
"type": "string"
},
"false": {
"type": "string"
},
"true": {
"type": "string"
}
},
"additionalProperties": false
},
"write": {
"type": "boolean"
},
"class": {
"type": "string"
},
"value": {
"type": "string"
},
"if": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"characteristic": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"value",
"characteristic"
]
},
"events": {
"type": "boolean"
},
"group": {
"type": "integer"
},
"address": {
"type": [
"string",
"integer"
]
},
"read": {
"type": "boolean"
},
"max": {
"type": "integer"
},
"format": {
"type": "string"
},
"length": {
"type": "integer"
},
"manufacturerCode": {
"type": "integer"
},
"command": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"type": {
"type": "string"
},
"validValues": {
"type": "string"
},
"version": {
"type": "string"
},
"minValue": {
"type": "integer"
},
"minStep": {
"type": "number"
},
"name": {
"type": "string"
},
"value": {
"type": "integer"
},
"map": {
"type": "object",
"properties": {
"0": {
"type": "string"
},
"1": {
"type": "string"
},
"2": {
"type": "string"
},
"3": {
"type": "string"
},
"4": {
"type": "string"
},
"5": {
"type": "string"
},
"6": {
"type": "string"
},
"7": {
"type": "string"
},
"8": {
"type": "string"
},
"9": {
"type": "string"
},
"10": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"0",
"1"
]
},
"write": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"type"
]
}
},
"visible": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"Logic": {
"type": "object",
"properties": {
"TimerBasedPositionState": {
"type": "object",
"properties": {
"WarmingUpTime": {
"type": "string"
},
"MovingTime": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"WarmingUpTime",
"MovingTime"
]
},
"VirtualButton": {
"type": "object",
"properties": {
"DoubleClickTime": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"DoubleClickTime"
]
},
"selected": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"selected"
]
}
},
"additionalProperties": false,
"required": [
"Logic"
]
},
"name": {
"type": "string"
},
"link": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"class": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"param",
"class",
"value"
]
},
"linkedServices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"characteristics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"value": {
"type": [
"string",
"integer"
]
}
},
"additionalProperties": false,
"required": [
"type"
]
}
},
"visible": {
"type": "boolean"
},
"type": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"characteristics",
"type"
]
}
},
"optional": {
"anyOf": [
{
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"address": {
"type": "integer"
},
"function": {
"type": "string"
},
"type": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"address",
"function",
"type"
]
},
"value": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"link",
"value"
]
},
{
"type": "boolean"
}
]
},
"type": {
"type": "string"
},
"version": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type"
]
}
},
"otaHubPriority": {
"type": "boolean"
},
"url": {
"type": "string"
},
"manufacturer": {
"type": "string"
},
"catalogId": {
"type": [
"string",
"integer"
]
},
"serial": {
"type": "string"
},
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"init": {
"type": "boolean"
},
"overview": {
"type": "string"
},
"read": {
"type": "boolean"
},
"visible": {
"type": "boolean"
},
"max": {
"type": "integer"
},
"values": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string",
"format": "ipv6"
},
{
"type": [
"string",
"integer"
]
}
]
}
},
"additionalProperties": false,
"required": [
"name",
"value"
]
}
},
"link": {
"type": "object",
"properties": {
"output": {
"type": "boolean"
},
"cluster": {
"type": "string"
},
"endpoint": {
"type": "integer"
},
"address": {
"type": "integer"
},
"read": {
"type": "boolean"
},
"function": {
"type": "string"
},
"attribute": {
"type": "string"
},
"manufacturerCode": {
"type": "integer"
},
"type": {
"type": "string"
}
},
"additionalProperties": false
},
"description": {
"type": "string"
},
"type": {
"type": "string"
},
"version": {
"type": "string"
},
"command": {
"type": "integer"
},
"input": {
"type": "string"
},
"min": {
"type": "integer"
},
"bind": {
"type": "boolean"
},
"size": {
"type": "integer"
},
"name": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unBind": {
"type": "boolean"
},
"bind": {
"type": "boolean"
},
"link": {
"type": "object",
"properties": {
"cluster": {
"type": "string"
},
"endpoint": {
"type": "integer"
},
"attribute": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"cluster",
"endpoint"
]
},
"report": {
"type": [
"boolean",
"integer"
]
},
"value": {
"type": [
"string",
"integer"
]
}
},
"additionalProperties": false,
"required": [
"link",
"value"
]
}
},
"id": {
"type": "integer"
},
"bitmask": {
"type": "string"
},
"bindGroup": {
"type": "boolean"
},
"value": {
"anyOf": [
{
"type": [
"boolean",
"string",
"integer"
]
},
{
"type": "string",
"format": "ipv6"
}
]
},
"write": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"model": {
"type": "string"
},
"sleepy": {
"type": "boolean"
},
"imageType": {
"type": "integer"
},
"status": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"model",
"services",
"manufacturer"
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment