iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1,666 lines (1,665 loc) • 51 kB
JSON
{
"i18n": true,
"type": "panel",
"items": {
"entity": {
"newLine": true,
"type": "select",
"label": "Entity type",
"options": [
{
"value": "sensor",
"label": "sensor"
},
{
"value": "binary_sensor",
"label": "binary_sensor"
},
{
"value": "light",
"label": "light"
},
{
"value": "input_boolean",
"label": "input_boolean"
},
{
"value": "input_select",
"label": "input_select"
},
{
"value": "input_number",
"label": "input_number"
},
{
"value": "input_text",
"label": "input_text"
},
{
"value": "input_datetime",
"label": "input_datetime"
},
{
"value": "switch",
"label": "switch"
},
{
"value": "camera",
"label": "camera"
},
{
"value": "calendar",
"label": "calendar"
},
{
"value": "climate",
"label": "climate"
},
{
"value": "alarm_control_panel",
"label": "alarm"
},
{
"value": "fan",
"label": "fan"
},
{
"value": "cover",
"label": "cover"
},
{
"value": "lock",
"label": "lock"
},
{
"value": "media_player",
"label": "media_player"
},
{
"value": "vacuum",
"label": "vacuum"
},
{
"value": "weather",
"label": "weather"
},
{
"value": "water_heater",
"label": "water_heater"
},
{
"value": "group",
"label": "group"
},
{
"value": "automation",
"label": "automation"
},
{
"value": "scene",
"label": "scene"
},
{
"value": "script",
"label": "script"
},
{
"value": "timer",
"label": "timer"
},
{
"value": "sun",
"label": "sun"
},
{
"value": "todo",
"label": "todolist"
},
{
"value": "datetime",
"label": "datetime"
},
{
"value": "device_tracker",
"label": "device_tracker"
},
{
"value": "person",
"label": "person"
}
],
"defaultFunc": "!customObj.common ? 'sensor' : customObj.common.write ? (customObj.common.states ? 'input_select' : customObj.common.role === 'date' ? 'input_datetime' : customObj.common.type === 'boolean' ? 'input_boolean' : customObj.common.type === 'number' ? 'input_number' : 'input_text') : (customObj.common.type === 'boolean' ? 'binary_sensor' : 'sensor');",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3
},
"name": {
"type": "text",
"label": "Entity name",
"help": "(unique for one entity type)",
"defaultFunc": "(customObj && customObj._id) ? customObj._id.split('.').slice(2).join('_').replace(/Ü/g, 'UE').replace(/Ä/g, 'AE').replace(/Ö/g, 'OE').replace(/ü/g, 'ue').replace(/ä/g, 'ae').replace(/ö/g, 'oe').replace(/ß/g, 'ss').replace(/[^a-zA-Z0-9А-Яа-я_]/g, '_') : ''",
"xs": 12,
"sm": 12,
"md": 8,
"lg": 9
},
"_entityId": {
"newLine": true,
"type": "pattern",
"pattern": "${data.entity}.${data.name}",
"copyToClipboard": true,
"disabled": "true",
"label": "labelCompleteEntity",
"xs": 12,
"sm": 12,
"md": 12,
"lg": 12
},
"_entityIdError": {
"newLine": true,
"type": "staticText",
"text": "errorLabelEntityChars",
"style": {
"color": "red"
},
"hidden": "!/[^a-zA-Z0-9А-Яа-я_]/.test(data.name)",
"sm": 12
},
"_entityIdEmptyError": {
"newLine": true,
"type": "staticText",
"text": "errorLabelEntityEmpty",
"style": {
"color": "red"
},
"hidden": "data.name",
"sm": 12
},
"_entityDuplicateError": {
"newLine": true,
"container": "div",
"type": "textSendTo",
"alsoDependsOn": [
"entity",
"name"
],
"command": "checkIdForDuplicates",
"style": {
"color": "red"
},
"jsonData": "{\"entity\": \"${data.entity}\", \"name\": \"${data.name}\", \"objectId\": \"${customObj._id}\"}",
"hidden": "data._entityDuplicateError"
},
"_trackerStates": {
"newLine": true,
"type": "panel",
"hidden": "!['device_tracker', 'person'].includes(data.entity)",
"items": {
"_trackerHeading": {
"type": "header",
"size": 1,
"text": "Location & presence states",
"help": "Pick the ioBroker states that provide presence and location for this tracker / person."
},
"state_presence": {
"type": "objectId",
"label": "Presence state",
"help": "Boolean (true = home) or a zone-name string. If empty, presence is derived from the coordinates vs zone.home.",
"xs": 12,
"sm": 12,
"md": 6,
"lg": 6
},
"state_gps": {
"newLine": true,
"type": "objectId",
"label": "GPS state (\"lat;lon\")",
"help": "A single state holding \"latitude;longitude\". Use this OR the separate latitude/longitude states.",
"xs": 12,
"sm": 12,
"md": 6,
"lg": 6
},
"state_latitude": {
"newLine": true,
"type": "objectId",
"label": "Latitude state",
"hidden": "!!data.state_gps",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_longitude": {
"type": "objectId",
"label": "Longitude state",
"hidden": "!!data.state_gps",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_gps_accuracy": {
"newLine": true,
"type": "objectId",
"label": "GPS accuracy state",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_battery": {
"type": "objectId",
"label": "Battery level state",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"source_type": {
"type": "select",
"label": "Source type",
"help": "How the location is determined (device_tracker only).",
"default": "gps",
"hidden": "data.entity === 'person'",
"options": [
{
"value": "gps",
"label": "gps"
},
{
"value": "router",
"label": "router"
},
{
"value": "bluetooth",
"label": "bluetooth"
},
{
"value": "bluetooth_le",
"label": "bluetooth_le"
}
],
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"attr_entity_picture": {
"newLine": true,
"type": "text",
"label": "Picture URL",
"help": "Fixed picture URL (entity_picture). Leave empty to use a state instead.",
"xs": 12,
"sm": 12,
"md": 6,
"lg": 6
},
"state_entity_picture": {
"type": "objectId",
"label": "Picture URL state",
"help": "A state that holds the picture URL. Wins over the fixed URL above.",
"xs": 12,
"sm": 12,
"md": 6,
"lg": 6
}
}
},
"_coverStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'cover'",
"items": {
"_coverHeading": {
"type": "header",
"size": 1,
"text": "Cover states",
"help": "Pick the ioBroker states that control this cover (e.g. an automatic window). Map a level state to SET (with ACTUAL for feedback), or use OPEN/CLOSE/STOP buttons."
},
"state_SET": {
"type": "objectId",
"label": "Level (SET)",
"help": "Numeric level state to set the position (0-100).",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ACTUAL": {
"type": "objectId",
"label": "Level feedback (ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_STOP": {
"type": "objectId",
"label": "Stop button (STOP)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_OPEN": {
"newLine": true,
"type": "objectId",
"label": "Open button (OPEN)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_CLOSE": {
"type": "objectId",
"label": "Close button (CLOSE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TILT_SET": {
"newLine": true,
"type": "objectId",
"label": "Tilt level (TILT_SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TILT_ACTUAL": {
"type": "objectId",
"label": "Tilt feedback (TILT_ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TILT_OPEN": {
"newLine": true,
"type": "objectId",
"label": "Tilt open button (TILT_OPEN)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TILT_CLOSE": {
"type": "objectId",
"label": "Tilt close button (TILT_CLOSE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TILT_STOP": {
"type": "objectId",
"label": "Tilt stop button (TILT_STOP)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_lockStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'lock'",
"items": {
"_lockHeading": {
"type": "header",
"size": 1,
"text": "Lock states",
"help": "Pick the ioBroker states for this lock."
},
"state_SET": {
"type": "objectId",
"label": "Lock / unlock (SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ACTUAL": {
"type": "objectId",
"label": "State feedback (ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_OPEN": {
"type": "objectId",
"label": "Open / latch (OPEN)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_mediaStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'media_player'",
"items": {
"_mediaHeading": {
"type": "header",
"size": 1,
"text": "Media player states",
"help": "Pick the ioBroker states for this media player. Map only what your device provides."
},
"state_STATE": {
"type": "objectId",
"label": "Play state (STATE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_POWER": {
"type": "objectId",
"label": "Power (POWER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_PLAY": {
"newLine": true,
"type": "objectId",
"label": "Play (PLAY)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_PAUSE": {
"type": "objectId",
"label": "Pause (PAUSE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_STOP": {
"type": "objectId",
"label": "Stop (STOP)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_NEXT": {
"newLine": true,
"type": "objectId",
"label": "Next (NEXT)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_PREV": {
"type": "objectId",
"label": "Previous (PREV)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_VOLUME": {
"newLine": true,
"type": "objectId",
"label": "Volume (VOLUME)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_VOLUME_ACTUAL": {
"type": "objectId",
"label": "Volume feedback (VOLUME_ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_MUTE": {
"type": "objectId",
"label": "Mute (MUTE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SEEK": {
"newLine": true,
"type": "objectId",
"label": "Seek / position (SEEK)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_REPEAT": {
"type": "objectId",
"label": "Repeat (REPEAT)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SHUFFLE": {
"type": "objectId",
"label": "Shuffle (SHUFFLE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TITLE": {
"newLine": true,
"type": "objectId",
"label": "Title (TITLE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ARTIST": {
"type": "objectId",
"label": "Artist (ARTIST)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_COVER": {
"type": "objectId",
"label": "Cover art (COVER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_DURATION": {
"newLine": true,
"type": "objectId",
"label": "Duration (DURATION)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ELAPSED": {
"type": "objectId",
"label": "Elapsed (ELAPSED)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_vacuumStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'vacuum'",
"items": {
"_vacuumHeading": {
"type": "header",
"size": 1,
"text": "Vacuum states",
"help": "Pick the ioBroker states for this vacuum. STATE gives the status; POWER starts/stops; PAUSE pauses; WORK_MODE is the fan speed."
},
"state_STATE": {
"type": "objectId",
"label": "Status (STATE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_POWER": {
"type": "objectId",
"label": "Start/stop (POWER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_PAUSE": {
"type": "objectId",
"label": "Pause (PAUSE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_BATTERY": {
"newLine": true,
"type": "objectId",
"label": "Battery (BATTERY)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_WORK_MODE": {
"type": "objectId",
"label": "Fan speed (WORK_MODE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_MAP": {
"newLine": true,
"type": "objectId",
"label": "Map image (MAP)",
"help": "A state with the map as a URL or base64 image; shown as the vacuum's picture.",
"xs": 12,
"sm": 12,
"md": 6,
"lg": 6
}
}
},
"_humidifierStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'humidifier'",
"items": {
"_humidifierHeading": {
"type": "header",
"size": 1,
"text": "Humidifier states",
"help": "POWER turns it on/off; SET is the target humidity, ACTUAL the current humidity; MODE is the operation mode."
},
"state_POWER": {
"type": "objectId",
"label": "On/off (POWER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SET": {
"type": "objectId",
"label": "Target humidity (SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ACTUAL": {
"type": "objectId",
"label": "Current humidity (ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_MODE": {
"newLine": true,
"type": "objectId",
"label": "Mode (MODE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_waterHeaterStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'water_heater'",
"items": {
"_waterHeaterHeading": {
"type": "header",
"size": 1,
"text": "Water heater states",
"help": "SET is the target temperature, ACTUAL the current temperature; POWER turns it on/off; MODE is the operation mode."
},
"state_SET": {
"type": "objectId",
"label": "Target temperature (SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ACTUAL": {
"type": "objectId",
"label": "Current temperature (ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_POWER": {
"type": "objectId",
"label": "On/off (POWER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_MODE": {
"newLine": true,
"type": "objectId",
"label": "Operation mode (MODE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_climateStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'climate'",
"items": {
"_climateHeading": {
"type": "header",
"size": 1,
"text": "Thermostat states",
"help": "SET is the target temperature, ACTUAL the current temperature; MODE is the HVAC mode, POWER on/off. The others are optional."
},
"state_SET": {
"type": "objectId",
"label": "Target temperature (SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ACTUAL": {
"type": "objectId",
"label": "Current temperature (ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_MODE": {
"type": "objectId",
"label": "HVAC mode (MODE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_POWER": {
"newLine": true,
"type": "objectId",
"label": "On/off (POWER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_HUMIDITY": {
"type": "objectId",
"label": "Humidity (HUMIDITY)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SPEED": {
"type": "objectId",
"label": "Fan speed (SPEED)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SWING": {
"newLine": true,
"type": "objectId",
"label": "Swing (SWING)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_BOOST": {
"type": "objectId",
"label": "Boost (BOOST)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_PARTY": {
"type": "objectId",
"label": "Party (PARTY)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"hvac_default": {
"newLine": true,
"type": "select",
"label": "Heating or cooling",
"help": "Only used when no HVAC mode state is mapped above.",
"default": "heat",
"hidden": "!!data.state_MODE",
"options": [
{
"value": "heat",
"label": "Heating"
},
{
"value": "cool",
"label": "Cooling"
}
],
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_lightStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'light'",
"items": {
"_lightHeading": {
"type": "header",
"size": 1,
"text": "Light states",
"help": "ON switches on/off; DIMMER is the brightness; TEMPERATURE is the colour temperature; RGB a colour value. Map only what your light supports."
},
"state_ON": {
"type": "objectId",
"label": "On/off (ON)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_ON_ACTUAL": {
"type": "objectId",
"label": "On/off feedback (ON_ACTUAL)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_DIMMER": {
"type": "objectId",
"label": "Brightness (DIMMER)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_TEMPERATURE": {
"newLine": true,
"type": "objectId",
"label": "Colour temperature (TEMPERATURE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_RGB": {
"type": "objectId",
"label": "RGB colour (RGB)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_HUE": {
"type": "objectId",
"label": "Hue (HUE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SATURATION": {
"newLine": true,
"type": "objectId",
"label": "Saturation (SATURATION)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_EFFECT": {
"type": "objectId",
"label": "Effect (EFFECT)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_WHITE": {
"newLine": true,
"type": "objectId",
"label": "White channel (WHITE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_RGBW": {
"type": "objectId",
"label": "RGBW colour (RGBW)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_CIE": {
"type": "objectId",
"label": "CIE / xy colour (CIE)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_fanStates": {
"newLine": true,
"type": "panel",
"hidden": "data.entity !== 'fan'",
"items": {
"_fanHeading": {
"type": "header",
"size": 1,
"text": "Fan states",
"help": "SPEED is the speed / preset mode (its common.states become the presets); SET is the on/off state. OSCILLATION and DIRECTION are optional."
},
"state_SET": {
"type": "objectId",
"label": "On/off (SET)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_SPEED": {
"type": "objectId",
"label": "Speed / preset (SPEED)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_OSCILLATION": {
"newLine": true,
"type": "objectId",
"label": "Oscillation (OSCILLATION)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
},
"state_DIRECTION": {
"type": "objectId",
"label": "Direction (DIRECTION)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 4
}
}
},
"_attribtes": {
"newLine": true,
"type": "panel",
"hidden": "!['binary_sensor', 'climate', 'cover', 'fan', 'group', 'humidifier', 'input_datetime', 'input_number', 'input_text', 'light', 'sensor', 'switch', 'water_heater'].includes(data.entity)",
"items": {
"_heading": {
"type": "header",
"size": 1,
"text": "Additional Attributes",
"help": "define additional attributes for certain entity types"
},
"attr_assumed_state": {
"type": "checkbox",
"label": "Assumed state (creates two buttons instead of slider)",
"defaultFunc": "['switch', 'light', 'cover', 'climate', 'fan', 'humidifier', 'group', 'water_heater'].includes(data.entity) ? (customObj.common ? !customObj.common.read : undefined) : undefined",
"onChange": {
"alsoDependsOn": [
"entity"
],
"calculateFunc": "['switch', 'light', 'cover', 'climate', 'fan', 'humidifier', 'group', 'water_heater'].includes(data.entity) ? (customObj.common ? !customObj.common.read : undefined) : undefined",
"ignoreOwnChanges": false
},
"hidden": "!['switch', 'light', 'cover', 'climate', 'fan', 'humidifier', 'group', 'water_heater'].includes(data.entity)"
},
"attr_device_class": {
"newLine": true,
"type": "select",
"label": "Device class",
"options": [
{
"value": "",
"label": "(none)"
},
{
"value": "absolute_humidity",
"label": "absolute_humidity — Absolute humidity (g/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "apparent_power",
"label": "apparent_power — Apparent power (VA)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "aqi",
"label": "aqi — Air quality index",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "area",
"label": "area — Area (m²)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "atmospheric_pressure",
"label": "atmospheric_pressure — Atmospheric pressure (hPa)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "awning",
"label": "awning — awning",
"hidden": "data.entity !== 'cover'"
},
{
"value": "battery",
"label": "battery — on: Low / off: Normal",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "battery",
"label": "battery — Battery level (%)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "battery_charging",
"label": "battery_charging — on: Charging / off: Not charging",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "blind",
"label": "blind — blind",
"hidden": "data.entity !== 'cover'"
},
{
"value": "blood_glucose_concentration",
"label": "blood_glucose_concentration — Blood glucose (mg/dL)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "carbon_dioxide",
"label": "carbon_dioxide — Carbon dioxide (CO₂) (ppm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "carbon_monoxide",
"label": "carbon_monoxide — on: CO detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "carbon_monoxide",
"label": "carbon_monoxide — Carbon monoxide (CO) (ppm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "cold",
"label": "cold — on: Cold / off: Normal",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "conductivity",
"label": "conductivity — Conductivity (µS/cm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "connectivity",
"label": "connectivity — on: Connected / off: Disconnected",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "current",
"label": "current — Current (A)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "curtain",
"label": "curtain — curtain",
"hidden": "data.entity !== 'cover'"
},
{
"value": "damper",
"label": "damper — damper",
"hidden": "data.entity !== 'cover'"
},
{
"value": "data_rate",
"label": "data_rate — Data rate (bit/s)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "data_size",
"label": "data_size — Data size (B)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "date",
"label": "date — Date",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "dehumidifier",
"label": "dehumidifier — dehumidifier",
"hidden": "data.entity !== 'humidifier'"
},
{
"value": "distance",
"label": "distance — Distance (m)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "door",
"label": "door — on: Open / off: Closed",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "door",
"label": "door — door",
"hidden": "data.entity !== 'cover'"
},
{
"value": "duration",
"label": "duration — Duration (s)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "energy",
"label": "energy — Energy consumed (Wh)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "energy_distance",
"label": "energy_distance — Energy per distance (Wh/km)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "energy_storage",
"label": "energy_storage — Stored energy (Wh)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "frequency",
"label": "frequency — Frequency (Hz)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "garage",
"label": "garage — garage",
"hidden": "data.entity !== 'cover'"
},
{
"value": "garage_door",
"label": "garage_door — on: Open / off: Closed",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "gas",
"label": "gas — on: Gas detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "gas",
"label": "gas — Gas volume (m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "gate",
"label": "gate — gate",
"hidden": "data.entity !== 'cover'"
},
{
"value": "heat",
"label": "heat — on: Hot / off: Normal",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "humidifier",
"label": "humidifier — humidifier",
"hidden": "data.entity !== 'humidifier'"
},
{
"value": "humidity",
"label": "humidity — Humidity (%)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "illuminance",
"label": "illuminance — Illuminance (lx)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "irradiance",
"label": "irradiance — Irradiance (W/m²)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "light",
"label": "light — on: Light detected / off: No light",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "lock",
"label": "lock — on: Unlocked / off: Locked",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "moisture",
"label": "moisture — on: Wet / off: Dry",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "moisture",
"label": "moisture — Moisture (%)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "monetary",
"label": "monetary — Monetary value (currency)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "motion",
"label": "motion — on: Motion detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "moving",
"label": "moving — on: Moving / off: Stopped",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "nitrogen_dioxide",
"label": "nitrogen_dioxide — Nitrogen dioxide (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "nitrogen_monoxide",
"label": "nitrogen_monoxide — Nitrogen monoxide (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "nitrous_oxide",
"label": "nitrous_oxide — Nitrous oxide (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "occupancy",
"label": "occupancy — on: Occupied / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "opening",
"label": "opening — on: Open / off: Closed",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "outlet",
"label": "outlet — outlet",
"hidden": "data.entity !== 'switch'"
},
{
"value": "ozone",
"label": "ozone — Ozone (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "ph",
"label": "ph — pH value",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "plug",
"label": "plug — on: Plugged in / off: Unplugged",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "pm1",
"label": "pm1 — Particulates < 1 µm (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "pm10",
"label": "pm10 — Particulates < 10 µm (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "pm25",
"label": "pm25 — Particulates < 2.5 µm (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "pm4",
"label": "pm4 — Particulates < 4 µm (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "power",
"label": "power — on: Power detected / off: No power",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "power",
"label": "power — Current power (W)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "power_factor",
"label": "power_factor — Power factor (%)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "precipitation",
"label": "precipitation — Precipitation (mm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "precipitation_intensity",
"label": "precipitation_intensity — Precipitation intensity (mm/h)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "presence",
"label": "presence — on: Home / off: Away",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "pressure",
"label": "pressure — Pressure (hPa)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "problem",
"label": "problem — on: Problem detected / off: OK",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "reactive_energy",
"label": "reactive_energy — Reactive energy (varh)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "reactive_power",
"label": "reactive_power — Reactive power (var)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "running",
"label": "running — on: Running / off: Not running",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "safety",
"label": "safety — on: Unsafe / off: Safe",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "shade",
"label": "shade — shade",
"hidden": "data.entity !== 'cover'"
},
{
"value": "shutter",
"label": "shutter — shutter",
"hidden": "data.entity !== 'cover'"
},
{
"value": "signal_strength",
"label": "signal_strength — Signal strength (dBm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "smoke",
"label": "smoke — on: Smoke detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "sound",
"label": "sound — on: Sound detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "sound_pressure",
"label": "sound_pressure — Sound pressure (dB)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "speed",
"label": "speed — Speed (m/s)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "sulphur_dioxide",
"label": "sulphur_dioxide — Sulphur dioxide (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "switch",
"label": "switch — switch",
"hidden": "data.entity !== 'switch'"
},
{
"value": "tamper",
"label": "tamper — on: Tampering detected / off: Clear",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "temperature",
"label": "temperature — Temperature (°C)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "temperature_delta",
"label": "temperature_delta — Temperature difference (°C)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "timestamp",
"label": "timestamp — Timestamp",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "update",
"label": "update — on: Update available / off: Up-to-date",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "uptime",
"label": "uptime — Uptime / last boot",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "vibration",
"label": "vibration — on: Vibration detected / off: No vibration",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "volatile_organic_compounds",
"label": "volatile_organic_compounds — Volatile organic compounds (VOC) (µg/m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "volatile_organic_compounds_parts",
"label": "volatile_organic_compounds_parts — VOC ratio (ppm)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "voltage",
"label": "voltage — Voltage (V)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "volume",
"label": "volume — Volume consumed (m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "volume_flow_rate",
"label": "volume_flow_rate — Volume flow rate (m³/h)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "volume_storage",
"label": "volume_storage — Stored volume (m³)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "water",
"label": "water — Water consumed (L)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "weight",
"label": "weight — Weight / mass (kg)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "wind_direction",
"label": "wind_direction — Wind direction (°)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "wind_speed",
"label": "wind_speed — Wind speed (m/s)",
"hidden": "data.entity !== 'sensor'"
},
{
"value": "window",
"label": "window — on: Open / off: Closed",
"hidden": "data.entity !== 'binary_sensor'"
},
{
"value": "window",
"label": "window — window",
"hidden": "data.entity !== 'cover'"
}
],
"hidden": "!['sensor', 'binary_sensor', 'cover', 'switch', 'humidifier'].includes(data.entity)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3,
"defaultFunc": "data.entity === 'sensor' && customObj.common && customObj.common.unit ? {'°C':'temperature','°F':'temperature','K':'temperature','W':'power','kW':'power','mW':'power','MW':'power','Wh':'energy','kWh':'energy','MWh':'energy','GWh':'energy','A':'current','mA':'current','V':'voltage','mV':'voltage','kV':'voltage','Hz':'frequency','kHz':'frequency','lx':'illuminance','lux':'illuminance','hPa':'pressure','mbar':'pressure','bar':'pressure','Pa':'pressure','psi':'pressure','dBm':'signal_strength'}[customObj.common.unit] : undefined"
},
"attr_unit_of_measurement": {
"type": "text",
"label": "Unit of measurement",
"defaultFunc": "data.entity === 'sensor' ? (customObj.common && customObj.common.unit) ? customObj.common.unit : {'battery': '%', 'carbon_dioxide':'ppm', 'carbon_monoxide':'ppm', 'humidity': '%', 'illuminance': 'lux', 'signal_strength': 'db', 'temperature': '°C', 'timestamp':'', 'power':'W', 'pressure':'hPa', 'current':'A', 'energy':'Wh', 'power_factor':'%', 'voltage':'V' }[data.attr_device_class] : undefined",
"onChange": {
"alsoDependsOn": [
"attr_device_class"
],
"calculateFunc": "data.entity === 'sensor' ? (customObj.common && customObj.common.unit) ? customObj.common.unit : {'battery': '%', 'carbon_dioxide':'ppm', 'carbon_monoxide':'ppm', 'humidity': '%', 'illuminance': 'lux', 'signal_strength': 'db', 'temperature': '°C', 'timestamp':'', 'power':'W', 'pressure':'hPa', 'current':'A', 'energy':'Wh', 'power_factor':'%', 'voltage':'V' }[data.attr_device_class] : undefined",
"ignoreOwnChanges": false
},
"hidden": "data.entity !== 'sensor'",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3
},
"attr_mode": {
"type": "select",
"label": "labelModeAttribute",
"options": [
{
"value": "box",
"label": "labelModeBox",
"hidden": "data.entity !== 'input_number'"
},
{
"value": "slider",
"label": "Slider",
"hidden": "data.entity !== 'input_number'"
},
{
"value": "text",
"label": "Text",
"hidden": "data.entity !== 'input_text'"
},
{
"value": "password",
"label": "Password",
"hidden": "data.entity !== 'input_text'"
}
],
"defaultFunc": "data.entity === 'input_number' ? (customObj.common ? ((customObj.common.min || customObj.common.max) ? 'slider' : 'box') : undefined) : data.entity === 'input_text' ? 'text' : undefined",
"onChange": {
"alsoDependsOn": [
"entity"
],
"calculateFunc": "data.entity === 'input_number' ? (customObj.common ? ((customObj.common.min || customObj.common.max) ? 'slider' : 'box') : undefined) : data.entity === 'input_text' ? 'text' : undefined",
"ignoreOwnChanges": false
},
"hidden": "!['input_number', 'input_text'].includes(data.entity)",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3
},
"attr_has_time": {
"type": "checkbox",
"label": "labelHasTime",
"hidden": "data.entity !== 'input_datetime'",
"defaultFunc": "data.entity === 'input_datetime' ? false : undefined",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3
},
"attr_has_date": {
"type": "checkbox",
"label": "labelHasDate",
"hidden": "data.entity !== 'input_datetime'",
"defaultFunc": "data.entity === 'input_datetime' ? true : undefined",
"xs": 12,
"sm": 6,
"md": 4,
"lg": 3
},
"attr_state_class": {
"newLine": true,
"type": "select",
"label": "State class",
"help": "For sensors (long-term statistics): measurement = current value; total = a total that can increase and decrease or be reset (net value); total_increasing = a monotonically increasing total that may reset (e.g. an energy meter).",
"hidden": "data.entity !== 'sensor'",
"options": [
{
"value": "",
"label": "(none)"
},
{
"value": "measurement",
"label": "measurement"
},
{
"value": "total",