diff --git a/.coveragerc b/.coveragerc
index 1cd4c1774e489335713e019e54ad906f5d740088..378dba5ef2a34165e703fe8c292e7d6c7096de7d 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -112,7 +112,7 @@ omit =
     homeassistant/components/*/evohome.py
 
     homeassistant/components/fritzbox.py
-    homeassistant/components/switch/fritzbox.py
+    homeassistant/components/*/fritzbox.py
 
     homeassistant/components/ecovacs.py
     homeassistant/components/*/ecovacs.py
diff --git a/homeassistant/components/binary_sensor/fritzbox.py b/homeassistant/components/binary_sensor/fritzbox.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab58e6e84bc62b8d65a39adda78ce603386924d0
--- /dev/null
+++ b/homeassistant/components/binary_sensor/fritzbox.py
@@ -0,0 +1,64 @@
+"""
+Support for Fritzbox binary sensors.
+
+For more details about this component, please refer to the documentation at
+https://home-assistant.io/components/binary_sensor.fritzbox/
+"""
+import logging
+
+import requests
+
+from homeassistant.components.binary_sensor import BinarySensorDevice
+from homeassistant.components.fritzbox import DOMAIN as FRITZBOX_DOMAIN
+
+DEPENDENCIES = ['fritzbox']
+
+_LOGGER = logging.getLogger(__name__)
+
+
+def setup_platform(hass, config, add_entities, discovery_info=None):
+    """Set up the Fritzbox binary sensor platform."""
+    devices = []
+    fritz_list = hass.data[FRITZBOX_DOMAIN]
+
+    for fritz in fritz_list:
+        device_list = fritz.get_devices()
+        for device in device_list:
+            if device.has_alarm:
+                devices.append(FritzboxBinarySensor(device, fritz))
+
+    add_entities(devices, True)
+
+
+class FritzboxBinarySensor(BinarySensorDevice):
+    """Representation of a binary Fritzbox device."""
+
+    def __init__(self, device, fritz):
+        """Initialize the Fritzbox binary sensor."""
+        self._device = device
+        self._fritz = fritz
+
+    @property
+    def name(self):
+        """Return the name of the entity."""
+        return self._device.name
+
+    @property
+    def device_class(self):
+        """Return the class of this sensor."""
+        return 'window'
+
+    @property
+    def is_on(self):
+        """Return true if sensor is on."""
+        if not self._device.present:
+            return False
+        return self._device.alert_state
+
+    def update(self):
+        """Get latest data from the Fritzbox."""
+        try:
+            self._device.update()
+        except requests.exceptions.HTTPError as ex:
+            _LOGGER.warning("Connection error: %s", ex)
+            self._fritz.login()
diff --git a/homeassistant/components/fritzbox.py b/homeassistant/components/fritzbox.py
index 49bc4c8f6e6af454db214faac326641353ed1f7a..e6f121799df3a92f2c6d8a3e1c4f99d81f27c781 100644
--- a/homeassistant/components/fritzbox.py
+++ b/homeassistant/components/fritzbox.py
@@ -18,7 +18,7 @@ _LOGGER = logging.getLogger(__name__)
 
 REQUIREMENTS = ['pyfritzhome==0.4.0']
 
-SUPPORTED_DOMAINS = ['climate', 'switch']
+SUPPORTED_DOMAINS = ['binary_sensor', 'climate', 'switch']
 
 DOMAIN = 'fritzbox'