#:########################################################################################:#
# Office Media Buttons Package                                                           #
#:########################################################################################:#
#
# TITLE:
#   Office Media Buttons
#
# FILE:
#   packages/office_media_buttons.yaml
#
# VERSION:
#   V1.1 2026-07-20
#
# VERSION HISTORY:
#   V1.1 2026-07-20
#     - Added structured documentation and automation descriptions.
#     - Identified the active ZHA implementation and disabled alternatives.
#
#   V1.0
#     - Initial office media-button automations.
#
# PURPOSE:
#   Controls office TV playback from a Zigbee media button using direct ZHA
#   click events.
#
# ACTIVE BUTTON MAPPING:
#   - Single press pauses playback.
#   - Double press starts or resumes playback.
#   - Triple press seeks backward by 30 seconds.
#
# DEPENDENCIES:
#   - ZHA event source: device IEEE 00:15:8d:00:06:79:46:c8.
#   - media_player.office_tv provides the current playback position.
#   - The media actions target the office TV device registered in Home Assistant.
#
# NOTES:
#   - seek_amount is not normally provided by the event and defaults to -30.
#   - Commented MQTT and entity-state implementations below are disabled
#     historical alternatives retained for reference.
#
#:########################################################################################:#

#:########################################################################################:#
# Historical Disabled MQTT Sensor                                                       #
#:########################################################################################:#

#mqtt:
#  sensor:
#    - unique_id: office_media_button_1
#      name: "Office Media Button"
#      state_topic: "tele/tasmo-zigb-6440-1/9CB5/SENSOR"
#      unit_of_measurement: "Press"
#      value_template: "{{ value_json.ZbReceived.Office_Media_Button.Power }}"

#:########################################################################################:#
# Active ZHA Automations                                                                 #
#:########################################################################################:#

automation:
  - id: pause_office_tv_on_media_button
    alias: Pause Office TV on Media Button
    description: "Pauses the office TV when the media button is pressed once."
    trigger:
      - platform: event
        event_type: zha_event
        event_data:
          device_ieee: 00:15:8d:00:06:79:46:c8
          command: click
          args:
            click_type: single
    condition: []
    action:
      - service: media_player.media_pause
        target:
          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
    mode: single
  - id: play_office_tv_on_media_button
    alias: Play Office TV on Media Button
    description: "Starts or resumes office TV playback when the media button is pressed twice."
    trigger:
      - platform: event
        event_type: zha_event
        event_data:
          device_ieee: 00:15:8d:00:06:79:46:c8
          command: click
          args:
            click_type: double
    condition: []
    action:
      - service: media_player.media_play
        target:
          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
    mode: single
  - id: seek_office_tv_on_media_button
    alias: Seek Office TV on Media Button
    description: "Seeks office TV playback backward 30 seconds when the media button is pressed three times."
    trigger:
      - platform: event
        event_type: zha_event
        event_data:
          device_ieee: 00:15:8d:00:06:79:46:c8
          command: click
          args:
            click_type: triple
    condition: []
    action:
      - service: media_player.media_seek
        data:
          seek_position: >-
            {{ state_attr("media_player.office_tv",
            "media_position")|int + (seek_amount|default(-30)|int(-30)) }}
        target:
          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
    mode: single

  # Historical disabled MQTT and entity-state alternatives.
#  - id: "1629271273958"
#    alias: Pause office TV on MQTT
#    description: ""
#    trigger:
#      - platform: mqtt
#        topic: viewroad-commands/officetv/action
#        payload: pause
#        encoding: utf-8
#    condition: []
#    action:
#      - service: media_player.media_pause
#        target:
#          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
#    mode: single
#  - id: "1630969028384"
#    alias: Skip Forward 30 Seconds on Media Button
#    description: ""
#    trigger:
#      - platform: state
#        entity_id: sensor.media_button_office_zbt04_action
#        to: "triple"
#    condition: []
#    action:
#      - service: media_player.media_seek
#        data:
#          seek_position: 30
#    mode: single

# Historical disabled entity-state automation block.
#automation:
#  - id: "1629271273952"
#    unique_id: pause_office_tv_on_media_button
#    alias: Pause Office TV on Media Button
#    description: ""
#    trigger:
#      - platform: state
#        entity_id: sensor.media_button_office_zbt04_action
#        to: "single"
#    condition: []
#    action:
#      - service: media_player.media_pause
#        target:
#          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
#    mode: single
#  - id: "1629271457675"
#    alias: Play Office TV on Media Button
#    description: ""
#    trigger:
#      - platform: state
#        entity_id: sensor.media_button_office_zbt04_action
#        to: "double"
#    condition: []
#    action:
#      - service: media_player.media_play
#        target:
#          device_id: abb6b5a6b4e4925dcb3a77ea2c293eaa
#    mode: single
