diff --git a/homeassistant/components/notify/xmpp.py b/homeassistant/components/notify/xmpp.py
index 2e609b120dad8599217b364a02398dcb63f6bd96..68c0ce2979f9a0c80a9d49ccca5da5239143fd6b 100644
--- a/homeassistant/components/notify/xmpp.py
+++ b/homeassistant/components/notify/xmpp.py
@@ -10,7 +10,10 @@ from homeassistant.components.notify import (
     ATTR_TITLE, DOMAIN, BaseNotificationService)
 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__)
 
@@ -22,20 +25,23 @@ def get_service(hass, config):
                            _LOGGER):
         return None
 
-    return XmppNotificationService(config['sender'],
-                                   config['password'],
-                                   config['recipient'])
+    return XmppNotificationService(
+        config.get('sender'),
+        config.get('password'),
+        config.get('recipient'),
+        config.get('tls', True))
 
 
 # pylint: disable=too-few-public-methods
 class XmppNotificationService(BaseNotificationService):
     """Implement the notification service for Jabber (XMPP)."""
 
-    def __init__(self, sender, password, recipient):
+    def __init__(self, sender, password, recipient, tls):
         """Initialize the service."""
         self._sender = sender
         self._password = password
         self._recipient = recipient
+        self._tls = tls
 
     def send_message(self, message="", **kwargs):
         """Send a message to a user."""
@@ -43,10 +49,10 @@ class XmppNotificationService(BaseNotificationService):
         data = "{}: {}".format(title, message) if title else message
 
         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."""
     import sleekxmpp
 
@@ -59,11 +65,11 @@ def send_message(sender, password, recipient, message):
 
             logging.basicConfig(level=logging.ERROR)
 
-            self.use_tls = True
+            self.use_tls = use_tls
             self.use_ipv6 = False
             self.add_event_handler('failed_auth', self.check_credentials)
             self.add_event_handler('session_start', self.start)
-            self.connect()
+            self.connect(use_tls=self.use_tls, use_ssl=False)
             self.process()
 
         def start(self, event):
diff --git a/requirements_all.txt b/requirements_all.txt
index 6b34aad3be1b58c6a60bcaf18508d0b00d2139af..06ec08f89e08234239818e27c21e0636620d0d7a 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -177,6 +177,12 @@ py-cpuinfo==0.2.3
 # homeassistant.components.rfxtrx
 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
 pychromecast==0.7.2