{
  "i18n": true,
  "type": "panel",
  "items": {
    "debounceTime": {
      "newLine": true,
      "type": "number",
      "sm": 6,
      "min": 0,
      "max": 86400000,
      "defaultFunc": "customObj && customObj.common && customObj.common.type === 'number' ? instanceObj.native.debounceTime : 0",
      "label": "De-bounce time",
      "help": "De-bounce interval(ms)"
    },
    "blockTime": {
      "type": "number",
      "sm": 6,
      "min": 0,
      "max": 86400000,
      "label": "Block time",
      "defaultFunc": "(data.debounce || data.debounce === '0' || data.debounce === 0) ? parseInt(data.debounce, 10) : instanceObj.native.blockTime",
      "help": "blockTime"
    },
    "changesOnly": {
      "newLine": true,
      "type": "checkbox",
      "label": "log changes only",
      "defaultFunc": "customObj && customObj.common && customObj.common.type === 'number'",
      "sm": 6
    },
    "changesRelogInterval": {
      "newLine": true,
      "type": "number",
      "label": "log changes interval(s)",
      "min": 0,
      "max": 86400000,
      "help": "0 = disabled",
      "defaultFunc": "instanceObj.native.changesRelogInterval",
      "sm": 6,
      "disabled": "!data.changesOnly"
    },
    "changesMinDelta": {
      "type": "number",
      "label": "log changes minimal delta",
      "min": 0,
      "defaultFunc": "customObj && customObj.common && customObj.common.type === 'number' ? instanceObj.native.changesMinDelta : 0",
      "default": 0,
      "sm": 6,
      "help": "0 = disable delta check",
      "disabled": "!data.changesOnly"
    },
    "ignoreBelowNumber": {
      "newLine": true,
      "type": "text",
      "label": "ignore values below x",
      "hidden": "!customObj || !customObj.common || customObj.common.type !== 'number'",
      "defaultFunc": "data.ignoreBelowZero ? '0' : ''",
      "validator": "((data.ignoreBelowNumber || '').toString().length === 0) || isFinite(data.ignoreBelowNumber)",
      "validatorErrorText": "Enter a number or leave the field empty",
      "validatorNoSaveOnError": true,
      "sm": 6
    },
    "ignoreAboveNumber": {
      "type": "text",
      "label": "ignore values above x",
      "hidden": "!customObj || !customObj.common || customObj.common.type !== 'number'",
      "validator": "((data.ignoreAboveNumber || '').toString().length === 0) || isFinite(data.ignoreAboveNumber)",
      "validatorErrorText": "Enter a number or leave the field empty",
      "validatorNoSaveOnError": true,
      "sm": 6
    },
    "ignoreZero": {
      "newLine": true,
      "type": "checkbox",
      "label": "ignore zero or null values",
      "sm": 6
    },
    "disableSkippedValueLogging": {
      "newLine": true,
      "label": "Disable charting optimized logging of skipped values",
      "type": "checkbox",
      "sm": 12,
      "defaultFunc": "instanceObj.native.disableSkippedValueLogging || false"
    },
    "storageType": {
      "newLine": true,
      "type": "select",
      "label": "Store as",
      "options": [
        {
          "value": "",
          "label": "Automatic"
        },
        {
          "value": "String",
          "label": "String"
        },
        {
          "value": "Number",
          "label": "Number"
        },
        {
          "value": "Boolean",
          "label": "Boolean"
        }
      ],
      "default": "",
      "sm": 6
    },
    "aliasId": {
      "newLine": true,
      "type": "text",
      "label": "aliasId",
      "maxLength": 255,
      "default": "",
      "sm": 12,
      "help": "Alias Info"
    },
    "round": {
      "newLine": true,
      "type": "text",
      "label": "Round real to",
      "sm": 6,
      "validator": "((data.round || '').toString().length === 0) || isFinite(data.round)",
      "validatorErrorText": "Enter a number or leave the field empty",
      "validatorNoSaveOnError": true,
      "hidden": "!customObj || !customObj.common || customObj.common.type !== 'number' || (data.storageType && data.storageType !== 'Number')"
    },
    "enableDebugLogs": {
      "newLine": true,
      "label": "Enable enhanced debug logs for the datapoint",
      "type": "checkbox",
      "sm": 12,
      "defaultFunc": "instanceObj.native.enableDebugLogs || false"
    },
    "debounce": {
      "type": "number",
      "label": "De-bounce time",
      "help": "De-bounce interval(ms)",
      "min": 0,
      "max": 86400000,
      "defaultFunc": "customObj && customObj.common && customObj.common.type === 'number' ? instanceObj.native.debounce : 0",
      "hidden": "true",
      "sm": 6
    },
    "ignoreBelowZero": {
      "type": "checkbox",
      "label": "ignore values below zero",
      "hidden": "true",
      "sm": 6
    }
  }
}
