Change STATE_UNKOWN to None (#20337)
* Change STATE_UNKOWN to None * Change STATE_UNKOWN to None * tests * tests * tests * tests * tests * style * fix comments * fix comments * update fan testpull/20396/head
parent
074fcd96ed
commit
1bd31e3459
homeassistant/components
alarm_control_panel
binary_sensor
climate
homekit
image_processing
tests/components
|
@ -13,7 +13,7 @@ import homeassistant.components.alarm_control_panel as alarm
|
|||
from homeassistant.components.alarm_control_panel import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_CODE, CONF_NAME, CONF_PASSWORD, CONF_USERNAME, STATE_ALARM_ARMED_AWAY,
|
||||
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, STATE_UNKNOWN)
|
||||
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED)
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
|
@ -57,7 +57,7 @@ class AlarmDotCom(alarm.AlarmControlPanel):
|
|||
self._username = username
|
||||
self._password = password
|
||||
self._websession = async_get_clientsession(self._hass)
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._alarm = Alarmdotcom(
|
||||
username, password, self._websession, hass.loop)
|
||||
|
||||
|
@ -93,7 +93,7 @@ class AlarmDotCom(alarm.AlarmControlPanel):
|
|||
return STATE_ALARM_ARMED_HOME
|
||||
if self._alarm.state.lower() == 'armed away':
|
||||
return STATE_ALARM_ARMED_AWAY
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def device_state_attributes(self):
|
||||
|
|
|
@ -17,7 +17,6 @@ from homeassistant.const import (
|
|||
CONF_HOST, CONF_NAME, CONF_PORT, STATE_ALARM_ARMED_AWAY,
|
||||
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED)
|
||||
|
||||
|
||||
REQUIREMENTS = ['concord232==0.15']
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
|
|
@ -14,7 +14,7 @@ from homeassistant.components.alarm_control_panel import PLATFORM_SCHEMA
|
|||
from homeassistant.const import (
|
||||
CONF_PASSWORD, CONF_USERNAME, STATE_ALARM_ARMED_AWAY,
|
||||
STATE_ALARM_ARMED_HOME, STATE_ALARM_ARMED_NIGHT, STATE_ALARM_DISARMED,
|
||||
STATE_ALARM_ARMING, STATE_ALARM_DISARMING, STATE_UNKNOWN, CONF_NAME,
|
||||
STATE_ALARM_ARMING, STATE_ALARM_DISARMING, CONF_NAME,
|
||||
STATE_ALARM_ARMED_CUSTOM_BYPASS)
|
||||
|
||||
|
||||
|
@ -52,7 +52,7 @@ class TotalConnect(alarm.AlarmControlPanel):
|
|||
self._name = name
|
||||
self._username = username
|
||||
self._password = password
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._client = TotalConnectClient.TotalConnectClient(
|
||||
username, password)
|
||||
|
||||
|
@ -85,7 +85,7 @@ class TotalConnect(alarm.AlarmControlPanel):
|
|||
elif status == self._client.DISARMING:
|
||||
state = STATE_ALARM_DISARMING
|
||||
else:
|
||||
state = STATE_UNKNOWN
|
||||
state = None
|
||||
|
||||
self._state = state
|
||||
|
||||
|
|
|
@ -11,8 +11,7 @@ import homeassistant.components.alarm_control_panel as alarm
|
|||
from homeassistant.components.verisure import CONF_ALARM, CONF_CODE_DIGITS
|
||||
from homeassistant.components.verisure import HUB as hub
|
||||
from homeassistant.const import (
|
||||
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED,
|
||||
STATE_UNKNOWN)
|
||||
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -44,7 +43,7 @@ class VerisureAlarm(alarm.AlarmControlPanel):
|
|||
|
||||
def __init__(self):
|
||||
"""Initialize the Verisure alarm panel."""
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._digits = hub.config.get(CONF_CODE_DIGITS)
|
||||
self._changed_by = None
|
||||
|
||||
|
|
|
@ -9,8 +9,7 @@ import logging
|
|||
import homeassistant.components.alarm_control_panel as alarm
|
||||
from homeassistant.components.wink import DOMAIN, WinkDevice
|
||||
from homeassistant.const import (
|
||||
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED,
|
||||
STATE_UNKNOWN)
|
||||
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -52,7 +51,7 @@ class WinkCameraDevice(WinkDevice, alarm.AlarmControlPanel):
|
|||
elif wink_state == "night":
|
||||
state = STATE_ALARM_ARMED_HOME
|
||||
else:
|
||||
state = STATE_UNKNOWN
|
||||
state = None
|
||||
return state
|
||||
|
||||
def alarm_disarm(self, code=None):
|
||||
|
|
|
@ -8,7 +8,6 @@ import logging
|
|||
|
||||
from homeassistant.components.binary_sensor import BinarySensorDevice
|
||||
from homeassistant.components.maxcube import DATA_KEY
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -40,7 +39,7 @@ class MaxCubeShutter(BinarySensorDevice):
|
|||
self._sensor_type = 'window'
|
||||
self._rf_address = rf_address
|
||||
self._cubehandle = handler
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
@property
|
||||
def should_poll(self):
|
||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID, ATTR_TEMPERATURE, SERVICE_TURN_ON, SERVICE_TURN_OFF,
|
||||
STATE_ON, STATE_OFF, STATE_UNKNOWN, TEMP_CELSIUS, PRECISION_WHOLE,
|
||||
STATE_ON, STATE_OFF, TEMP_CELSIUS, PRECISION_WHOLE,
|
||||
PRECISION_TENTHS)
|
||||
|
||||
DEFAULT_MIN_TEMP = 7
|
||||
|
@ -208,7 +208,7 @@ class ClimateDevice(Entity):
|
|||
return self.current_operation
|
||||
if self.is_on:
|
||||
return STATE_ON
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def precision(self):
|
||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.components.climate import (
|
|||
SUPPORT_OPERATION_MODE, SUPPORT_AWAY_MODE, SUPPORT_FAN_MODE)
|
||||
from homeassistant.const import (
|
||||
TEMP_CELSIUS, TEMP_FAHRENHEIT,
|
||||
CONF_SCAN_INTERVAL, STATE_ON, STATE_OFF, STATE_UNKNOWN)
|
||||
CONF_SCAN_INTERVAL, STATE_ON, STATE_OFF)
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
|
||||
DEPENDENCIES = ['nest']
|
||||
|
@ -163,7 +163,7 @@ class NestThermostat(ClimateDevice):
|
|||
return self._mode
|
||||
if self._mode == NEST_MODE_HEAT_COOL:
|
||||
return STATE_AUTO
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def target_temperature(self):
|
||||
|
|
|
@ -21,7 +21,7 @@ from homeassistant.const import (
|
|||
SERVICE_OPEN_COVER, SERVICE_CLOSE_COVER, SERVICE_SET_COVER_POSITION,
|
||||
SERVICE_STOP_COVER, SERVICE_OPEN_COVER_TILT, SERVICE_CLOSE_COVER_TILT,
|
||||
SERVICE_STOP_COVER_TILT, SERVICE_SET_COVER_TILT_POSITION, STATE_OPEN,
|
||||
STATE_CLOSED, STATE_UNKNOWN, STATE_OPENING, STATE_CLOSING, ATTR_ENTITY_ID)
|
||||
STATE_CLOSED, STATE_OPENING, STATE_CLOSING, ATTR_ENTITY_ID)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -178,7 +178,7 @@ class CoverDevice(Entity):
|
|||
closed = self.is_closed
|
||||
|
||||
if closed is None:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
return STATE_CLOSED if closed else STATE_OPEN
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ from homeassistant.components.cover import CoverDevice, PLATFORM_SCHEMA
|
|||
from homeassistant.helpers.event import track_utc_time_change
|
||||
from homeassistant.const import (
|
||||
CONF_DEVICE, CONF_USERNAME, CONF_PASSWORD, CONF_ACCESS_TOKEN, CONF_NAME,
|
||||
STATE_UNKNOWN, STATE_CLOSED, STATE_OPEN, CONF_COVERS)
|
||||
STATE_CLOSED, STATE_OPEN, CONF_COVERS)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -83,7 +83,7 @@ class GaradgetCover(CoverDevice):
|
|||
self.obtained_token = False
|
||||
self._username = args['username']
|
||||
self._password = args['password']
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self.time_in_state = None
|
||||
self.signal = None
|
||||
self.sensor = None
|
||||
|
@ -156,7 +156,7 @@ class GaradgetCover(CoverDevice):
|
|||
@property
|
||||
def is_closed(self):
|
||||
"""Return if the cover is closed."""
|
||||
if self._state == STATE_UNKNOWN:
|
||||
if self._state is None:
|
||||
return None
|
||||
return self._state == STATE_CLOSED
|
||||
|
||||
|
@ -226,7 +226,7 @@ class GaradgetCover(CoverDevice):
|
|||
try:
|
||||
status = self._get_variable('doorStatus')
|
||||
_LOGGER.debug("Current Status: %s", status['status'])
|
||||
self._state = STATES_MAP.get(status['status'], STATE_UNKNOWN)
|
||||
self._state = STATES_MAP.get(status['status'], None)
|
||||
self.time_in_state = status['time']
|
||||
self.signal = status['signal']
|
||||
self.sensor = status['sensor']
|
||||
|
|
|
@ -4,8 +4,7 @@ Support for Wink Covers.
|
|||
For more details about this platform, please refer to the documentation at
|
||||
https://home-assistant.io/components/cover.wink/
|
||||
"""
|
||||
from homeassistant.components.cover import CoverDevice, STATE_UNKNOWN, \
|
||||
ATTR_POSITION
|
||||
from homeassistant.components.cover import CoverDevice, ATTR_POSITION
|
||||
from homeassistant.components.wink import WinkDevice, DOMAIN
|
||||
|
||||
DEPENDENCIES = ['wink']
|
||||
|
@ -54,7 +53,7 @@ class WinkCoverDevice(WinkDevice, CoverDevice):
|
|||
"""Return the current position of cover shutter."""
|
||||
if self.wink.state() is not None:
|
||||
return int(self.wink.state()*100)
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def is_closed(self):
|
||||
|
|
|
@ -12,8 +12,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components import group
|
||||
from homeassistant.const import (SERVICE_TURN_ON, SERVICE_TOGGLE,
|
||||
SERVICE_TURN_OFF, ATTR_ENTITY_ID,
|
||||
STATE_UNKNOWN)
|
||||
SERVICE_TURN_OFF, ATTR_ENTITY_ID)
|
||||
from homeassistant.loader import bind_hass
|
||||
from homeassistant.helpers.entity import ToggleEntity
|
||||
from homeassistant.helpers.entity_component import EntityComponent
|
||||
|
@ -94,7 +93,7 @@ def is_on(hass, entity_id: str = None) -> bool:
|
|||
"""Return if the fans are on based on the statemachine."""
|
||||
entity_id = entity_id or ENTITY_ID_ALL_FANS
|
||||
state = hass.states.get(entity_id)
|
||||
return state.attributes[ATTR_SPEED] not in [SPEED_OFF, STATE_UNKNOWN]
|
||||
return state.attributes[ATTR_SPEED] not in [SPEED_OFF, None]
|
||||
|
||||
|
||||
async def async_setup(hass, config: dict):
|
||||
|
@ -199,7 +198,7 @@ class FanEntity(ToggleEntity):
|
|||
@property
|
||||
def is_on(self):
|
||||
"""Return true if the entity is on."""
|
||||
return self.speed not in [SPEED_OFF, STATE_UNKNOWN]
|
||||
return self.speed not in [SPEED_OFF, None]
|
||||
|
||||
@property
|
||||
def speed(self) -> str:
|
||||
|
|
|
@ -11,7 +11,6 @@ from homeassistant.components.comfoconnect import (
|
|||
from homeassistant.components.fan import (
|
||||
FanEntity, SPEED_OFF, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH,
|
||||
SUPPORT_SET_SPEED)
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
from homeassistant.helpers.dispatcher import (dispatcher_connect)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -79,7 +78,7 @@ class ComfoConnectFan(FanEntity):
|
|||
speed = self._ccb.data[SENSOR_FAN_SPEED_MODE]
|
||||
return SPEED_MAPPING[speed]
|
||||
except KeyError:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def speed_list(self):
|
||||
|
|
|
@ -7,7 +7,7 @@ https://home-assistant.io/components/fan.wink/
|
|||
import logging
|
||||
|
||||
from homeassistant.components.fan import (
|
||||
SPEED_HIGH, SPEED_LOW, SPEED_MEDIUM, STATE_UNKNOWN, SUPPORT_DIRECTION,
|
||||
SPEED_HIGH, SPEED_LOW, SPEED_MEDIUM, SUPPORT_DIRECTION,
|
||||
SUPPORT_SET_SPEED, FanEntity)
|
||||
from homeassistant.components.wink import DOMAIN, WinkDevice
|
||||
|
||||
|
@ -71,7 +71,7 @@ class WinkFanDevice(WinkDevice, FanEntity):
|
|||
return SPEED_MEDIUM
|
||||
if SPEED_HIGH == current_wink_speed:
|
||||
return SPEED_HIGH
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def current_direction(self):
|
||||
|
|
|
@ -15,7 +15,7 @@ import homeassistant.helpers.config_validation as cv
|
|||
from homeassistant.helpers import discovery
|
||||
from homeassistant.components.media_player import DOMAIN as MEDIA_PLAYER
|
||||
from homeassistant.components.switch import DOMAIN as SWITCH
|
||||
from homeassistant.const import (EVENT_HOMEASSISTANT_START, STATE_UNKNOWN,
|
||||
from homeassistant.const import (EVENT_HOMEASSISTANT_START,
|
||||
EVENT_HOMEASSISTANT_STOP, STATE_ON,
|
||||
STATE_OFF, CONF_DEVICES, CONF_PLATFORM,
|
||||
STATE_PLAYING, STATE_IDLE,
|
||||
|
@ -324,7 +324,7 @@ class CecDevice(Entity):
|
|||
"""Initialize the device."""
|
||||
self._device = device
|
||||
self._icon = None
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._logical_address = logical
|
||||
self.entity_id = "%s.%d" % (DOMAIN, self._logical_address)
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ import logging
|
|||
from pyhap.const import CATEGORY_DOOR_LOCK
|
||||
|
||||
from homeassistant.components.lock import (
|
||||
ATTR_ENTITY_ID, DOMAIN, STATE_LOCKED, STATE_UNLOCKED, STATE_UNKNOWN)
|
||||
from homeassistant.const import ATTR_CODE
|
||||
ATTR_ENTITY_ID, DOMAIN, STATE_LOCKED, STATE_UNLOCKED)
|
||||
from homeassistant.const import ATTR_CODE, STATE_UNKNOWN
|
||||
|
||||
from . import TYPES
|
||||
from .accessories import HomeAccessory
|
||||
|
|
|
@ -13,7 +13,7 @@ import voluptuous as vol
|
|||
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.core import split_entity_id, callback
|
||||
from homeassistant.const import STATE_UNKNOWN, CONF_REGION
|
||||
from homeassistant.const import CONF_REGION
|
||||
from homeassistant.components.image_processing import (
|
||||
PLATFORM_SCHEMA, ImageProcessingEntity, CONF_CONFIDENCE, CONF_SOURCE,
|
||||
CONF_ENTITY_ID, CONF_NAME, ATTR_ENTITY_ID, ATTR_CONFIDENCE)
|
||||
|
@ -82,7 +82,7 @@ class ImageProcessingAlprEntity(ImageProcessingEntity):
|
|||
def state(self):
|
||||
"""Return the state of the entity."""
|
||||
confidence = 0
|
||||
plate = STATE_UNKNOWN
|
||||
plate = None
|
||||
|
||||
# search high plate
|
||||
for i_pl, i_co in self.plates.items():
|
||||
|
|
|
@ -17,7 +17,7 @@ from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.const import (
|
||||
ATTR_CODE, ATTR_CODE_FORMAT, ATTR_ENTITY_ID, STATE_LOCKED, STATE_UNLOCKED,
|
||||
STATE_UNKNOWN, SERVICE_LOCK, SERVICE_UNLOCK, SERVICE_OPEN)
|
||||
SERVICE_LOCK, SERVICE_UNLOCK, SERVICE_OPEN)
|
||||
from homeassistant.components import group
|
||||
|
||||
ATTR_CHANGED_BY = 'changed_by'
|
||||
|
@ -150,5 +150,5 @@ class LockDevice(Entity):
|
|||
"""Return the state."""
|
||||
locked = self.is_locked
|
||||
if locked is None:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
return STATE_LOCKED if locked else STATE_UNLOCKED
|
||||
|
|
|
@ -12,7 +12,7 @@ from homeassistant.components.verisure import (
|
|||
CONF_LOCKS, CONF_DEFAULT_LOCK_CODE, CONF_CODE_DIGITS)
|
||||
from homeassistant.components.lock import LockDevice
|
||||
from homeassistant.const import (
|
||||
ATTR_CODE, STATE_LOCKED, STATE_UNKNOWN, STATE_UNLOCKED)
|
||||
ATTR_CODE, STATE_LOCKED, STATE_UNLOCKED)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -36,7 +36,7 @@ class VerisureDoorlock(LockDevice):
|
|||
def __init__(self, device_label):
|
||||
"""Initialize the Verisure lock."""
|
||||
self._device_label = device_label
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._digits = hub.config.get(CONF_CODE_DIGITS)
|
||||
self._changed_by = None
|
||||
self._change_timestamp = 0
|
||||
|
@ -80,7 +80,7 @@ class VerisureDoorlock(LockDevice):
|
|||
"$.doorLockStatusList[?(@.deviceLabel=='%s')].lockedState",
|
||||
self._device_label)
|
||||
if status == 'UNLOCKED':
|
||||
self._state = STATE_UNLOCKED
|
||||
self._state = None
|
||||
elif status == 'LOCKED':
|
||||
self._state = STATE_LOCKED
|
||||
elif status != 'PENDING':
|
||||
|
@ -96,7 +96,7 @@ class VerisureDoorlock(LockDevice):
|
|||
|
||||
def unlock(self, **kwargs):
|
||||
"""Send unlock command."""
|
||||
if self._state == STATE_UNLOCKED:
|
||||
if self._state is None:
|
||||
return
|
||||
|
||||
code = kwargs.get(ATTR_CODE, self._default_lock_code)
|
||||
|
|
|
@ -27,7 +27,7 @@ from homeassistant.const import (
|
|||
SERVICE_MEDIA_SEEK, SERVICE_MEDIA_STOP, SERVICE_SHUFFLE_SET,
|
||||
SERVICE_TOGGLE, SERVICE_TURN_OFF, SERVICE_TURN_ON, SERVICE_VOLUME_DOWN,
|
||||
SERVICE_VOLUME_MUTE, SERVICE_VOLUME_SET, SERVICE_VOLUME_UP, STATE_IDLE,
|
||||
STATE_OFF, STATE_PLAYING, STATE_UNKNOWN)
|
||||
STATE_OFF, STATE_PLAYING)
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa
|
||||
|
@ -317,7 +317,7 @@ class MediaPlayerDevice(Entity):
|
|||
@property
|
||||
def state(self):
|
||||
"""State of the player."""
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def access_token(self):
|
||||
|
|
|
@ -13,7 +13,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME, CONF_PORT, EVENT_HOMEASSISTANT_STOP, STATE_OFF,
|
||||
STATE_ON, STATE_UNKNOWN)
|
||||
STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
REQUIREMENTS = ['anthemav==1.1.8']
|
||||
|
@ -100,7 +100,7 @@ class AnthemAVR(MediaPlayerDevice):
|
|||
return STATE_ON
|
||||
if pwrstate is False:
|
||||
return STATE_OFF
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def is_volume_muted(self):
|
||||
|
|
|
@ -15,7 +15,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_STEP, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME, CONF_PASSWORD, CONF_PORT, CONF_TIMEOUT,
|
||||
CONF_USERNAME, STATE_OFF, STATE_ON, STATE_UNKNOWN)
|
||||
CONF_USERNAME, STATE_OFF, STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
REQUIREMENTS = ['sharp_aquos_rc==0.3.2']
|
||||
|
@ -113,7 +113,7 @@ class SharpAquosTVDevice(MediaPlayerDevice):
|
|||
self._name = name
|
||||
# Assume that the TV is not muted
|
||||
self._muted = False
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._remote = remote
|
||||
self._volume = 0
|
||||
self._source = None
|
||||
|
|
|
@ -14,8 +14,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, SUPPORT_STOP,
|
||||
SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET,
|
||||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON, STATE_UNKNOWN)
|
||||
from homeassistant.const import CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -169,7 +168,7 @@ class DenonDevice(MediaPlayerDevice):
|
|||
if self._pwstate == 'PWON':
|
||||
return STATE_ON
|
||||
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def volume_level(self):
|
||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.components.media_player import (
|
|||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_ACCESS_TOKEN, CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED,
|
||||
STATE_PLAYING, STATE_UNKNOWN)
|
||||
STATE_PLAYING)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
REQUIREMENTS = ['pylgnetcast-homeassistant==0.2.0.dev0']
|
||||
|
@ -68,7 +68,7 @@ class LgTVDevice(MediaPlayerDevice):
|
|||
self._volume = 0
|
||||
self._channel_name = ''
|
||||
self._program_name = ''
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._sources = {}
|
||||
self._source_names = []
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ from homeassistant.components.media_player import (
|
|||
PLATFORM_SCHEMA, SUPPORT_PAUSE, SUPPORT_PLAY, SUPPORT_STOP,
|
||||
SUPPORT_TURN_OFF, SUPPORT_TURN_ON, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME, STATE_IDLE, STATE_OFF, STATE_PLAYING, STATE_UNKNOWN)
|
||||
CONF_HOST, CONF_NAME, STATE_IDLE, STATE_OFF, STATE_PLAYING)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.util.dt import utcnow
|
||||
|
||||
|
@ -101,7 +101,7 @@ class PanasonicBluRay(MediaPlayerDevice):
|
|||
state = self._device.get_play_status()
|
||||
|
||||
if state[0] == 'error':
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
elif state[0] in ['off', 'standby']:
|
||||
# We map both of these to off. If it's really off we can't
|
||||
# turn it on, but from standby we can go to idle by pressing
|
||||
|
|
|
@ -14,8 +14,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET,
|
||||
SUPPORT_VOLUME_STEP, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_MAC, CONF_NAME, CONF_PORT, STATE_OFF, STATE_ON,
|
||||
STATE_UNKNOWN)
|
||||
CONF_HOST, CONF_MAC, CONF_NAME, CONF_PORT, STATE_OFF, STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
REQUIREMENTS = ['panasonic_viera==0.3.1', 'wakeonlan==1.1.6']
|
||||
|
@ -81,7 +80,7 @@ class PanasonicVieraTVDevice(MediaPlayerDevice):
|
|||
self._uuid = uuid
|
||||
self._muted = False
|
||||
self._playing = True
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._remote = remote
|
||||
self._volume = 0
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, SUPPORT_VOLUME_STEP,
|
||||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_API_VERSION, CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON, STATE_UNKNOWN)
|
||||
CONF_API_VERSION, CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.script import Script
|
||||
from homeassistant.util import Throttle
|
||||
|
@ -70,7 +70,7 @@ class PhilipsTV(MediaPlayerDevice):
|
|||
"""Initialize the Philips TV."""
|
||||
self._tv = tv
|
||||
self._name = name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._min_volume = None
|
||||
self._max_volume = None
|
||||
self._volume = None
|
||||
|
|
|
@ -14,8 +14,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET,
|
||||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_NAME, CONF_PORT, CONF_TIMEOUT, STATE_OFF, STATE_ON,
|
||||
STATE_UNKNOWN)
|
||||
CONF_HOST, CONF_NAME, CONF_PORT, CONF_TIMEOUT, STATE_OFF, STATE_ON)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -157,7 +156,7 @@ class PioneerDevice(MediaPlayerDevice):
|
|||
if self._pwstate == "PWR0":
|
||||
return STATE_ON
|
||||
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def volume_level(self):
|
||||
|
|
|
@ -11,8 +11,8 @@ from homeassistant.components.media_player import (
|
|||
MEDIA_TYPE_MOVIE, SUPPORT_NEXT_TRACK, SUPPORT_PLAY,
|
||||
SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE,
|
||||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, STATE_HOME, STATE_IDLE, STATE_PLAYING, STATE_UNKNOWN)
|
||||
from homeassistant.const import (CONF_HOST, STATE_HOME, STATE_IDLE,
|
||||
STATE_PLAYING)
|
||||
|
||||
DEPENDENCIES = ['roku']
|
||||
|
||||
|
@ -83,7 +83,7 @@ class RokuDevice(MediaPlayerDevice):
|
|||
def state(self):
|
||||
"""Return the state of the device."""
|
||||
if self.current_app is None:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
if (self.current_app.name == "Power Saver" or
|
||||
self.current_app.is_screensaver):
|
||||
|
@ -93,7 +93,7 @@ class RokuDevice(MediaPlayerDevice):
|
|||
if self.current_app.name is not None:
|
||||
return STATE_PLAYING
|
||||
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def supported_features(self):
|
||||
|
|
|
@ -16,7 +16,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_SELECT_SOURCE, SUPPORT_SHUFFLE_SET, SUPPORT_VOLUME_SET,
|
||||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_NAME, STATE_IDLE, STATE_PAUSED, STATE_PLAYING, STATE_UNKNOWN)
|
||||
CONF_NAME, STATE_IDLE, STATE_PAUSED, STATE_PLAYING)
|
||||
from homeassistant.core import callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
|
@ -132,7 +132,7 @@ class SpotifyMediaPlayer(MediaPlayerDevice):
|
|||
self._artist = None
|
||||
self._uri = None
|
||||
self._image_url = None
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._current_device = None
|
||||
self._devices = {}
|
||||
self._volume = None
|
||||
|
|
|
@ -21,7 +21,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
ATTR_COMMAND, CONF_HOST, CONF_PASSWORD, CONF_PORT, CONF_USERNAME,
|
||||
STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING, STATE_UNKNOWN)
|
||||
STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING)
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.util.dt import utcnow
|
||||
|
@ -242,7 +242,7 @@ class SqueezeBoxDevice(MediaPlayerDevice):
|
|||
return STATE_PLAYING
|
||||
if self._status['mode'] == 'stop':
|
||||
return STATE_IDLE
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
def async_query(self, *parameters):
|
||||
"""Send a command to the LMS.
|
||||
|
|
|
@ -16,8 +16,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, SUPPORT_VOLUME_STEP,
|
||||
MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_ACCESS_TOKEN, CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON,
|
||||
STATE_UNKNOWN)
|
||||
CONF_ACCESS_TOKEN, CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON)
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
|
||||
REQUIREMENTS = ['pyvizio==0.0.4']
|
||||
|
@ -82,7 +81,7 @@ class VizioDevice(MediaPlayerDevice):
|
|||
import pyvizio
|
||||
self._device = pyvizio.Vizio(DEVICE_ID, host, DEFAULT_NAME, token)
|
||||
self._name = name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._volume_level = None
|
||||
self._volume_step = volume_step
|
||||
self._current_input = None
|
||||
|
@ -93,7 +92,7 @@ class VizioDevice(MediaPlayerDevice):
|
|||
"""Retrieve latest state of the TV."""
|
||||
is_on = self._device.get_power_state()
|
||||
if is_on is None:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
return
|
||||
if is_on is False:
|
||||
self._state = STATE_OFF
|
||||
|
|
|
@ -20,7 +20,7 @@ from homeassistant.components.media_player import (
|
|||
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_STEP, MediaPlayerDevice)
|
||||
from homeassistant.const import (
|
||||
CONF_CUSTOMIZE, CONF_FILENAME, CONF_HOST, CONF_NAME, CONF_TIMEOUT,
|
||||
STATE_OFF, STATE_PAUSED, STATE_PLAYING, STATE_UNKNOWN)
|
||||
STATE_OFF, STATE_PAUSED, STATE_PLAYING)
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.script import Script
|
||||
|
||||
|
@ -168,7 +168,7 @@ class LgWebOSDevice(MediaPlayerDevice):
|
|||
self._volume = 0
|
||||
self._current_source = None
|
||||
self._current_source_id = None
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._source_list = {}
|
||||
self._app_list = {}
|
||||
self._channel = None
|
||||
|
@ -181,7 +181,7 @@ class LgWebOSDevice(MediaPlayerDevice):
|
|||
current_input = self._client.get_input()
|
||||
if current_input is not None:
|
||||
self._current_source_id = current_input
|
||||
if self._state in (STATE_UNKNOWN, STATE_OFF):
|
||||
if self._state in (None, STATE_OFF):
|
||||
self._state = STATE_PLAYING
|
||||
else:
|
||||
self._state = STATE_OFF
|
||||
|
|
|
@ -15,7 +15,7 @@ from homeassistant.components import mqtt
|
|||
from homeassistant.const import (
|
||||
CONF_CODE, CONF_DEVICE, CONF_NAME, STATE_ALARM_ARMED_AWAY,
|
||||
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, STATE_ALARM_PENDING,
|
||||
STATE_ALARM_TRIGGERED, STATE_UNKNOWN)
|
||||
STATE_ALARM_TRIGGERED)
|
||||
from homeassistant.components.mqtt import (
|
||||
ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN,
|
||||
CONF_STATE_TOPIC, MqttAttributes, MqttAvailability, MqttDiscoveryUpdate,
|
||||
|
@ -90,7 +90,7 @@ class MqttAlarm(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate,
|
|||
|
||||
def __init__(self, config, discovery_hash):
|
||||
"""Init the MQTT Alarm Control Panel."""
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._config = config
|
||||
self._unique_id = config.get(CONF_UNIQUE_ID)
|
||||
self._sub_state = None
|
||||
|
|
|
@ -20,7 +20,7 @@ from homeassistant.components.mqtt.discovery import (
|
|||
MQTT_DISCOVERY_NEW, clear_discovery_hash)
|
||||
from homeassistant.components.sensor import DEVICE_CLASSES_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_FORCE_UPDATE, CONF_NAME, CONF_VALUE_TEMPLATE, STATE_UNKNOWN,
|
||||
CONF_FORCE_UPDATE, CONF_NAME, CONF_VALUE_TEMPLATE,
|
||||
CONF_UNIT_OF_MEASUREMENT, CONF_ICON, CONF_DEVICE_CLASS, CONF_DEVICE)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.components import mqtt
|
||||
|
@ -95,7 +95,7 @@ class MqttSensor(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate,
|
|||
"""Initialize the sensor."""
|
||||
self._config = config
|
||||
self._unique_id = config.get(CONF_UNIQUE_ID)
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._sub_state = None
|
||||
self._expiration_trigger = None
|
||||
self._attributes = None
|
||||
|
@ -188,7 +188,7 @@ class MqttSensor(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate,
|
|||
def value_is_expired(self, *_):
|
||||
"""Triggered when value is expired."""
|
||||
self._expiration_trigger = None
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self.async_schedule_update_ha_state()
|
||||
|
||||
@property
|
||||
|
|
|
@ -167,7 +167,7 @@ class Plant(Entity):
|
|||
for reading, entity_id in config['sensors'].items():
|
||||
self._sensormap[entity_id] = reading
|
||||
self._readingmap[reading] = entity_id
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._name = name
|
||||
self._battery = None
|
||||
self._moisture = None
|
||||
|
|
|
@ -9,7 +9,7 @@ import logging
|
|||
|
||||
from homeassistant.components.amcrest import DATA_AMCREST, SENSORS
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.const import CONF_NAME, CONF_SENSORS, STATE_UNKNOWN
|
||||
from homeassistant.const import CONF_NAME, CONF_SENSORS
|
||||
|
||||
DEPENDENCIES = ['amcrest']
|
||||
|
||||
|
@ -48,7 +48,7 @@ class AmcrestSensor(Entity):
|
|||
self._name = '{0}_{1}'.format(name,
|
||||
SENSORS.get(self._sensor_type)[0])
|
||||
self._icon = 'mdi:{}'.format(SENSORS.get(self._sensor_type)[2])
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
|
|
@ -13,7 +13,7 @@ import voluptuous as vol
|
|||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE, CONF_RESOURCE,
|
||||
CONF_MONITORED_VARIABLES, CONF_NAME, STATE_UNKNOWN)
|
||||
CONF_MONITORED_VARIABLES, CONF_NAME)
|
||||
from homeassistant.exceptions import TemplateError
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.util import Throttle
|
||||
|
@ -116,7 +116,7 @@ class ArestSensor(Entity):
|
|||
self._name = '{} {}'.format(location.title(), name.title())
|
||||
self._variable = variable
|
||||
self._pin = pin
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._unit_of_measurement = unit_of_measurement
|
||||
self._renderer = renderer
|
||||
|
||||
|
@ -145,7 +145,7 @@ class ArestSensor(Entity):
|
|||
return values['error']
|
||||
|
||||
value = self._renderer(
|
||||
values.get('value', values.get(self._variable, STATE_UNKNOWN)))
|
||||
values.get('value', values.get(self._variable, None)))
|
||||
return value
|
||||
|
||||
def update(self):
|
||||
|
|
|
@ -15,7 +15,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
ATTR_ATTRIBUTION, CONF_NAME, CONF_OFFSET, STATE_UNKNOWN)
|
||||
ATTR_ATTRIBUTION, CONF_NAME, CONF_OFFSET)
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
@ -120,7 +120,7 @@ class ComedHourlyPricingSensor(Entity):
|
|||
float(data[0]['price']) + self.offset, 2)
|
||||
|
||||
else:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
except (asyncio.TimeoutError, aiohttp.ClientError) as err:
|
||||
_LOGGER.error("Could not get data from ComEd API: %s", err)
|
||||
|
|
|
@ -11,8 +11,7 @@ from homeassistant.components.comfoconnect import (
|
|||
ATTR_CURRENT_HUMIDITY, ATTR_OUTSIDE_TEMPERATURE,
|
||||
ATTR_OUTSIDE_HUMIDITY, ATTR_AIR_FLOW_SUPPLY,
|
||||
ATTR_AIR_FLOW_EXHAUST, SIGNAL_COMFOCONNECT_UPDATE_RECEIVED)
|
||||
from homeassistant.const import (
|
||||
CONF_RESOURCES, TEMP_CELSIUS, STATE_UNKNOWN)
|
||||
from homeassistant.const import CONF_RESOURCES, TEMP_CELSIUS
|
||||
from homeassistant.helpers.dispatcher import dispatcher_connect
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
|
@ -122,7 +121,7 @@ class ComfoConnectSensor(Entity):
|
|||
try:
|
||||
return self._ccb.data[self._sensor_id]
|
||||
except KeyError:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
|
|
@ -9,7 +9,6 @@ from datetime import timedelta
|
|||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
@ -73,7 +72,7 @@ class WanIpSensor(Entity):
|
|||
self.resolver = aiodns.DNSResolver(loop=self.hass.loop)
|
||||
self.resolver.nameservers = [resolver]
|
||||
self.querytype = 'AAAA' if ipv6 else 'A'
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
@ -97,4 +96,4 @@ class WanIpSensor(Entity):
|
|||
if response:
|
||||
self._state = response[0].host
|
||||
else:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
|
|
@ -13,7 +13,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP, STATE_UNKNOWN)
|
||||
CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP)
|
||||
from homeassistant.core import CoreState
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
@ -270,7 +270,7 @@ class DSMREntity(Entity):
|
|||
if value is not None:
|
||||
return value
|
||||
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def unit_of_measurement(self):
|
||||
|
@ -287,7 +287,7 @@ class DSMREntity(Entity):
|
|||
if value == '0001':
|
||||
return 'low'
|
||||
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
|
||||
class DerivativeDSMREntity(DSMREntity):
|
||||
|
@ -300,7 +300,7 @@ class DerivativeDSMREntity(DSMREntity):
|
|||
|
||||
_previous_reading = None
|
||||
_previous_timestamp = None
|
||||
_state = STATE_UNKNOWN
|
||||
_state = None
|
||||
|
||||
@property
|
||||
def state(self):
|
||||
|
|
|
@ -13,7 +13,7 @@ import voluptuous as vol
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_NAME, CONF_VALUE_TEMPLATE, STATE_UNKNOWN, CONF_UNIT_OF_MEASUREMENT)
|
||||
CONF_NAME, CONF_VALUE_TEMPLATE, CONF_UNIT_OF_MEASUREMENT)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
REQUIREMENTS = ['dweepy==0.3.0']
|
||||
|
@ -69,7 +69,7 @@ class DweetSensor(Entity):
|
|||
self.dweet = dweet
|
||||
self._name = name
|
||||
self._value_template = value_template
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._unit_of_measurement = unit_of_measurement
|
||||
|
||||
@property
|
||||
|
@ -92,11 +92,11 @@ class DweetSensor(Entity):
|
|||
self.dweet.update()
|
||||
|
||||
if self.dweet.data is None:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
else:
|
||||
values = json.dumps(self.dweet.data[0]['content'])
|
||||
self._state = self._value_template.render_with_possible_json_value(
|
||||
values, STATE_UNKNOWN)
|
||||
values, None)
|
||||
|
||||
|
||||
class DweetData:
|
||||
|
|
|
@ -16,7 +16,7 @@ import voluptuous as vol
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
STATE_UNKNOWN, CONF_UNIT_OF_MEASUREMENT, CONF_NAME,
|
||||
CONF_UNIT_OF_MEASUREMENT, CONF_NAME,
|
||||
CONF_LATITUDE, CONF_LONGITUDE, CONF_RADIUS, CONF_URL)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
|
@ -89,7 +89,7 @@ class GeoRssServiceSensor(Entity):
|
|||
"""Initialize the sensor."""
|
||||
self._category = category
|
||||
self._service_name = service_name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._state_attributes = None
|
||||
self._unit_of_measurement = unit_of_measurement
|
||||
from georss_client.generic_feed import GenericFeed
|
||||
|
|
|
@ -97,7 +97,7 @@ class GoogleWifiSensor(Entity):
|
|||
"""Initialize a Google Wifi sensor."""
|
||||
self._api = api
|
||||
self._name = name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
variable_info = MONITORED_CONDITIONS[variable]
|
||||
self._var_name = variable
|
||||
|
@ -135,7 +135,7 @@ class GoogleWifiSensor(Entity):
|
|||
if self.available:
|
||||
self._state = self._api.data[self._var_name]
|
||||
else:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
|
||||
class GoogleWifiAPI:
|
||||
|
|
|
@ -10,7 +10,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
ATTR_LATITUDE, ATTR_LONGITUDE, STATE_UNKNOWN, CONF_HOST, CONF_PORT,
|
||||
ATTR_LATITUDE, ATTR_LONGITUDE, CONF_HOST, CONF_PORT,
|
||||
CONF_NAME)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
@ -93,7 +93,7 @@ class GpsdSensor(Entity):
|
|||
return "3D Fix"
|
||||
if self.agps_thread.data_stream.mode == 2:
|
||||
return "2D Fix"
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def device_state_attributes(self):
|
||||
|
|
|
@ -9,8 +9,7 @@ import logging
|
|||
import voluptuous as vol
|
||||
|
||||
from homeassistant.const import (CONF_HOST, CONF_PORT, CONF_DEVICE,
|
||||
CONF_NAME, EVENT_HOMEASSISTANT_STOP,
|
||||
STATE_UNKNOWN)
|
||||
CONF_NAME, EVENT_HOMEASSISTANT_STOP)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
@ -105,7 +104,7 @@ class KWBSensor(Entity):
|
|||
"""Return the state of value."""
|
||||
if self._sensor.value is not None and self._sensor.available:
|
||||
return self._sensor.value
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
|
||||
@property
|
||||
def unit_of_measurement(self):
|
||||
|
|
|
@ -11,7 +11,6 @@ import requests
|
|||
import voluptuous as vol
|
||||
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.util import Throttle
|
||||
|
@ -143,7 +142,7 @@ class AirSensor(Entity):
|
|||
if sites_status:
|
||||
self._state = max(set(sites_status), key=sites_status.count)
|
||||
else:
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
|
||||
def parse_species(species_data):
|
||||
|
|
|
@ -70,20 +70,20 @@ async def async_setup_platform(hass, config, async_add_entities,
|
|||
|
||||
def calc_min(sensor_values):
|
||||
"""Calculate min value, honoring unknown states."""
|
||||
val = STATE_UNKNOWN
|
||||
val = None
|
||||
for sval in sensor_values:
|
||||
if sval != STATE_UNKNOWN:
|
||||
if val == STATE_UNKNOWN or val > sval:
|
||||
if val is None or val > sval:
|
||||
val = sval
|
||||
return val
|
||||
|
||||
|
||||
def calc_max(sensor_values):
|
||||
"""Calculate max value, honoring unknown states."""
|
||||
val = STATE_UNKNOWN
|
||||
val = None
|
||||
for sval in sensor_values:
|
||||
if sval != STATE_UNKNOWN:
|
||||
if val == STATE_UNKNOWN or val < sval:
|
||||
if val is None or val < sval:
|
||||
val = sval
|
||||
return val
|
||||
|
||||
|
@ -97,7 +97,7 @@ def calc_mean(sensor_values, round_digits):
|
|||
val += sval
|
||||
count += 1
|
||||
if count == 0:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
return round(val/count, round_digits)
|
||||
|
||||
|
||||
|
@ -119,7 +119,7 @@ class MinMaxSensor(Entity):
|
|||
if self._sensor_type == v)).capitalize()
|
||||
self._unit_of_measurement = None
|
||||
self._unit_of_measurement_mismatch = False
|
||||
self.min_value = self.max_value = self.mean = self.last = STATE_UNKNOWN
|
||||
self.min_value = self.max_value = self.mean = self.last = None
|
||||
self.count_sensors = len(self._entity_ids)
|
||||
self.states = {}
|
||||
|
||||
|
@ -164,7 +164,7 @@ class MinMaxSensor(Entity):
|
|||
def state(self):
|
||||
"""Return the state of the sensor."""
|
||||
if self._unit_of_measurement_mismatch:
|
||||
return STATE_UNKNOWN
|
||||
return None
|
||||
return getattr(self, next(
|
||||
k for k, v in SENSOR_TYPES.items() if self._sensor_type == v))
|
||||
|
||||
|
|
|
@ -14,8 +14,7 @@ import homeassistant.helpers.config_validation as cv
|
|||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_NAME, ATTR_ATTRIBUTION, STATE_UNKNOWN
|
||||
)
|
||||
CONF_NAME, ATTR_ATTRIBUTION)
|
||||
|
||||
REQUIREMENTS = ['PyMVGLive==1.1.4']
|
||||
|
||||
|
@ -87,7 +86,7 @@ class MVGLiveSensor(Entity):
|
|||
self._name = name
|
||||
self.data = MVGLiveData(station, destinations, directions,
|
||||
lines, products, timeoffset, number)
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._icon = ICONS['-']
|
||||
|
||||
@property
|
||||
|
|
|
@ -13,7 +13,7 @@ import voluptuous as vol
|
|||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
TEMP_CELSIUS, DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_BATTERY, STATE_UNKNOWN)
|
||||
DEVICE_CLASS_BATTERY)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
|
@ -161,7 +161,7 @@ class NetAtmoSensor(Entity):
|
|||
|
||||
if data is None:
|
||||
_LOGGER.warning("No data found for %s", self.module_name)
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
return
|
||||
|
||||
if self.type == 'temperature':
|
||||
|
|
|
@ -9,7 +9,7 @@ import logging
|
|||
import voluptuous as vol
|
||||
|
||||
from homeassistant.const import (
|
||||
CONF_NAME, STATE_UNKNOWN, CONF_UNIT_OF_MEASUREMENT, CONF_PAYLOAD)
|
||||
CONF_NAME, CONF_UNIT_OF_MEASUREMENT, CONF_PAYLOAD)
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.components import pilight
|
||||
|
@ -46,7 +46,7 @@ class PilightSensor(Entity):
|
|||
|
||||
def __init__(self, hass, name, variable, payload, unit_of_measurement):
|
||||
"""Initialize the sensor."""
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._hass = hass
|
||||
self._name = name
|
||||
self._variable = variable
|
||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.const import (
|
|||
CONF_METHOD, CONF_PASSWORD, CONF_PAYLOAD, CONF_RESOURCE,
|
||||
CONF_UNIT_OF_MEASUREMENT, CONF_USERNAME,
|
||||
CONF_VALUE_TEMPLATE, CONF_VERIFY_SSL, CONF_DEVICE_CLASS,
|
||||
HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION, STATE_UNKNOWN)
|
||||
HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION)
|
||||
from homeassistant.exceptions import PlatformNotReady
|
||||
from homeassistant.helpers.entity import Entity
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
@ -100,7 +100,7 @@ class RestSensor(Entity):
|
|||
self._hass = hass
|
||||
self.rest = rest
|
||||
self._name = name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._unit_of_measurement = unit_of_measurement
|
||||
self._device_class = device_class
|
||||
self._value_template = value_template
|
||||
|
@ -159,11 +159,9 @@ class RestSensor(Entity):
|
|||
_LOGGER.debug("Erroneous JSON: %s", value)
|
||||
else:
|
||||
_LOGGER.warning("Empty reply found when expecting JSON data")
|
||||
if value is None:
|
||||
value = STATE_UNKNOWN
|
||||
elif self._value_template is not None:
|
||||
if value is not None and self._value_template is not None:
|
||||
value = self._value_template.render_with_possible_json_value(
|
||||
value, STATE_UNKNOWN)
|
||||
value, None)
|
||||
|
||||
self._state = value
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ from homeassistant.components.ring import (
|
|||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_ENTITY_NAMESPACE, CONF_MONITORED_CONDITIONS,
|
||||
STATE_UNKNOWN, ATTR_ATTRIBUTION)
|
||||
ATTR_ATTRIBUTION)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.helpers.icon import icon_for_battery_level
|
||||
|
||||
|
@ -98,7 +98,7 @@ class RingSensor(Entity):
|
|||
self._kind = SENSOR_TYPES.get(self._sensor_type)[4]
|
||||
self._name = "{0} {1}".format(
|
||||
self._data.name, SENSOR_TYPES.get(self._sensor_type)[0])
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._tz = str(hass.config.time_zone)
|
||||
self._unique_id = '{}-{}'.format(self._data.id, self._sensor_type)
|
||||
|
||||
|
@ -141,7 +141,7 @@ class RingSensor(Entity):
|
|||
@property
|
||||
def icon(self):
|
||||
"""Icon to use in the frontend, if any."""
|
||||
if self._sensor_type == 'battery' and self._state is not STATE_UNKNOWN:
|
||||
if self._sensor_type == 'battery' and self._state is not None:
|
||||
return icon_for_battery_level(battery_level=int(self._state),
|
||||
charging=False)
|
||||
return self._icon
|
||||
|
|
|
@ -12,7 +12,7 @@ from requests.auth import HTTPBasicAuth, HTTPDigestAuth
|
|||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.components.sensor.rest import RestData
|
||||
from homeassistant.const import (
|
||||
CONF_NAME, CONF_RESOURCE, CONF_UNIT_OF_MEASUREMENT, STATE_UNKNOWN,
|
||||
CONF_NAME, CONF_RESOURCE, CONF_UNIT_OF_MEASUREMENT,
|
||||
CONF_VALUE_TEMPLATE, CONF_VERIFY_SSL, CONF_USERNAME, CONF_HEADERS,
|
||||
CONF_PASSWORD, CONF_AUTHENTICATION, HTTP_BASIC_AUTHENTICATION,
|
||||
HTTP_DIGEST_AUTHENTICATION)
|
||||
|
@ -87,7 +87,7 @@ class ScrapeSensor(Entity):
|
|||
"""Initialize a web scrape sensor."""
|
||||
self.rest = rest
|
||||
self._name = name
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._select = select
|
||||
self._attr = attr
|
||||
self._value_template = value_template
|
||||
|
@ -129,6 +129,6 @@ class ScrapeSensor(Entity):
|
|||
|
||||
if self._value_template is not None:
|
||||
self._state = self._value_template.render_with_possible_json_value(
|
||||
value, STATE_UNKNOWN)
|
||||
value, None)
|
||||
else:
|
||||
self._state = value
|
||||
|
|
|
@ -13,8 +13,7 @@ import voluptuous as vol
|
|||
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (CONF_DEVICES, CONF_EMAIL, CONF_PASSWORD,
|
||||
STATE_UNKNOWN)
|
||||
from homeassistant.const import CONF_DEVICES, CONF_EMAIL, CONF_PASSWORD
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
|
||||
|
@ -78,7 +77,7 @@ class TankUtilitySensor(Entity):
|
|||
self._password = password
|
||||
self._token = token
|
||||
self._device = device
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._name = "Tank Utility " + self.device
|
||||
self._unit_of_measurement = SENSOR_UNIT_OF_MEASUREMENT
|
||||
self._attributes = {}
|
||||
|
|
|
@ -13,7 +13,7 @@ import homeassistant.helpers.config_validation as cv
|
|||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
ATTR_ATTRIBUTION, CONF_API_KEY, CONF_SCAN_INTERVAL,
|
||||
CONF_MONITORED_CONDITIONS, STATE_UNKNOWN)
|
||||
CONF_MONITORED_CONDITIONS)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
REQUIREMENTS = ['TravisPy==0.3.5']
|
||||
|
@ -107,7 +107,7 @@ class TravisCISensor(Entity):
|
|||
self._repo_name = repo_name
|
||||
self._user = user
|
||||
self._branch = branch
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._name = "{0} {1}".format(self._repo_name,
|
||||
SENSOR_TYPES[self._sensor_type][0])
|
||||
|
||||
|
@ -132,7 +132,7 @@ class TravisCISensor(Entity):
|
|||
attrs = {}
|
||||
attrs[ATTR_ATTRIBUTION] = CONF_ATTRIBUTION
|
||||
|
||||
if self._build and self._state is not STATE_UNKNOWN:
|
||||
if self._build and self._state is not None:
|
||||
if self._user and self._sensor_type == 'state':
|
||||
attrs['Owner Name'] = self._user.name
|
||||
attrs['Owner Email'] = self._user.email
|
||||
|
|
|
@ -57,7 +57,7 @@ class XboxSensor(Entity):
|
|||
def __init__(self, hass, api, xuid):
|
||||
"""Initialize the sensor."""
|
||||
self._hass = hass
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._presence = {}
|
||||
self._xuid = xuid
|
||||
self._api = api
|
||||
|
@ -117,5 +117,5 @@ class XboxSensor(Entity):
|
|||
def update(self):
|
||||
"""Update state data from Xbox API."""
|
||||
presence = self._api.get_user_presence(self._xuid)
|
||||
self._state = presence.get('state', STATE_UNKNOWN)
|
||||
self._state = presence.get('state')
|
||||
self._presence = presence.get('devices', {})
|
||||
|
|
|
@ -12,7 +12,7 @@ import voluptuous as vol
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
TEMP_CELSIUS, CONF_MONITORED_CONDITIONS, CONF_NAME, STATE_UNKNOWN,
|
||||
TEMP_CELSIUS, CONF_MONITORED_CONDITIONS, CONF_NAME,
|
||||
ATTR_ATTRIBUTION)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.util import Throttle
|
||||
|
@ -99,7 +99,7 @@ class YahooWeatherSensor(Entity):
|
|||
self._client = name
|
||||
self._name = SENSOR_TYPES[sensor_type][0]
|
||||
self._type = sensor_type
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
self._unit = SENSOR_TYPES[sensor_type][1]
|
||||
self._data = weather_data
|
||||
self._forecast = forecast
|
||||
|
|
|
@ -27,7 +27,7 @@ class TestFanEntity(unittest.TestCase):
|
|||
|
||||
def test_fanentity(self):
|
||||
"""Test fan entity methods."""
|
||||
assert 'on' == self.fan.state
|
||||
assert 'off' == self.fan.state
|
||||
assert 0 == len(self.fan.speed_list)
|
||||
assert 0 == self.fan.supported_features
|
||||
assert {'speed_list': []} == self.fan.state_attributes
|
||||
|
|
|
@ -5,7 +5,7 @@ import unittest
|
|||
from voluptuous.error import MultipleInvalid
|
||||
|
||||
from homeassistant.const import (
|
||||
STATE_OFF, STATE_ON, STATE_UNKNOWN, STATE_PLAYING, STATE_PAUSED)
|
||||
STATE_OFF, STATE_ON, STATE_PLAYING, STATE_PAUSED)
|
||||
import homeassistant.components.switch as switch
|
||||
import homeassistant.components.input_number as input_number
|
||||
import homeassistant.components.input_select as input_select
|
||||
|
@ -119,7 +119,7 @@ class MockMediaPlayer(media_player.MediaPlayerDevice):
|
|||
|
||||
def turn_on(self):
|
||||
"""Mock turn_on function."""
|
||||
self._state = STATE_UNKNOWN
|
||||
self._state = None
|
||||
|
||||
def turn_off(self):
|
||||
"""Mock turn_off function."""
|
||||
|
|
|
@ -12,7 +12,6 @@ from unittest.mock import Mock
|
|||
import asynctest
|
||||
from homeassistant.bootstrap import async_setup_component
|
||||
from homeassistant.components.sensor.dsmr import DerivativeDSMREntity
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
import pytest
|
||||
from tests.common import assert_setup_component
|
||||
|
||||
|
@ -99,7 +98,7 @@ def test_derivative():
|
|||
entity = DerivativeDSMREntity('test', '1.0.0')
|
||||
yield from entity.async_update()
|
||||
|
||||
assert entity.state == STATE_UNKNOWN, 'initial state not unknown'
|
||||
assert entity.state is None, 'initial state not unknown'
|
||||
|
||||
entity.telegram = {
|
||||
'1.0.0': MBusObject([
|
||||
|
@ -109,7 +108,7 @@ def test_derivative():
|
|||
}
|
||||
yield from entity.async_update()
|
||||
|
||||
assert entity.state == STATE_UNKNOWN, \
|
||||
assert entity.state is None, \
|
||||
'state after first update should still be unknown'
|
||||
|
||||
entity.telegram = {
|
||||
|
|
|
@ -169,7 +169,7 @@ class TestGoogleWifiSensor(unittest.TestCase):
|
|||
sensor = self.sensor_dict[name]['sensor']
|
||||
self.fake_delay(2)
|
||||
sensor.update()
|
||||
assert STATE_UNKNOWN == sensor.state
|
||||
assert sensor.state is None
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_update_when_value_changed(self, mock_req):
|
||||
|
@ -213,7 +213,7 @@ class TestGoogleWifiSensor(unittest.TestCase):
|
|||
for name in self.sensor_dict:
|
||||
sensor = self.sensor_dict[name]['sensor']
|
||||
sensor.update()
|
||||
assert STATE_UNKNOWN == sensor.state
|
||||
assert sensor.state is None
|
||||
|
||||
def update_side_effect(self):
|
||||
"""Mock representation of update function."""
|
||||
|
|
|
@ -11,7 +11,6 @@ from homeassistant.exceptions import PlatformNotReady
|
|||
from homeassistant.setup import setup_component
|
||||
import homeassistant.components.sensor as sensor
|
||||
import homeassistant.components.sensor.rest as rest
|
||||
from homeassistant.const import STATE_UNKNOWN
|
||||
from homeassistant.helpers.config_validation import template
|
||||
|
||||
from tests.common import get_test_home_assistant, assert_setup_component
|
||||
|
@ -175,7 +174,7 @@ class TestRestSensor(unittest.TestCase):
|
|||
self.rest.update = Mock(
|
||||
'rest.RestData.update', side_effect=self.update_side_effect(None))
|
||||
self.sensor.update()
|
||||
assert STATE_UNKNOWN == self.sensor.state
|
||||
assert self.sensor.state is None
|
||||
assert not self.sensor.available
|
||||
|
||||
def test_update_when_value_changed(self):
|
||||
|
|
Loading…
Reference in New Issue