1 """Syslog notification service."""
3 from __future__
import annotations
7 import voluptuous
as vol
12 PLATFORM_SCHEMA
as NOTIFY_PLATFORM_SCHEMA,
13 BaseNotificationService,
18 CONF_FACILITY =
"facility"
19 CONF_OPTION =
"option"
20 CONF_PRIORITY =
"priority"
26 "daemon":
"LOG_DAEMON",
32 "syslog":
"LOG_SYSLOG",
33 "local0":
"LOG_LOCAL0",
34 "local1":
"LOG_LOCAL1",
35 "local2":
"LOG_LOCAL2",
36 "local3":
"LOG_LOCAL3",
37 "local4":
"LOG_LOCAL4",
38 "local5":
"LOG_LOCAL5",
39 "local6":
"LOG_LOCAL6",
40 "local7":
"LOG_LOCAL7",
46 "ndelay":
"LOG_NDELAY",
47 "nowait":
"LOG_NOWAIT",
48 "perror":
"LOG_PERROR",
62 PLATFORM_SCHEMA = NOTIFY_PLATFORM_SCHEMA.extend(
64 vol.Optional(CONF_FACILITY, default=
"syslog"): vol.In(SYSLOG_FACILITY.keys()),
65 vol.Optional(CONF_OPTION, default=
"pid"): vol.In(SYSLOG_OPTION.keys()),
66 vol.Optional(CONF_PRIORITY, default=-1): vol.In(SYSLOG_PRIORITY.keys()),
74 discovery_info: DiscoveryInfoType |
None =
None,
75 ) -> SyslogNotificationService:
76 """Get the syslog notification service."""
78 facility = getattr(syslog, SYSLOG_FACILITY[config[CONF_FACILITY]])
79 option = getattr(syslog, SYSLOG_OPTION[config[CONF_OPTION]])
80 priority = getattr(syslog, SYSLOG_PRIORITY[config[CONF_PRIORITY]])
86 """Implement the syslog notification service."""
88 def __init__(self, facility, option, priority):
89 """Initialize the service."""
95 """Send a message to syslog."""
97 title = kwargs.get(ATTR_TITLE, ATTR_TITLE_DEFAULT)
100 syslog.syslog(self.
_priority_priority, message)
def send_message(self, message="", **kwargs)
def __init__(self, facility, option, priority)
SyslogNotificationService get_service(HomeAssistant hass, ConfigType config, DiscoveryInfoType|None discovery_info=None)