Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- echo
- echo "Open Z-Wave Installer for Hassbian"
- echo "Modified by Landrash for use with Hassbian."
- echo "Remodified by unt1tled for use with Linear NGDZ00-4 (barrier_operator)."
- echo "Remodified again by firstof9 for use with the dev branch of the OpenZwave Library."
- echo "Copyright(c) 2016 Dale Higgs <https://gitter.im/dale3h>"
- echo
- if [ "$(id -u)" != "0" ]; then
- echo "This script must be run with sudo. Use \"sudo ${0} ${*}\"" 1>&2
- exit 1
- fi
- echo "Running apt-get preparation"
- apt-get update
- apt-get upgrade -y
- apt-get install -y make python3-dev libudev-dev python3-sphinx python3-setuptools libgnutlsxx28 libgnutls28-dev libssl-dev
- echo "Changing to homeassistant user"
- sudo -u homeassistant -H /bin/bash <<EOF
- echo "Activating virtualenv"
- source /srv/homeassistant/homeassistant_venv/bin/activate
- echo "Installing latest version of cython"
- ### Currently locked to this version since build fails for later versions.
- pip3 install --upgrade cython==0.24.1
- echo "Removing old python-openzwave"
- pip3 uninstall python-openzwave
- rm -f /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/libopenzwave.cpython-34m.so
- echo "Creating source directory"
- mkdir -p /srv/homeassistant/src
- chown -R homeassistant:homeassistant /srv/homeassistant/src
- echo "Cloning python-openzwave"
- cd /srv/homeassistant/src
- git clone https://github.com/OpenZWave/python-openzwave.git
- chown homeassistant:homeassistant python-openzwave
- cd python-openzwave
- echo "Cloning openzwave"
- git checkout python3
- rm -rf openzwave
- git clone git://github.com/OpenZWave/open-zwave.git openzwave
- cd openzwave
- echo "Changing to openzwave Dev branch to add barrier_operator support"
- git checkout Dev
- cd ..
- #echo "Replacing openzwave source files to add barrier_operator support"
- #wget -O openzwave/config/device_classes.xml https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/config/device_classes.xml
- #wget -O openzwave/cpp/src/command_classes/BarrierOperator.cpp https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/BarrierOperator.cpp
- #wget -O openzwave/cpp/src/command_classes/BarrierOperator.h https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/BarrierOperator.h
- #wget -O openzwave/cpp/src/command_classes/CommandClasses.cpp https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/CommandClasses.cpp
- echo "Building python-openzwave with barrier_operator support\nStage 1..."
- make build
- make install
- rm -Rf openzwave-git/open-zwave-master/
- cp -R openzwave/ openzwave-git/
- mv openzwave-git/openzwave/ openzwave-git/open-zwave-master/
- echo "Building stage 2..."
- make install
- echo "Deactivating virtualenv"
- deactivate
- EOF
- echo "Creating libmicrohttpd directory"
- cd /srv/homeassistant/src
- mkdir libmicrohttpd
- chown homeassistant:homeassistant libmicrohttpd
- cd /srv/homeassistant/src/libmicrohttpd
- echo "Downloading libmicrohttpd-0.9.19"
- wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.19.tar.gz
- chown homeassistant:homeassistant libmicrohttpd-0.9.19.tar.gz
- tar zxvf libmicrohttpd-0.9.19.tar.gz
- chown homeassistant:homeassistant libmicrohttpd-0.9.19
- echo "Building libmicrohttpd-0.9.19"
- cd libmicrohttpd-0.9.19
- ./configure
- make
- make install
- echo "Cloning open-zwave-control-panel"
- cd /srv/homeassistant/src
- git clone https://github.com/OpenZWave/open-zwave-control-panel.git
- chown -R homeassistant:homeassistant open-zwave-control-panel
- cd open-zwave-control-panel
- echo "Replacing open-zwave-control-panel source files with barrier_operator support"
- #wget -O zwavelib.cpp https://raw.githubusercontent.com/legrego/open-zwave-control-panel/0925251a566a36543e0c6b5cb0b2c1498bddfa68/zwavelib.cpp
- echo "Building open-zwave-control-panel"
- rm Makefile
- wget https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/Makefile
- chown homeassistant:homeassistant Makefile
- make
- echo "Linking ozwcp config directory"
- ln -sd /srv/homeassistant/lib/python3.*/site-packages/libopenzwave-0.*-linux*.egg/config
- chown -R homeassistant:homeassistant /srv/homeassistant/src
- echo "Linking Home Assistant OpenZWave config directory"
- cd /home/homeassistant/.homeassistant
- sudo -u homeassistant ln -sd /srv/homeassistant/lib/python3.*/site-packages/libopenzwave-*-linux*.egg/config
- chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant
- echo "Patching __init__.py"
- # This should create the file for patching
- FILE="./__init__.py.diff"
- cat <<EOM >$FILE
- *** /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py.old 2017-07-09 19:27:23.264954710 -0700
- --- /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py 2017-07-03 10:35:09.826370100 -0700
- ***************
- *** 37,43 ****
- from .discovery_schemas import DISCOVERY_SCHEMAS
- from .util import check_node_schema, check_value_schema, node_name
- ! REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
- _LOGGER = logging.getLogger(__name__)
- --- 37,44 ----
- from .discovery_schemas import DISCOVERY_SCHEMAS
- from .util import check_node_schema, check_value_schema, node_name
- ! #REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
- ! REQUIREMENTS = ['pydispatcher==2.0.5']
- _LOGGER = logging.getLogger(__name__)
- EOM
- patch -i __init__.py.diff /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py
- echo "Clearing HomeAssistant deps directory"
- rm -Rf /home/homeassistant/.homeassistant/deps/*
- echo
- echo "Installation done!"
- echo
- echo "If you have issues with this script, please contact @Landrash on gitter.im"
- echo "Original script by @dale3h on gitter.im"
- echo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement