diff --git a/homeassistant/components/binary_sensor/homematicip_cloud.py b/homeassistant/components/binary_sensor/homematicip_cloud.py
index dd22a835504f0d529543bb54103886192e28c41a..6c8b7ff191e75496be3ba1705b196fff7964edd4 100644
--- a/homeassistant/components/binary_sensor/homematicip_cloud.py
+++ b/homeassistant/components/binary_sensor/homematicip_cloud.py
@@ -27,17 +27,20 @@ async def async_setup_platform(
 async def async_setup_entry(hass, config_entry, async_add_entities):
     """Set up the HomematicIP Cloud binary sensor from a config entry."""
     from homematicip.aio.device import (
-        AsyncShutterContact, AsyncMotionDetectorIndoor, AsyncSmokeDetector)
+        AsyncShutterContact, AsyncMotionDetectorIndoor, AsyncSmokeDetector,
+        AsyncWaterSensor, AsyncRotaryHandleSensor)
 
     home = hass.data[HMIPC_DOMAIN][config_entry.data[HMIPC_HAPID]].home
     devices = []
     for device in home.devices:
-        if isinstance(device, AsyncShutterContact):
+        if isinstance(device, (AsyncShutterContact, AsyncRotaryHandleSensor)):
             devices.append(HomematicipShutterContact(home, device))
         elif isinstance(device, AsyncMotionDetectorIndoor):
             devices.append(HomematicipMotionDetector(home, device))
         elif isinstance(device, AsyncSmokeDetector):
             devices.append(HomematicipSmokeDetector(home, device))
+        elif isinstance(device, AsyncWaterSensor):
+            devices.append(HomematicipWaterDetector(home, device))
 
     if devices:
         async_add_entities(devices)
@@ -91,3 +94,17 @@ class HomematicipSmokeDetector(HomematicipGenericDevice, BinarySensorDevice):
     def is_on(self):
         """Return true if smoke is detected."""
         return self._device.smokeDetectorAlarmType != STATE_SMOKE_OFF
+
+
+class HomematicipWaterDetector(HomematicipGenericDevice, BinarySensorDevice):
+    """Representation of a HomematicIP Cloud water detector."""
+
+    @property
+    def device_class(self):
+        """Return the class of this sensor."""
+        return 'moisture'
+
+    @property
+    def is_on(self):
+        """Return true if moisture or waterlevel is detected."""
+        return self._device.moistureDetected or self._device.waterlevelDetected
diff --git a/homeassistant/components/sensor/homematicip_cloud.py b/homeassistant/components/sensor/homematicip_cloud.py
index 2b8365b8f64cf760a4b39c767002987ea1ac99ee..73fef98fb76de230a4d3738f5afe4581e284747d 100644
--- a/homeassistant/components/sensor/homematicip_cloud.py
+++ b/homeassistant/components/sensor/homematicip_cloud.py
@@ -32,20 +32,22 @@ async def async_setup_platform(
 
 async def async_setup_entry(hass, config_entry, async_add_entities):
     """Set up the HomematicIP Cloud sensors from a config entry."""
-    from homematicip.device import (
-        HeatingThermostat, TemperatureHumiditySensorWithoutDisplay,
-        TemperatureHumiditySensorDisplay, MotionDetectorIndoor)
+    from homematicip.aio.device import (
+        AsyncHeatingThermostat, AsyncTemperatureHumiditySensorWithoutDisplay,
+        AsyncTemperatureHumiditySensorDisplay, AsyncMotionDetectorIndoor,
+        AsyncTemperatureHumiditySensorOutdoor)
 
     home = hass.data[HMIPC_DOMAIN][config_entry.data[HMIPC_HAPID]].home
     devices = [HomematicipAccesspointStatus(home)]
     for device in home.devices:
-        if isinstance(device, HeatingThermostat):
+        if isinstance(device, AsyncHeatingThermostat):
             devices.append(HomematicipHeatingThermostat(home, device))
-        if isinstance(device, (TemperatureHumiditySensorDisplay,
-                               TemperatureHumiditySensorWithoutDisplay)):
+        if isinstance(device, (AsyncTemperatureHumiditySensorDisplay,
+                               AsyncTemperatureHumiditySensorWithoutDisplay,
+                               AsyncTemperatureHumiditySensorOutdoor)):
             devices.append(HomematicipTemperatureSensor(home, device))
             devices.append(HomematicipHumiditySensor(home, device))
-        if isinstance(device, MotionDetectorIndoor):
+        if isinstance(device, AsyncMotionDetectorIndoor):
             devices.append(HomematicipIlluminanceSensor(home, device))
 
     if devices: