How to turn off the USB power to my mouse, when I suspend the notebook?

Find the bus and device # of your mouse by issuing the command lsusb (with and without it plugged in) you want the one that's only there when it's plugged in. Make a note of the numbers. In your case they appear to be 6 and 6

issue the command sudo cp /etc/pm/sleep.d/novatel_3g_suspend /etc/pm/sleep.d/mouse_suspend (we have to do this because gedit no longer has a Save As option when launched as superuser that I can find.)

issue the command gksu gedit /etc/pm/sleep.d/mouse_suspend Change the Bus and Device numbers to match the ones you took note of earlier. Save the resulting file. It will be executed when you suspend your laptop.

In your case you should change BUS=X and DEVICE=Y to the Bus and Device numbers that match the mouse in question. This will work until you move the device to a different port in which case you will have to locate the device again and adjust the file accordingly.

BUS=X
DEVICE=Y

if [ ! -x /sys/bus/usb/devices/${BUS}-${DEVICE}/power/level ]; then
    exit 0
fi

case $1 in
     suspend|suspend_hybrid|hibernate)
    echo suspend > /sys/bus/usb/devices/${BUS}-${DEVICE}/power/level
        ;;
     resume|thaw)
    # No need to do anything here, kernel unsuspends USB devices
    :
        ;;
esac

The comments in the file (lines beginning with #) are irrelevant and can be safely ignored.

Note: I tested this via Suspend on a desktop and it worked as advertised. I do not have access to the same hardware you have but I had to resume the system via the power button so I'm fairly certain this will work for you.

Edit based on comments and expansion of question:

It appears that this is the info you need to proceed: Bus 006 Device 006: ID 046d:c52b Logitech, Inc. Unifying Receiver


The current stumbling block with OP links, follow up comments and proposed answers is the product ID is static 1b1a:7001 but the Bus and Device numbers keep changing.

The solution

Create a script (any name you want) in the directory /etc/pm/sleep.d/ and place the following in it:

#!/bin/bash
ZeroBUS=$(lsusb | grep 1b1a:7001 | cut -c  5-7 )

# Strip leading zeros
BUS=$(echo $ZeroBUS | sed 's/^0*//')

# Build "usbX" usb number
USB=usb$BUS

case $1 in
     suspend|suspend_hybrid|hibernate)
     echo "Powering off: " $USB
        echo $USB | sudo tee /sys/bus/usb/drivers/usb/unbind
        ;;
     resume|thaw)
        # No need to do anything here, kernel unsuspends USB devices
        # Show how to power on for interest sake but since device is
        # powered off the usb number will be blank.
        echo "Powering on: " $USB
        echo $USB | sudo tee /sys/bus/usb/drivers/usb/bind
        ;;
esac

Mark the file as executable with sudo chmod +x file_name where "file_name" is the name you chose.

The explanation

This solution powers off the entire USB hub which in my case meant phone, wireless mouse, wireless keyboard, etc. When calling the script from terminal prompt the sudo password needs to be entered. Hopefully when called from systemd sudo powers are inherited. I could not test this though because I don't have a wired mouse. Therefore additional refinement may be necessary for sudo powers.

The power isn't physically cut when the BIOS is providing constant 5V power supply, rather the devices on the bus are told to turn themselves off. In my case the wireless keyboard and mouse stopped working and had to resort to laptop keyboard and touchpad to return power back on.

You can test this manually by calling the script and passing the parameters "suspend". Passing the parameter "resume" accomplishes nothing because the device is powered off it has no device ID to turn it back on.


Easier solution power off all USB ports

I recently ran into a problem where an unknown port was preventing laptop from suspending. I found this solution (credit in code) which I modified.

Create the file /lib/systemd/system-sleep/custom-xhci_hcd using sudo powers and insert this code:

#!/bin/bash

# Original script was using /bin/sh but shellcheck reporting warnings.

# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once

# DATE: Oct 28 2018.

# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998

TMPLIST=/tmp/xhci-dev-list

# Original script was: case "${1}" in hibernate|suspend)

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac