Resolves #237
This commit is contained in:
		| @@ -20,6 +20,7 @@ class Entity { | |||||||
|  |  | ||||||
|   List<Entity> childEntities = []; |   List<Entity> childEntities = []; | ||||||
|   List<String> attributesToShow = ["all"]; |   List<String> attributesToShow = ["all"]; | ||||||
|  |   String deviceClass; | ||||||
|   EntityHistoryConfig historyConfig = EntityHistoryConfig( |   EntityHistoryConfig historyConfig = EntityHistoryConfig( | ||||||
|     chartType: EntityHistoryWidgetType.simple |     chartType: EntityHistoryWidgetType.simple | ||||||
|   ); |   ); | ||||||
| @@ -27,7 +28,6 @@ class Entity { | |||||||
|   String get displayName => |   String get displayName => | ||||||
|       attributes["friendly_name"] ?? (attributes["name"] ?? entityId.split(".")[1].replaceAll("_", " ")); |       attributes["friendly_name"] ?? (attributes["name"] ?? entityId.split(".")[1].replaceAll("_", " ")); | ||||||
|  |  | ||||||
|   String get deviceClass => attributes["device_class"] ?? null; |  | ||||||
|   bool get isView => |   bool get isView => | ||||||
|       (domain == "group") && |       (domain == "group") && | ||||||
|       (attributes != null ? attributes["view"] ?? false : false); |       (attributes != null ? attributes["view"] ?? false : false); | ||||||
| @@ -50,6 +50,10 @@ class Entity { | |||||||
|     attributes = rawData["attributes"] ?? {}; |     attributes = rawData["attributes"] ?? {}; | ||||||
|     domain = rawData["entity_id"].split(".")[0]; |     domain = rawData["entity_id"].split(".")[0]; | ||||||
|     entityId = rawData["entity_id"]; |     entityId = rawData["entity_id"]; | ||||||
|  |     deviceClass = attributes["device_class"]; | ||||||
|  |     if (deviceClass != null) { | ||||||
|  |       TheLogger.debug("Found device class '$deviceClass' for '$entityId'. Icon is '${this.icon}'"); | ||||||
|  |     } | ||||||
|     state = rawData["state"]; |     state = rawData["state"]; | ||||||
|     _lastUpdated = DateTime.tryParse(rawData["last_updated"]); |     _lastUpdated = DateTime.tryParse(rawData["last_updated"]); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -41,8 +41,8 @@ class MaterialDesignIcons { | |||||||
|     "binary_sensor.heat.off": "mdi:thermometer", |     "binary_sensor.heat.off": "mdi:thermometer", | ||||||
|     "binary_sensor.light.on": "mdi:brightness-7", |     "binary_sensor.light.on": "mdi:brightness-7", | ||||||
|     "binary_sensor.light.off": "mdi:brightness-5", |     "binary_sensor.light.off": "mdi:brightness-5", | ||||||
|     //"binary_sensor.lock.on": "mdi:", |     "binary_sensor.lock.on": "mdi:lock-open", | ||||||
|     //"binary_sensor.lock.off": "mdi:", |     "binary_sensor.lock.off": "mdi:lock", | ||||||
|     "binary_sensor.moisture.on": "mdi:water", |     "binary_sensor.moisture.on": "mdi:water", | ||||||
|     "binary_sensor.moisture.off": "mdi:water-off", |     "binary_sensor.moisture.off": "mdi:water-off", | ||||||
|     "binary_sensor.motion.on": "mdi:run", |     "binary_sensor.motion.on": "mdi:run", | ||||||
| @@ -59,8 +59,8 @@ class MaterialDesignIcons { | |||||||
|     "binary_sensor.power.off": "mdi:verified", |     "binary_sensor.power.off": "mdi:verified", | ||||||
|     //"binary_sensor.presence.on": "mdi:", |     //"binary_sensor.presence.on": "mdi:", | ||||||
|     //"binary_sensor.presence.off": "mdi:", |     //"binary_sensor.presence.off": "mdi:", | ||||||
|     //"binary_sensor.problem.on": "mdi:", |     "binary_sensor.problem.on": "mdi:alert-outline", | ||||||
|     //"binary_sensor.problem.off": "mdi:", |     "binary_sensor.problem.off": "mdi:check-outline", | ||||||
|     "binary_sensor.safety.on": "mdi:alert", |     "binary_sensor.safety.on": "mdi:alert", | ||||||
|     "binary_sensor.safety.off": "mdi:verified", |     "binary_sensor.safety.off": "mdi:verified", | ||||||
|     "binary_sensor.smoke.on": "mdi:alert", |     "binary_sensor.smoke.on": "mdi:alert", | ||||||
| @@ -69,13 +69,13 @@ class MaterialDesignIcons { | |||||||
|     "binary_sensor.sound.off": "mdi:music-note-off", |     "binary_sensor.sound.off": "mdi:music-note-off", | ||||||
|     "binary_sensor.vibration.on": "mdi:vibrate", |     "binary_sensor.vibration.on": "mdi:vibrate", | ||||||
|     "binary_sensor.vibration.off": "mdi:mdi-crop-portrait", |     "binary_sensor.vibration.off": "mdi:mdi-crop-portrait", | ||||||
|     //"binary_sensor.window.on": "mdi:", |     "binary_sensor.window.on": "mdi:window-open", | ||||||
|     //"binary_sensor.window.off": "mdi:", |     "binary_sensor.window.off": "mdi:window-closed", | ||||||
|     "sensor.battery": "mdi:battery-80", |     "sensor.battery": "mdi:battery-80", | ||||||
|     "sensor.humidity": "mdi:water-percent", |     "sensor.humidity": "mdi:water-percent", | ||||||
|     //"sensor.illuminance": "mdi:", |     //"sensor.illuminance": "mdi:", | ||||||
|     "sensor.temperature": "mdi:thermometer", |     "sensor.temperature": "mdi:thermometer", | ||||||
|     //"cover.window": "mdi:", |     "cover.window": "mdi:mdi:window-closed", | ||||||
|     "cover.garage.closed": "mdi:garage", |     "cover.garage.closed": "mdi:garage", | ||||||
|     "cover.garage.open": "mdi:garage-open", |     "cover.garage.open": "mdi:garage-open", | ||||||
|     "cover.garage.opening": "mdi:garage-open", |     "cover.garage.opening": "mdi:garage-open", | ||||||
| @@ -2933,6 +2933,7 @@ class MaterialDesignIcons { | |||||||
|     String iconNameByDomain = _defaultIconsByDomains["$domain.$state"] ?? _defaultIconsByDomains["$domain"]; |     String iconNameByDomain = _defaultIconsByDomains["$domain.$state"] ?? _defaultIconsByDomains["$domain"]; | ||||||
|     String iconNameByDeviceClass; |     String iconNameByDeviceClass; | ||||||
|     if (deviceClass != null) { |     if (deviceClass != null) { | ||||||
|  |       //TheLogger.debug("Icons: by device class: '$domain.$deviceClass.$state' or '$domain.$deviceClass'"); | ||||||
|       iconNameByDeviceClass = _defaultIconsByDeviceClass["$domain.$deviceClass.$state"] ?? _defaultIconsByDeviceClass["$domain.$deviceClass"]; |       iconNameByDeviceClass = _defaultIconsByDeviceClass["$domain.$deviceClass.$state"] ?? _defaultIconsByDeviceClass["$domain.$deviceClass"]; | ||||||
|     } |     } | ||||||
|     String iconName = iconNameByDeviceClass ?? iconNameByDomain; |     String iconName = iconNameByDeviceClass ?? iconNameByDomain; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user