File match jsonConfig.json jsonCustom.json jsonTab.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/iobroker-json-ui/latest.json
Source https://raw.githubusercontent.com/ioBroker/json-config/main/schemas/jsonConfig.json

Validate with Lintel

npx @lintel/lintel check

Definitions

multilingual object
customFilter object

JSON schema for the ObjectBrowserCustomFilter interface from TypeScript.

Note: ioBroker-specific enums (e.g., ObjectType, CommonType) are allowed here as strings or arrays of strings; typical values are mentioned in the description.

type string | string[]

Object type(s) in Object Browser, e.g., 'state', 'channel', 'device'. Can be a string or an array of strings.

common object

Filter on common.* properties of the object (e.g., type, role, custom)

3 nested properties
type string | string[]

Data type of the state, e.g., 'number', 'string', 'boolean', 'object', 'array', 'mixed'. Accepts string or array of strings.

role string | string[]

Role(s) of the state, e.g., 'switch', 'button' or beginning of roles. String or array of strings.

custom boolean | string | string[]

Special filter for common.custom:

  • "_" => no custom set (literal underscore)
  • "_dataSources" => only data sources (history/sql/influx etc.)
  • true => any non-empty custom
  • "adapter." or "adapter.0" or general string => specific custom (or prefix) Accepts: boolean true, string or array of strings.
i18n string | boolean | object

If translations will be provided via files, e.g. in admin/i18n/de/translations.json or provide the path to the i18n folder if it's custom or provide the translations inside this attribute as an object

componentType string

Type of the element

numberProps object
type required
placeholder string

Placeholder (for text control)

min number

Minimal value

max number

Maximum value

step number

Step size for increase and decrease buttons

unit string | multilingual

Unit (could be multi-language)

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
doNotSave
staticLinkProps object
href string required

Link

type required
text string | multilingual

Static link or button

color string

Color of the link

icon string

icon for button

variant string

If button is outlined, contained or text

Values: "contained" "outlined" "text"
controlStyle object

Style of the button or control itself

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
noTranslation
confirm
button
textProps object
type required
text string | multilingual

Text input

trim boolean

If text must be trimmed or not (default = true)

readOnly boolean

Shows text as read only field

copyToClipboard boolean

Shows copy to clipboard button, but only if disabled or read-only

noClearButton boolean

Do not show a clear button

placeholder string

Placeholder (for text control)

minRows number

default is 1. Set this attribute to 2 or more if you want to have a textarea with more than one row

maxRows number

max rows of textarea. Used only if minRows > 1

time boolean

If true, the text will be shown as time. The value is readonly automatically

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
maxLength
doNotSave
tableItemBaseProps object
attr string

The linked attribute name

width number | string
title string | multilingual
filter boolean
sort boolean
customProps object
type required
name string

Component name that will be provided via props, like ComponentInstancesEditor

url string

Location of the component

i18n string | boolean | object

If translations will be provided via files, e.g. in admin/i18n/de/translations.json or provide the path to the i18n folder if it's custom or provide the translations inside this attribute as an object

bundlerType string

If module written with TypeScript, set it to module. From Admin 7.5.x

Values: "module"
custom object

Custom properties for the component as an object

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
certificatesProps object

Universal type that manages certPublic, certPrivate, certChained and leCollection attributes

type required
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
passwordProps object
type required
encrypted boolean

Is value encrypted or not (of course only for texts)

repeat boolean

Password must be compared with password

visible boolean

True if allow to view the password by toggling the view button

readOnly boolean

The read-only flag. Visible is automatically true if readOnly is true

doNotSave
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
maxLength
checkboxProps object
type required
doNotSave
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
aliveProps object
type required
instance string

Check if the instance is alive. If not defined, it will be used current instance. You can use ${data.number} pattern in the text.

textAlive string

Default text is Instance %s is alive, where %s will be replaced by ADAPTER.0

textNotAlive string

Default text is Instance %s is not alive, where %s will be replaced by ADAPTER.0

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
qrCodeProps object
data string required

The data to be encoded in the QR Code

type required
size number

The size of the QR code

fgColor string

Foreground color

bgColor string

Background color

level enum

QR code level

Values: "L" "M" "Q" "H"
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
qrCodeSendToProps object
command string required

Command to be sent to the adapter instance. The response must be a string to be encoded in the QR code.

type required
alsoDependsOn string[]

Depends on other attributes and will be re-calculated when other attributes changed

jsonData string

Data to be sent as parsable string, can contain special placeholder. E. g. '{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}'

data object

Data to be sent as JSON.

sendFirstByClick boolean | string | multilingual

If true or a string/multilingual object, the QR code will not be loaded on mount but only after a click. If a string or multilingual object is provided, it will be used as the button text.

size number

The size of the QR code

fgColor string

Foreground color

bgColor string

Background color

level enum

QR code error correction level

Values: "L" "M" "Q" "H"
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
deviceManagerProps object
type required
smallCards boolean

