Advertisement
finity69x2

Open_zwave_patch_aio

Jul 18th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.91 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. echo
  4. echo "Open Z-Wave Installer for Hassbian"
  5. echo "Modified by Landrash for use with Hassbian."
  6. echo "Remodified by unt1tled for use with Linear NGDZ00-4 (barrier_operator)."
  7. echo "Remodified again by firstof9 for use with the dev branch of the OpenZwave Library."
  8. echo "Copyright(c) 2016 Dale Higgs <https://gitter.im/dale3h>"
  9. echo
  10.  
  11. if [ "$(id -u)" != "0" ]; then
  12. echo "This script must be run with sudo. Use \"sudo ${0} ${*}\"" 1>&2
  13. exit 1
  14. fi
  15.  
  16. echo "Running apt-get preparation"
  17. apt-get update
  18. apt-get upgrade -y
  19. apt-get install -y make python3-dev libudev-dev python3-sphinx python3-setuptools libgnutlsxx28 libgnutls28-dev libssl-dev
  20.  
  21. echo "Changing to homeassistant user"
  22. sudo -u homeassistant -H /bin/bash <<EOF
  23.  
  24. echo "Activating virtualenv"
  25. source /srv/homeassistant/homeassistant_venv/bin/activate
  26.  
  27. echo "Installing latest version of cython"
  28. ### Currently locked to this version since build fails for later versions.
  29. pip3 install --upgrade cython==0.24.1
  30.  
  31. echo "Removing old python-openzwave"
  32. pip3 uninstall python-openzwave
  33. rm -f /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/libopenzwave.cpython-34m.so
  34.  
  35. echo "Creating source directory"
  36. mkdir -p /srv/homeassistant/src
  37. chown -R homeassistant:homeassistant /srv/homeassistant/src
  38.  
  39. echo "Cloning python-openzwave"
  40. cd /srv/homeassistant/src
  41. git clone https://github.com/OpenZWave/python-openzwave.git
  42. chown homeassistant:homeassistant python-openzwave
  43. cd python-openzwave
  44.  
  45. echo "Cloning openzwave"
  46. git checkout python3
  47. rm -rf openzwave
  48. git clone git://github.com/OpenZWave/open-zwave.git openzwave
  49. cd openzwave
  50.  
  51. echo "Changing to openzwave Dev branch to add barrier_operator support"
  52. git checkout Dev
  53. cd ..
  54.  
  55. #echo "Replacing openzwave source files to add barrier_operator support"
  56. #wget -O openzwave/config/device_classes.xml https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/config/device_classes.xml
  57. #wget -O openzwave/cpp/src/command_classes/BarrierOperator.cpp https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/BarrierOperator.cpp
  58. #wget -O openzwave/cpp/src/command_classes/BarrierOperator.h https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/BarrierOperator.h
  59. #wget -O openzwave/cpp/src/command_classes/CommandClasses.cpp https://raw.githubusercontent.com/OpenZWave/open-zwave/c808b7431fb6c28b408e7fdc5492e46420cb6926/cpp/src/command_classes/CommandClasses.cpp
  60.  
  61. echo "Building python-openzwave with barrier_operator support\nStage 1..."
  62. make build
  63. make install
  64.  
  65. rm -Rf openzwave-git/open-zwave-master/
  66. cp -R openzwave/ openzwave-git/
  67. mv openzwave-git/openzwave/ openzwave-git/open-zwave-master/
  68.  
  69. echo "Building stage 2..."
  70. make install
  71.  
  72. echo "Deactivating virtualenv"
  73. deactivate
  74. EOF
  75.  
  76. echo "Creating libmicrohttpd directory"
  77. cd /srv/homeassistant/src
  78. mkdir libmicrohttpd
  79. chown homeassistant:homeassistant libmicrohttpd
  80. cd /srv/homeassistant/src/libmicrohttpd
  81.  
  82. echo "Downloading libmicrohttpd-0.9.19"
  83. wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.19.tar.gz
  84. chown homeassistant:homeassistant libmicrohttpd-0.9.19.tar.gz
  85. tar zxvf libmicrohttpd-0.9.19.tar.gz
  86. chown homeassistant:homeassistant libmicrohttpd-0.9.19
  87.  
  88. echo "Building libmicrohttpd-0.9.19"
  89. cd libmicrohttpd-0.9.19
  90. ./configure
  91. make
  92. make install
  93.  
  94. echo "Cloning open-zwave-control-panel"
  95. cd /srv/homeassistant/src
  96. git clone https://github.com/OpenZWave/open-zwave-control-panel.git
  97. chown -R homeassistant:homeassistant open-zwave-control-panel
  98. cd open-zwave-control-panel
  99.  
  100. echo "Replacing open-zwave-control-panel source files with barrier_operator support"
  101. #wget -O zwavelib.cpp https://raw.githubusercontent.com/legrego/open-zwave-control-panel/0925251a566a36543e0c6b5cb0b2c1498bddfa68/zwavelib.cpp
  102.  
  103.  
  104. echo "Building open-zwave-control-panel"
  105. rm Makefile
  106. wget https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/Makefile
  107. chown homeassistant:homeassistant Makefile
  108. make
  109.  
  110. echo "Linking ozwcp config directory"
  111. ln -sd /srv/homeassistant/lib/python3.*/site-packages/libopenzwave-0.*-linux*.egg/config
  112. chown -R homeassistant:homeassistant /srv/homeassistant/src
  113.  
  114. echo "Linking Home Assistant OpenZWave config directory"
  115. cd /home/homeassistant/.homeassistant
  116. sudo -u homeassistant ln -sd /srv/homeassistant/lib/python3.*/site-packages/libopenzwave-*-linux*.egg/config
  117. chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant
  118.  
  119. echo "Patching __init__.py"
  120. # This should create the file for patching
  121. FILE="./__init__.py.diff"
  122.  
  123. cat <<EOM >$FILE
  124. *** /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py.old 2017-07-09 19:27:23.264954710 -0700
  125. --- /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py 2017-07-03 10:35:09.826370100 -0700
  126. ***************
  127. *** 37,43 ****
  128. from .discovery_schemas import DISCOVERY_SCHEMAS
  129. from .util import check_node_schema, check_value_schema, node_name
  130.  
  131. ! REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
  132.  
  133. _LOGGER = logging.getLogger(__name__)
  134.  
  135. --- 37,44 ----
  136. from .discovery_schemas import DISCOVERY_SCHEMAS
  137. from .util import check_node_schema, check_value_schema, node_name
  138.  
  139. ! #REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
  140. ! REQUIREMENTS = ['pydispatcher==2.0.5']
  141.  
  142. _LOGGER = logging.getLogger(__name__)
  143. EOM
  144.  
  145. patch -i __init__.py.diff /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py
  146.  
  147. echo "Clearing HomeAssistant deps directory"
  148. rm -Rf /home/homeassistant/.homeassistant/deps/*
  149.  
  150. echo
  151. echo "Installation done!"
  152. echo
  153. echo "If you have issues with this script, please contact @Landrash on gitter.im"
  154. echo "Original script by @dale3h on gitter.im"
  155. echo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement