Files
ha-parental-controls/packages/parental_controls.yaml
T

109 lines
3.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================
# Parental Controls Package
# =============================================================
# Config stored across 12 chunks (12 × 255 = 3060 chars max)
# Enough for 5 users with several devices each
input_text:
parental_config_0: {name: "Parental Config 0", max: 255, icon: mdi:shield-account}
parental_config_1: {name: "Parental Config 1", max: 255, icon: mdi:shield-account}
parental_config_2: {name: "Parental Config 2", max: 255, icon: mdi:shield-account}
parental_config_3: {name: "Parental Config 3", max: 255, icon: mdi:shield-account}
parental_config_4: {name: "Parental Config 4", max: 255, icon: mdi:shield-account}
parental_config_5: {name: "Parental Config 5", max: 255, icon: mdi:shield-account}
parental_config_6: {name: "Parental Config 6", max: 255, icon: mdi:shield-account}
parental_config_7: {name: "Parental Config 7", max: 255, icon: mdi:shield-account}
parental_config_8: {name: "Parental Config 8", max: 255, icon: mdi:shield-account}
parental_config_9: {name: "Parental Config 9", max: 255, icon: mdi:shield-account}
parental_config_10: {name: "Parental Config 10", max: 255, icon: mdi:shield-account}
parental_config_11: {name: "Parental Config 11", max: 255, icon: mdi:shield-account}
# ------------------------------------------------------------------
# OPNsense DHCP lease sensor — device discovery + MAC→IP
# Requires opnsense_leases_url and opnsense_basic_auth in secrets.yaml
# ------------------------------------------------------------------
rest:
- resource: !secret opnsense_leases_url
scan_interval: 60
headers:
Authorization: !secret opnsense_basic_auth
verify_ssl: false
sensor:
- name: "OPNsense DHCP Leases"
unique_id: parental_controls_dhcp_leases
value_template: "{{ value_json.total | default(value_json.rowCount) | default(0) }}"
icon: mdi:lan
json_attributes:
- rows
# ------------------------------------------------------------------
# OPNsense firewall API calls
# ------------------------------------------------------------------
rest_command:
parental_block_ip:
url: !secret opnsense_alias_add_url
method: post
headers:
Authorization: !secret opnsense_basic_auth
payload: "address={{ address }}"
content_type: "application/x-www-form-urlencoded"
verify_ssl: false
parental_unblock_ip:
url: !secret opnsense_alias_del_url
method: post
headers:
Authorization: !secret opnsense_basic_auth
payload: "address={{ address }}"
content_type: "application/x-www-form-urlencoded"
verify_ssl: false
parental_apply_firewall:
url: !secret opnsense_apply_url
method: post
headers:
Authorization: !secret opnsense_basic_auth
payload: "{}"
content_type: "application/json"
verify_ssl: false
# ------------------------------------------------------------------
# Scripts
# ------------------------------------------------------------------
script:
parental_block_ip:
alias: "Parental Controls — Block IP"
icon: mdi:block-helper
fields:
ip:
description: "IP address to block"
required: true
selector:
text:
sequence:
- service: rest_command.parental_block_ip
data:
address: "{{ ip }}"
parental_unblock_ip:
alias: "Parental Controls — Unblock IP"
icon: mdi:check-circle-outline
fields:
ip:
description: "IP address to unblock"
required: true
selector:
text:
sequence:
- service: rest_command.parental_unblock_ip
data:
address: "{{ ip }}"
parental_apply_firewall:
alias: "Parental Controls — Apply Firewall"
icon: mdi:shield-refresh
sequence:
- service: rest_command.parental_apply_firewall