Simple clock
/config/www/clock-card.js
class ClockCard extends Polymer.Element {
set hass(hass) {
if (!this.content) {
const card = document.createElement('ha-card');
card.header = 'What the time ?';
this.content = document.createElement('div');
this.content.style.padding = '0 16px 16px';
card.appendChild(this.content);
this.appendChild(card);
}
//const entityId = this.config.entity;
//const state = hass.states[entityId];
//const stateStr = state ? state.state : 'unavailable';
const stateTime = moment().format('h:mm A');
const stateDate = moment().format('dddd, MMMM DD');
this.content.innerHTML = `
<style>
:host {
cursor: pointer;
}
.content {
padding: 24px 16px;
display:flex;
}
.gtlogo{
background-image: url("/local/images/gt-logo.png");
background-size: contain;
background-repeat: no-repeat;
width:92px;
}
.time {
font-family: var(--paper-font-headline_-_font-family);
-webkit-font-smoothing: var(--paper-font-headline_-_-webkit-font-smoothing);
font-size: 3em;
font-weight: var(--paper-font-headline_-_font-weight);
letter-spacing: var(--paper-font-headline_-_letter-spacing);
line-height: 1em;
text-rendering: var(--paper-font-common-expensive-kerning_-_text-rendering);
}
.date {
color: var(--accent-color);
font-family: var(--paper-font-headline_-_font-family);
-webkit-font-smoothing: var(--paper-font-headline_-_-webkit-font-smoothing);
font-size: 1.3em;
font-weight: var(--paper-font-headline_-_font-weight);
letter-spacing: var(--paper-font-headline_-_letter-spacing);
line-height: var(--paper-font-headline_-_line-height);
text-rendering: var(--paper-font-common-expensive-kerning_-_text-rendering);
}
</style>
<ha-card>
<div class="content">
<div class="gtlogo"></div>
<div class="clock">
<div class="time" id="time">${stateTime}</div>
<div class="date" id="date">${stateDate}</div>
</div>
</div>
</ha-card>
`;
}
setConfig(config) {
this.config = config;
}
// The height of your card. Home Assistant uses this to automatically
// distribute all cards over the available columns.
getCardSize() {
return 3;
}
}
customElements.define('clock-card', ClockCard);
/config/ui-lovelace.yaml
NOTES : moment.js import before
resources:
- url: /local/moment.js
type: js
- url: /local/clock-card.js
type: js
cards:
- type: custom:clock-card
#entity: sensor.latest_available_version