45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
|
"""Support for a DoorBird video doorbell."""
|
||
|
|
||
|
import logging
|
||
|
import voluptuous as vol
|
||
|
|
||
|
from homeassistant.const import CONF_HOST, CONF_USERNAME, CONF_PASSWORD
|
||
|
import homeassistant.helpers.config_validation as cv
|
||
|
|
||
|
REQUIREMENTS = ['DoorBirdPy==0.0.4']
|
||
|
|
||
|
_LOGGER = logging.getLogger(__name__)
|
||
|
|
||
|
DOMAIN = 'doorbird'
|
||
|
|
||
|
CONFIG_SCHEMA = vol.Schema({
|
||
|
DOMAIN: vol.Schema({
|
||
|
vol.Required(CONF_HOST): cv.string,
|
||
|
vol.Required(CONF_USERNAME): cv.string,
|
||
|
vol.Required(CONF_PASSWORD): cv.string
|
||
|
})
|
||
|
}, extra=vol.ALLOW_EXTRA)
|
||
|
|
||
|
|
||
|
def setup(hass, config):
|
||
|
"""Set up the DoorBird component."""
|
||
|
device_ip = config[DOMAIN].get(CONF_HOST)
|
||
|
username = config[DOMAIN].get(CONF_USERNAME)
|
||
|
password = config[DOMAIN].get(CONF_PASSWORD)
|
||
|
|
||
|
from doorbirdpy import DoorBird
|
||
|
device = DoorBird(device_ip, username, password)
|
||
|
status = device.ready()
|
||
|
|
||
|
if status[0]:
|
||
|
_LOGGER.info("Connected to DoorBird at %s as %s", device_ip, username)
|
||
|
hass.data[DOMAIN] = device
|
||
|
return True
|
||
|
elif status[1] == 401:
|
||
|
_LOGGER.error("Authorization rejected by DoorBird at %s", device_ip)
|
||
|
return False
|
||
|
else:
|
||
|
_LOGGER.error("Could not connect to DoorBird at %s: Error %s",
|
||
|
device_ip, str(status[1]))
|
||
|
return False
|