sensors/misc.yaml
#
# Domain statistics
#
# Overview of the number of devices/scripts/sensors for some categories.
#
- platform: template
sensors:
count_automations:
friendly_name: "Automations Count"
icon_template: "mdi:arrow-decision-auto"
entity_id:
- sensor.time
value_template: >-
{{ states.automation | count }}
count_automations_disabled:
friendly_name: "Disabled Automations Count"
icon_template: "mdi:arrow-decision-auto"
entity_id:
- sensor.time
value_template: >-
{{ states.automation | selectattr('state', 'eq', 'off')
| list
| count }}
count_automations_friendly:
friendly_name: "Automations Count"
icon_template: "mdi:arrow-decision-auto"
entity_id:
- sensor.time
value_template: >-
{% set all = states('sensor.count_automations') | int %}
{% set disabled = states('sensor.count_automations_disabled') | int %}
{% set enabled = all - disabled %}
{% if all == 0 %}
No automation exists.
{% elif enabled == all %}
All {{ all }} automations enabled.
{% elif disabled == all %}
{{ enabled }} enabled automations, all {{ all }} disabled.
{% else %}
{{ enabled }} enabled automations, {{ disabled }} disabled.
{% endif %}
count_interfaces:
friendly_name: "Interfaces Count"
icon_template: "mdi:gesture-tap"
entity_id:
- sensor.time
value_template: >-
{% set buttons = states.binary_sensor | map('regex_search','\.flic_')
| select('equalto', True)
| list
| count %}
{% set displays = states.display | list | count %}
{% set remotes = states.zwave | map('regex_search','mote')
| select('equalto', True)
| list
| count %}
{{ buttons + displays + remotes }}
count_lights:
friendly_name: "Lights Count"
icon_template: "mdi:lightbulb"
entity_id:
- sensor.time
value_template: >-
{{ states.light | list | count }}
count_lights_unavailable:
friendly_name: "Lights Unavailable Count"
icon_template: "mdi:lightbulb"
entity_id:
- sensor.time
value_template: >-
{{ states.light | selectattr('state', 'eq', 'unavailable')
| list
| count }}
count_motion_sensors:
friendly_name: "Motion Sensors Count"
icon_template: "mdi:walk"
entity_id:
- sensor.time
value_template: >-
{{ states.binary_sensor | selectattr('attributes.device_class', 'in', ['door', 'motion'])
| list
| count }}
count_motion_sensors_unavailable:
friendly_name: "Motion Sensors Unavailable Count"
icon_template: "mdi:walk"
entity_id:
- sensor.time
value_template: >-
{{ states.binary_sensor | selectattr('attributes.device_class', 'in', ['door', 'motion'])
| selectattr('state', 'in', ['dead', 'unavailable'])
| list
| count }}
count_security_sensors:
friendly_name: "Security Sensors Count"
icon_template: "mdi:shield-home"
entity_id:
- sensor.time
value_template: >-
{% set burglar = states.sensor | map('regex_search','_burglar')
| select('equalto', True)
| list
| count %}
{% set classes = states.binary_sensor | selectattr('attributes.device_class', 'in', ['moisture', 'smoke'])
| list
| count %}
{{ burglar + classes }}
count_security_sensors_unavailable:
friendly_name: "Security Sensors Count"
icon_template: "mdi:shield-home"
entity_id:
- sensor.time
value_template: >-
{% set burglar = states.sensor | map('regex_search','_burglar')
| selectattr('state', 'in', ['dead', 'unavailable'])
| select('equalto', True)
| list
| count %}
{% set classes = states.binary_sensor | selectattr('attributes.device_class', 'in', ['moisture', 'smoke'])
| selectattr('state', 'in', ['dead', 'unavailable'])
| list
| count %}
{{ burglar + classes }}
count_switches:
friendly_name: "Switches Count"
icon_template: "mdi:toggle-switch"
entity_id:
- sensor.time
value_template: >-
{{ states.switch | list | count }}
count_switches_unavailable:
friendly_name: "Switches Unavailable Count"
icon_template: "mdi:toggle-switch"
entity_id:
- sensor.time
value_template: >-
{{ states.switch | selectattr('state', 'eq', 'unavailable')
| list
| count }}
count_zwave:
friendly_name: "Z-Wave Nodes Count"
icon_template: "mdi:z-wave"
entity_id:
- sensor.time
value_template: >-
{{ states.zwave | list | count }}
count_zwave_unavailable:
friendly_name: "Zwave Nodes Unavailable Count"
icon_template: "mdi:z-wave"
entity_id:
- sensor.time
value_template: >-
{{ states.zwave | selectattr('state', 'eq', 'dead')
| list
| count }}
#
# Current modes
#
# @see /appdaemon/dashboards/Switchboard.dash
#
- platform: template
sensors:
modes_friendly:
friendly_name: "Mode"
icon_template: "mdi:emoticon-happy"
value_template: >-
{% set counter = 0 %}
{% set modes = '' %}
{% if is_state('input_boolean.nap_mode', 'on') %}
{% set modes = modes + '+ Sleep ' %}
{% set counter = counter + 1 %}
{% endif %}
{% if is_state('input_boolean.night_mode', 'on') %}
{% set modes = modes + '+ Dark ' %}
{% set counter = counter + 1 %}
{% endif %}
{% if is_state('input_boolean.quiet_mode', 'on') %}
{% set modes = modes + '+ Quiet ' %}
{% set counter = counter + 1 %}
{% endif %}
{% if is_state('input_boolean.low_mode', 'on') %}
{% set modes = modes + '+ Eco ' %}
{% set counter = counter + 1 %}
{% endif %}
{% if is_state('input_boolean.scene_mode', 'on') %}
{% set modes = modes + '+ Scene ' %}
{% set counter = counter + 1 %}
{% endif %}
{% if modes == '' %}
{% set modes = 'Regular ' %}
{% set counter = counter + 1 %}
{% endif %}
{{ modes.lstrip('+') }}mode
{%- if counter > 1 -%}
s
{% endif %}
#
# Github Public Configuration Repository
#
# @see /custom_components/github_custom/sensor.py
#
# @link https://github.com/renemarc/home-assistant-config
# @link https://www.home-assistant.io/integrations/github/
#
- platform: github
access_token: !secret github_access_token
scan_interval: 900
repositories:
- path: "renemarc/balena-airthingswave"
name: "Repo Airthings"
- path: "renemarc/balena-flic"
name: "Repo Flic"
- path: "renemarc/countdoom"
name: "Repo Countdoom"
- path: "renemarc/home-assistant-config"
name: "Repo Config"
- path: "renemarc/home-assistant-doomsday-clock"
name: "Repo Doomsday Clock"
- platform: template
sensors:
repo_config_clones:
friendly_name: "Repo Config Clones"
icon_template: "mdi:checkbox-multiple-blank-outline"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'clones') }}
repo_config_clones_unique:
friendly_name: "Repo Config Unique Clones"
icon_template: "mdi:check-box-multiple-outline"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'clones_unique') }}
repo_config_forks:
friendly_name: "Repo Config Forks"
icon_template: "mdi:source-fork"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'forks') }}
repo_config_issues:
friendly_name: "Repo Config Issues"
icon_template: "mdi:alert-circle-outline"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'open_issues') }}
repo_config_stargazers:
friendly_name: "Repo Config Stargazers"
icon_template: "mdi:star-face"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'stargazers') }}
repo_config_views:
friendly_name: "Repo Config Views"
icon_template: "mdi:eye-outline"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'views') }}
repo_config_views_unique:
friendly_name: "Repo Config Unique Views"
icon_template: "mdi:eye-check-outline"
entity_id:
- sensor.time_quarterly
value_template: >-
{{ state_attr('sensor.repo_config', 'views_unique') }}
#
# Random positive quotes, to brighten up the day!
#
# @link http://www.lifestalker.com/2017/04/four-word-quotes.html
#
- platform: template
sensors:
good_vibes:
friendly_name: "Good Vibes"
icon_template: "mdi:emoticon-happy"
entity_id:
- sensor.time
value_template: >-
{% set vibes = [
"Be great.",
"Be happy!",
"Be in the now.",
"Be the hero.",
"Begin anywhere.",
"Compliment someone today.",
"Do something great.",
"Don't worry, be happy.",
"Dream big dreams.",
"Enjoy life!",
"Enjoy the little things.",
"Everybody loves you!",
"Follow your own star.",
"Grab life by the balls.",
"Hello gorgeous!",
"It's never too late.",
"Just go for it.",
"Just ship it.",
"Live with passion.",
"Love yourself.",
"Never doubt your instinct.",
"People envy you.",
"People want to be you.",
"Pick one thing and do it.",
"Ride like the wind.",
"Seize the day!",
"Start something.",
"Think big!",
"Think less. Feel more.",
"Work hard, stay humble.",
"You are a kind soul.",
"You are a winner!",
"You are an inspiration.",
"You are awesome!",
"You are fabulous!",
"You are the best!",
"You are the champion...",
"You are the most awesome!",
"You are your choices.",
"You can do great things!",
"You can move mountains.",
"You live only once.",
"You look delicious!",
"You make people happy.",
"Your time is now.",
] %}
{% set index = range(0, vibes|length - 1) | random %}
{{ vibes[index] }}