diff --git a/bower.json b/bower.json
index 3eec549893..ac76883bce 100644
--- a/bower.json
+++ b/bower.json
@@ -46,6 +46,7 @@
"paper-spinner": "PolymerElements/paper-spinner#^2.0.0",
"paper-styles": "PolymerElements/paper-styles#^2.0.0",
"paper-tabs": "PolymerElements/paper-tabs#^2.0.0",
+ "paper-time-input": "ryanburns23/paper-time-input#^2.0.4",
"paper-toast": "PolymerElements/paper-toast#^2.0.0",
"paper-toggle-button": "PolymerElements/paper-toggle-button#^2.0.0",
"polymer": "^2.1.1",
diff --git a/src/more-infos/more-info-content.html b/src/more-infos/more-info-content.html
index 781bc633de..1a95bc542f 100644
--- a/src/more-infos/more-info-content.html
+++ b/src/more-infos/more-info-content.html
@@ -17,6 +17,7 @@
+
diff --git a/src/util/hass-util.html b/src/util/hass-util.html
index 1af801ec1e..be5c8bf225 100644
--- a/src/util/hass-util.html
+++ b/src/util/hass-util.html
@@ -26,7 +26,7 @@ window.hassUtil.DOMAINS_WITH_CARD = [
window.hassUtil.DOMAINS_WITH_MORE_INFO = [
'alarm_control_panel', 'automation', 'camera', 'climate', 'configurator',
'cover', 'fan', 'group', 'history_graph', 'light', 'lock', 'media_player', 'script',
- 'sun', 'updater', 'vacuum',
+ 'sun', 'updater', 'vacuum', 'input_datetime',
];
window.hassUtil.DOMAINS_WITH_NO_HISTORY = ['camera', 'configurator', 'history_graph', 'scene'];
@@ -467,11 +467,12 @@ window.hassUtil.sortByName = function (entityA, entityB) {
window.hassUtil.computeStateState = function (stateObj) {
if (!stateObj._stateDisplay) {
stateObj._stateDisplay = stateObj.state.replace(/_/g, ' ');
+ const domain = window.hassUtil.computeDomain(stateObj);
if (stateObj.attributes.unit_of_measurement) {
stateObj._stateDisplay += ' ' + stateObj.attributes.unit_of_measurement;
}
- if (window.hassUtil.computeDomain(stateObj) === 'binary_sensor') {
+ if (domain === 'binary_sensor') {
switch (stateObj.attributes.device_class) {
case 'moisture':
stateObj._stateDisplay = (stateObj._stateDisplay === 'off') ? 'dry' : 'wet';
@@ -498,6 +499,30 @@ window.hassUtil.computeStateState = function (stateObj) {
case 'power':
default:
}
+ } else if (domain === 'input_datetime') {
+ let date;
+ if (!stateObj.attributes.has_time) {
+ date = new Date(
+ stateObj.attributes.year,
+ stateObj.attributes.month - 1,
+ stateObj.attributes.day
+ );
+ stateObj._stateDisplay = window.hassUtil.formatDate(date);
+ } else if (!stateObj.attributes.has_date) {
+ date = new Date(
+ 1970, 0, 1,
+ stateObj.attributes.hour,
+ stateObj.attributes.minute
+ );
+ stateObj._stateDisplay = window.hassUtil.formatTime(date);
+ } else {
+ date = new Date(
+ stateObj.attributes.year, stateObj.attributes.month - 1,
+ stateObj.attributes.day, stateObj.attributes.hour,
+ stateObj.attributes.minute
+ );
+ stateObj._stateDisplay = window.hassUtil.formatDateTime(date);
+ }
}
}