diff --git a/homeassistant/components/homematic.py b/homeassistant/components/homematic.py index 09d27e70560..e9bcfa80f6c 100644 --- a/homeassistant/components/homematic.py +++ b/homeassistant/components/homematic.py @@ -77,16 +77,16 @@ HM_IGNORE_DISCOVERY_NODE = [ ] HM_ATTRIBUTE_SUPPORT = { - 'LOWBAT': ['Battery', {0: 'High', 1: 'Low'}], - 'ERROR': ['Sabotage', {0: 'No', 1: 'Yes'}], - 'RSSI_DEVICE': ['RSSI', {}], - 'VALVE_STATE': ['Valve', {}], - 'BATTERY_STATE': ['Battery', {}], - 'CONTROL_MODE': ['Mode', {0: 'Auto', 1: 'Manual', 2: 'Away', 3: 'Boost'}], - 'POWER': ['Power', {}], - 'CURRENT': ['Current', {}], - 'VOLTAGE': ['Voltage', {}], - 'WORKING': ['Working', {0: 'No', 1: 'Yes'}], + 'LOWBAT': ['battery', {0: 'High', 1: 'Low'}], + 'ERROR': ['sabotage', {0: 'No', 1: 'Yes'}], + 'RSSI_DEVICE': ['rssi', {}], + 'VALVE_STATE': ['valve', {}], + 'BATTERY_STATE': ['battery', {}], + 'CONTROL_MODE': ['mode', {0: 'Auto', 1: 'Manual', 2: 'Away', 3: 'Boost'}], + 'POWER': ['power', {}], + 'CURRENT': ['current', {}], + 'VOLTAGE': ['voltage', {}], + 'WORKING': ['working', {0: 'No', 1: 'Yes'}], } HM_PRESS_EVENTS = [ @@ -172,7 +172,7 @@ CONFIG_SCHEMA = vol.Schema({ }, extra=vol.ALLOW_EXTRA) SCHEMA_SERVICE_VIRTUALKEY = vol.Schema({ - vol.Required(ATTR_ADDRESS): cv.string, + vol.Required(ATTR_ADDRESS): vol.All(cv.string, vol.Upper), vol.Required(ATTR_CHANNEL): vol.Coerce(int), vol.Required(ATTR_PARAM): cv.string, vol.Optional(ATTR_PROXY): cv.string, @@ -185,9 +185,9 @@ SCHEMA_SERVICE_SET_VAR_VALUE = vol.Schema({ }) SCHEMA_SERVICE_SET_DEV_VALUE = vol.Schema({ - vol.Required(ATTR_ADDRESS): cv.string, + vol.Required(ATTR_ADDRESS): vol.All(cv.string, vol.Upper), vol.Required(ATTR_CHANNEL): vol.Coerce(int), - vol.Required(ATTR_PARAM): cv.string, + vol.Required(ATTR_PARAM): vol.All(cv.string, vol.Upper), vol.Required(ATTR_VALUE): cv.match_all, vol.Optional(ATTR_PROXY): cv.string, }) @@ -715,7 +715,7 @@ class HMDevice(Entity): attr[data[0]] = value # static attributes - attr['ID'] = self._hmdevice.ADDRESS + attr['id'] = self._hmdevice.ADDRESS attr['proxy'] = self._proxy return attr diff --git a/homeassistant/components/sensor/homematic.py b/homeassistant/components/sensor/homematic.py index df2951feb3d..2215597f506 100644 --- a/homeassistant/components/sensor/homematic.py +++ b/homeassistant/components/sensor/homematic.py @@ -40,7 +40,17 @@ HM_UNIT_HA_CAST = { "SUNSHINEDURATION": "#", "AIR_PRESSURE": "hPa", "FREQUENCY": "Hz", - "VALUE": "#" + "VALUE": "#", +} + +HM_ICON_HA_CAST = { + "WIND_SPEED": 'mdi:weather-windy', + "HUMIDITY": 'mdi:water-percent', + "TEMPERATURE": 'mdi:thermometer', + "LUX": 'mdi:weather-sunny', + "BRIGHTNESS": 'mdi:invert-colors', + "POWER": 'mdi:flash-red-eye', + "CURRENT": "mdi:flash-red-eye", } @@ -77,6 +87,11 @@ class HMSensor(HMDevice): """Return the unit of measurement of this entity, if any.""" return HM_UNIT_HA_CAST.get(self._state, None) + @property + def icon(self): + """Return the icon to use in the frontend, if any.""" + return HM_ICON_HA_CAST.get(self._state, None) + def _init_data_struct(self): """Generate a data dict (self._data) from hm metadata.""" # Add state to data dict