blob: c63c5fec33e41e05dedaea9aff123b448b2e9a13 [file] [log] [blame]
// Copyright 2016 The Weave Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
namespace standard_traits {
const char kTraits[] = R"({
"lock": {
"commands": {
"setConfig": {
"minimalRole": "user",
"parameters": {
"lockedState": {
"type": "string",
"enum": [ "locked", "unlocked" ]
}
},
"errors": [ "jammed", "lockingNotSupported" ]
}
},
"state": {
"lockedState": {
"type": "string",
"enum": [ "locked", "unlocked", "partiallyLocked" ],
"isRequired": true
},
"isLockingSupported": {
"type": "boolean",
"isRequired": true
}
}
},
"onOff": {
"commands": {
"setConfig": {
"minimalRole": "user",
"parameters": {
"state": {
"type": "string",
"enum": [ "on", "off" ]
}
}
}
},
"state": {
"state": {
"type": "string",
"enum": [ "on", "off" ],
"isRequired": true
}
}
},
"brightness": {
"commands": {
"setConfig": {
"minimalRole": "user",
"parameters": {
"brightness": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
}
},
"state": {
"brightness": {
"isRequired": true,
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"colorTemp": {
"commands": {
"setConfig": {
"minimalRole": "user",
"parameters": {
"colorTemp": {
"type": "integer"
}
}
}
},
"state": {
"colorTemp": {
"isRequired": true,
"type": "integer"
},
"minColorTemp": {
"isRequired": true,
"type": "integer"
},
"maxColorTemp": {
"isRequired": true,
"type": "integer"
}
}
},
"colorXy": {
"commands": {
"setConfig": {
"minimalRole": "user",
"parameters": {
"colorSetting": {
"type": "object",
"required": [
"colorX",
"colorY"
],
"properties": {
"colorX": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"colorY": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
},
"additionalProperties": false
}
},
"errors": ["colorOutOfRange"]
}
},
"state": {
"colorSetting": {
"type": "object",
"isRequired": true,
"required": [ "colorX", "colorY" ],
"properties": {
"colorX": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"colorY": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"colorCapRed": {
"type": "object",
"isRequired": true,
"required": [ "colorX", "colorY" ],
"properties": {
"colorX": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"colorY": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"colorCapGreen": {
"type": "object",
"isRequired": true,
"required": [ "colorX", "colorY" ],
"properties": {
"colorX": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"colorY": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"colorCapBlue": {
"type": "object",
"isRequired": true,
"required": [ "colorX", "colorY" ],
"properties": {
"colorX": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"colorY": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
}
}
}
})";
const char kDefaultState[] = R"({
"lock":{"isLockingSupported": true},
"onOff":{"state": "on"},
"brightness":{"brightness": 0.0},
"colorTemp":{"colorTemp": 0},
"colorXy": {
"colorSetting": {"colorX": 0.0, "colorY": 0.0},
"colorCapRed": {"colorX": 0.674, "colorY": 0.322},
"colorCapGreen":{"colorX": 0.408, "colorY": 0.517},
"colorCapBlue": {"colorX": 0.168, "colorY": 0.041}
}
})";
const char kComponent[] = "testdevice";
} // namespace standard_traits