Entity state by device class
This commit is contained in:
		| @@ -12,10 +12,60 @@ class Entity { | |||||||
|     "sensor" |     "sensor" | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
|  |   static Map StateByDeviceClass = { | ||||||
|  |     "battery.on": "Low", | ||||||
|  |     "battery.off": "Normal", | ||||||
|  |     "cold.on": "Cold", | ||||||
|  |     "cold.off": "Normal", | ||||||
|  |     "connectivity.on": "Connected", | ||||||
|  |     "connectivity.off": "Diconnected", | ||||||
|  |     "door.on": "Open", | ||||||
|  |     "door.off": "Closed", | ||||||
|  |     "garage_door.on": "Open", | ||||||
|  |     "garage_door.off": "Closed", | ||||||
|  |     "gas.on": "Detected", | ||||||
|  |     "gas.off": "Clear", | ||||||
|  |     "heat.on": "Hot", | ||||||
|  |     "heat.off": "Normal", | ||||||
|  |     "light.on": "Detected", | ||||||
|  |     "lignt.off": "No light", | ||||||
|  |     "lock.on": "Unlocked", | ||||||
|  |     "lock.off": "Locked", | ||||||
|  |     "moisture.on": "Wet", | ||||||
|  |     "moisture.off": "Dry", | ||||||
|  |     "motion.on": "Detected", | ||||||
|  |     "motion.off": "Cler", | ||||||
|  |     "moving.on": "Moving", | ||||||
|  |     "moving.off": "Stopped", | ||||||
|  |     "occupancy.on": "Occupied", | ||||||
|  |     "occupancy.off": "Clear", | ||||||
|  |     "opening.on": "Open", | ||||||
|  |     "opening.off": "Closed", | ||||||
|  |     "plug.on": "Plugged in", | ||||||
|  |     "plug.off": "Unplugged", | ||||||
|  |     "power.on": "Powered", | ||||||
|  |     "power.off": "No power", | ||||||
|  |     "presence.on": "Home", | ||||||
|  |     "presence.off": "Away", | ||||||
|  |     "problem.on": "Problem", | ||||||
|  |     "problem.off": "OK", | ||||||
|  |     "safety.on": "Unsafe", | ||||||
|  |     "safety.off": "Safe", | ||||||
|  |     "smoke.on": "Detected", | ||||||
|  |     "smoke.off": "Clear", | ||||||
|  |     "sound.on": "Detected", | ||||||
|  |     "sound.off": "Clear", | ||||||
|  |     "vibration.on": "Detected", | ||||||
|  |     "vibration.off": "Clear", | ||||||
|  |     "window.on": "Open", | ||||||
|  |     "window.off": "Closed" | ||||||
|  |   }; | ||||||
|  |  | ||||||
|   Map attributes; |   Map attributes; | ||||||
|   String domain; |   String domain; | ||||||
|   String entityId; |   String entityId; | ||||||
|   String state; |   String state; | ||||||
|  |   String displayState; | ||||||
|   DateTime _lastUpdated; |   DateTime _lastUpdated; | ||||||
|  |  | ||||||
|   List<Entity> childEntities = []; |   List<Entity> childEntities = []; | ||||||
| @@ -52,6 +102,7 @@ class Entity { | |||||||
|     entityId = rawData["entity_id"]; |     entityId = rawData["entity_id"]; | ||||||
|     deviceClass = attributes["device_class"]; |     deviceClass = attributes["device_class"]; | ||||||
|     state = rawData["state"]; |     state = rawData["state"]; | ||||||
|  |     displayState = Entity.StateByDeviceClass["$deviceClass.$state"] ?? state; | ||||||
|     _lastUpdated = DateTime.tryParse(rawData["last_updated"]); |     _lastUpdated = DateTime.tryParse(rawData["last_updated"]); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ class SimpleEntityState extends StatelessWidget { | |||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     final entityModel = EntityModel.of(context); |     final entityModel = EntityModel.of(context); | ||||||
|     String state = entityModel.entityWrapper.entity.state ?? ""; |     String state = entityModel.entityWrapper.entity.displayState ?? ""; | ||||||
|     state = state.replaceAll("\n", "").replaceAll("\t", " ").trim(); |     state = state.replaceAll("\n", "").replaceAll("\t", " ").trim(); | ||||||
|     while (state.contains("  ")){ |     while (state.contains("  ")){ | ||||||
|       state = state.replaceAll("  ", " "); |       state = state.replaceAll("  ", " "); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user