From 3c08a5ee6ebff7f8fee61cc559065864e301a1b0 Mon Sep 17 00:00:00 2001 From: Rohit Kabadi Date: Sat, 1 Aug 2015 12:20:29 -0700 Subject: [PATCH] Added support for temper temperature sensors --- homeassistant/components/sensor/temper.py | 50 +++++++++++++++++++++++ requirements.txt | 3 ++ 2 files changed, 53 insertions(+) create mode 100644 homeassistant/components/sensor/temper.py diff --git a/homeassistant/components/sensor/temper.py b/homeassistant/components/sensor/temper.py new file mode 100644 index 00000000000..1888ba05d3c --- /dev/null +++ b/homeassistant/components/sensor/temper.py @@ -0,0 +1,50 @@ +""" +homeassistant.components.sensor.temper +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Support for getting temperature from TEMPer devices +""" + +import logging +from homeassistant.helpers.entity import Entity + +_LOGGER = logging.getLogger(__name__) + + +# pylint: disable=unused-argument +def setup_platform(hass, config, add_devices_callback, discovery_info=None): + """ Find and return Temper sensors. """ + try: + # pylint: disable=no-name-in-module, import-error + from temperusb.temper import TemperHandler + except ImportError: + _LOGGER.error('Failed to import temperusb') + return False + + temp_unit = hass.config.temperature_unit + temper_devices = TemperHandler().get_devices() + add_devices_callback([TemperSensor(dev, temp_unit) for dev in temper_devices]) + + +class TemperSensor(Entity): + def __init__(self, temper_device, temp_unit): + self.temper_device = temper_device + self.temp_unit = temp_unit + self.current_value = None + + @property + def state(self): + """ Returns the state of the entity. """ + return self.current_value + + @property + def unit_of_measurement(self): + """ Unit of measurement of this entity, if any. """ + return self.temp_unit + + def update(self): + """ Retrieve latest state. """ + try: + self.current_value = self.temper_device.get_temperature() + except Exception: + _LOGGER.error('Failed to get temperature due to insufficient permissions') diff --git a/requirements.txt b/requirements.txt index c7a569fad33..a16eadeaeb9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -79,3 +79,6 @@ PyMata==2.07a # Mysensors serial gateway pyserial>=2.7 + +# Temper sensors +https://github.com/rkabadi/temper-python/archive/master.zip