code: async def volume(dev: Device, volume, output):
      
      vol = None
      vol_controls = await dev.get_volume_information()
      if output is not None:
          click.echo("Using output: %s" % output)
          output_uri = (await dev.get_zone(output)).uri
          for v in vol_controls:
              if v.output == output_uri:
                  vol = v
                  break
      else:
          vol = vol_controls[0]
  
      if vol is None:
          err("Unable to find volume controller: %s" % output)
          return
  
      if volume and volume == "mute":
          click.echo("Muting")
          await vol.set_mute(True)
      elif volume and volume == "unmute":
          click.echo("Unmuting")
          await vol.set_mute(False)
      elif volume:
          click.echo("Setting volume to %s" % volume)
          await vol.set_volume(volume)
  
      if output is not None:
          click.echo(vol)
      else:
          [click.echo(x) for x in vol_controls]
docs: Get and set the volume settings.
  
      Passing 'mute' as new volume will mute the volume,
      'unmute' removes it.