mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Use 'hass.data' instead of global (#8245)
This commit is contained in:
parent
a328df6014
commit
27c92937f2
@ -8,19 +8,18 @@ import logging
|
|||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
BinarySensorDevice, PLATFORM_SCHEMA)
|
BinarySensorDevice, PLATFORM_SCHEMA)
|
||||||
from homeassistant.components.digital_ocean import (
|
from homeassistant.components.digital_ocean import (
|
||||||
CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME,
|
CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME,
|
||||||
ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY,
|
ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY,
|
||||||
ATTR_REGION, ATTR_VCPUS)
|
ATTR_REGION, ATTR_VCPUS, DATA_DIGITAL_OCEAN)
|
||||||
from homeassistant.loader import get_component
|
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEFAULT_NAME = 'Droplet'
|
DEFAULT_NAME = 'Droplet'
|
||||||
DEFAULT_SENSOR_CLASS = 'motion'
|
DEFAULT_SENSOR_CLASS = 'moving'
|
||||||
DEPENDENCIES = ['digital_ocean']
|
DEPENDENCIES = ['digital_ocean']
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
@ -30,19 +29,21 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
|||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Set up the Digital Ocean droplet sensor."""
|
"""Set up the Digital Ocean droplet sensor."""
|
||||||
digital_ocean = get_component('digital_ocean')
|
digital = hass.data.get(DATA_DIGITAL_OCEAN)
|
||||||
|
if not digital:
|
||||||
|
return False
|
||||||
|
|
||||||
droplets = config.get(CONF_DROPLETS)
|
droplets = config.get(CONF_DROPLETS)
|
||||||
|
|
||||||
dev = []
|
dev = []
|
||||||
for droplet in droplets:
|
for droplet in droplets:
|
||||||
droplet_id = digital_ocean.DIGITAL_OCEAN.get_droplet_id(droplet)
|
droplet_id = digital.get_droplet_id(droplet)
|
||||||
if droplet_id is None:
|
if droplet_id is None:
|
||||||
_LOGGER.error("Droplet %s is not available", droplet)
|
_LOGGER.error("Droplet %s is not available", droplet)
|
||||||
return False
|
return False
|
||||||
dev.append(DigitalOceanBinarySensor(
|
dev.append(DigitalOceanBinarySensor(digital, droplet_id))
|
||||||
digital_ocean.DIGITAL_OCEAN, droplet_id))
|
|
||||||
|
|
||||||
add_devices(dev)
|
add_devices(dev, True)
|
||||||
|
|
||||||
|
|
||||||
class DigitalOceanBinarySensor(BinarySensorDevice):
|
class DigitalOceanBinarySensor(BinarySensorDevice):
|
||||||
@ -53,7 +54,7 @@ class DigitalOceanBinarySensor(BinarySensorDevice):
|
|||||||
self._digital_ocean = do
|
self._digital_ocean = do
|
||||||
self._droplet_id = droplet_id
|
self._droplet_id = droplet_id
|
||||||
self._state = None
|
self._state = None
|
||||||
self.update()
|
self.data = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
|
@ -29,7 +29,7 @@ ATTR_VCPUS = 'vcpus'
|
|||||||
|
|
||||||
CONF_DROPLETS = 'droplets'
|
CONF_DROPLETS = 'droplets'
|
||||||
|
|
||||||
DIGITAL_OCEAN = None
|
DATA_DIGITAL_OCEAN = 'data_do'
|
||||||
DIGITAL_OCEAN_PLATFORMS = ['switch', 'binary_sensor']
|
DIGITAL_OCEAN_PLATFORMS = ['switch', 'binary_sensor']
|
||||||
DOMAIN = 'digital_ocean'
|
DOMAIN = 'digital_ocean'
|
||||||
|
|
||||||
@ -47,13 +47,14 @@ def setup(hass, config):
|
|||||||
conf = config[DOMAIN]
|
conf = config[DOMAIN]
|
||||||
access_token = conf.get(CONF_ACCESS_TOKEN)
|
access_token = conf.get(CONF_ACCESS_TOKEN)
|
||||||
|
|
||||||
global DIGITAL_OCEAN
|
digital = DigitalOcean(access_token)
|
||||||
DIGITAL_OCEAN = DigitalOcean(access_token)
|
|
||||||
|
|
||||||
if not DIGITAL_OCEAN.manager.get_account():
|
if not digital.manager.get_account():
|
||||||
_LOGGER.error("No Digital Ocean account found for the given API Token")
|
_LOGGER.error("No Digital Ocean account found for the given API Token")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
hass.data[DATA_DIGITAL_OCEAN] = digital
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,13 +8,12 @@ import logging
|
|||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.components.switch import (SwitchDevice, PLATFORM_SCHEMA)
|
from homeassistant.components.switch import (SwitchDevice, PLATFORM_SCHEMA)
|
||||||
from homeassistant.components.digital_ocean import (
|
from homeassistant.components.digital_ocean import (
|
||||||
CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME,
|
CONF_DROPLETS, ATTR_CREATED_AT, ATTR_DROPLET_ID, ATTR_DROPLET_NAME,
|
||||||
ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY,
|
ATTR_FEATURES, ATTR_IPV4_ADDRESS, ATTR_IPV6_ADDRESS, ATTR_MEMORY,
|
||||||
ATTR_REGION, ATTR_VCPUS)
|
ATTR_REGION, ATTR_VCPUS, DATA_DIGITAL_OCEAN)
|
||||||
from homeassistant.loader import get_component
|
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -29,19 +28,21 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
|||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Set up the Digital Ocean droplet switch."""
|
"""Set up the Digital Ocean droplet switch."""
|
||||||
digital_ocean = get_component('digital_ocean')
|
digital = hass.data.get(DATA_DIGITAL_OCEAN)
|
||||||
|
if not digital:
|
||||||
|
return False
|
||||||
|
|
||||||
droplets = config.get(CONF_DROPLETS)
|
droplets = config.get(CONF_DROPLETS)
|
||||||
|
|
||||||
dev = []
|
dev = []
|
||||||
for droplet in droplets:
|
for droplet in droplets:
|
||||||
droplet_id = digital_ocean.DIGITAL_OCEAN.get_droplet_id(droplet)
|
droplet_id = digital.get_droplet_id(droplet)
|
||||||
if droplet_id is None:
|
if droplet_id is None:
|
||||||
_LOGGER.error("Droplet %s is not available", droplet)
|
_LOGGER.error("Droplet %s is not available", droplet)
|
||||||
return False
|
return False
|
||||||
dev.append(DigitalOceanSwitch(
|
dev.append(DigitalOceanSwitch(digital, droplet_id))
|
||||||
digital_ocean.DIGITAL_OCEAN, droplet_id))
|
|
||||||
|
|
||||||
add_devices(dev)
|
add_devices(dev, True)
|
||||||
|
|
||||||
|
|
||||||
class DigitalOceanSwitch(SwitchDevice):
|
class DigitalOceanSwitch(SwitchDevice):
|
||||||
@ -54,8 +55,6 @@ class DigitalOceanSwitch(SwitchDevice):
|
|||||||
self.data = None
|
self.data = None
|
||||||
self._state = None
|
self._state = None
|
||||||
|
|
||||||
self.update()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
"""Return the name of the switch."""
|
"""Return the name of the switch."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user