* First pass on providing individual services for all possible targets that a notification platform supports. * Add a quite hacky first version of notification groups * Add a docstring for get_targets * Register group service under notifygroup/ and safely check for notifygroups in config * Remove notifygroups, because it belongs in its own PR * Make @balloob requested changes * get_targets()->targets * Add tests for notify targets exposed as individual services * If we dont have a platform name set in configuration, lets use the name of the platform instead of notify * Fix test docstring. * Dont use a dictionary for just one value * No need to double slugify * targets is now just a list of strings instead of a dict
33 lines
905 B
Python
33 lines
905 B
Python
"""
|
|
Demo notification service.
|
|
|
|
For more details about this platform, please refer to the documentation
|
|
https://home-assistant.io/components/demo/
|
|
"""
|
|
from homeassistant.components.notify import BaseNotificationService
|
|
|
|
EVENT_NOTIFY = "notify"
|
|
|
|
|
|
def get_service(hass, config):
|
|
"""Get the demo notification service."""
|
|
return DemoNotificationService(hass)
|
|
|
|
|
|
# pylint: disable=too-few-public-methods
|
|
class DemoNotificationService(BaseNotificationService):
|
|
"""Implement demo notification service."""
|
|
|
|
def __init__(self, hass):
|
|
"""Initialize the service."""
|
|
self.hass = hass
|
|
|
|
@property
|
|
def targets(self):
|
|
"""Return a dictionary of registered targets."""
|
|
return ["test target"]
|
|
|
|
def send_message(self, message="", **kwargs):
|
|
"""Send a message to a user."""
|
|
kwargs['message'] = message
|
|
self.hass.bus.fire(EVENT_NOTIFY, kwargs)
|