Home

Awesome

secondaryinfo-entity-row

Custom entity row for Home Assistant, providing additional types of data to be displayed in the secondary info sections of the Lovelace Entities card.

Prerequisites

Installation Instructions

This card is available as a plugin in the default community store of HACS

1) Install the latest Card Tools via HACS (Prerequisite)

Search for the card-tools plugin in HACS and install. This is available in the default HACS community store.

2) Install Secondary Info Entity Row via HACS

Search for the secondaryinfo-entity-row plugin in HACS and install.

3) Update the Lovelace configuration to use the plugins

resources:
  url: /hacsfiles/card-tools.js
  type: module
  url: /hacsfiles/secondaryinfo-entity-row.js
  type: module

Options

The standard Lovelace configuration for entities remains valid, with the exception of secondary_info.

New way - Home Assistant rendering

To utilize card-tools Jinja2 API, secondary_info should be a string value with at least one Jinja2 tag (either starting with {{ or {%). In addition, every user that should be able to see secondary_info content, must be an admin. This constraint comes from card-tools.

Old way - Custom template language

For card-tools old templating support, secondary_info should be a string value, enclosed in double-quotes, which supports the parseTemplate syntax defined in card-tools.js. Per the documentation:

Two things are important:

- Template must start with [[<space> and end with <space>]]
- This is not in any way the same kind of template as used in the Home Assistant configuration

The templates are parsed by reading one step at a time from the `hass.states` object.
Thus, the first part must be an entity with domain and id, e.g. `light.bed_light`, `media_player.bedroom` etc.
Next is one of:

- entity_id
- state
- attributes.<attribute>
- last_changed
- last_updated

Also see details of the new conditional syntax at useful-markdown-card:

if

Syntax: [[ if(<condition>, <then>, <else>) ]] Simply put, if <condition> is satisfied, the template will be replaced with <then>, otherwise it will be replaced with <else>.

Both <then> and <else> can in turn be <template> expressions, and <else> can even be another if(!).

Conditions are in the form <left> <comparison> <right> where <left> and <right> are <template>, strings or numeric values.

<comparison> is one of ==, !=, <, >, <= or >=.

Examples

type: entities
title: Custom Secondary Info
entities:
- entity: sun.sun
  name: Entity ID with wrapped in tag
  type: "custom:secondaryinfo-entity-row"
  secondary_info: "<b style='color:red'>[[ sun.sun.entity_id ]]</b>"
  
- entity: sun.sun
  name: Absolute time for last-changed
  type: "custom:secondaryinfo-entity-row"
  secondary_info: "[[ sun.sun.last_changed ]]"
  
- entity: sun.sun
  name: Static text
  type: "custom:secondaryinfo-entity-row"
  secondary_info: "This is the entity row for the Sun"

- entity: sun.sun
  name: Entity attribute
  type: "custom:secondaryinfo-entity-row"
  secondary_info: "Next Dawn: [[ sun.sun.attributes.next_dawn ]]"
  
- entity: sun.sun
  name: Templated entity object
  type: "custom:secondaryinfo-entity-row"
  secondary_info:  "Next Dawn: [[ {entity}.attributes.next_dawn ]]"
  
- entity: sun.sun
  name: Conditional template
  type: "custom:secondaryinfo-entity-row"
  secondary_info: '[[ if(sun.sun.attributes.elevation < 0, "Below", "Above") ]] the horizon'
  
- entity: sun.sun
  name: Jinja2 template
  type: "custom:secondaryinfo-entity-row"
  secondary_info: "Next Dawn: {{ state_attr('sun.sun', 'next_dawn') }}"
<img alt="example" src="https://user-images.githubusercontent.com/5458030/54823057-0a5cfd00-4c7d-11e9-9251-b539eb423c0d.png" width="400">

Changelog

0.5

0.4.1

0.4

0.3.1

0.3

0.2

0.1.1

0.1