Update example platforms for async conventions (#1998)

This commit is contained in:
Adam Mills 2017-02-08 12:30:58 -05:00 committed by Fabian Affolter
parent 38e6098ad8
commit daa11ee550
2 changed files with 20 additions and 4 deletions

View File

@ -76,11 +76,14 @@ class AwesomeLight(Light):
def __init__(self, light): def __init__(self, light):
"""Initialize an AwesomeLight.""" """Initialize an AwesomeLight."""
self._light = light self._light = light
self._name = light.name
self._state = None
self._brightness = None
@property @property
def name(self): def name(self):
"""Return the display name of this light.""" """Return the display name of this light."""
return self._light.name return self._name
@property @property
def brightness(self): def brightness(self):
@ -89,12 +92,12 @@ class AwesomeLight(Light):
This method is optional. Removing it indicates to Home Assistant This method is optional. Removing it indicates to Home Assistant
that brightness is not supported for this light. that brightness is not supported for this light.
""" """
return self._light.brightness return self._brightness
@property @property
def is_on(self): def is_on(self):
"""Return true if light is on.""" """Return true if light is on."""
return self._light.is_on() return self._state
def turn_on(self, **kwargs): def turn_on(self, **kwargs):
"""Instruct the light to turn on. """Instruct the light to turn on.
@ -115,4 +118,6 @@ class AwesomeLight(Light):
This is the only method that should fetch new data for Home Assistant. This is the only method that should fetch new data for Home Assistant.
""" """
self._light.update() self._light.update()
self._state = self._light.is_on()
self._brightness = self._light.brightness
``` ```

View File

@ -38,6 +38,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
class ExampleSensor(Entity): class ExampleSensor(Entity):
"""Representation of a Sensor.""" """Representation of a Sensor."""
def __init__(self):
"""Initialize the sensor."""
self._state = None
@property @property
def name(self): def name(self):
"""Return the name of the sensor.""" """Return the name of the sensor."""
@ -46,10 +50,17 @@ class ExampleSensor(Entity):
@property @property
def state(self): def state(self):
"""Return the state of the sensor.""" """Return the state of the sensor."""
return 23 return self._state
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
"""Return the unit of measurement.""" """Return the unit of measurement."""
return TEMP_CELSIUS return TEMP_CELSIUS
def update(self):
"""Fetch new state data for the sensor.
This is the only method that should fetch new data for Home Assistant.
"""
self._state = 23
``` ```