PyPI Openzwave (#7415)

* Remove default zwave config path

PYOZW now has much more comprehensive default handling for the config
path (in src-lib/libopenzwave/libopenzwave.pyx:getConfig()). It looks in
the same place we were looking, plus _many_ more. It will certainly do a
much better job of finding the config files than we will (and will be
updated as the library is changed, so we don't end up chasing it). The
getConfig() method has been there for a while, but was subsntially
improved recently.

This change simply leaves the config_path as None if it is not
specified, which will trigger the default handling in PYOZW.

* Install python-openzwave from PyPI

As of version 0.4, python-openzwave supports installation from PyPI,
which means we can use our 'normal' dependency management tooling to
install it. Yay.

This uses the default 'embed' build (which goes and downloads
statically sources to avoid having to compile anything locally). Check
out the python-openzwave readme for more details.

* Add python-openzwave deps to .travis.yml

Python OpenZwave require the libudev headers to build. This adds the
libudev-dev package to Travis runs via the 'apt' addon for Travis.

Thanks to @MartinHjelmare for this fix.

* Update docker build for PyPI openzwave

Now that PYOZW can be install from PyPI, the docker image build process
can be simplified to remove the explicit compilation of PYOZW.
pull/7460/head
Josh Wright 2017-05-05 17:57:14 -04:00 committed by Paulus Schoutsen
parent 4b5be750b2
commit 2e4ae3e73d
6 changed files with 11 additions and 51 deletions

View File

@ -1,4 +1,8 @@
sudo: false
addons:
apt:
packages:
- libudev-dev
matrix:
fast_finish: true
include:

View File

@ -35,7 +35,7 @@ from . import workaround
from .discovery_schemas import DISCOVERY_SCHEMAS
from .util import check_node_schema, check_value_schema, node_name
REQUIREMENTS = ['pydispatcher==2.0.5']
REQUIREMENTS = ['pydispatcher==2.0.5', 'python_openzwave==0.4.0.31']
_LOGGER = logging.getLogger(__name__)
@ -221,22 +221,12 @@ def setup(hass, config):
descriptions = conf_util.load_yaml_config_file(
os.path.join(os.path.dirname(__file__), 'services.yaml'))
try:
import libopenzwave
except ImportError:
_LOGGER.error("You are missing required dependency Python Open "
"Z-Wave. Please follow instructions at: "
"https://home-assistant.io/components/zwave/")
return False
from pydispatch import dispatcher
# pylint: disable=import-error
from openzwave.option import ZWaveOption
from openzwave.network import ZWaveNetwork
from openzwave.group import ZWaveGroup
default_zwave_config_path = os.path.join(os.path.dirname(
libopenzwave.__file__), 'config')
# Load configuration
use_debug = config[DOMAIN].get(CONF_DEBUG)
autoheal = config[DOMAIN].get(CONF_AUTOHEAL)
@ -249,8 +239,7 @@ def setup(hass, config):
options = ZWaveOption(
config[DOMAIN].get(CONF_USB_STICK_PATH),
user_path=hass.config.config_dir,
config_path=config[DOMAIN].get(
CONF_CONFIG_PATH, default_zwave_config_path))
config_path=config[DOMAIN].get(CONF_CONFIG_PATH))
options.set_console_output(use_debug)
options.lock()

View File

@ -691,6 +691,9 @@ python-vlc==1.1.2
# homeassistant.components.wink
python-wink==1.2.4
# homeassistant.components.zwave
python_openzwave==0.4.0.31
# homeassistant.components.device_tracker.trackr
pytrackr==0.0.5

View File

@ -9,7 +9,6 @@ MAINTAINER Paulus Schoutsen <Paulus@PaulusSchoutsen.nl>
#ENV INSTALL_TELLSTICK no
#ENV INSTALL_OPENALPR no
#ENV INSTALL_FFMPEG no
#ENV INSTALL_OPENZWAVE no
#ENV INSTALL_LIBCEC no
#ENV INSTALL_PHANTOMJS no
#ENV INSTALL_COAP_CLIENT no

View File

@ -1,30 +0,0 @@
#!/bin/sh
# Sets up python-openzwave.
# Dependencies that need to be installed:
# apt-get install cython3 libudev-dev python3-sphinx python3-setuptools
# Stop on errors
set -e
cd "$(dirname "$0")/.."
if [ ! -d build ]; then
mkdir build
fi
cd build
if [ -d python-openzwave ]; then
cd python-openzwave
git checkout v0.3.3
else
git clone --branch v0.3.3 --recursive --depth 1 https://github.com/OpenZWave/python-openzwave.git
cd python-openzwave
fi
pip3 install --upgrade cython==0.24.1
PYTHON_EXEC=`which python3` make build
PYTHON_EXEC=`which python3` make install
mkdir -p /usr/local/share/python-openzwave
cp -R openzwave/config /usr/local/share/python-openzwave/config

View File

@ -7,7 +7,6 @@ set -e
INSTALL_TELLSTICK="${INSTALL_TELLSTICK:-yes}"
INSTALL_OPENALPR="${INSTALL_OPENALPR:-yes}"
INSTALL_FFMPEG="${INSTALL_FFMPEG:-yes}"
INSTALL_OPENZWAVE="${INSTALL_OPENZWAVE:-yes}"
INSTALL_LIBCEC="${INSTALL_LIBCEC:-yes}"
INSTALL_PHANTOMJS="${INSTALL_PHANTOMJS:-yes}"
INSTALL_COAP_CLIENT="${INSTALL_COAP_CLIENT:-yes}"
@ -24,13 +23,13 @@ PACKAGES=(
bluetooth libglib2.0-dev libbluetooth-dev
# homeassistant.components.device_tracker.owntracks
libsodium13
# homeassistant.components.zwave
libudev-dev
)
# Required debian packages for building dependencies
PACKAGES_DEV=(
cmake git
# python-openzwave
cython3 libudev-dev
# libcec
swig
)
@ -51,10 +50,6 @@ if [ "$INSTALL_FFMPEG" == "yes" ]; then
virtualization/Docker/scripts/ffmpeg
fi
if [ "$INSTALL_OPENZWAVE" == "yes" ]; then
virtualization/Docker/scripts/python_openzwave
fi
if [ "$INSTALL_LIBCEC" == "yes" ]; then
virtualization/Docker/scripts/libcec
fi