pimatic
Version:
A home automation server and framework for the Raspberry PI running on node.js
229 lines (228 loc) • 6.8 kB
text/coffeescript
module.exports = {
title: "pimatic device config schemas"
ButtonsDevice: {
title: "ButtonsDevice config"
type: "object"
extensions: ["xLink"]
properties:
enableActiveButton:
description: "Highlight last pressed button if enabled"
type: "boolean"
default: true
buttons:
description: "Buttons to display"
type: "array"
default: []
format: "table"
items:
type: "object"
properties:
id:
type: "string"
text:
type: "string"
confirm:
description: "Ask the user to confirm the button press"
type: "boolean"
default: false
}
InputDevice: {
title: "InputDevice config"
type: "object"
extensions: ["xLink"]
properties:
type:
description: "The type of the input"
type: "string"
default: "string"
enum: ["string", "number"]
min:
description: "Minimum value for numeric values"
type: "number"
required: false
max:
description: "Maximum value for numeric values"
type: "number"
required: false
step:
description: "Step size for minus and plus buttons for numeric values"
type: "number"
default: 1
}
VariablesDevice: {
title: "VariablesDevice config"
type: "object"
extensions: ["xLink", "xAttributeOptions"]
properties:
variables:
description: "Variables to display"
type: "array"
default: []
format: "table"
items:
type: "object"
required: ["name", "expression"]
properties:
name:
description: "Name for the corresponding attribute."
type: "string"
expression:
description: "
The expression to use to get the value. Can be just a variable name ($myVar),
a calculation ($myVar + 10) or a string interpolation (\"Test: {$myVar}!\")
"
type: "string"
type:
description: "The type of the variable."
type: "string"
default: "string"
enum: ["string", "number"]
unit:
description: "The unit of the variable. Only works if type is a number."
type: "string"
required: false
label:
description: "A custom label to use in the frontend."
type: "string"
required: false
discrete:
description: "
Should be set to true if the value does not change continuously over time.
"
type: "boolean"
required: false
acronym:
description: "Acronym to show as value label in the frontend"
type: "string"
required: false
}
VariableInputDevice: {
title: "VariableInputDevice config"
type: "object"
extensions: ["xLink"]
properties:
variable:
description: "The variable to modify on input change"
type: "string"
type:
description: "The type of the input"
type: "string"
default: "string"
enum: ["string", "number"]
min:
description: "Minimum value for numeric values"
type: "number"
required: false
max:
description: "Maximum value for numeric values"
type: "number"
required: false
step:
description: "Step size for minus and plus buttons for numeric values"
type: "number"
default: 1
}
VariableTimeInputDevice: {
title: "VariableTimeInputDevice config"
type: "object"
extensions: ["xLink"]
properties:
variable:
description: "The variable to modify on input change"
type: "string"
min:
description: "Minimum time to be set"
type: "string"
required: false
max:
description: "Maximum time to be set"
type: "string"
required: false
step:
description: "Step size in minutes for minus and plus buttons"
type: "number"
default: 15
}
DummySwitch:
title: "DummySwitch config"
type: "object"
extensions: ["xLink", "xConfirm", "xOnLabel", "xOffLabel"]
properties: {}
DummyDimmer:
title: "DummyDimmer config"
type: "object"
extensions: ["xLink"]
properties: {}
DummyShutter:
title: "DummyShutter config"
type: "object"
extensions: ["xLink", "xConfirm", "xUpLabel", "xDownLabel", "xStoppedLabel"]
properties:
rollingTime:
description: "Approx. amount of time (in seconds) for shutter to close or open completely."
type: "number"
default: 10
DummyContactSensor:
title: "DummyContactSensor config"
type: "object"
extensions: ["xLink", "xClosedLabel", "xOpenedLabel"]
properties: {}
DummyPresenceSensor:
title: "DummyPresenceSensor config"
type: "object"
extensions: ["xLink", "xPresentLabel", "xAbsentLabel"]
properties:
autoReset:
description: """Reset the state to absent after resetTime"""
type: "boolean"
default: true
resetTime:
description: "Time after that the presence value is reseted to absent."
type: "integer"
default: 10000
DummyHeatingThermostat: {
title: "DummyHeatingThermostat config options"
type: "object"
extensions: ["xLink"]
properties:
comfyTemp:
description: "The defined comfy temperature"
type: "number"
default: 21
ecoTemp:
description: "The defined eco mode temperature"
type: "number"
default: 17
guiShowValvePosition:
description: "Show the valve position in the GUI"
type: "boolean"
default: true
guiShowModeControl:
description: "Show the mode buttons in the GUI"
type: "boolean"
default: true
guiShowPresetControl:
description: "Show the preset temperatures in the GUI"
type: "boolean"
default: true
guiShowTemperatureInput:
description: "Show the temperature input spinbox in the GUI"
type: "boolean"
default: true
}
DummyTemperatureSensor:
title: "DummyTemperatureSensor config options"
type: "object"
extensions: ["xLink","xAttributeOptions"]
properties: {}
Timer:
title: "timer config"
type: "object"
extensions: ["xLink","xAttributeOptions"]
properties: {
resolution:
description: "The interval the timer is updated in seconds"
type: "number"
default: 1
}
}