mirror of
https://github.com/mtan93/homebridge.git
synced 2026-03-08 05:31:55 +00:00
105 lines
3.2 KiB
Bash
105 lines
3.2 KiB
Bash
#!/usr/bin/env
|
|
|
|
# Check if we can use colours in our output
|
|
use_colour=0
|
|
[ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null && use_colour=1
|
|
|
|
# Some useful functions
|
|
progress() {
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[01;32m"
|
|
echo "$@" >&2
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[00m"
|
|
}
|
|
|
|
info() {
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[01;34m"
|
|
echo "$@" >&2
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[00m"
|
|
}
|
|
|
|
die () {
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[01;31m"
|
|
echo "$@" >&2
|
|
[ $use_colour -eq 1 ] && echo -ne "\033[00m"
|
|
exit 1
|
|
}
|
|
|
|
install_package() {
|
|
package=$1
|
|
info "install ${package}"
|
|
sudo apt-get -y --force-yes install $package 2>&1 > /dev/null
|
|
return $?
|
|
}
|
|
|
|
# check architecture
|
|
sudo test "`dpkg --print-architecture`" == "armhf" || die "This Repos is only for armhf."
|
|
|
|
# set timezone and update system
|
|
info "Setting up locale and keyboard"
|
|
sudo dpkg-reconfigure locales
|
|
|
|
TIMEZONE="Europe/Berlin"
|
|
echo $TIMEZONE | sudo tee /etc/timezone
|
|
sudo cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
|
|
sudo dpkg-reconfigure -f noninteractive tzdata
|
|
|
|
info "Setting up Hostname"
|
|
echo 'Homebridge' | sudo tee /etc/hostname
|
|
|
|
info "Cleaning up"
|
|
sudo dpkg --configure -a
|
|
|
|
info "Update Package Lists this may take some time (10-20 min) depending on your internet connection"
|
|
sudo apt-get update -y
|
|
sudo apt-get dist-upgrade -y
|
|
info "Done"
|
|
|
|
info "Installing Zeroconf"
|
|
|
|
install_package "libavahi-compat-libdnssd-dev"
|
|
install_package "gcc-4.8 g++-4.8"
|
|
install_package "libkrb5-dev"
|
|
|
|
info "Installing node"
|
|
wget https://s3-eu-west-1.amazonaws.com/conoroneill.net/wp-content/uploads/2015/03/node-v0.12.1-linux-arm-pi.tar.gz
|
|
tar -zxvf node-v0.12.1-linux-arm-pi.tar.gz
|
|
cd node-v0.12.1-linux-arm-pi
|
|
sudo cp -R * /usr/local/
|
|
|
|
|
|
info "Cloning Repository"
|
|
cd /home/pi
|
|
git clone -b master --single-branch https://github.com/thkl/homebridge.git
|
|
cd homebridge
|
|
|
|
info "Installing Node Modules"
|
|
npm install
|
|
|
|
info "Setup"
|
|
|
|
hazconfig="$(cat /home/pi/homebridge/config.json| grep 'bridge' | wc -l)"
|
|
if [ "$hazconfig" = "0" ]; then
|
|
|
|
CCUIP=$(whiptail --inputbox "Please enter your CCU IP" 20 60 "000.000.000.000" 3>&1 1>&2 2>&3)
|
|
if [ $? -eq 0 ]; then
|
|
echo "{\"bridge\": {\"name\": \"Homebridge\", \"username\": \"CC:22:3D:E3:CE:30\",\"port\": 51826,\"pin\": \"031-45-154\"}," >> /home/pi/homebridge/config.json;
|
|
echo "\"description\": \"This is an autogenerated config. only the homematic platform is enabled. see the sample for more\"," >> /home/pi/homebridge/config.json;
|
|
echo "\"platforms\": [" >> /home/pi/homebridge/config.json;
|
|
echo "{\"platform\": \"HomeMaticPlatform\",\"name\": \"HomeMatic CCU\",\"ccu_ip\": \"$CCUIP\"," >> /home/pi/homebridge/config.json;
|
|
echo "\"filter_device\":[],\"filter_channel\":[],\"outlets\":[]}" >> /home/pi/homebridge/config.json;
|
|
echo "],\"accessories\": []}" >> /home/pi/homebridge/config.json;
|
|
fi
|
|
fi
|
|
|
|
whiptail --yesno "Would you like to start homebridge at boot by default?" $DEFAULT 20 60 2
|
|
RET=$?
|
|
if [ $RET -eq 0 ]; then
|
|
sudo cp /home/pi/homebridge/homebridge.txt /etc/init.d/homebridge
|
|
sudo chmod 755 /etc/init.d/homebridge
|
|
sudo update-rc.d homebridge defaults
|
|
fi
|
|
|
|
info "Done. If there are no error messages you are done."
|
|
info "Your config is ready to use"
|
|
info "to start the homebridge goto /home/pi/homebridge and call npm run start."
|