After looking at this project I decided to build an X1 xfinity remote for my Harmony Hub with Tiles.
Get the activity and device numbers from harmony_family_room.conf
Here is what it looks like:
Here is the configuration:
groups
groups:
family_room_xfinity:
name: Family Room X1 Remote
entities:
- input_text.tiles_fr_xfinity
input_text
input_text:
tiles_fr_xfinity:
name: Tiles FR X1
scripts
scripts:
fr_watch_tv:
alias: 'Watch TV'
sequence:
- service: remote.turn_on
entity_id: remote.family_room
data:
activity: '31460757'
fr_power_off:
alias: 'Power Off'
sequence:
- service: remote.turn_off
entity_id: remote.family_room
fr_av_press_button:
alias: 'FR RX-A830 Button Press'
sequence:
- service: remote.send_command
data:
entity_id: remote.family_room
device: '51772834'
data_template:
command: "{{ command }}"
fr_tv_press_button:
alias: 'FR LG TV Button Press'
sequence:
- service: remote.send_command
data:
entity_id: remote.family_room
device: '51712832'
data_template:
command: "{{ command }}"
fr_x1_press_button:
alias: 'FR X1 Button Press'
sequence:
- service: remote.send_command
data:
entity_id: remote.family_room
device: '51772913'
data_template:
command: "{{ command }}"
customize
customize:
input_text.tiles_fr_xfinity:
custom_ui_state_card: state-card-tiles
config:
columns: 3
column_width: 100px
row_height: 24px
entities:
- entity: script.fr_watch_tv
label: "Watch TV"
icon: mdi:power
color: green
row_span: 2
column_span: 2
- entity: script.fr_power_off
label: "OFF"
icon: mdi:power
color: tomato
row_span: 2
column_span: 1
- entity: script.fr_x1_press_button
label: Guide
row_span: 2
data: {command: Guide}
- entity: script.fr_x1_press_button
label: Menu
row_span: 2
data: {command: Xfinity}
- entity: script.fr_x1_press_button
label: Info
row_span: 2
data: {command: Info}
- entity: script.fr_av_press_button
icon: mdi:volume-plus
row_span: 2
data: {command: VolumeUp}
- entity: script.fr_x1_press_button
icon: mdi:arrow-up
row_span: 2
color: silver
data: {command: DirectionUp}
- entity: script.fr_x1_press_button
icon: mdi:arrow-up-drop-circle
row_span: 2
data: {command: ChannelUp}
- entity: script.fr_x1_press_button
icon: mdi:arrow-left
column: 1
row_span: 2
color: silver
data: {command: DirectionLeft}
- entity: script.fr_x1_press_button
label: OK
row_span: 2
color: grey
data: {command: Select}
- entity: script.fr_x1_press_button
icon: mdi:arrow-right
row_span: 2
color: silver
data: {command: DirectionRight}
- entity: script.fr_av_press_button
icon: mdi:volume-minus
row_span: 2
data: {command: VolumeDown}
- entity: script.fr_x1_press_button
icon: mdi:arrow-down
row_span: 2
color: silver
data: {command: DirectionDown}
- entity: script.fr_x1_press_button
icon: mdi:arrow-down-drop-circle
row_span: 2
data: {command: ChannelDown}
- entity: script.fr_x1_press_button
icon: mdi:arrow-up-bold-box
row_span: 2
data: {command: PageUp}
- entity: script.fr_x1_press_button
label: Exit
row_span: 2
color: grey
data: {command: Exit}
- entity: script.fr_x1_press_button
icon: mdi:arrow-down-bold-box
row_span: 2
data: {command: PageDown}
- entity: script.fr_x1_press_button
icon: mdi:rewind
data: {command: Rewind}
- entity: script.fr_x1_press_button
icon: mdi:play
data: {command: Play}
- entity: script.fr_x1_press_button
icon: mdi:fast-forward
data: {command: FastForward}
- entity: script.fr_x1_press_button
icon: mdi:stop
data: {command: Stop}
- entity: script.fr_x1_press_button
icon: mdi:pause
data: {command: Pause}
- entity: script.fr_x1_press_button
icon: mdi:record
data: {command: Record}
- entity: script.fr_x1_press_button
label: A - help
column: 1
color: gold
data: {command: A}
- entity: script.fr_x1_press_button
label: B - CC
color: dodgerblue
data: {command: B}
- entity: script.fr_x1_press_button
label: C - sports
color: tomato
data: {command: C}
- entity: script.fr_x1_press_button
label: 1
data: {command: 1}
- entity: script.fr_x1_press_button
label: 2
data: {command: 2}
- entity: script.fr_x1_press_button
label: 3
data: {command: 3}
- entity: script.fr_x1_press_button
label: 4
data: {command: 4}
- entity: script.fr_x1_press_button
label: 5
data: {command: 5}
- entity: script.fr_x1_press_button
label: 6
data: {command: 6}
- entity: script.fr_x1_press_button
label: 7
data: {command: 7}
- entity: script.fr_x1_press_button
label: 8
data: {command: 8}
- entity: script.fr_x1_press_button
label: 9
data: {command: 9}
- entity: script.fr_av_press_button
icon: mdi:volume-off
data: {command: Mute}
- entity: script.fr_x1_press_button
label: 0
column: 2
data: {command: 0}
- entity: script.fr_x1_press_button
label: E
data: {command: E}