Skip to content

Instantly share code, notes, and snippets.

@iantrich
Created July 19, 2019 13:25
Show Gist options
  • Save iantrich/d2a485a6bc13c689564a6fe1306712d4 to your computer and use it in GitHub Desktop.
Save iantrich/d2a485a6bc13c689564a6fe1306712d4 to your computer and use it in GitHub Desktop.
- type: 'custom:button-card'
name_template: >
function activeCount(group, active) {
var entities = states[group].attributes.entity_id;
var count = 0;
for ( var entity in entities ) {
if ( states[entities[entity]] && states[entities[entity]].state === active ) {
count++;
}
}
return count;
}
var lights = activeCount('group.lights', 'on');
var doors = activeCount('group.doors', 'on');
var players = activeCount('group.play', 'on') + activeCount('group.play', 'playing');
return (states['alarm_control_panel.home_alarm'].state === 'disarmed' ? '<div>Alarm is Disarmed</div>' : '<div>Alarm is Armed</div>')
+ (states['binary_sensor.remote_ui'].state === 'off' ? '<div>Remote UI is Disconnected</div>' : '<div>Remote UI is Connected</div>')
+ (states['cover.left_garage_door'].state === 'open' && states['cover.right_garage_door'].state === 'open' ? '<div>Garage Doors are Open</div>' : (states['cover.left_garage_door'].state === 'open' ? '<div>Left Garage is Open</div>' : (states['cover.right_garage_door'].state === 'open' ? '<div>Right Garage is Open</div>' : '<div>Garage Doors are Closed</div>')))
+ (states['binary_sensor.basement_water_sensor'].state === 'on' ? '<div>Basement is Wet</div>' : '<div>Basement is Dry</div>')
+ (lights > 0 ? '<div>' + lights + ' Light' + (lights > 1 ? 's are' : ' is' ) + ' On</div>' : '<div>No lights are on</div>')
+ (doors > 0 ? '<div>' + doors + ' Door' + (doors > 1 ? 's are' : ' is' ) + ' Open</div>' : '<div>No doors are open</div>')
+ (players > 0 ? '<div>' + players + ' Player' + (players > 1 ? 's are' : ' is' ) + ' Streaming</div>' : '<div>No Players are Streaming</div>')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment