#:########################################################################################:#
# Firewall Internet Control Package                                                     #
#:########################################################################################:#
#
# TITLE:
#   Firewall Internet Control
#
# FILE:
#   packages/firewall_control.yaml
#
# VERSION:
#   V1.1 2026-07-20
#
# VERSION HISTORY:
#   V1.1 2026-07-20
#     - Added structured MQTT and external-firewall documentation.
#
#   V1.0
#     - Initial persistent and temporary internet-blocking controls.
#
# PURPOSE:
#   Provides Home Assistant controls for persistent and temporary internet
#   blocking of Mollie's devices through an external MQTT firewall service.
#
# PERSISTENT CONTROL:
#   - Blocked enables persistent internet blocking.
#   - Unblocked disables persistent internet blocking.
#   - The switch state is reported by the external firewall service.
#
# TEMPORARY CONTROLS:
#   - One-hour block publishes Blocked to the temporary-block topic.
#   - 15-minute unblock publishes Unblocked to the temporary-unblock topic.
#   - One-hour unblock publishes Unblocked to its one-hour topic.
#
# EXTERNAL DEPENDENCY:
#   - Home Assistant only publishes command requests.
#   - The external firewall service implements temporary durations, restores the
#     appropriate state afterward, and publishes persistent switch feedback.
#
# MQTT NOTES:
#   - All commands are non-retained.
#   - No availability topic is configured for these entities.
#   - The persistent status topic retains the legacy device label
#     block-unblock-mollie-iphone8.
#
#:########################################################################################:#

mqtt:
  switch:
    - unique_id: mollies.internet
      name: "Mollie's Internet Blocking"
      state_topic: "viewroad-status/firewall/block-unblock-mollie-iphone8"
      command_topic: "viewroad-commands/firewall/block-unblock-mollie-devices"
      payload_off: "Unblocked"
      payload_on: "Blocked"
      icon: mdi:web
      retain: false
  button:
    - unique_id: mollies.internet.temp.block
      name: "Mollie's Internet (1 hr Block)"
      command_topic: "viewroad-commands/firewall/tempblock-mollie-devices"
      payload_press: "Blocked"
      icon: mdi:web
      retain: false
    - unique_id: mollies.internet.temp.unblock
      name: "Mollie's Internet (15min Unblock)"
      command_topic: "viewroad-commands/firewall/tempunblock-mollie-devices"
      payload_press: "Unblocked"
      icon: mdi:web
      retain: false
    - unique_id: mollies.internet.temp.unblock.1hr
      name: "Mollie's Internet (1hr Unblock)"
      command_topic: "viewroad-commands/firewall/tempunblock-mollie-devices-1hr"
      payload_press: "Unblocked"
      icon: mdi:web
      retain: false
