Logbook service

pull/1020/head
magnusknutas 2016-01-27 17:27:55 +01:00
parent c750f16275
commit c31522eea9
1 changed files with 30 additions and 1 deletions

View File

@ -6,9 +6,11 @@ Parses events and generates a human log.
For more details about this component, please refer to the documentation at For more details about this component, please refer to the documentation at
https://home-assistant.io/components/logbook/ https://home-assistant.io/components/logbook/
""" """
import logging
from datetime import timedelta from datetime import timedelta
from itertools import groupby from itertools import groupby
import re import re
from functools import partial
from homeassistant.core import State, DOMAIN as HA_DOMAIN from homeassistant.core import State, DOMAIN as HA_DOMAIN
from homeassistant.const import ( from homeassistant.const import (
@ -36,6 +38,22 @@ ATTR_MESSAGE = 'message'
ATTR_DOMAIN = 'domain' ATTR_DOMAIN = 'domain'
ATTR_ENTITY_ID = 'entity_id' ATTR_ENTITY_ID = 'entity_id'
_LOGGER = logging.getLogger(__name__)
# pylint: disable=too-few-public-methods
class LogbookService(object):
""" Implements logging service for Logbook. """
def __init__(self, hass, name):
self.hass = hass
self.name = name
def send_message(self, message="", **kwargs):
""" Adds an entry to the logbook. """
_LOGGER.error("IM HERE")
log_entry(self.hass, self.name, message, DOMAIN)
def log_entry(hass, name, message, domain=None, entity_id=None): def log_entry(hass, name, message, domain=None, entity_id=None):
""" Adds an entry to the logbook. """ """ Adds an entry to the logbook. """
@ -53,8 +71,19 @@ def log_entry(hass, name, message, domain=None, entity_id=None):
def setup(hass, config): def setup(hass, config):
""" Listens for download events to download files. """ """ Listens for download events to download files. """
hass.http.register_path('GET', URL_LOGBOOK, _handle_get_logbook) # create service handler
def notify_message(notify_service, call):
""" Handle sending notification message service calls. """
message = call.data.get(ATTR_MESSAGE)
if message is None:
return
notify_service.send_message(message)
service = LogbookService(hass, config.get(ATTR_NAME, None))
hass.http.register_path('GET', URL_LOGBOOK, _handle_get_logbook)
hass.services.register(DOMAIN, DOMAIN, partial(notify_message, service))
return True return True