Sony PS3 BD Remote Battery

From MythTV Official Wiki
Jump to: navigation, search
Merge-arrows.gif
It has been suggested that this article or section be merged with Sony_PS3_BD_Remote. (Discuss)

Please see: xbmc_forum_ps3_remote - Great setup information and also the following information

Below is a very simple script I made so that when you first boot the machine you run this in a root terminal (I'm sure you could do it any other number of ways too.). Before I get ahead of myself let me just say at what state you should be at before using it.

After your remote is paired and is functioning just how you like it. When you remove the battery it will remote it from /proc/bus/input/devices, then you put the battery in it returns with the same event number.

Now all this script does is check for it being present in that devices list and perform an action and wait for it to go away and perform another action.

Out of my own preference this is what happens: Starting with a remote with the battery out:

  1. Detect remote is connected
  2. Get updated event handler and update lirc's hardware.conf (remote must be the last connected bluetooth device)
  3. restart lirc to start using the remote
  4. start mythfrontend --service
  5. forcefully turn on the display (LCD Monitor)
  6. Start detecting if remote has been disconnected
  7. Dectect the remote is disconnected
  8. Stop lirc
  9. kill mythfrontend.real
  10. forcefully turn off the display
  11. start detecting if the remote is connected


#!/bin/bash

# get first discovery

tail /proc/bus/input/devices | grep -i ps3 > /dev/null
discovery=$?

# if the discovery = 1 the remote is not attached
# if the discovery = 0 the remote is attached

remote_discovery()
{
        if [ "$discovery" -eq 1 ]
        then
                while [ "$discovery" -eq 1 ]
                        do tail /proc/bus/input/devices | grep -i ps3 > /dev/null
                        discovery=$?
                        xset dpms force off
                        sleep 1
                done
                enabled=1
                take_action
        else if [ "$discovery" -eq 0 ]
        then
                while [ "$discovery" -eq 0 ]
                        do tail /proc/bus/input/devices | grep -i ps3 > /dev/null
                        discovery=$?
                        sleep 1
                done
                enabled=0
                take_action
        fi
        fi
}

remote_found()
{
echo "Remote Found - Restarting lirc and running mythfrontend"
eventnum=`tail /proc/bus/input/devices | grep Handlers | awk '{print $3}'`
sed -i "s/^REMOTE_DEVICE.*$/REMOTE_DEVICE=\"\/dev\/input\/$eventnum\"/" /etc/lirc/hardware.conf
/etc/init.d/lirc restart
xset dpms force on
sleep 1
(gksudo -u akiko '/usr/bin/mythfrontend --service') &
remote_discovery
}

remote_lost()
{
echo "Remote Lost - Stopping lirc"
/etc/init.d/lirc stop
killall -9 mythfrontend.real
xset dpms force off
remote_discovery
}

take_action()
{
        case $enabled in
                1       ) remote_found;;
                0       ) remote_lost;;
        esac
}

remote_discovery

exit 0

To use it just copy the above into a file called something like ps3_remote_finder.sh Run: chmod +x ps3_remote_finder.sh Then in a root terminal: /<path to the file/ps3_remote_finder.sh

You will need to leave the window open, I like to so that I can check if it has been working as expected.

Hopefully someone finds this useful.