Home-AssistantConfig/packages/pihole.yaml

125 lines
4.2 KiB
YAML
Executable File

#-------------------------------------------
# PiHole ad Blocking Related Packages
#-------------------------------------------
homeassistant:
customize:
sensor.pihole_ads_percentage_today:
friendly_name: Percentage of Ad Traffic Blocked
unit_of_measurement: '%'
icon: mdi:ticket-percent
sensor.pihole_domains_being_blocked:
friendly_name: Total Domains Blocking
icon: mdi:do-not-disturb
sensor.pihole_dns_unique_clients:
friendly_name: Unique Clients
icon: mdi:desktop-classic
sensor.pihole_ads_blocked_today:
friendly_name: Ads Blocked Today
icon: mdi:do-not-disturb
sensor.pihole_dns_queries_today:
friendly_name: DNS Queries Today
icon: mdi:note-text
sensor.carlopihole:
friendly_name: Pi Hole Server
icon: mdi:filter-variant
group.pihole:
homebridge_hidden: true
#-------------------------------------------
sensor:
- platform: pi_hole
host: 192.168.10.11
monitored_conditions:
- dns_queries_today
- ads_blocked_today
- ads_percentage_today
- unique_clients
######Custom Version sensor
# - platform: command_line
# command: "pihole -v -p -c"
# name: 'pihole_version_current'
# value_template: '{{ value[28:] }}'
# scan_interval: 86400
#
# - platform: command_line
# command: "pihole -v -p -l"
# name: 'pihole_version_latest'
# value_template: '{{ value[27:] }}'
# scan_interval: 86400
- platform: template
sensors:
carlopihole:
friendly_name: 'Carlo-PiHole'
value_template: "{{ 'Online' if is_state('device_tracker.carlopihole', 'home') else 'Offline' }}"
# pi_hole_version:
# value_template: "{%- if states.sensor.pihole_version_current.state == states.sensor.pihole_version_latest.state -%}{{states.sensor.pihole_version_current.state}} {% else %}{{states.sensor.pihole_version_latest.state}} Available{% endif%}"
# icon_template: >-
# {% if states.sensor.pihole_version_current.state == states.sensor.pihole_version_latest.state %}
# mdi:checkbox-marked
# {% else %}
# mdi:checkbox-blank-outline
# {% endif %}
# Pi-Hole switch
switch:
- platform: command_line
switches:
pihole_temp_disable:
command_on: "curl -X GET 'http://192.168.10.11/admin/api.php?enable&auth='"
command_off: "curl -X GET 'http://192.168.10.11/admin/api.php?disable=3600&auth='"
# command_state: "curl -X GET 'http://192.168.10.11/admin/api.php?status'| grep enabled"
# value_template: "{{ value_json.status == 'enabled' }}
#-------------------------------------------
group:
pihole:
entities:
- sensor.carlopihole
- sensor.pi_hole_version
- sensor.pihole_dns_unique_clients
- sensor.pihole_dns_queries_today
- sensor.pihole_ads_blocked_today
- sensor.pihole_ads_percentage_today
- sensor.pihole_ads_percentage_blocked_today
- switch.pihole_temp_disable
#-------------------------------------------
automation:
- alias: PiHole Daily stats Tweet!
trigger:
platform: time
at: '23:50:00'
action:
- delay: '00:{{ (range(1, 9)|random|int) }}:00'
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"I blocked {{states.sensor.pihole_ads_blocked_today.state}} ads. That is {{states.sensor.pihole_ads_percentage_blocked_today.state}}% of my internet traffic.",
"Today was a good day! Why, you ask? Because I blocked {{states.sensor.pihole_ads_blocked_today.state}} ads via Pi-Hole!",
] | random + " #PiHole #Security Status:({{states.sensor.carlopihole.state}})"}}
- alias: PiHole Daily Client Tweet!
trigger:
platform: time
at: '04:30:00'
action:
- delay: '{{ (range(1, 6)|random|int) }}:{{ (range(1, 50)|random|int) }}:00'
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"There are currently {{states.sensor.pihole_dns_unique_clients.state}} clients on my network.",
"As reported by #Ubiquity Routers, There are {{states.sensor.pihole_dns_unique_clients.state}} clients on my network.",
] | random + "#Security http://amzn.to/2D2AfXS"}}