[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"multilingual":{"type":"object","required":["en"],"patternProperties":{"en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn":{"type":"string"}},"additionalProperties":false},"i18n":{"description":"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","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"object","patternProperties":{"^.+":{"$ref":"#/definitions/multilingual"}}}]},"componentType":{"description":"Type of the element","type":"string","enum":["accordion","alive","autocomplete","autocompleteSendTo","certificate","certificates","checkLicense","checkbox","chips","color","coordinates","cron","custom","datePicker","deviceManager","divider","file","fileSelector","func","header","icon","image","imageSendTo","infoBox","instance","interface","ip","jsonEditor","language","number","oauth2","objectId","panel","password","pattern","port","qrCode","room","select","selectSendTo","sendTo","setState","slider","state","staticImage","staticInfo","staticLink","staticText","table","text","textSendTo","timePicker","user","uuid"]},"numberProps":{"properties":{"placeholder":{"description":"Placeholder (for text control)","type":"string"},"min":{"description":"Minimal value","type":"number"},"max":{"description":"Maximum value","type":"number"},"step":{"description":"Step size for increase and decrease buttons","type":"number"},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"doNotSave":true},"additionalProperties":false,"required":["type"]},"staticLinkProps":{"properties":{"href":{"description":"Link","type":"string"},"text":{"description":"Static link or button","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"color":{"description":"Color of the link","type":"string"},"icon":{"description":"icon for button","type":"string"},"variant":{"description":"If button is outlined, contained or text","type":"string","enum":["contained","outlined","text"]},"controlStyle":{"description":"Style of the button or control itself","type":"object"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"noTranslation":true,"confirm":true,"button":true},"required":["type","href"]},"textProps":{"properties":{"text":{"description":"Text input","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"trim":{"description":"If text must be trimmed or not (default = true)","type":"boolean"},"readOnly":{"type":"boolean","description":"Shows text as read only field"},"copyToClipboard":{"type":"boolean","description":"Shows copy to clipboard button, but only if disabled or read-only"},"noClearButton":{"type":"boolean","description":"Do not show a clear button"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"minRows":{"description":"default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row","type":"number"},"maxRows":{"description":"max rows of textarea. Used only if `minRows` > 1","type":"number"},"time":{"description":"If true, the text will be shown as time. The value is readonly automatically","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"maxLength":true,"doNotSave":true},"additionalProperties":false,"required":["type"]},"tableItemBaseProps":{"properties":{"attr":{"description":"The linked attribute name","type":"string"},"width":{"type":["number","string"]},"title":{"oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"filter":{"type":"boolean"},"sort":{"type":"boolean"}},"additionalProperties":true},"customProps":{"properties":{"name":{"description":"Component name that will be provided via props, like ComponentInstancesEditor","type":"string"},"url":{"description":"Location of the component","type":"string"},"i18n":{"$ref":"#/definitions/i18n"},"bundlerType":{"type":"string","description":"If module written with TypeScript, set it to `module`. From Admin 7.5.x","enum":["module"]},"custom":{"type":"object","description":"Custom properties for the component as an object"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"certificatesProps":{"description":"Universal type that manages `certPublic`, `certPrivate`, `certChained` and `leCollection` attributes","properties":{"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"passwordProps":{"properties":{"encrypted":{"description":"Is value encrypted or not (of course only for texts)","type":"boolean"},"repeat":{"description":"Password must be compared with password","type":"boolean"},"visible":{"description":"True if allow to view the password by toggling the view button","type":"boolean"},"readOnly":{"description":"The read-only flag. Visible is automatically true if readOnly is true","type":"boolean"},"doNotSave":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"maxLength":true},"additionalProperties":false,"required":["type"]},"checkboxProps":{"properties":{"doNotSave":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"aliveProps":{"properties":{"instance":{"description":"Check if the instance is alive. If not defined, it will be used current instance. You can use `${data.number}` pattern in the text.","type":"string"},"textAlive":{"description":"Default text is `Instance %s is alive`, where `%s` will be replaced by `ADAPTER.0`","type":"string"},"textNotAlive":{"description":"Default text is `Instance %s is not alive`, where `%s` will be replaced by `ADAPTER.0`","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"qrCodeProps":{"required":["type","data"],"additionalProperties":false,"properties":{"data":{"description":"The data to be encoded in the QR Code","type":"string"},"size":{"description":"The size of the QR code","type":"number"},"fgColor":{"description":"Foreground color","type":"string"},"bgColor":{"description":"Background color","type":"string"},"level":{"description":"QR code level","enum":["L","M","Q","H"]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true}},"deviceManagerProps":{"properties":{"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"cronProps":{"properties":{"complex":{"description":"Show CRON with \"minutes\", \"seconds\" and so on","type":"boolean"},"simple":{"description":"Show simple CRON settings","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["complex"]},{"required":["simple"]}]},"sendToProps":{"properties":{"command":{"description":"Command to be sent.","type":"string"},"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"icon":{"description":"sendTo can have icon (base64)","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"result":{"description":"{result1: {en: 'A'}, result2: {en: 'B'}}","type":"object"},"error":{"description":"{error1: {en: 'E'}, error2: {en: 'E2'}}","type":"object"},"variant":{"description":"If outlined or contained","type":"string","enum":["contained","outlined"]},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"useNative":{"description":"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","type":"boolean"},"showProcess":{"description":"Show spinner while request is in progress","type":"boolean"},"openUrl":{"description":"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.","type":"boolean"},"onLoaded":{"description":"if true - execute the button logic once initially","type":"boolean"},"window":{"description":"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!","type":"string","default":["_blank","_self"]},"controlStyle":{"description":"Style of the button or control itself","type":"object"},"timeout":{"description":"timeout for request in ms. Default: none.","type":"number"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","command"]},"stateProps":{"properties":{"oid":{"description":"Which object ID should be taken for the controlling. The ID is without \"adapter.X.\" prefix","type":"string"},"system":{"description":"IF true, the state will be taken from system.adapter.XX.I. and not from XX.I","type":"boolean"},"control":{"description":"How the value of the state should be shown","type":"string","enum":["text","html","input","number","slider","switch","select","button"]},"controlled":{"description":"If false, the control will be read only","type":"boolean"},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"trueText":{"description":"This text will be shown if the value is true","type":"string"},"trueTextStyle":{"description":"Style of the text if the value is true","type":"object"},"falseText":{"description":"This text will be shown if the value is false","type":"string"},"falseTextStyle":{"description":"Style of the text if the value is false","type":"object"},"trueImage":{"description":"This image will be shown if the value is true. It could be base64 or URL","type":"string"},"falseImage":{"description":"This image will be shown if the value is false. It could be base64 or URL","type":"string"},"min":{"description":"Minimum value for number or slider","type":"number"},"max":{"description":"Maximum value for number or slider","type":"number"},"step":{"description":"Step for number or slider","type":"number"},"controlDelay":{"description":"Delay in ms between the change and the command","type":"number"},"variant":{"description":"Show spinner while request is in progress","type":"string","enum":["contained","outlined","text"]},"readOnly":{"description":"Defines if the control is read-only. Applied only to 'input', 'slider', 'select', 'button', 'switch', 'number'","type":"boolean"},"foreign":{"description":"The 'oid' is absolute and no need to add 'adapter.X' or 'system.adapter.X.' to oid","type":"boolean"},"narrow":{"description":"With this flag, the value will appear just after the label","type":"boolean"},"blinkOnUpdate":{"description":"Value should blink when updated (true or color). Only texts","type":"boolean"},"size":{"description":"Font size: small, normal, large or number","size":{"description":"Font size","oneOf":[{"default":"normal","type":"string","enum":["small","normal","large"]},{"type":"number"}]}},"addColon":{"description":"Add to label the colon at the end if not exist in label","type":"boolean"},"labelIcon":{"description":"Base64 icon for label","type":"string"},"buttonValue":{"description":"Optional value, that will be sent for button","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"showEnterButton":{"description":"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\")","oneOf":[{"type":"string"},{"type":"boolean"},{"$ref":"#/definitions/multilingual"}]},"setOnEnterKey":{"description":"The value in this case will be sent only when the \"Enter\" button is pressed. It can be combined with `showEnterButton`","type":"boolean"},"options":{"description":"Options for `select` in form `[\"value1\", \"value2\", ...]` or `[{\"value\": \"value\", \"label\": \"Value1\"}, \"value2\", ...]`. If not defiled, the `common.states` in the object must exist.","type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"label":{"oneOf":[{"description":"Value label","type":"string"},{"$ref":"#/definitions/multilingual"}]},"value":{"oneOf":[{"type":"number"},{"type":"string"}]},"hidden":{"type":"boolean"},"color":{"type":"string","description":"Color of the option"}},"required":["label","value"]}]}},"label":true,"type":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","oid"]},"instanceProps":{"properties":{"adapter":{"description":"Name of the adapter. With special name _dataSources you can get all adapters with flag common.getHistory","type":"string"},"adapters":{"description":"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.","type":"array","items":{"type":"string"}},"allowDeactivate":{"description":"If true. Additional option \"deactivate\" is shown","type":"boolean"},"onlyEnabled":{"description":"If true. Only enabled instances will be shown","type":"boolean"},"long":{"description":"Value will look like system.adapter.ADAPTER.0 and not ADAPTER.0","type":"boolean"},"short":{"description":"Value will look like 0 and not ADAPTER.0","type":"boolean"},"all":{"description":"Add to the options ALL option with value *","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","adapter"]},"objectIdProps":{"properties":{"types":{"description":"Filter for one of the possible types: 'channel', 'device', ... (is state by default)","oneOf":[{"default":"state","type":"string","enum":["state","channel","device","enum","host","adapter","instance","meta","config","script","user","group","chart","folder"]},{"type":"array","maxItems":1,"items":{"type":"string","enum":["state","channel","device","enum","host","adapter","instance","meta","config","script","user","group","chart","folder"]}}]},"root":{"description":"Show only this root object and its children","type":"boolean"},"customFilter":{"description":"Cannot be used together with `types` settings. Example: `{type: ['channel', 'device']}` - show only channels and devices","type":"string"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"oauth2Props":{"properties":{"saveTokenIn":{"description":"State name where the token will be saved. Default is 'oauth2Tokens'. The path is relative to the adapter instance, like 'adapterName.X.oauth2Tokens'","type":"string"},"identifier":{"description":"OAuth2 service identifier. Only known services are supported","type":"string"},"scope":{"description":"Optional scopes divided by space, e.g. `user-read-private user-read-email`","type":"string"},"refreshLabel":{"description":"Button label for refreshing the token","type":"string"},"label":true,"type":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"tooltip":true,"expertMode":true,"confirm":true},"additionalProperties":false,"required":["type","identifier"]},"fileSelectorProps":{"properties":{"pattern":{"type":"string","description":"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":["audio","image","text"],"description":"Type of files"},"objectID":{"type":"string","description":"Object ID of type meta. You can use special placeholder '%INSTANCE%': like 'myAdapter.%INSTANCE%.files'"},"upload":{"type":"string","description":"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":{"type":"boolean","description":"Show refresh button near the select"},"maxSize":{"type":"string","description":"max file size (default 2MB)"},"withFolder":{"type":"boolean","description":"show folder name even if all files in same folder"},"delete":{"type":"boolean","description":"Allow deletion of files"},"noNone":{"type":"boolean","description":"Do not show 'none' option"},"noSize":{"type":"boolean","description":"Do not show size of files"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":[]},"timePickerProps":{"properties":{"format":{"description":"Format passed to the date picker","type":"string","default":"HH:mm:ss"},"views":{"description":"Configure which views should be shown to the users","type":"array","items":{"type":"string","enum":["hours","minutes","seconds"]},"default":["hours","minutes","seconds"]},"timeSteps":{"description":"Represent the available time steps for each view","type":"object","additionalProperties":false,"default":{"hours":1,"minutes":5,"seconds":5},"properties":{"hours":{"type":"number"},"minutes":{"type":"number"},"seconds":{"type":"number"}}},"returnFormat":{"description":"Use `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons.","type":"string","enum":["fullDate","HH:mm:ss"]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true},"additionalProperties":false,"required":["type"]},"interfaceProps":{"properties":{"ignoreLoopback":{"description":"do not show loopback interface (127.0.0.1)","type":"boolean"},"ignoreInternal":{"description":"do not show internal interfaces (normally it is 127.0.0.1 too)","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"coordinatesProps":{"properties":{"divider":{"description":"divider between latitude and longitude. Default \",\" (Used if longitudeName and latitudeName are not defined)","type":"string"},"autoInit":{"description":"init field with current coordinates if empty","type":"boolean"},"longitudeName":{"description":"if defined, the longitude will be stored in this attribute, divider will be ignored","type":"string"},"latitudeName":{"description":"if defined, the latitude will be stored in this attribute, divider will be ignored","type":"string"},"useSystemName":{"description":"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","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"maxLength":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]},"jsonEditorProps":{"properties":{"validateJson":{"description":"if false, the text will be not validated as JSON","type":"boolean","default":true},"allowEmpty":{"type":"boolean","description":"if true, the JSON will be validated only if the value is not empty"},"json5":{"type":"boolean","description":"if JSON5 format allowed"},"doNotApplyWithError":{"type":"boolean","description":"Do not allow to save the value if error in JSON or JSON5"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true},"additionalProperties":false,"required":["type"]},"doNotSaveProp":{"type":"boolean","description":"Do not save this attribute as used only for internal calculations"},"iconPositionProp":{"description":"Only for panels that has `icon` attribute.","default":"start","enum":["bottom","end","start","top"]},"allowAddByFilterProp":{"type":"boolean","description":"If add allowed even if filter is set","default":false},"alsoDependsOnSendProp":{"description":"Depends on other attributes and will be re-calculated when other attributes changed","type":"array","items":{"type":"string"}},"noInternalProp":{"description":"Do not show internal IP addresses","type":"boolean"},"tableItems":{"description":"Items of the table","type":"array","items":{"type":"object","required":["type"],"allOf":[{"if":{"properties":{"type":{"const":"language"}}},"then":{"allOf":[{"properties":{"system":{"description":"Allow the usage of the system language from system.config as default","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","system"]}]}},{"if":{"properties":{"type":{"const":"autocompleteSendTo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"freeSolo":{"description":"Set freeSolo to true so the textbox can contain any arbitrary value.","type":"boolean"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"maxLength":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"selectSendTo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"manual":{"description":"Allow manual editing. Without Dropdown","type":"boolean"},"doNotSave":{"$ref":"#/definitions/doNotSaveProp"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"noTranslation":true,"multiple":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"textSendTo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"container":{"description":"div, text","type":"string"},"copyToClipboard":{"description":"If true, show button","type":"boolean"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"noTranslation":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"imageSendTo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"container":{"description":"div, text","type":"string"},"copyToClipboard":{"description":"If true, show button","type":"boolean"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"noTranslation":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"header"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"size":{"description":"Size of the header: h1-h5","type":"number","minimum":1,"maximum":5},"text":{"description":"Header text","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","size","text"]}]}},{"if":{"properties":{"type":{"const":"color"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"divider"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"height":{"description":"Optional height","type":"number"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"fileSelector"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"pattern":{"type":"string","description":"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":["audio","image","text"],"description":"Type of files"},"objectID":{"type":"string","description":"Object ID of type meta. You can use special placeholder '%INSTANCE%': like 'myAdapter.%INSTANCE%.files'"},"upload":{"type":"string","description":"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":{"type":"boolean","description":"Show refresh button near the select"},"maxSize":{"type":"string","description":"max file size (default 2MB)"},"withFolder":{"type":"boolean","description":"show folder name even if all files in same folder"},"delete":{"type":"boolean","description":"Allow deletion of files"},"noNone":{"type":"boolean","description":"Do not show 'none' option"},"noSize":{"type":"boolean","description":"Do not show size of files"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"icon"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"crop":{"description":"If true, allow user to crop the image (only for non svg)","type":"boolean"},"square":{"description":"Width must be equal to height or crop must allow only square as shape","type":"boolean"},"maxWidth":{"description":"Maximum width","type":"number"},"maxHeight":{"description":"Maximum height","type":"number"},"maxSize":{"description":"Maximum size","type":"number"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"panel"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"items":{"$ref":"#/definitions/topLevelProperties/properties/items"},"icon":{"description":"Panel can have icon (base64)","type":"string"},"iconPosition":{"$ref":"#/definitions/iconPositionProp"},"#include":{"description":"Include other JSON or JSON5 file. Here is the name of the file with extension. E.g. 'options.jsonConfig.json' for 'anyName.jsonConfig.json5'","type":"string","pattern":"^.+\\.jsonConfig(.json|.json5)$"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"innerStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["items"]},{"required":["#include"]}]}]}},{"if":{"properties":{"type":{"const":"image"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"accept":{"description":"HTML accept attribute, like { 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }","type":"object"},"crop":{"description":"If true, allow user to crop the image (only for non svg)","type":"boolean"},"square":{"description":"Width must be equal to height or crop must allow only square as shape","type":"boolean"},"maxWidth":{"description":"'Maximum width","type":"number"},"maxHeight":{"description":"'Maximum height","type":"number"},"maxSize":{"description":"'Maximum size","type":"number"},"filename":{"description":"Name of the file","type":"string"},"base64":{"description":"If true, the image will be saved as data-url in attribute, elsewise as binary in file storage","type":"boolean"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"sendTo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"command":{"description":"Command to be sent.","type":"string"},"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"icon":{"description":"sendTo can have icon (base64)","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"result":{"description":"{result1: {en: 'A'}, result2: {en: 'B'}}","type":"object"},"error":{"description":"{error1: {en: 'E'}, error2: {en: 'E2'}}","type":"object"},"variant":{"description":"If outlined or contained","type":"string","enum":["contained","outlined"]},"openUrl":{"description":"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.","type":"boolean"},"onLoaded":{"description":"if true - execute the button logic once initially","type":"boolean"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"useNative":{"description":"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","type":"boolean"},"showProcess":{"description":"Show spinner while request is in progress","type":"boolean"},"attr":true,"label":true,"type":true,"width":true,"defaultSendTo":true,"allowSaveWithError":true,"title":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}]}},{"if":{"properties":{"type":{"const":"password"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"encrypted":{"description":"Is value encrypted or not (of course only for texts)","type":"boolean"},"repeat":{"description":"Password must be compared with password","type":"boolean"},"visible":{"description":"True if allow to view the password by toggling the view button","type":"boolean"},"attr":true,"width":true,"sort":true,"title":true,"filter":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"file"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"filename":{"description":"Name of the file","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","filename"]}]}},{"if":{"properties":{"type":{"const":"slider"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"min":{"description":"Minimal value","type":"number","default":0},"max":{"description":"Maximum value","type":"number","default":100},"step":{"description":"Step size","type":"number","default":1},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"custom"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"$ref":"#/definitions/customProps"}]}},{"if":{"properties":{"type":{"const":"checkbox"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"enum":["number","port"]}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"placeholder":{"description":"Placeholder (for text control)","type":"string"},"min":{"description":"Minimal value","type":"number"},"max":{"description":"Maximum value","type":"number"},"step":{"description":"Step size for increase and decrease buttons","type":"number"},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"doNotSave":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"alive"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"$ref":"#/definitions/aliveProps"}]}},{"if":{"properties":{"type":{"const":"autocomplete"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"placeholder":{"description":"Placeholder (for text control)","type":"string"},"freeSolo":{"description":"Set freeSolo to true so the textbox can contain any arbitrary value.","type":"boolean"},"options":{"description":"Options which can be completed. [\"value1\", \"value2\", ...] or [{\"value\": \"value\", \"label\": \"Value1\"}, \"value2\", ...]","type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"label":{"description":"Label of the option","oneOf":[{"description":"Value label","type":"string"},{"$ref":"#/definitions/multilingual"}]},"value":{"description":"Value of the option","oneOf":[{"type":"number"},{"type":"string"}]},"hidden":{"type":"boolean"},"color":{"description":"Color of the option","type":"string"}},"required":["label","value"]}]}},"attr":true,"width":true,"title":true,"filter":true,"sort":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","options"]}]}},{"if":{"properties":{"type":{"const":"cron"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"complex":{"description":"Show CRON with \"minutes\", \"seconds\" and so on","type":"boolean"},"simple":{"description":"Show simple CRON settings","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["complex"]},{"required":["simple"]}]}},{"if":{"properties":{"type":{"const":"text"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"text":{"description":"Text input","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"trim":{"description":"If text must be trimmed or not (default = true)","type":"boolean"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"minRows":{"description":"default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row","type":"number"},"maxRows":{"description":"max rows of textarea. Used only if `minRows` > 1","type":"number"},"readOnly":{"type":"boolean","description":"Shows text as read only field"},"noClearButton":{"type":"boolean","description":"Do not show a clear button"},"validateJson":{"type":"boolean","description":"if true, the text will be validated as JSON"},"allowEmpty":{"type":"boolean","description":"if true, the JSON will be validated only if the value is not empty"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"maxLength":true,"doNotSave":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"select"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"options":{"description":"Options which can be selected","type":"array","items":{"type":"object","required":["label","value"],"additionalProperties":false,"properties":{"label":{"description":"Label"},"value":{"description":"Value"},"hidden":{"type":"string","description":"JS function that could use `native.attribute` for calculation"},"group":{"description":"Is it a group or not","type":"boolean"},"color":{"type":"string"}}}},"multiple":{"description":"If true, multiple values can be selected","type":"boolean"},"showAllValues":{"description":"Show item even if no label was found for it (by multiple), default=`true`","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"pattern"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"pattern":{"description":"Read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)","type":"string"},"copyToClipboard":{"description":"If true, show copy button.","type":"boolean"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","pattern"]}]}},{"if":{"properties":{"type":{"const":"setState"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"icon":{"description":"setState can have icon (base64)","type":"string"},"id":{"description":"State ID, e.g. 'info.test'","type":"string"},"ack":{"description":"ack-flag of the state","type":"boolean","default":false},"val":{"description":"State value to set"},"okText":{"description":"Alert that will be shown by pressing the button","type":"string"},"error":{"description":"{error1: {en: 'E'}, error2: {en: 'E2'}}","type":"object"},"variant":{"description":"If outlined or contained","type":"string","enum":["contained","outlined"]},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","id","val"]}]}},{"if":{"properties":{"type":{"const":"qrCode"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"data":{"description":"The data to be encoded in the QR Code","type":"string"},"size":{"description":"The size of the QR code","type":"number"},"fgColor":{"description":"Foreground color","type":"string"},"bgColor":{"description":"Background color","type":"string"},"level":{"description":"QR code level","enum":["L","M","Q","H"]},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","data"]}]}},{"if":{"properties":{"type":{"const":"func"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"short":{"description":"no system.func.","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"room"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"short":{"description":"no system.room.","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"user"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"short":{"description":"no system.user.","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"ip"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"listenOnAllPorts":{"description":"Add 0.0.0.0 to option","type":"boolean"},"onlyIp4":{"description":"Show only IP4 addresses","type":"boolean"},"onlyIp6":{"description":"Show only IP6 addresses","type":"boolean"},"noInternal":{"$ref":"#/definitions/noInternalProp"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"certificate"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"certType":{"description":"Type of the certificate","type":"string","enum":["public","private","chained"]},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","certType"]}]}},{"if":{"properties":{"type":{"const":"certificates"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"$ref":"#/definitions/certificatesProps"}]}},{"if":{"properties":{"type":{"const":"staticLink"}}},"then":{"additionalProperties":false,"required":["type"],"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"$ref":"#/definitions/staticLinkProps"}],"properties":{"href":true,"text":true,"color":true,"icon":true,"variant":true,"attr":true,"width":true,"title":true,"filter":true,"sort":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true}}},{"if":{"properties":{"type":{"const":"staticText"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"text":{"description":"Static text like description","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["text"]},{"required":["label"]}]}},{"if":{"properties":{"type":{"const":"staticInfo"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"label":true,"type":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"tooltip":true,"expertMode":true,"noTranslation":true,"data":{"description":"Value to be shown","type":["object","string","number","boolean"]},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"narrow":{"description":"With this flag, the value will appear just after the label","type":"boolean"},"addColon":{"description":"Add to label the colon at the end if not exist in label","type":"boolean"},"blinkOnUpdate":{"description":"Value should blink when updated (true or color)","type":["boolean","string"]},"blink":{"description":"Value should blink continuously (true or color)","type":["boolean","string"]},"styleLabel":{"description":"React CSS Styles for label","type":"object"},"styleValue":{"description":"React CSS Styles for value","type":"object"},"styleUnit":{"description":"React CSS Styles for unit","type":"object"},"copyToClipboard":{"description":"Show copy to clipboard button for value","type":"boolean"},"labelIcon":{"description":"Base64 icon for label","type":"string"},"highlight":{"description":"Highlight line on mouse over","type":"boolean"},"booleanAsCheckbox":{"description":"Show boolean values as checkbox","type":"boolean"},"html":{"description":"Show string values as HTML","type":"boolean"},"size":{"description":"Font size","oneOf":[{"default":"normal","type":"string","enum":["small","normal","large"]},{"type":"number"}]}},"additionalProperties":false,"required":["type","label","data"]}},{"if":{"properties":{"type":{"const":"instance"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"adapter":{"description":"Name of the adapter. With special name _dataSources you can get all adapters with flag common.getHistory","type":"string"},"adapters":{"description":"Optional list of adapters, that should be shown. If not defined, all adapters will be shown. Only active if adapter attribute is not defined.","type":"array","items":{"type":"string"}},"allowDeactivate":{"description":"If true. Additional option \"deactivate\" is shown","type":"boolean"},"onlyEnabled":{"description":"If true. Only enabled instances will be shown","type":"boolean"},"long":{"description":"Value will look like system.adapter.ADAPTER.0 and not ADAPTER.0","type":"boolean"},"short":{"description":"Value will look like 0 and not ADAPTER.0","type":"boolean"},"all":{"description":"Add to the options ALL option with value *","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","adapter"]}},{"if":{"properties":{"type":{"const":"staticImage"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"src":{"description":"Name of picture (from admin directory)","type":"string"},"href":{"description":"Link","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"chips"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"delimiter":{"description":"Delimiter for options. If no delimiter, the setting will be stored as array","type":"string"},"attr":true,"width":true,"title":true,"filter":true,"sort":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}]}},{"if":{"properties":{"type":{"const":"objectId"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"width":true,"title":true,"filter":true,"sort":true,"types":{"description":"Filter for one of the possible types: 'channel', 'device', ... (is state by default)","oneOf":[{"default":"state","type":"string","enum":["state","channel","device","enum","host","adapter","instance","meta","config","script","user","group","chart","folder"]},{"type":"array","maxItems":1,"items":{"type":"string","enum":["state","channel","device","enum","host","adapter","instance","meta","config","script","user","group","chart","folder"]}}]},"root":{"description":"Show only this root object and its children","type":"boolean"},"customFilter":{"description":"Cannot be used together with `types` settings. Example: `{type: ['channel', 'device']}` - show only channels and devices","type":"string"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"checkLicense"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"uuid":{"description":"If UUID must be checked too","type":"boolean"},"version":{"description":"Check version","type":"boolean"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"noTranslation":true},"additionalProperties":false}]}},{"if":{"properties":{"type":{"const":"uuid"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"},{"properties":{"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"noTranslation":true},"additionalProperties":false}]}},{"if":{"properties":{"type":{"const":"datePicker"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"timePicker"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"format":{"description":"Format passed to the date picker","type":"string","default":"HH:mm:ss"},"views":{"description":"Configure which views should be shown to the users","type":"array","items":{"type":"string","enum":["hours","minutes","seconds"]},"default":["hours","minutes","seconds"]},"timeSteps":{"description":"Represent the available time steps for each view","type":"object","additionalProperties":false,"default":{"hours":1,"minutes":5,"seconds":5},"properties":{"hours":{"type":"number"},"minutes":{"type":"number"},"seconds":{"type":"number"}}},"returnFormat":{"description":"Use `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons.","type":"string","enum":["fullDate","HH:mm:ss"]},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"coordinates"}}},"then":{"allOf":[{"$ref":"#/definitions/tableItemBaseProps"}],"properties":{"divider":{"description":"divider between latitude and longitude. Default \",\" (Used if longitudeName and latitudeName are not defined)","type":"string"},"autoInit":{"description":"init field with current coordinates if empty","type":"boolean"},"longitudeName":{"description":"if defined, the longitude will be stored in this attribute, divider will be ignored","type":"string"},"latitudeName":{"description":"if defined, the latitude will be stored in this attribute, divider will be ignored","type":"string"},"useSystemName":{"description":"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","type":"string"},"attr":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"maxLength":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}}],"properties":{"label":{"oneOf":[{"description":"Label of tab","type":"string"},{"$ref":"#/definitions/multilingual"}]},"type":{"$ref":"#/definitions/componentType"},"defaultSendTo":{"description":"Command to request initial value from running instance","type":"string"},"xs":{"description":"width in 1/12 of screen on very small screens","type":"number"},"sm":{"description":"Width in 1/12 of screen on small screen","type":"number"},"md":{"description":"width in 1/12 of screen on middle screens","type":"number"},"lg":{"description":"width in 1/12 of screen on large screens","type":"number"},"xl":{"description":"width in 1/12 of screen on extra large screens","type":"number"},"newLine":{"description":"Should be shown from new line","type":"boolean"},"hidden":{"description":"JS function that could use 'native.attribute' for calculation","type":"string"},"hideOnlyControl":{"description":"If hidden the place will be shown, but no control","type":"boolean"},"disabled":{"description":"JS function that could use 'native.attribute' for calculation","type":"string"},"helpLink":{"description":"href to help","type":"string"},"help":{"oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"style":{"description":"CSS style in react notation: 'radiusBorder' and not 'radius-border'","type":"object"},"darkStyle":{"description":"CSS style for dark mode in react notation: 'radiusBorder' and not 'radius-border'","type":"object"},"validator":{"description":"JS function: true no error, false - error","type":"string"},"validatorNoSaveOnError":{"description":"True if save must be disabled by errors","type":"boolean"},"validatorErrorText":{"type":"string","description":"Text to show if validator fails"},"showSecondAddAt":{"description":"The number of lines from which the second add button at the bottom of the table will be shown. Default 5","type":"number"},"showFirstAddOnTop":{"type":"boolean","description":"Show first plus button on top of the first column and not on the left."},"tooltip":{"description":"Optional tooltip","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"default":{"description":"Default value"},"onChange":{"type":"object","additionalProperties":false,"properties":{"calculateFunc":{"description":"JS function: that calculates value","type":"string"},"ignoreOwnChanges":{"description":"Do not trigger onChange event if changed value of this attribute","type":"boolean"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"}}},"doNotSave":{"$ref":"#/definitions/doNotSaveProp"},"defaultFunc":{"description":"JS function to calculate default value","oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"func":{"description":"JS function: that calculates value","type":"string"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"}}}]},"noTranslation":{"description":"Do not translate selects or other options (not for help, label or placeholder)","type":"boolean"},"confirm":{"description":"Confirm dialog","type":"object","additionalProperties":false,"properties":{"condition":{"description":"JS function: true show confirm dialog","type":"string"},"text":{"description":"Text of confirmation dialog","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"title":{"description":"Title of confirmation dialog","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"ok":{"description":"Text for 'OK' button","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"cancel":{"description":"Text for 'cancel' button","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"type":{"type":"string","enum":["info","warning","error","none"]},"alsoDependsOn":{"description":"Trigger confirm dialog if one of the components changed.","type":"array","items":{"type":"string"}}}},"noMultiEdit":{"description":"(only custom) if this flag set to true, this field will not be shown if user selected more than one object for edit","type":"boolean"},"maxLength":{"description":"max length of text in field","type":"number"},"button":{"description":"show link as button","type":"boolean"}}}},"topLevelProperties":{"properties":{"type":{"type":"string","description":"Control type","enum":["tabs","panel"]},"$schema":{"description":"Specify a JSON schema","type":"string"},"i18n":{"$ref":"#/definitions/i18n"},"items":{"description":"Consists of objects representing e.g. a single tab","type":"object","patternProperties":{"^.+":{"description":"Object representing e.g. a tab","type":"object","allOf":[{"if":{"properties":{"type":{"const":"language"}}},"then":{"properties":{"system":{"description":"Allow the usage of the system language from system.config as default","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","system"]}},{"if":{"properties":{"type":{"const":"autocompleteSendTo"}}},"then":{"properties":{"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"freeSolo":{"description":"Set freeSolo to true so the textbox can contain any arbitrary value.","type":"boolean"},"placeholder":{"description":"Placeholder (for text control)","type":"string"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"maxLength":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"selectSendTo"}}},"then":{"properties":{"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"manual":{"description":"Allow manual editing. Without Dropdown","type":"boolean"},"doNotSave":{"$ref":"#/definitions/doNotSaveProp"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"noTranslation":true,"multiple":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"textSendTo"}}},"then":{"properties":{"container":{"description":"div, text","type":"string"},"copyToClipboard":{"description":"If true, show button","type":"boolean"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"noTranslation":true,"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"imageSendTo"}}},"then":{"properties":{"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"},"command":{"description":"Command to be sent.","type":"string"},"jsonData":{"description":"Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'","type":"string"},"data":{"description":"Data to be sent as JSON.","type":"object"},"label":true,"type":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"confirm":true},"additionalProperties":false,"required":["type","command"]}},{"if":{"properties":{"type":{"const":"header"}}},"then":{"properties":{"size":{"description":"Size of the header: h1-h5","type":"number","minimum":1,"maximum":5},"text":{"description":"Header text","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","size","text"]}},{"if":{"properties":{"type":{"const":"color"}}},"then":{"properties":{"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"divider"}}},"then":{"properties":{"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"height":{"description":"Optional height","type":"number"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"icon"}}},"then":{"properties":{"crop":{"description":"If true, allow user to crop the image (only for non svg)","type":"boolean"},"square":{"description":"Width must be equal to height or crop must allow only square as shape","type":"boolean"},"maxWidth":{"description":"Maximum width","type":"number"},"maxHeight":{"description":"Maximum height","type":"number"},"maxSize":{"description":"Maximum size","type":"number"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"panel"}}},"then":{"properties":{"items":{"$ref":"#/definitions/topLevelProperties/properties/items"},"#include":{"description":"Include other JSON or JSON5 file. Here is the name of the file with extension. E.g. 'options.jsonConfig.json' for 'anyName.jsonConfig.json5'","type":"string","pattern":"^.+\\.jsonConfig(.json|.json5)$"},"icon":{"description":"Panel can have icon (base64)","type":"string"},"iconPosition":{"$ref":"#/definitions/iconPositionProp"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"innerStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["items"]},{"required":["#include"]}]}},{"if":{"properties":{"type":{"const":"image"}}},"then":{"properties":{"accept":{"description":"HTML accept attribute, like { 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }","type":"object"},"crop":{"description":"If true, allow user to crop the image (only for non svg)","type":"boolean"},"square":{"description":"Width must be equal to height or crop must allow only square as shape","type":"boolean"},"maxWidth":{"description":"'Maximum width","type":"number"},"maxHeight":{"description":"'Maximum height","type":"number"},"maxSize":{"description":"'Maximum size","type":"number"},"filename":{"description":"Name of the file","type":"string"},"base64":{"description":"If true, the image will be saved as data-url in attribute, elsewise as binary in file storage","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"sendTo"}}},"then":{"$ref":"#/definitions/sendToProps"}},{"if":{"properties":{"type":{"const":"state"}}},"then":{"$ref":"#/definitions/stateProps"}},{"if":{"properties":{"type":{"const":"password"}}},"then":{"$ref":"#/definitions/passwordProps"}},{"if":{"properties":{"type":{"const":"file"}}},"then":{"properties":{"filename":{"description":"Name of the file","type":"string"},"label":true,"type":true,"title":true,"filter":true,"sort":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","filename"]}},{"if":{"properties":{"type":{"const":"slider"}}},"then":{"properties":{"min":{"description":"Minimal value","type":"number","default":0},"max":{"description":"Maximum value","type":"number","default":100},"step":{"description":"Step size","type":"number","default":1},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"custom"}}},"then":{"$ref":"#/definitions/customProps"}},{"if":{"properties":{"type":{"const":"checkbox"}}},"then":{"$ref":"#/definitions/checkboxProps"}},{"if":{"properties":{"type":{"const":"fileSelector"}}},"then":{"$ref":"#/definitions/fileSelectorProps"}},{"if":{"properties":{"type":{"enum":["number","port"]}}},"then":{"$ref":"#/definitions/numberProps"}},{"if":{"properties":{"type":{"const":"alive"}}},"then":{"$ref":"#/definitions/aliveProps"}},{"if":{"properties":{"type":{"const":"autocomplete"}}},"then":{"properties":{"placeholder":{"description":"Placeholder (for text control)","type":"string"},"freeSolo":{"description":"Set freeSolo to true so the textbox can contain any arbitrary value.","type":"boolean"},"options":{"description":"Options which can be completed. [\"value1\", \"value2\", ...] or [{\"value\": \"value\", \"label\": \"Value1\"}, \"value2\", ...]","type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"label":{"oneOf":[{"description":"Value label","type":"string"},{"$ref":"#/definitions/multilingual"}]},"value":{"oneOf":[{"type":"number"},{"type":"string"}]},"hidden":{"type":"boolean"},"color":{"type":"string"}},"required":["label","value"]}]}},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","options"]}},{"if":{"properties":{"type":{"const":"qrCode"}}},"then":{"$ref":"#/definitions/qrCodeProps"}},{"if":{"properties":{"type":{"const":"cron"}}},"then":{"$ref":"#/definitions/cronProps"}},{"if":{"properties":{"type":{"const":"deviceManager"}}},"then":{"$ref":"#/definitions/deviceManagerProps"}},{"if":{"properties":{"type":{"const":"text"}}},"then":{"$ref":"#/definitions/textProps"}},{"if":{"properties":{"type":{"const":"select"}}},"then":{"properties":{"options":{"description":"Options which can be selected","type":"array","items":{"type":"object","required":["label","value"],"additionalProperties":false,"properties":{"label":{"description":"Label"},"value":{"description":"Value"},"hidden":{"type":"string","description":"JS function that could use `native.attribute` for calculation"},"group":{"description":"Is this a group","type":"boolean"},"color":{"type":"string"}}}},"multiple":{"description":"If true, multiple values can be selected","type":"boolean"},"showAllValues":{"description":"Show item even if no label was found for it (by multiple), default=`true`","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"table"}}},"then":{"properties":{"noDelete":{"description":"If delete or add disabled, If noDelete is false, add, delete and move up/down should work","type":"boolean"},"uniqueColumns":{"description":"Specify the 'attr' name of columns which need to be unique","type":"array","items":{"type":"string"}},"compact":{"description":"Show table in compact mode","type":"boolean"},"export":{"description":"If export button should be shown. Export as csv file.","type":"boolean"},"import":{"description":"If import button should be shown. Import from csv file.","type":"boolean"},"clone":{"description":"If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.","type":"boolean"},"encryptedAttributes":{"description":"These items will be encrypted before saving with simple (not SHA) encryption method","type":"array","items":{"type":"string"}},"allowAddByFilter":{"$ref":"#/definitions/allowAddByFilterProp"},"items":{"$ref":"#/definitions/tableItems"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"showSecondAddAt":true},"required":["type","items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"pattern"}}},"then":{"properties":{"pattern":{"description":"Read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)","type":"string"},"copyToClipboard":{"description":"If true, show copy button.","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","pattern"]}},{"if":{"properties":{"type":{"const":"setState"}}},"then":{"properties":{"color":{"description":"Optional color","type":"string","enum":["primary","secondary"]},"icon":{"description":"setState can have icon (base64)","type":"string"},"id":{"description":"State ID, e.g. 'info.test'","type":"string"},"ack":{"description":"ack-flag of the state","type":"boolean","default":false},"val":{"description":"State value to set"},"okText":{"description":"Alert that will be shown by pressing the button","type":"string"},"error":{"description":"{error1: {en: 'E'}, error2: {en: 'E2'}}","type":"object"},"variant":{"description":"If outlined or contained","type":"string","enum":["contained","outlined"]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","id","val"]}},{"if":{"properties":{"type":{"const":"func"}}},"then":{"properties":{"short":{"description":"no system.func.","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"room"}}},"then":{"properties":{"short":{"description":"no system.room.","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"user"}}},"then":{"properties":{"short":{"description":"no system.user.","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"ip"}}},"then":{"properties":{"listenOnAllPorts":{"description":"Add 0.0.0.0 to option","type":"boolean"},"onlyIp4":{"description":"Show only IP4 addresses","type":"boolean"},"onlyIp6":{"description":"Show only IP6 addresses","type":"boolean"},"noInternal":{"$ref":"#/definitions/noInternalProp"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"certificate"}}},"then":{"properties":{"certType":{"description":"Type of the certificate","type":"string","enum":["public","private","chained"]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type","certType"]}},{"if":{"properties":{"type":{"const":"certificates"}}},"then":{"$ref":"#/definitions/certificatesProps"}},{"if":{"properties":{"type":{"const":"staticLink"}}},"then":{"$ref":"#/definitions/staticLinkProps"}},{"if":{"properties":{"type":{"const":"staticText"}}},"then":{"properties":{"text":{"description":"Static text like description","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"],"oneOf":[{"required":["text"]},{"required":["label"]}]}},{"if":{"properties":{"type":{"const":"infoBox"}}},"then":{"properties":{"text":{"description":"Text to be shown","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"title":{"description":"Title of the info box","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"boxType":{"description":"Type of the box","type":"string","enum":["info","warning","error","ok"]},"closable":{"description":"If the box is closeable","type":"boolean"},"closed":{"description":"Use together with `closeable: true`. If the box is closed or not. In this case, it will be controlled from outside","type":"boolean"},"iconPosition":{"description":"Position of the icon","type":"string","enum":["top","middle"]},"type":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"noTranslation":true,"style":true,"expertMode":true},"additionalProperties":false,"required":["type","text"]}},{"if":{"properties":{"type":{"const":"staticInfo"}}},"then":{"properties":{"label":true,"type":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"tooltip":true,"expertMode":true,"noTranslation":true,"data":{"description":"Value to be shown","type":["object","string","number","boolean"]},"unit":{"description":"Unit (could be multi-language)","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"narrow":{"description":"With this flag, the value will appear just after the label","type":"boolean"},"addColon":{"description":"Add to label the colon at the end if not exist in label","type":"boolean"},"blinkOnUpdate":{"description":"Value should blink when updated (true or color)","type":["boolean","string"]},"blink":{"description":"Value should blink continuously (true or color)","type":["boolean","string"]},"styleLabel":{"description":"React CSS Styles for label","type":"object"},"styleValue":{"description":"React CSS Styles for value","type":"object"},"styleUnit":{"description":"React CSS Styles for unit","type":"object"},"copyToClipboard":{"description":"Show copy to clipboard button for value","type":"boolean"},"labelIcon":{"description":"Base64 icon for label","type":"string"},"highlight":{"description":"Highlight line on mouse over","type":"boolean"},"booleanAsCheckbox":{"description":"Show boolean values as checkbox","type":"boolean"},"html":{"description":"Show string values as HTML","type":"boolean"},"size":{"description":"Font size","oneOf":[{"default":"normal","type":"string","enum":["small","normal","large"]},{"type":"number"}]}},"additionalProperties":false,"required":["type","label","data"]}},{"if":{"properties":{"type":{"const":"instance"}}},"then":{"$ref":"#/definitions/instanceProps"}},{"if":{"properties":{"type":{"const":"staticImage"}}},"then":{"properties":{"src":{"description":"Name of picture (from admin directory)","type":"string"},"href":{"description":"Link","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"chips"}}},"then":{"properties":{"delimiter":{"description":"Delimiter for options. If no delimiter, the setting will be stored as array","type":"string"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true},"additionalProperties":false,"required":["type"]}},{"if":{"properties":{"type":{"const":"objectId"}}},"then":{"$ref":"#/definitions/objectIdProps"}},{"if":{"properties":{"type":{"const":"oauth2"}}},"then":{"$ref":"#/definitions/oauth2Props"}},{"if":{"properties":{"type":{"const":"checkLicense"}}},"then":{"properties":{"uuid":{"description":"If UUID must be checked too","type":"boolean"},"version":{"description":"Check version","type":"boolean"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"noTranslation":true},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"datePicker"}}},"then":{"properties":{"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"noTranslation":true},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"timePicker"}}},"then":{"$ref":"#/definitions/timePickerProps"}},{"if":{"properties":{"type":{"const":"uuid"}}},"then":{"properties":{"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"style":true,"darkStyle":true,"noMultiEdit":true,"noTranslation":true},"additionalProperties":false}},{"if":{"properties":{"type":{"const":"coordinates"}}},"then":{"$ref":"#/definitions/coordinatesProps"}},{"if":{"properties":{"type":{"const":"jsonEditor"}}},"then":{"$ref":"#/definitions/jsonEditorProps"}},{"if":{"properties":{"type":{"const":"interface"}}},"then":{"$ref":"#/definitions/interfaceProps"}},{"if":{"properties":{"type":{"const":"accordion"}}},"then":{"properties":{"titleAttr":{"description":"Title shown on the accordion","type":"string"},"noDelete":{"description":"If delete or add disabled, If noDelete is false, add, delete and move up/down should work","type":"boolean"},"clone":{"description":"If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.","type":"boolean"},"items":{"$ref":"#/definitions/tableItems"},"label":true,"type":true,"defaultSendTo":true,"allowSaveWithError":true,"xs":true,"sm":true,"md":true,"lg":true,"xl":true,"newLine":true,"hidden":true,"hideOnlyControl":true,"disabled":true,"helpLink":true,"help":true,"style":true,"darkStyle":true,"validator":true,"validatorNoSaveOnError":true,"validatorErrorText":true,"noMultiEdit":true,"tooltip":true,"expertMode":true,"default":true,"defaultFunc":true,"onChange":true,"noTranslation":true,"confirm":true,"showSecondAddAt":true},"required":["type","items"],"additionalProperties":false}},{"if":{"properties":{"type":{"const":"state"}}},"then":{"$ref":"#/definitions/stateProps"}}],"required":["type"],"properties":{"label":{"oneOf":[{"description":"Label of tab","type":"string"},{"$ref":"#/definitions/multilingual"}]},"type":{"$ref":"#/definitions/componentType"},"defaultSendTo":{"description":"Command to request initial value from running instance","type":"string"},"allowSaveWithError":{"description":"Allow saving of configuration even if the instance is offline. Used with defaultSendTo","type":"boolean"},"xs":{"description":"width in 1/12 of screen on very small screens","type":"number"},"sm":{"description":"Width in 1/12 of screen on small screen","type":"number"},"md":{"description":"width in 1/12 of screen on middle screens","type":"number"},"lg":{"description":"width in 1/12 of screen on large screens","type":"number"},"xl":{"description":"width in 1/12 of screen on extra large screens","type":"number"},"newLine":{"description":"Should be shown from new line","type":"boolean"},"hidden":{"description":"JS function that could use 'native.attribute' for calculation","type":"string"},"hideOnlyControl":{"description":"If hidden the place will be shown, but no control","type":"boolean"},"disabled":{"description":"JS function that could use 'native.attribute' for calculation","type":"string"},"helpLink":{"description":"href to help","type":"string"},"help":{"oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"style":{"description":"CSS style in react notation: 'radiusBorder' and not 'radius-border'","type":"object"},"darkStyle":{"description":"CSS style for dark mode in react notation: 'radiusBorder' and not 'radius-border'","type":"object"},"innerStyle":{"description":"CSS style in react notation: 'radiusBorder' and not 'radius-border'","type":"object"},"validator":{"description":"JS function: true no error, false - error","type":"string"},"validatorNoSaveOnError":{"description":"True if save must be disabled by errors","type":"boolean"},"validatorErrorText":{"type":"string","description":"Text to show if validator fails"},"showSecondAddAt":{"description":"Number of lines from which the second add button at the bottom of the table will be shown. Default 5","type":"number"},"tooltip":{"description":"Optional tooltip","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"default":{"description":"Default value"},"onChange":{"type":"object","additionalProperties":false,"properties":{"calculateFunc":{"description":"JS function: that calculates value","type":"string"},"ignoreOwnChanges":{"description":"Do not trigger onChange event if changed value of this attribute","type":"boolean"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"}}},"doNotSave":{"$ref":"#/definitions/doNotSaveProp"},"defaultFunc":{"description":"JS function to calculate default value","oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"func":{"description":"JS function: that calculates value","type":"string"},"alsoDependsOn":{"$ref":"#/definitions/alsoDependsOnSendProp"}}}]},"noTranslation":{"description":"Do not translate selects or other options (not for help, label or placeholder)","type":"boolean"},"confirm":{"description":"Confirm dialog","type":"object","additionalProperties":false,"properties":{"condition":{"description":"JS function: true show confirm dialog","type":"string"},"text":{"description":"Text of confirmation dialog","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"title":{"description":"Title of confirmation dialog","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"ok":{"description":"Text for 'OK' button","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"cancel":{"description":"Text for 'cancel' button","oneOf":[{"type":"string"},{"$ref":"#/definitions/multilingual"}]},"type":{"type":"string","enum":["info","warning","error","none"]},"alsoDependsOn":{"description":"Trigger confirm dialog if on of the components changed.","type":"array","items":{"type":"string"}}}},"noMultiEdit":{"description":"(only custom) if this flag set to true, this field will not be shown if user selected more than one object for edit","type":"boolean"},"expertMode":{"description":"If this flag set to true, this field will be shown only if the expert mode is true","type":"boolean"},"maxLength":{"description":"max length of text in field","type":"number"},"button":{"description":"show link as button","type":"boolean"}}}}}}}},"if":{"properties":{"type":{"const":"tabs"}}},"then":{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":true,"$schema":true,"i18n":true,"items":true,"iconPosition":true,"tabsStyle":true},"allOf":[{"$ref":"#/definitions/topLevelProperties"},{"properties":{"iconPosition":{"$ref":"#/definitions/iconPositionProp"},"tabsStyle":{"description":"CSS styles in ReactJS notation: 'radiusBorder' and not 'radius-border'","type":"object"}}}]},"else":{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":true,"$schema":true,"i18n":true,"items":true},"$ref":"#/definitions/topLevelProperties"}}
</schema>

[User] Provide a JSON object that satisfies the schema "jsonConfig". Here are the required top‑level fields: none (all optional). Return only the valid JSON 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

Type of the element

accordion alive autocomplete autocompleteSendTo certificate certificates checkLicense checkbox chips color coordinates cron custom datePicker deviceManager divider file fileSelector func header icon image imageSendTo infoBox instance interface ip jsonEditor language number oauth2 objectId panel password pattern port qrCode room select selectSendTo sendTo setState slider state staticImage staticInfo staticLink staticText table text textSendTo timePicker user uuid

Placeholder (for text control)

Minimal value

Maximum value

Step size for increase and decrease buttons

Unit (could be multi-language)

Link

Static link or button

Color of the link

icon for button

If button is outlined, contained or text

Style of the button or control itself

Text input

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

Shows text as read only field

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

Do not show a clear button

Placeholder (for text control)

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

max rows of textarea. Used only if `minRows` > 1

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

The linked attribute name

Component name that will be provided via props, like ComponentInstancesEditor

Location of the component

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

Custom properties for the component as an object

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

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

Password must be compared with password

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

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

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

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

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

The data to be encoded in the QR Code

The size of the QR code

Foreground color

Background color

QR code level

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

Show simple CRON settings

Command to be sent.

Optional color

sendTo can have icon (base64)

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

Data to be sent as JSON.

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

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

If outlined or contained

Placeholder (for text control)

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

Show spinner while request is in progress

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.

if true - execute the button logic once initially

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!

Style of the button or control itself

timeout for request in ms. Default: none.

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

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

How the value of the state should be shown

text html input number slider switch select button

If false, the control will be read only

Unit (could be multi-language)

This text will be shown if the value is true

Style of the text if the value is true

This text will be shown if the value is false

Style of the text if the value is false

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

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

Minimum value for number or slider

Maximum value for number or slider

Step for number or slider

Delay in ms between the change and the command

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

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

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

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

Font size: small, normal, large or number

Font size

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

Base64 icon for label

Optional value, that will be sent for button

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")

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

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

Value label

Color of the option

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

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.

If true. Additional option "deactivate" is shown

If true. Only enabled instances will be shown

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

Value will look like 0 and not ADAPTER.0

Add to the options ALL option with value *

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

state channel device enum host adapter instance meta config script user group chart folder

Show only this root object and its children

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

Placeholder (for text control)

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

OAuth2 service identifier. Only known services are supported

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

Button label for refreshing the token

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 '**/*.*'

Type of files

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

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 '/'

Show refresh button near the select

max file size (default 2MB)

show folder name even if all files in same folder

Allow deletion of files

Do not show 'none' option

Do not show size of files

Format passed to the date picker

Configure which views should be shown to the users

Represent the available time steps for each view

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

do not show loopback interface (127.0.0.1)

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

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

init field with current coordinates if empty

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

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

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

if false, the text will be not validated as JSON

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

if JSON5 format allowed

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

Do not save this attribute as used only for internal calculations

Only for panels that has `icon` attribute.

If add allowed even if filter is set

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

Do not show internal IP addresses

Items of the table

Allow the usage of the system language from system.config as default

Command to be sent.

Data to be sent as JSON.

Set freeSolo to true so the textbox can contain any arbitrary value.

Placeholder (for text control)

Command to be sent.

Data to be sent as JSON.

Allow manual editing. Without Dropdown

div, text

If true, show button

Command to be sent.

Data to be sent as JSON.

div, text

If true, show button

Command to be sent.

Data to be sent as JSON.

Size of the header: h1-h5

Header text

Optional color

Optional height

Type of files

Show refresh button near the select

max file size (default 2MB)

show folder name even if all files in same folder

Allow deletion of files

Do not show 'none' option

Do not show size of files

If true, allow user to crop the image (only for non svg)

Width must be equal to height or crop must allow only square as shape

Maximum width

Maximum height

Maximum size

Panel can have icon (base64)

Include other JSON or JSON5 file. Here is the name of the file with extension. E.g. 'options.jsonConfig.json' for 'anyName.jsonConfig.json5'

HTML accept attribute, like { 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }

'Maximum width

'Maximum height

'Maximum size

Name of the file

If true, the image will be saved as data-url in attribute, elsewise as binary in file storage

Command to be sent.

Optional color

sendTo can have icon (base64)

Data to be sent as JSON.

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

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

If outlined or contained

if true - execute the button logic once initially

Placeholder (for text control)

Show spinner while request is in progress

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

Password must be compared with password

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

Name of the file

Minimal value

Maximum value

Step size

Placeholder (for text control)

Minimal value

Maximum value

Step size for increase and decrease buttons

Unit (could be multi-language)

Placeholder (for text control)

Set freeSolo to true so the textbox can contain any arbitrary value.

Options which can be completed. ["value1", "value2", ...] or [{"value": "value", "label": "Value1"}, "value2", ...]

Label of the option

Value label

Value of the option

Color of the option

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

Show simple CRON settings

Text input

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

Placeholder (for text control)

max rows of textarea. Used only if `minRows` > 1

Shows text as read only field

Do not show a clear button

if true, the text will be validated as JSON

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

Options which can be selected

Label

Value

JS function that could use `native.attribute` for calculation

Is it a group or not

If true, multiple values can be selected

Show item even if no label was found for it (by multiple), default=`true`

Read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)

If true, show copy button.

Optional color

setState can have icon (base64)

State ID, e.g. 'info.test'

ack-flag of the state

State value to set

Alert that will be shown by pressing the button

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

If outlined or contained

The data to be encoded in the QR Code

The size of the QR code

Foreground color

Background color

QR code level

no system.func.

no system.room.

no system.user.

Add 0.0.0.0 to option

Show only IP4 addresses

Show only IP6 addresses

Type of the certificate

Static text like description

Value to be shown

Unit (could be multi-language)

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

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

Value should blink when updated (true or color)

Value should blink continuously (true or color)

React CSS Styles for label

React CSS Styles for value

React CSS Styles for unit

Show copy to clipboard button for value

Base64 icon for label

Highlight line on mouse over

Show boolean values as checkbox

Show string values as HTML

Font size

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

If true. Additional option "deactivate" is shown

If true. Only enabled instances will be shown

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

Value will look like 0 and not ADAPTER.0

Add to the options ALL option with value *

Name of picture (from admin directory)

Link

Delimiter for options. If no delimiter, the setting will be stored as array

Show only this root object and its children

Placeholder (for text control)

If UUID must be checked too

Check version

Format passed to the date picker

Configure which views should be shown to the users

Represent the available time steps for each view

init field with current coordinates if empty

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

Label of tab

Command to request initial value from running instance

width in 1/12 of screen on very small screens

Width in 1/12 of screen on small screen

width in 1/12 of screen on middle screens

width in 1/12 of screen on large screens

width in 1/12 of screen on extra large screens

Should be shown from new line

JS function that could use 'native.attribute' for calculation

If hidden the place will be shown, but no control

href to help

CSS style in react notation: 'radiusBorder' and not 'radius-border'

CSS style for dark mode in react notation: 'radiusBorder' and not 'radius-border'

JS function: true no error, false - error

True if save must be disabled by errors

Text to show if validator fails

The number of lines from which the second add button at the bottom of the table will be shown. Default 5

Show first plus button on top of the first column and not on the left.

Optional tooltip

Default value

JS function: that calculates value

Do not trigger onChange event if changed value of this attribute

JS function to calculate default value

JS function: that calculates value

Do not translate selects or other options (not for help, label or placeholder)

Confirm dialog

JS function: true show confirm dialog

Text of confirmation dialog

Title of confirmation dialog

Text for 'OK' button

Text for 'cancel' button

Trigger confirm dialog if one of the components changed.

(only custom) if this flag set to true, this field will not be shown if user selected more than one object for edit

max length of text in field

show link as button

Control type

Specify a JSON schema

Consists of objects representing e.g. a single tab

Object representing e.g. a tab

Allow the usage of the system language from system.config as default

Command to be sent.

Data to be sent as JSON.

Set freeSolo to true so the textbox can contain any arbitrary value.

Placeholder (for text control)

Command to be sent.

Data to be sent as JSON.

Allow manual editing. Without Dropdown

div, text

If true, show button

Command to be sent.

Data to be sent as JSON.

Command to be sent.

Data to be sent as JSON.

Size of the header: h1-h5

Header text

Optional color

Optional height

If true, allow user to crop the image (only for non svg)

Width must be equal to height or crop must allow only square as shape

Maximum width

Maximum height

Maximum size

Panel can have icon (base64)

'Maximum width

'Maximum height

'Maximum size

Name of the file

Name of the file

Minimal value

Maximum value

Step size

Unit (could be multi-language)

Placeholder (for text control)

Value label

Options which can be selected

Label

Value

JS function that could use `native.attribute` for calculation

Is this a group

If true, multiple values can be selected

Show item even if no label was found for it (by multiple), default=`true`

If delete or add disabled, If noDelete is false, add, delete and move up/down should work

Specify the 'attr' name of columns which need to be unique

Show table in compact mode

If export button should be shown. Export as csv file.

If import button should be shown. Import from csv file.

If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.

These items will be encrypted before saving with simple (not SHA) encryption method

If true, show copy button.

Optional color

setState can have icon (base64)

State ID, e.g. 'info.test'

ack-flag of the state

State value to set

Alert that will be shown by pressing the button

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

If outlined or contained

no system.func.

no system.room.

no system.user.

Add 0.0.0.0 to option

Show only IP4 addresses

Show only IP6 addresses

Type of the certificate

Static text like description

Text to be shown

Title of the info box

Type of the box

If the box is closeable

Use together with `closeable: true`. If the box is closed or not. In this case, it will be controlled from outside

Position of the icon

Value to be shown

Unit (could be multi-language)

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

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

Value should blink when updated (true or color)

Value should blink continuously (true or color)

React CSS Styles for label

React CSS Styles for value

React CSS Styles for unit

Show copy to clipboard button for value

Base64 icon for label

Highlight line on mouse over

Show boolean values as checkbox

Show string values as HTML

Font size

Name of picture (from admin directory)

Link

Delimiter for options. If no delimiter, the setting will be stored as array

If UUID must be checked too

Check version

Title shown on the accordion

Label of tab

Command to request initial value from running instance

Allow saving of configuration even if the instance is offline. Used with defaultSendTo

width in 1/12 of screen on very small screens

Width in 1/12 of screen on small screen

width in 1/12 of screen on middle screens

width in 1/12 of screen on large screens

width in 1/12 of screen on extra large screens

Should be shown from new line

JS function that could use 'native.attribute' for calculation

If hidden the place will be shown, but no control

href to help

CSS style in react notation: 'radiusBorder' and not 'radius-border'

CSS style for dark mode in react notation: 'radiusBorder' and not 'radius-border'

JS function: true no error, false - error

True if save must be disabled by errors

Text to show if validator fails

Number of lines from which the second add button at the bottom of the table will be shown. Default 5

Optional tooltip

Default value

JS function: that calculates value

Do not trigger onChange event if changed value of this attribute

JS function to calculate default value

JS function: that calculates value

Do not translate selects or other options (not for help, label or placeholder)

Confirm dialog

JS function: true show confirm dialog

Text of confirmation dialog

Title of confirmation dialog

Text for 'OK' button

Text for 'cancel' button

Trigger confirm dialog if on of the components changed.

If this flag set to true, this field will be shown only if the expert mode is true

max length of text in field

show link as button

CSS styles in ReactJS notation: 'radiusBorder' and not 'radius-border'

Provide a JSON object that satisfies the schema "jsonConfig". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.