From d6344d649292c7cde93549acbc7d6d76f7db22d2 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 14 Mar 2016 08:25:04 +0100 Subject: [PATCH] Fixed close connection issue with rfxtrx device and update rfxtrx lib --- .coveragerc | 3 --- homeassistant/components/rfxtrx.py | 8 ++++++-- requirements_all.txt | 6 +++--- tests/components/light/test_rfxtrx.py | 5 ++--- tests/components/switch/test_rfxtrx.py | 5 ++--- tests/components/test_rfxtrx.py | 6 ++---- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.coveragerc b/.coveragerc index 63eb4ea9be1..a885c5a28a6 100644 --- a/.coveragerc +++ b/.coveragerc @@ -58,9 +58,6 @@ omit = homeassistant/components/nest.py homeassistant/components/*/nest.py - homeassistant/components/rfxtrx.py - homeassistant/components/*/rfxtrx.py - homeassistant/components/rpi_gpio.py homeassistant/components/*/rpi_gpio.py diff --git a/homeassistant/components/rfxtrx.py b/homeassistant/components/rfxtrx.py index cfc6f1bab5a..f8adaa43223 100644 --- a/homeassistant/components/rfxtrx.py +++ b/homeassistant/components/rfxtrx.py @@ -7,9 +7,9 @@ https://home-assistant.io/components/rfxtrx/ import logging from homeassistant.util import slugify +from homeassistant.const import EVENT_HOMEASSISTANT_STOP -REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/' + - 'archive/0.5.zip#pyRFXtrx==0.5'] +REQUIREMENTS = ['pyRFXtrx==0.6.5'] DOMAIN = "rfxtrx" @@ -72,6 +72,10 @@ def setup(hass, config): else: RFXOBJECT = rfxtrxmod.Core(device, handle_receive, debug=debug) + def _shutdown_rfxtrx(event): + RFXOBJECT.close_connection() + hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, _shutdown_rfxtrx) + return True diff --git a/requirements_all.txt b/requirements_all.txt index a3f6a33bc27..0bf68dd8a8d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -66,9 +66,6 @@ hikvision==0.4 # homeassistant.components.sensor.dht # http://github.com/mala-zaba/Adafruit_Python_DHT/archive/4101340de8d2457dd194bca1e8d11cbfc237e919.zip#Adafruit_DHT==1.1.0 -# homeassistant.components.rfxtrx -https://github.com/Danielhiversen/pyRFXtrx/archive/0.5.zip#pyRFXtrx==0.5 - # homeassistant.components.sensor.netatmo https://github.com/HydrelioxGitHub/netatmo-api-python/archive/43ff238a0122b0939a0dc4e8836b6782913fb6e2.zip#lnetatmo==0.4.0 @@ -157,6 +154,9 @@ pushetta==1.0.15 # homeassistant.components.sensor.cpuspeed py-cpuinfo==0.2.3 +# homeassistant.components.rfxtrx +pyRFXtrx==0.6.5 + # homeassistant.components.media_player.cast pychromecast==0.7.2 diff --git a/tests/components/light/test_rfxtrx.py b/tests/components/light/test_rfxtrx.py index 4cf9a048863..1d55e6e732a 100644 --- a/tests/components/light/test_rfxtrx.py +++ b/tests/components/light/test_rfxtrx.py @@ -5,12 +5,9 @@ from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components.light import rfxtrx from unittest.mock import patch -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestLightRfxtrx(unittest.TestCase): """Test the Rfxtrx light platform.""" @@ -22,6 +19,8 @@ class TestLightRfxtrx(unittest.TestCase): """Stop everything that was started.""" rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RFX_DEVICES = {} + if rfxtrx_core.RFXOBJECT: + rfxtrx_core.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self): diff --git a/tests/components/switch/test_rfxtrx.py b/tests/components/switch/test_rfxtrx.py index f9fe805fa46..cf60ae108bb 100644 --- a/tests/components/switch/test_rfxtrx.py +++ b/tests/components/switch/test_rfxtrx.py @@ -5,12 +5,9 @@ from homeassistant.components import rfxtrx as rfxtrx_core from homeassistant.components.switch import rfxtrx from unittest.mock import patch -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestSwitchRfxtrx(unittest.TestCase): """Test the Rfxtrx switch platform.""" @@ -22,6 +19,8 @@ class TestSwitchRfxtrx(unittest.TestCase): """Stop everything that was started.""" rfxtrx_core.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx_core.RFX_DEVICES = {} + if rfxtrx_core.RFXOBJECT: + rfxtrx_core.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self): diff --git a/tests/components/test_rfxtrx.py b/tests/components/test_rfxtrx.py index 7c2ef788a44..27ac0bfac5d 100644 --- a/tests/components/test_rfxtrx.py +++ b/tests/components/test_rfxtrx.py @@ -6,12 +6,9 @@ import time from homeassistant.components import rfxtrx as rfxtrx from homeassistant.components.sensor import rfxtrx as rfxtrx_sensor -import pytest - from tests.common import get_test_home_assistant -@pytest.mark.skipif(True, reason='Does not clean up properly, takes 100% CPU') class TestRFXTRX(unittest.TestCase): """Test the Rfxtrx component.""" @@ -23,7 +20,8 @@ class TestRFXTRX(unittest.TestCase): """Stop everything that was started.""" rfxtrx.RECEIVED_EVT_SUBSCRIBERS = [] rfxtrx.RFX_DEVICES = {} - rfxtrx.RFXOBJECT = None + if rfxtrx.RFXOBJECT: + rfxtrx.RFXOBJECT.close_connection() self.hass.stop() def test_default_config(self):