hass-core/homeassistant/components/weblink.py
magnusknutas de4dab74b1 Adding weblink component
Adding weblink component tests
2016-01-31 18:13:04 +01:00

70 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""
homeassistant.components.weblink
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Adds links to external webpage
For more details about this component, please refer to the documentation at
https://home-assistant.io/components/webpage/
"""
# The domain of your component. Should be equal to the name of your component
import logging
from homeassistant.helpers.entity import Entity
from homeassistant.util import slugify
DOMAIN = "weblink"
# List of component names (string) your component depends upon
DEPENDENCIES = []
ATTR_NAME = 'name'
ATTR_URL = 'url'
ATTR_ICON = 'icon'
_LOGGER = logging.getLogger(__name__)
def setup(hass, config):
""" Setup weblink component. """
# States are in the format DOMAIN.OBJECT_ID
links = config.get(DOMAIN)
for link in links.get('entities'):
if ATTR_NAME not in link or ATTR_URL not in link:
_LOGGER.error("You need to set both %s and %s to add a %s",
ATTR_NAME, ATTR_URL, DOMAIN)
continue
Link(hass, link.get(ATTR_NAME), link.get(ATTR_URL),
link.get(ATTR_ICON))
# return boolean to indicate that initialization was successful
return True
class Link(Entity):
""" Represent a link """
def __init__(self, hass, name, url, icon):
""" Represents a link. """
self.hass = hass
self._name = name
self._url = url
self._icon = icon
self.entity_id = DOMAIN + '.%s' % slugify(name)
self.update_ha_state()
@property
def icon(self):
return self._icon
@property
def name(self):
return self._name
@property
def state(self):
return self._url