Aligning the front-end card with latest Plant component changes (#633)

* Aligning with latest backend plant component changes

* Address review comments and plant component alignment

* Revert PR636 to reinstate card

* Add plant domain icon
This commit is contained in:
PeteBa 2018-01-21 05:48:24 +00:00 committed by Paulus Schoutsen
parent 447dd6640f
commit 31bc099cef
4 changed files with 29 additions and 20 deletions

View File

@ -6,7 +6,7 @@
<link rel='import' href='./ha-media_player-card.html'>
<link rel='import' href='./ha-weather-card.html'>
<link rel='import' href='./ha-persistent_notification-card.html'>
<!-- <link rel='import' href='./ha-plant-card.html'> -->
<link rel='import' href='./ha-plant-card.html'>
<script>
class HaCardChooser extends Polymer.Element {

View File

@ -58,12 +58,12 @@
<script>
{
var _SENSORS = ['moisture', 'temperature', 'brightness', 'conductivity', 'battery'];
var _CONFIG = {
moisture: { icon: 'mdi:water', uom: '%' },
temperature: { icon: 'mdi:thermometer', uom: '°C' },
brightness: { icon: 'mdi:white-balance-sunny', uom: 'lx' },
conductivity: { icon: 'mdi:emoticon-poop', uom: 'µS/cm' },
battery: { icon: 'mdi:battery', uom: '%' }
var _ICONS = {
moisture: 'mdi:water',
temperature: 'mdi:thermometer',
brightness: 'mdi:white-balance-sunny',
conductivity: 'mdi:emoticon-poop',
battery: 'mdi:battery'
};
class HaPlantCard extends window.hassMixins.EventsMixin(Polymer.Element) {
@ -81,17 +81,17 @@
}
computeClass(stateObj, sensor) {
if (typeof stateObj.attributes[sensor] === 'undefined') {
return 'missing';
if (sensor in stateObj.attributes) {
const prob = stateObj.attributes.problem;
return (prob.indexOf(sensor) === -1) ? 'ok' : 'problem';
}
var prob = stateObj.attributes.problem;
return (prob.indexOf(sensor) === -1) ? 'ok' : 'problem';
return 'missing';
}
computeIcon(stateObj, sensor) {
var icon = _CONFIG[sensor].icon;
if (sensor === 'battery' && typeof stateObj.attributes.battery !== 'undefined') {
var level = stateObj.attributes.battery;
var icon = _ICONS[sensor];
if ((sensor === 'battery') && (sensor in stateObj.attributes)) {
const level = stateObj.attributes.battery;
if (level <= 5) {
icon += '-alert';
} else if (level < 95) {
@ -102,18 +102,24 @@
}
computeValue(stateObj, sensor) {
if (typeof stateObj.attributes[sensor] === 'undefined') {
return '-';
if ((sensor === 'brightness') && ('max_brightness' in stateObj.attributes)) {
return stateObj.attributes.max_brightness;
}
return stateObj.attributes[sensor];
if (sensor in stateObj.attributes) {
return stateObj.attributes[sensor];
}
return '-';
}
computeUOM(stateObj, sensor) {
return _CONFIG[sensor].uom;
if (sensor in stateObj.attributes.unit_of_measurement_dict) {
return stateObj.attributes.unit_of_measurement_dict[sensor];
}
return '';
}
computeDisabled(stateObj, sensor) {
return (typeof stateObj.attributes[sensor] === 'undefined');
return (!(sensor in stateObj.attributes));
}
showSensorHistory(ev) {

View File

@ -86,7 +86,7 @@
history_graph: 4,
media_player: 3,
persistent_notification: 0,
// plant: 3,
plant: 3,
weather: 4,
};

View File

@ -163,6 +163,9 @@ window.hassUtil.domainIcon = function (domain, state) {
case 'notify':
return 'mdi:comment-alert';
case 'plant':
return 'mdi:flower';
case 'proximity':
return 'mdi:apple-safari';