Enable certificate verification and allow non-encrypted communication (#1763)
parent
9d848731d9
commit
4a16d8064d
|
@ -10,7 +10,10 @@ from homeassistant.components.notify import (
|
||||||
ATTR_TITLE, DOMAIN, BaseNotificationService)
|
ATTR_TITLE, DOMAIN, BaseNotificationService)
|
||||||
from homeassistant.helpers import validate_config
|
from homeassistant.helpers import validate_config
|
||||||
|
|
||||||
REQUIREMENTS = ['sleekxmpp==1.3.1', 'dnspython3==1.12.0']
|
REQUIREMENTS = ['sleekxmpp==1.3.1',
|
||||||
|
'dnspython3==1.12.0',
|
||||||
|
'pyasn1==0.1.9',
|
||||||
|
'pyasn1-modules==0.0.8']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -22,20 +25,23 @@ def get_service(hass, config):
|
||||||
_LOGGER):
|
_LOGGER):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return XmppNotificationService(config['sender'],
|
return XmppNotificationService(
|
||||||
config['password'],
|
config.get('sender'),
|
||||||
config['recipient'])
|
config.get('password'),
|
||||||
|
config.get('recipient'),
|
||||||
|
config.get('tls', True))
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=too-few-public-methods
|
# pylint: disable=too-few-public-methods
|
||||||
class XmppNotificationService(BaseNotificationService):
|
class XmppNotificationService(BaseNotificationService):
|
||||||
"""Implement the notification service for Jabber (XMPP)."""
|
"""Implement the notification service for Jabber (XMPP)."""
|
||||||
|
|
||||||
def __init__(self, sender, password, recipient):
|
def __init__(self, sender, password, recipient, tls):
|
||||||
"""Initialize the service."""
|
"""Initialize the service."""
|
||||||
self._sender = sender
|
self._sender = sender
|
||||||
self._password = password
|
self._password = password
|
||||||
self._recipient = recipient
|
self._recipient = recipient
|
||||||
|
self._tls = tls
|
||||||
|
|
||||||
def send_message(self, message="", **kwargs):
|
def send_message(self, message="", **kwargs):
|
||||||
"""Send a message to a user."""
|
"""Send a message to a user."""
|
||||||
|
@ -43,10 +49,10 @@ class XmppNotificationService(BaseNotificationService):
|
||||||
data = "{}: {}".format(title, message) if title else message
|
data = "{}: {}".format(title, message) if title else message
|
||||||
|
|
||||||
send_message(self._sender + '/home-assistant', self._password,
|
send_message(self._sender + '/home-assistant', self._password,
|
||||||
self._recipient, data)
|
self._recipient, self._tls, data)
|
||||||
|
|
||||||
|
|
||||||
def send_message(sender, password, recipient, message):
|
def send_message(sender, password, recipient, use_tls, message):
|
||||||
"""Send a message over XMPP."""
|
"""Send a message over XMPP."""
|
||||||
import sleekxmpp
|
import sleekxmpp
|
||||||
|
|
||||||
|
@ -59,11 +65,11 @@ def send_message(sender, password, recipient, message):
|
||||||
|
|
||||||
logging.basicConfig(level=logging.ERROR)
|
logging.basicConfig(level=logging.ERROR)
|
||||||
|
|
||||||
self.use_tls = True
|
self.use_tls = use_tls
|
||||||
self.use_ipv6 = False
|
self.use_ipv6 = False
|
||||||
self.add_event_handler('failed_auth', self.check_credentials)
|
self.add_event_handler('failed_auth', self.check_credentials)
|
||||||
self.add_event_handler('session_start', self.start)
|
self.add_event_handler('session_start', self.start)
|
||||||
self.connect()
|
self.connect(use_tls=self.use_tls, use_ssl=False)
|
||||||
self.process()
|
self.process()
|
||||||
|
|
||||||
def start(self, event):
|
def start(self, event):
|
||||||
|
|
|
@ -177,6 +177,12 @@ py-cpuinfo==0.2.3
|
||||||
# homeassistant.components.rfxtrx
|
# homeassistant.components.rfxtrx
|
||||||
pyRFXtrx==0.6.5
|
pyRFXtrx==0.6.5
|
||||||
|
|
||||||
|
# homeassistant.components.notify.xmpp
|
||||||
|
pyasn1-modules==0.0.8
|
||||||
|
|
||||||
|
# homeassistant.components.notify.xmpp
|
||||||
|
pyasn1==0.1.9
|
||||||
|
|
||||||
# homeassistant.components.media_player.cast
|
# homeassistant.components.media_player.cast
|
||||||
pychromecast==0.7.2
|
pychromecast==0.7.2
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue