<filename>homeassistant/components/sensor/qwikswitch.py
"""
Support for Qwikswitch Sensors.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.qwikswitch/
"""
import logging

from homeassistant.components.qwikswitch import DOMAIN as QWIKSWITCH
from homeassistant.helpers.entity import Entity

DEPENDENCIES = [QWIKSWITCH]

_LOGGER = logging.getLogger(__name__)


async def async_setup_platform(hass, _, add_devices, discovery_info=None):
    """Add lights from the main Qwikswitch component."""
    if discovery_info is None:
        return

    qsusb = hass.data[QWIKSWITCH]
    _LOGGER.debug("Setup qwikswitch.sensor %s, %s", qsusb, discovery_info)
    devs = [QSSensor(name, qsid)
            for name, qsid in discovery_info[QWIKSWITCH].items()]
    add_devices(devs)


class QSSensor(Entity):
    """Sensor based on a Qwikswitch relay/dimmer module."""

    _val = {}

    def __init__(self, sensor_name, sensor_id):
        """Initialize the sensor."""
        self._name = sensor_name
        self.qsid = sensor_id

    def update_packet(self, packet):
        """Receive update packet from QSUSB."""
        _LOGGER.debug("Update %s (%s): %s", self.entity_id, self.qsid, packet)
        self._val = packet
        self.async_schedule_update_ha_state()

    @property
    def state(self):
        """Return the value of the sensor."""
        return self._val.get('data', 0)

    @property
    def device_state_attributes(self):
        """Return the state attributes of the sensor."""
        return self._val

    @property
    def unit_of_measurement(self):
        """Return the unit the value is expressed in."""
        return None

    @property
    def poll(self):
        """QS sensors gets packets in update_packet."""
        return False

    async def async_added_to_hass(self):
        """Listen for updates from QSUSb via dispatcher."""
        # Part of Entity/ToggleEntity
        self.hass.helpers.dispatcher.async_dispatcher_connect(
            self.qsid, self.update_packet)

<filename>homeassistant/components/sensor/qwikswitch.py
"""
Support for Qwikswitch Sensors.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.qwikswitch/
"""
import logging

from homeassistant.components.qwikswitch import DOMAIN as QWIKSWITCH
from homeassistant.helpers.entity import Entity

DEPENDENCIES = [QWIKSWITCH]

_LOGGER = logging.getLogger(__name__)


async def async_setup_platform(hass, _, add_devices, discovery_info=None):
    """Add lights from the main Qwikswitch component."""
    if discovery_info is None:
        return

    qsusb = hass.data[QWIKSWITCH]
    _LOGGER.debug("Setup qwikswitch.sensor %s, %s", qsusb, discovery_info)
    devs = [QSSensor(name, qsid)
            for name, qsid in discovery_info[QWIKSWITCH].items()]
    add_devices(devs)


class QSSensor(Entity):
    """Sensor based on a Qwikswitch relay/dimmer module."""

    _val = {}

    def __init__(self, sensor_name, sensor_id):
        """Initialize the sensor."""
        self._name = sensor_name
        self.qsid = sensor_id

    def update_packet(self, packet):
        """Receive update packet from QSUSB."""
        _LOGGER.debug("Update %s (%s): %s", self.entity_id, self.qsid, packet)
        self._val = packet
        self.async_schedule_update_ha_state()

    @property
    def state(self):
        """Return the value of the sensor."""
        return self._val.get('data', 0)

    @property
    def device_state_attributes(self):
        """Return the state attributes of the sensor."""
        return self._val

    @property
    def unit_of_measurement(self):
        """Return the unit the value is expressed in."""
        return None

    @property
    def poll(self):
        """QS sensors gets packets in update_packet."""
        return False

    async def async_added_to_hass(self):
        """Listen for updates from QSUSb via dispatcher."""
        # Part of Entity/ToggleEntity
        self.hass.helpers.dispatcher.async_dispatcher_connect(
            self.qsid, self.update_packet)

Support for Qwikswitch Sensors.  For more details about this platform, please refer to the documentation at https://home-assistant.io/components/sensor.qwikswitch/ Add lights from the main Qwikswitch component. Sensor based on a Qwikswitch relay/dimmer module. Initialize the sensor. Receive update packet from QSUSB. Return the value of the sensor. Return the state attributes of the sensor. Return the unit the value is expressed in. QS sensors gets packets in update_packet. Listen for updates from QSUSb via dispatcher. # Part of Entity/ToggleEntity