Sync 2 avr volumes help!

Apologies for the noob post, but I only got my HA green Friday and one of the major reasons I wanted HA was actually to sync the volume of 2 yamaha avrs I have next to each other. Of course, I’m learning the possibilities, but this is one annoying thing I really want to fix!

My living room home theatre uses 2 avrs - ‘big Rex’ for the main unit and Rx-v581 that runs the two front and front atmos speakers.

It’s a huge pain having to look to see if the volume are the same, and also lean far forward to make sure the second avr gets the remote signal.

The rx is set to direct and feeds from big rex.

I I’m trying to get the rx-v581 to change volume when the ‘Big Rex’ one does. I have it working, but regardless of whether I turn the volume on Rex (source) up or down, the volume on rx-v581 (dependent) just goes up. I’m guessing it is due to the "+0.01 }}, but I’m a YAML neophyte…

I copied the code below from a reddit sub that’s not Home Assistant and changed the entities to mine.

Could someone please help?

Pleeeeease?! :blush:

triggers:
  - entity_id:
      - media_player.big_rex
    attribute: volume_level
    trigger: state
actions:
  - data:
      volume_level: "{{ state_attr('media_player.jeff_s_rx_v581', 'volume_level') +0.01}}"
    action: media_player.volume_set
    target:
      device_id: bf0884d8b0ce3f50700b0c

you almos got it

alias: Sync Volume from Big Rex to RX-V581
description: Syncs volume exactly between two Yamaha AVRs
trigger:
  - platform: state
    entity_id: media_player.big_rex
    attribute: volume_level
condition: []
action:
  - service: media_player.volume_set
    target:
      entity_id: media_player.jeff_s_rx_v581
    data:
      volume_level: "{{ state_attr('media_player.big_rex', 'volume_level') }}"
mode: single

this way you can sync both

alias: sincronizar volumen entre satelites
description: manten ambas bocinas sincronizadas en volumen
triggers:
  - entity_id:
      - media_player.asistente_oficina
      - media_player.asistente_cuarto
    attribute: volume_level
    trigger: state
conditions:
  - condition: template
    value_template: >
      {% set big = state_attr('media_player.asistente_oficina', 'volume_level')
      | float(0) %} {% set rx = state_attr('media_player.asistente_cuarto',
      'volume_level') | float(0) %} {{ (big - rx) | abs > 0.01 }}
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.entity_id == 'media_player.asistente_oficina' }}"
        sequence:
          - target:
              entity_id: media_player.asistente_cuarto
            data:
              volume_level: >-
                {{ state_attr('media_player.asistente_oficina', 'volume_level')
                }}
            action: media_player.volume_set
      - conditions:
          - condition: template
            value_template: "{{ trigger.entity_id == 'media_player.asistente_cuarto' }}"
        sequence:
          - target:
              entity_id: media_player.asistente_oficina
            data:
              volume_level: >-
                {{ state_attr('media_player.asistente_cuarto', 'volume_level')
                }}
            action: media_player.volume_set
mode: single


just change your entities

1 Like

Thank you so much! I’ve had this sync issue for a couple of years now and it’s always annoyed me! :rofl:

Now I can have faith in the speaker level values I’m setting for the second avr and not have to always get up to match both.