Show binary sensors in Home Assistant's words and grey out what is off (0.2.62)
A binary sensor's tile and card now say what Home Assistant says for its device class, such as Open or Closed for a door and Wet or Dry for a leak sensor. The screen maps the class it already receives, with the same words as the top bar and the history card; a test keeps both tables equal. A history card still waiting for its answer no longer shows the previous card's word. Lights and binary sensors that are off turn grey, as in Home Assistant, and a light without an icon of its own shows a crossed-out bulb while it is off, on the tile and in the top bar. A chosen icon stays and turns grey. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,8 @@ STATES = {
|
||||
'armed_vacation': 'Armed vacation', 'armed_custom_bypass': 'Armed', 'arming': 'Arming', 'pending': 'Pending',
|
||||
'triggered': 'Triggered', 'active': 'Active', 'above_horizon': 'Up', 'below_horizon': 'Down',
|
||||
}
|
||||
# device_class: (on, off)
|
||||
# device_class: (on, off). Tiles and cards show the same words from the screen's own copy, BINARY_WORDS in
|
||||
# components/smart_display/tile_controls.h (firmware 0.2.53+); tests/test_binary_words.py keeps the two equal.
|
||||
BINARY_STATES = {
|
||||
'battery': ('Low', 'Normal'), 'battery_charging': ('Charging', 'Not charging'), 'carbon_monoxide': ('Danger', 'Safe'),
|
||||
'cold': ('Cold', 'Normal'), 'connectivity': ('Connected', 'Disconnected'), 'door': ('Open', 'Closed'),
|
||||
@@ -245,6 +246,8 @@ def auto_icon(entity, state):
|
||||
domain, device_class = entity.split('.')[0], attrs.get('device_class')
|
||||
if domain == 'weather':
|
||||
name = tile_icons.WEATHER.get(raw, 'weather-partly-cloudy')
|
||||
elif domain == 'light' and raw == 'off':
|
||||
name = 'lightbulb-off'
|
||||
elif domain == 'sun':
|
||||
name = 'weather-sunset-down' if raw == 'above_horizon' else 'weather-sunset-up'
|
||||
elif domain == 'binary_sensor' and device_class in BINARY_ICONS:
|
||||
|
||||
Reference in New Issue
Block a user