Show small device cards in the device manager

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
cronProps object
type required
complex boolean

Show CRON with "minutes", "seconds" and so on

simple boolean

Show simple CRON settings

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
sendToProps object
command string required

Command to be sent.

type required
color string

Optional color

Values: "primary" "secondary"
icon string

sendTo can have icon (base64)

jsonData string

Data to be sent as parsable string, can contain special placeholder. E. g. '{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}'

data object

Data to be sent as JSON.

result object

{result1: {en: 'A'}, result2: {en: 'B'}}

error object

{error1: {en: 'E'}, error2: {en: 'E2'}}

variant string

If outlined or contained

Values: "contained" "outlined"
placeholder string

Placeholder (for text control)

useNative boolean

if adapter returns result with native attribute it will be used for configuration. If saveConfig is true, the user will be requested to save the configuration

showProcess boolean

Show spinner while request is in progress

openUrl boolean

if true - open URL in new tab, if response contains attribute openUrl, like {"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}. If saveConfig is true, the user will be requested to save the configuration.

onLoaded boolean

if true - execute the button logic once initially

window string

if openUrl is true, this is a name of the new window. Could be overwritten if response consist window attribute. It is not the title of the new window!

Default:
[
  "_blank",
  "_self"
]
controlStyle object

Style of the button or control itself

timeout number

timeout for request in ms. Default: none.

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
stateProps object
oid string required

Which object ID should be taken for the controlling. The ID is without "adapter.X." prefix

type required
system boolean

IF true, the state will be taken from system.adapter.XX.I. and not from XX.I

control string

How the value of the state should be shown

Values: "text" "html" "input" "number" "slider" "switch" "select" "button"
controlled boolean

If false, the control will be read only

unit string | multilingual

Unit (could be multi-language)

trueText string

This text will be shown if the value is true

trueTextStyle object

Style of the text if the value is true

falseText string

This text will be shown if the value is false

falseTextStyle object

Style of the text if the value is false

trueImage string

This image will be shown if the value is true. It could be base64 or URL

falseImage string

This image will be shown if the value is false. It could be base64 or URL

min number

Minimum value for number or slider

max number

Maximum value for number or slider

step number

Step for number or slider

controlDelay number

Delay in ms between the change and the command

variant string

Show spinner while request is in progress

Values: "contained" "outlined" "text"
readOnly boolean

Defines if the control is read-only. Applied only to 'input', 'slider', 'select', 'button', 'switch', 'number'

foreign boolean

The 'oid' is absolute and no need to add 'adapter.X' or 'system.adapter.X.' to oid

narrow boolean

With this flag, the value will appear just after the label

blinkOnUpdate boolean

Value should blink when updated (true or color). Only texts

size

Font size: small, normal, large or number

addColon boolean

Add to label the colon at the end if not exist in label

labelIcon string

Base64 icon for label

buttonValue string | number | boolean

Optional value, that will be sent for button

showEnterButton string | boolean | multilingual

Show SET button. The value in this case will be sent only when the button is pressed. You can define the text of the button. Default text is "Set" (Only for "input", "number" or "slider")

setOnEnterKey boolean

The value in this case will be sent only when the "Enter" button is pressed. It can be combined with showEnterButton

digits number

Number of decimal places to display for numeric values in text/html mode

min=0
options string | object[]

Options for select in form ["value1", "value2", ...] or [{"value": "value", "label": "Value1"}, "value2", ...]. If not defiled, the common.states in the object must exist.

label
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
tooltip
expertMode
noTranslation
confirm
instanceProps object
adapter string required

Name of the adapter. With special name _dataSources you can get all adapters with flag common.getHistory

type required
adapters string[]

Optional list of adapters as array of strings, that should be shown. If not defined, all adapters will be shown. Only active if adapter attribute is not defined.

allowDeactivate boolean

If true. Additional option "deactivate" is shown

onlyEnabled boolean

If true. Only enabled instances will be shown

long boolean

Value will look like system.adapter.ADAPTER.0 and not ADAPTER.0

short boolean

Value will look like 0 and not ADAPTER.0

all boolean

Add to the options ALL option with value *

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
objectIdProps object
type required
types string | string[]

Filter for one of the possible types: 'channel', 'device', ... (is state by default)

root boolean

Show only this root object and its children

customFilter string | customFilter

Cannot be used together with types settings. Example: {type: ['channel', 'device']} - show only channels and devices

filterFunc string

Cannot be used together with types settings. It is a function that will be called for every object and must return true or false. Example: obj.common.type === 'number'

fillOnSelect string

Fill other config fields when an object ID is selected. Format: 'pathInObject=>attr,pathInObject=>attr(X)'. Example: 'common.name=>name,common.color=>color(X)'. Append '(X)' to overwrite non-empty fields.

placeholder string

Placeholder (for text control)

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
oauth2Props object
identifier string required

OAuth2 service identifier. Only known services are supported

type required
saveTokenIn string

State name where the token will be saved. Default is 'oauth2Tokens'. The path is relative to the adapter instance, like 'adapterName.X.oauth2Tokens'

scope string

Optional scopes divided by space, e.g. user-read-private user-read-email

ownClientId string

Optional attribute name where the user's own OAuth Client ID will be stored. If set, an input field for Client ID is shown

ownClientSecret string

Optional attribute name where the user's own OAuth Client Secret will be stored. If set, an input field for Client Secret is shown

refreshLabel string

Button label for refreshing the token

label
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
tooltip
expertMode
confirm
fileSelectorProps object
pattern string

File extension pattern. Allowed '/.ext' to show all files from sub-folders too, '.ext' to show from root folder or 'folderName/*.ext' to show all files in sub-folder folderName. Default '/.'

fileTypes enum

Type of files

Values: "audio" "image" "text"
objectID string

Object ID of type meta. You can use special placeholder '%INSTANCE%': like 'myAdapter.%INSTANCE%.files'

upload string

path, where the uploaded files will be stored. Like 'folderName'. If not defined, no upload field will be shown. To upload in the root, set this field to '/'

refresh boolean

Show refresh button near the select

maxSize string

max file size (default 2MB)

withFolder boolean

show folder name even if all files in same folder

delete boolean

Allow deletion of files

noNone boolean

Do not show 'none' option

noSize boolean

Do not show size of files

label
type
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
timePickerProps object
type required
format string

Format passed to the date picker

Default: "HH:mm:ss"
views string[]

Configure which views should be shown to the users

Default:
[
  "hours",
  "minutes",
  "seconds"
]
timeSteps object

Represent the available time steps for each view

Default:
{
  "hours": 1,
  "minutes": 5,
  "seconds": 5
}
3 nested properties
hours number
minutes number
seconds number
returnFormat string

Use fullDate or HH:mm:ss. Defaults to full date for backward compatibility reasons.

Values: "fullDate" "HH:mm:ss"
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
style
darkStyle
noMultiEdit
tooltip
expertMode
noTranslation
interfaceProps object
type required
ignoreLoopback boolean

do not show loopback interface (127.0.0.1)

ignoreInternal boolean

do not show internal interfaces (normally it is 127.0.0.1 too)

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
default
defaultFunc
onChange
noTranslation
confirm
coordinatesProps object
type required
divider string

divider between latitude and longitude. Default "," (Used if longitudeName and latitudeName are not defined)

autoInit boolean

init field with current coordinates if empty

longitudeName string

if defined, the longitude will be stored in this attribute, divider will be ignored

latitudeName string

if defined, the latitude will be stored in this attribute, divider will be ignored

useSystemName string

if defined, the checkbox with "Use system settings" will be shown and latitude, longitude will be read from system.config, a boolean will be saved to the given name

attr
label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
maxLength
hidden
hideOnlyControl
disabled
helpLink
help
style
darkStyle
validator
validatorNoSaveOnError
validatorErrorText
noMultiEdit
tooltip
expertMode
noTranslation
confirm
jsonEditorProps object
type required
validateJson boolean

if false, the text will be not validated as JSON

Default: true
allowEmpty boolean

if true, the JSON will be validated only if the value is not empty

json5 boolean

if JSON5 format allowed

doNotApplyWithError boolean

Do not allow to save the value if error in JSON or JSON5

readOnly boolean

Open the editor in read-only mode - editor can be opened but content cannot be modified

default string

Default content for JSON Editor

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
style
darkStyle
noMultiEdit
tooltip
expertMode
noTranslation
yamlEditorProps object
type required
validateYaml boolean

if false, the text will be not validated as YAML

Default: true
allowEmpty boolean

if true, the YAML will be validated only if the value is not empty

doNotApplyWithError boolean

Do not allow to save the value if error in YAML

readOnly boolean

Open the editor in read-only mode - editor can be opened but content cannot be modified

default string

Default content for YAML Editor

label
defaultSendTo
allowSaveWithError
xs
sm
md
lg
xl
newLine
hidden
hideOnlyControl
disabled
style
darkStyle
noMultiEdit
tooltip
expertMode
noTranslation
doNotSaveProp boolean

Do not save this attribute as used only for internal calculations

iconPositionProp enum

Only for panels that has icon attribute.

statesFilterProp boolean | string

Filter states for panel or tabs. If true, only states of this adapter will be used. If string, it is a regex to filter states.

allowAddByFilterProp boolean

If add allowed even if filter is set

alsoDependsOnSendProp string[]

Depends on other attributes and will be re-calculated when other attributes changed

noInternalProp boolean

Do not show internal IP addresses

tableItems object[]

Items of the table

topLevelProperties
type string

Control type

Values: "tabs" "panel"
$schema string

Specify a JSON schema

i18n string | boolean | object

If translations will be provided via files, e.g. in admin/i18n/de/translations.json or provide the path to the i18n folder if it's custom or provide the translations inside this attribute as an object

items object

Consists of objects representing e.g. a single tab