1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Added decorate option to configuration file to allow a user to set custom images for different entities.

This commit is contained in:
Ryan Kraus
2015-04-25 00:39:35 -04:00
parent 24bb89df23
commit f77b3dbd0a
3 changed files with 22 additions and 10 deletions

View File

@@ -5,14 +5,17 @@ homeassistant.helpers.entity
Provides ABC for entities in HA.
"""
from collections import defaultdict
from homeassistant import NoEntitySpecifiedError
from homeassistant.const import (
ATTR_FRIENDLY_NAME, ATTR_UNIT_OF_MEASUREMENT, ATTR_HIDDEN, STATE_ON,
STATE_OFF, DEVICE_DEFAULT_NAME, TEMP_CELCIUS, TEMP_FAHRENHEIT)
ATTR_FRIENDLY_NAME, ATTR_UNIT_OF_MEASUREMENT, ATTR_HIDDEN,
ATTR_ENTITY_PICTURE, STATE_ON, STATE_OFF, DEVICE_DEFAULT_NAME,
TEMP_CELCIUS, TEMP_FAHRENHEIT)
# Dict mapping entity_id to a boolean that overwrites the hidden property
_OVERWRITE_HIDDEN = {}
_OVERWRITE = defaultdict(dict)
class Entity(object):
@@ -121,9 +124,13 @@ class Entity(object):
if ATTR_UNIT_OF_MEASUREMENT not in attr and self.unit_of_measurement:
attr[ATTR_UNIT_OF_MEASUREMENT] = self.unit_of_measurement
if _OVERWRITE_HIDDEN.get(self.entity_id, self.hidden):
if _OVERWRITE[ATTR_HIDDEN].get(self.entity_id, self.hidden):
attr[ATTR_HIDDEN] = True
if _OVERWRITE[ATTR_ENTITY_PICTURE].get(self.entity_id, False):
attr[ATTR_ENTITY_PICTURE] = \
_OVERWRITE[ATTR_ENTITY_PICTURE][self.entity_id]
# Convert temperature if we detect one
if attr.get(ATTR_UNIT_OF_MEASUREMENT) in (TEMP_CELCIUS,
TEMP_FAHRENHEIT):
@@ -143,15 +150,15 @@ class Entity(object):
return "<Entity {}: {}>".format(self.name, self.state)
@staticmethod
def overwrite_hidden(entity_id, hidden):
def overwrite_attribute(entity_id, attr, val):
"""
Overwrite the hidden property of an entity.
Set hidden to None to remove any overwritten value in place.
"""
if hidden is None:
_OVERWRITE_HIDDEN.pop(entity_id, None)
if val is None:
_OVERWRITE[attr].pop(entity_id, None)
else:
_OVERWRITE_HIDDEN[entity_id.lower()] = hidden
_OVERWRITE[attr][entity_id.lower()] = val
class ToggleEntity(Entity):