mirror of
https://github.com/home-assistant/core
synced 2024-09-12 15:16:21 +02:00
Added new Clickatell SMS messaging Notify Platform (#9775)
* Added new Clickatell SMS messaging Notify Platform * Added new Clickatell SMS platform with layout corrections * Added new Clickatell platform with additional layout corrections * Added new Clickatell platform with exception handling removed * Added new Clickatell platform with poor reference removed * Reversed changes to dev_docker file * Minor changes
This commit is contained in:
parent
2c3195522f
commit
2374659984
52
homeassistant/components/notify/clickatell.py
Normal file
52
homeassistant/components/notify/clickatell.py
Normal file
@ -0,0 +1,52 @@
|
||||
"""
|
||||
Clickatell platform for notify component.
|
||||
|
||||
For more details about this platform, please refer to the documentation at
|
||||
https://home-assistant.io/components/notify.clickatell/
|
||||
"""
|
||||
import logging
|
||||
|
||||
import requests
|
||||
import voluptuous as vol
|
||||
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.const import (CONF_API_KEY, CONF_RECIPIENT)
|
||||
from homeassistant.components.notify import (
|
||||
PLATFORM_SCHEMA, BaseNotificationService)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
DEFAULT_NAME = 'clickatell'
|
||||
|
||||
BASE_API_URL = 'https://platform.clickatell.com/messages/http/send'
|
||||
|
||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Required(CONF_API_KEY): cv.string,
|
||||
vol.Required(CONF_RECIPIENT): cv.string,
|
||||
})
|
||||
|
||||
|
||||
def get_service(hass, config, discovery_info=None):
|
||||
"""Get the Clickatell notification service."""
|
||||
return ClickatellNotificationService(config)
|
||||
|
||||
|
||||
class ClickatellNotificationService(BaseNotificationService):
|
||||
"""Implementation of a notification service for the Clickatell service."""
|
||||
|
||||
def __init__(self, config):
|
||||
"""Initialize the service."""
|
||||
self.api_key = config.get(CONF_API_KEY)
|
||||
self.recipient = config.get(CONF_RECIPIENT)
|
||||
|
||||
def send_message(self, message="", **kwargs):
|
||||
"""Send a message to a user."""
|
||||
data = {
|
||||
'apiKey': self.api_key,
|
||||
'to': self.recipient,
|
||||
'content': message,
|
||||
}
|
||||
|
||||
resp = requests.get(BASE_API_URL, params=data, timeout=5)
|
||||
if (resp.status_code != 200) or (resp.status_code != 201):
|
||||
_LOGGER.error("Error %s : %s", resp.status_code, resp.text)
|
Loading…
Reference in New Issue
Block a user