Logitech Harmony commands based on activity

I made an appdaemon app that does that. Let me tell you, it’s complicated. After creating it, I can tell you that there is no easy way do accomplish your request.

Here’s the appdeamon app, I haven’t added it to hacs yet, but it’s set up pretty much. Just no documentation yet.

and here’s my configuration for it at the moment for appdaemon:

anchors:
  roku: &roku
    activity: Roku
    device: Roku Ultra
  xbox: &xbox
    activity: Xbox One
    device: Microsoft Xbox One
  ps4: &ps4
    activity: PS4
    device: Sony PS4

hac_living_room:
  module: harmony_activity_controls
  class: ActivityControls
  remote: remote.living_room
  activities:
  - <<: *roku
  - <<: *xbox
  - <<: *ps4
  commands:
  - Rewind
  - Play
  - Pause
  - command: FastForward
    name: Forward
  - DirectionUp
  - DirectionLeft
  - command: OK
    name: Confirm
  - DirectionRight
  - DirectionDown
  - Back
  custom_events:
  - event: HomeButton
    icon: mdi:home
    name: Home
    activities:
    - <<: *roku
      command: Home
    - <<: *xbox
      command: Xbox
    - <<: *ps4
      command: PS
  - event: MenuButton
    icon: mdi:menu
    name: Menu
    activities:
    - <<: *roku
      command: 'Options*'
    - <<: *xbox
      command: Menu
      icon: mdi:xbox-controller-menu
    - <<: *ps4
      command: Options
  - event: LowerLeft
    activities:
    - <<: *roku
      name: Search
      command: Search
    - <<: *xbox
      name: View
      command: View
      icon: mdi:xbox-controller-view
    - <<: *ps4
      name: Info
      command: Info
  - event: LowerRight
    activities:
    - <<: *roku
      name: Exit
      command: Exit
    - <<: *xbox
      command: OneGuide
      name: One Guide
      icon: mdi:xbox
    - <<: *ps4
      name: Share
      command: Share

  - event: BottomButton
    name: Confirm
    activities:
    - <<: *xbox
      entity_picture: /local/images/xbox_a_transparent_2.png
      color: rgba(100, 189, 54)
      command: A
    - <<: *ps4
      entity_picture: /local/images/playstation_x.png
      color: rgba(107, 139, 200)
      command: Cross
  - event: RightButton
    name: Back
    activities:
    - <<: *xbox
      entity_picture: /local/images/xbox_b_transparent_2.png
      color: rgba(255, 24, 43)
      command: B
    - <<: *ps4
      entity_picture: /local/images/playstation_circle.png
      color: rgba(246, 69, 75)
      command: Circle
  - event: TopButton
    name: Search
    activities:
    - <<: *xbox
      entity_picture: /local/images/xbox_y_transparent_2.png
      color: rgba(255, 185, 49)
      command: 'Y'
    - <<: *ps4
      entity_picture: /local/images/playstation_triangle.png
      color: rgba(43, 220, 150)
      command: Triangle
  - event: LeftButton
    name: Backspace
    activities:
    - <<: *xbox
      entity_picture: /local/images/xbox_x_transparent_2.png
      color: rgba(0, 61, 142)
      command: X
    - <<: *ps4
      entity_picture: /local/images/playstation_square.png
      color: rgba(219, 142, 196)
      command: Square
  log_level: INFO
  make_scripts: True

It creates a script file for you for each command…

remote_living_room_rewind:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'Rewind'}

remote_living_room_play:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'Play'}

remote_living_room_pause:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'Pause'}

remote_living_room_fastforward:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'FastForward'}

remote_living_room_directionup:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'DirectionUp'}

remote_living_room_directionleft:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'DirectionLeft'}

remote_living_room_ok:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'OK'}

remote_living_room_directionright:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'DirectionRight'}

remote_living_room_directiondown:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'DirectionDown'}

remote_living_room_back:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'Back'}

remote_living_room_homebutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'HomeButton'}

remote_living_room_menubutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'MenuButton'}

remote_living_room_lowerleft:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'LowerLeft'}

remote_living_room_lowerright:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'LowerRight'}

remote_living_room_bottombutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'BottomButton'}

remote_living_room_rightbutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'RightButton'}

remote_living_room_topbutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'TopButton'}

remote_living_room_leftbutton:
  sequence:
  - event: remote_living_room
    event_data: {'command': 'LeftButton'}
1 Like