#!/bin/bash # this is called by lightcommander logger $0 1=$1 2=$2 BEAMERIP=$(cat $(dirname "$0")"/beamerip.txt") function raisescreen() { echo "Rolling projection screen up" ssh pi@doorbuzz 'doorbuzz/projectionscreen.sh up' curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "ON" "http://10.2.113.102:8080/rest/items/chill_zone_screen_button_up" } function lowerscreen() { echo "Rolling projection screen down" ssh pi@doorbuzz 'doorbuzz/projectionscreen.sh down' curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "ON" "http://10.2.113.102:8080/rest/items/chill_zone_screen_button_down" } function beamerquery() { signalsource="$(wget -qO - 'http://'"$projip"'/tgi/return.tgi?query=info' |awk -F'[<>]' '//{print substr($3,33,2)}')" if [ "$signalsource" = "" ] then signalsource="off" # I know bash can do this in 1 line, but this should still be readable fi echo "$signalsource" } # vv-- volume # 2a3140bf1c150a3230072a0101050300010001000001000100010185 # 1111111111222 # 1234567890123456789012 function beamervolumedown() { curvol="ff" rept=20 while [ "$curvol" != "00" ] && [ $rept -gt 0 ] do curvol="$(wget -qO - 'http://'"$projip"'/tgi/return.tgi?query=control' |awk -F'[<>]' '//{print substr($3,13,2)}')" echo "beamervolume was: $curvol" if [ "$curvol" != "00" ] then wget -qO - 'http://'"$projip"'/tgi/return.tgi?command=2a310bf4070263' fi rept=$((rept-1)) done } function beameroff() { echo "Switching beamer off" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3102fd0660 #projector off } function beameron() { currstatus="$(beamerquery)" echo "Switching beamer on (input was $currstatus)" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3101fe0660 #projector on if [ "$currstatus" = "off" ] then lowerscreen & echo "Waiting for beamer to boot..." sleep 18 echo "... is now booted" return 0 fi return 1 } function dvi() { currstatus="$(beamerquery)" if [ "$currstatus" = "02" ] || [ "$currstatus" = "off" ] then echo "not switching, already displaying DVI (or off)" return 0 else echo "Switching to dvi" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3109f6070566 #switch to DVI return 0 fi } function hdmi1() { echo "Switching to hdmi1" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3109f6071475 #switch to hdmi1 } function hdmi2() { echo "Switching to hdmi2" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3109f6071576 #switch to hdmi2 } function vga1() { echo "Switching to vga1" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3109f6070162 #switch to vga1 } function vga2() { echo "Switching to vga2" wget -qO/dev/null http://$projip/tgi/return.tgi?command=2a3109f6070263 #switch to vga2 } function receiveron() { echo "switching receiver on" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_POWER"' } function receiveroff() { echo "switching receiver off" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_POWER2"' } function receiverhdmi() { echo "Switching receiver to hdmi" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_DVD"' } function receiverjack1() { echo "Switching receiver to jack1" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_VCR"' } function receiverjack2() { echo "Switching receiver to jack2" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_VCR2"' } function receiveroptical() { echo "Switching receiver to optical" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_TAPE"' } function receivertuner() { echo "Switching receiver to tuner" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_TUNER"' } function receivercd() { echo "Switching receiver to cd" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_CD"' } function receivervolumeup() { #echo "Turning reciever volume up" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_VOLUMEUP"' } function receivervolumedown() { #echo "Turning reciever volume down" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE pioneer "KEY_VOLUMEDOWN"' } function bluray() { echo "Sending bluray player $1" ssh pi@doorbuzz '/usr/bin/irsend SEND_ONCE SONY_RMT_B104P '"KEY_$(tr [:lower:] [:upper:] <<<$1)" } function usage() { echo "Usage: $0 (beamer|screen|receiver|bluray) (on|dvi|hdmi1|hdmi2|vga|off|down|up|left|right|vol-|vol+|query)" exit } projip="$(cat $(dirname "$0")"/beamerip.txt")" case $1 in beamer) case $2 in on) beameron ;; off) beameroff ;; dvi) dvi && beameron && dvi ;; dvioff) dvi && beameroff ;; dvionly) dvi ;; hdmi1) hdmi1 ; beameron && hdmi1 ;; hdmi2) hdmi2 ( receiveron sleep 4 receiverhdmi ) & beameron && hdmi2 ;; vga1) vga1 ; beameron && vga1 ;; "vol-") beamervolumedown ;; "query") beamerquery ;; *) usage esac ;; screen) case $2 in down|on) lowerscreen ;; up|off) raisescreen ;; *) usage esac ;; bluray) case $2 in down|up|left|right|ok|audio|subtitle|menu|pause|play) bluray $2 ;; on|off) bluray power ;; *) usage esac ;; receiver) case $2 in on) receiveron ;; off) receiveroff ;; shutdown) echo "Receiver shutdown initiated..." for i in {1..90} do if [ "$(cat /run/spacestatus)" = "open" ] then echo "space open, stopping receiver shutdown" exit fi receivervolumedown done for i in {1..50} do if [ "$(cat /run/spacestatus)" = "open" ] then echo "space open, stopping receiver shutdown" exit fi receivervolumeup done receiveroff echo "Receiver shutdown finished." ;; hdmi) receiverhdmi ;; jack1) receiverjack1 ;; jack2) receiverjack2 ;; optical) receiveroptical ;; tuner) receivertuner ;; cd) receivercd ;; "vol+") receivervolumeup ;; "vol-") receivervolumedown ;; *) usage esac ;; *) usage ;; esac 2>&1 | tee >(logger -t $0)