diff --git a/homeassistant/components/climate/vera.py b/homeassistant/components/climate/vera.py
new file mode 100644
index 0000000000000000000000000000000000000000..26d81e2b51062091cb706a55a6ceb04d3682ddfe
--- /dev/null
+++ b/homeassistant/components/climate/vera.py
@@ -0,0 +1,137 @@
+"""
+Support for Vera thermostats.
+
+For more details about this platform, please refer to the documentation at
+https://home-assistant.io/components/switch.vera/
+"""
+import logging
+
+from homeassistant.util import convert
+from homeassistant.components.climate import ClimateDevice
+from homeassistant.const import TEMP_FAHRENHEIT, ATTR_TEMPERATURE
+
+from homeassistant.components.vera import (
+    VeraDevice, VERA_DEVICES, VERA_CONTROLLER)
+
+DEPENDENCIES = ['vera']
+
+_LOGGER = logging.getLogger(__name__)
+
+OPERATION_LIST = ["Heat", "Cool", "Auto Changeover", "Off"]
+FAN_OPERATION_LIST = ["On", "Auto", "Cycle"]
+
+
+def setup_platform(hass, config, add_devices_callback, discovery_info=None):
+    """Find and return Vera thermostats."""
+    add_devices_callback(
+        VeraThermostat(device, VERA_CONTROLLER) for
+        device in VERA_DEVICES['climate'])
+
+
+# pylint: disable=abstract-method
+class VeraThermostat(VeraDevice, ClimateDevice):
+    """Representation of a Vera Thermostat."""
+
+    def __init__(self, vera_device, controller):
+        """Initialize the Vera device."""
+        VeraDevice.__init__(self, vera_device, controller)
+
+    @property
+    def current_operation(self):
+        """Return current operation ie. heat, cool, idle."""
+        mode = self.vera_device.get_hvac_mode()
+        if mode == "HeatOn":
+            return OPERATION_LIST[0]  # heat
+        elif mode == "CoolOn":
+            return OPERATION_LIST[1]  # cool
+        elif mode == "AutoChangeOver":
+            return OPERATION_LIST[2]  # auto
+        elif mode == "Off":
+            return OPERATION_LIST[3]  # off
+        return "Off"
+
+    @property
+    def operation_list(self):
+        """List of available operation modes."""
+        return OPERATION_LIST
+
+    @property
+    def current_fan_mode(self):
+        """Return the fan setting."""
+        mode = self.vera_device.get_fan_mode()
+        if mode == "ContinuousOn":
+            return FAN_OPERATION_LIST[0]  # on
+        elif mode == "Auto":
+            return FAN_OPERATION_LIST[1]  # auto
+        elif mode == "PeriodicOn":
+            return FAN_OPERATION_LIST[2]  # cycle
+        return "Auto"
+
+    @property
+    def fan_list(self):
+        """List of available fan modes."""
+        return FAN_OPERATION_LIST
+
+    def set_fan_mode(self, mode):
+        """Set new target temperature."""
+        if mode == FAN_OPERATION_LIST[0]:
+            self.vera_device.fan_on()
+        elif mode == FAN_OPERATION_LIST[1]:
+            self.vera_device.fan_auto()
+        elif mode == FAN_OPERATION_LIST[2]:
+            return self.vera_device.fan_cycle()
+
+    @property
+    def current_power_mwh(self):
+        """Current power usage in mWh."""
+        power = self.vera_device.power
+        if power:
+            return convert(power, float, 0.0) * 1000
+
+    def update(self):
+        """Called by the vera device callback to update state."""
+        self._state = self.vera_device.get_hvac_mode()
+
+    @property
+    def unit_of_measurement(self):
+        """Return the unit of measurement."""
+        return TEMP_FAHRENHEIT
+
+    @property
+    def current_temperature(self):
+        """Return the current temperature."""
+        return self.vera_device.get_current_temperature()
+
+    @property
+    def operation(self):
+        """Return current operation ie. heat, cool, idle."""
+        return self.vera_device.get_hvac_state()
+
+    @property
+    def target_temperature(self):
+        """Return the temperature we try to reach."""
+        return self.vera_device.get_current_goal_temperature()
+
+    def set_temperature(self, **kwargs):
+        """Set new target temperatures."""
+        if kwargs.get(ATTR_TEMPERATURE) is not None:
+            self.vera_device.set_temperature(kwargs.get(ATTR_TEMPERATURE))
+
+    def set_operation_mode(self, operation_mode):
+        """Set HVAC mode (auto, cool, heat, off)."""
+        if operation_mode == OPERATION_LIST[3]:  # off
+            self.vera_device.turn_off()
+        elif operation_mode == OPERATION_LIST[2]:  # auto
+            self.vera_device.turn_auto_on()
+        elif operation_mode == OPERATION_LIST[1]:  # cool
+            self.vera_device.turn_cool_on()
+        elif operation_mode == OPERATION_LIST[0]:  # heat
+            self.vera_device.turn_heat_on()
+
+    def turn_fan_on(self):
+        """Turn fan on."""
+        self.vera_device.fan_on()
+
+    def turn_fan_off(self):
+        """Turn fan off."""
+        self.vera_device.fan_auto()
diff --git a/homeassistant/components/thermostat/__init__.py b/homeassistant/components/thermostat/__init__.py
index a9169ce4756f412eada284107d0aef0eebb2ef6b..52452ef0e596750b76c7654613f89bacb4e910fc 100644
--- a/homeassistant/components/thermostat/__init__.py
+++ b/homeassistant/components/thermostat/__init__.py
@@ -34,7 +34,7 @@ SERVICE_SET_HVAC_MODE = "set_hvac_mode"
 STATE_HEAT = "heat"
 STATE_COOL = "cool"
 STATE_IDLE = "idle"
-STATE_AUTO = 'auto'
+STATE_AUTO = "auto"
 
 ATTR_CURRENT_TEMPERATURE = "current_temperature"
 ATTR_AWAY_MODE = "away_mode"
diff --git a/homeassistant/components/vera.py b/homeassistant/components/vera.py
index f6162f5582c4e8f9d61d1886969ae4aff04fe62e..cfe2add1315b07932e79d007e0c1b3bed1512cc8 100644
--- a/homeassistant/components/vera.py
+++ b/homeassistant/components/vera.py
@@ -20,7 +20,7 @@ from homeassistant.const import (
     EVENT_HOMEASSISTANT_STOP)
 from homeassistant.helpers.entity import Entity
 
-REQUIREMENTS = ['pyvera==0.2.15']
+REQUIREMENTS = ['pyvera==0.2.16']
 
 _LOGGER = logging.getLogger(__name__)
 
@@ -42,10 +42,14 @@ CONFIG_SCHEMA = vol.Schema({
     DOMAIN: vol.Schema({
         vol.Required(CONF_CONTROLLER): cv.url,
         vol.Optional(CONF_EXCLUDE, default=[]): VERA_ID_LIST_SCHEMA,
-        vol.Optional(CONF_LIGHTS, default=[]): VERA_ID_LIST_SCHEMA,
+        vol.Optional(CONF_LIGHTS, default=[]): VERA_ID_LIST_SCHEMA
     }),
 }, extra=vol.ALLOW_EXTRA)
 
+VERA_COMPONENTS = [
+    'binary_sensor', 'sensor', 'light', 'switch', 'lock', 'climate'
+]
+
 
 # pylint: disable=unused-argument, too-many-function-args
 def setup(hass, base_config):
@@ -83,7 +87,7 @@ def setup(hass, base_config):
             continue
         VERA_DEVICES[dev_type].append(device)
 
-    for component in 'binary_sensor', 'sensor', 'light', 'switch', 'lock':
+    for component in VERA_COMPONENTS:
         discovery.load_platform(hass, component, DOMAIN, {}, base_config)
 
     return True
@@ -103,6 +107,8 @@ def map_vera_device(vera_device, remap):
         return 'switch'
     if isinstance(vera_device, veraApi.VeraLock):
         return 'lock'
+    if isinstance(vera_device, veraApi.VeraThermostat):
+        return 'climate'
     if isinstance(vera_device, veraApi.VeraSwitch):
         if vera_device.device_id in remap:
             return 'light'
diff --git a/requirements_all.txt b/requirements_all.txt
index 97e65bc8edd414b31f68175ec59ed0ef3fc12c16..deb6b96d3569d67b70ca88c9611ba0bd5dcf0b01 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -400,7 +400,7 @@ python-wink==0.7.14
 # pyuserinput==0.1.11
 
 # homeassistant.components.vera
-pyvera==0.2.15
+pyvera==0.2.16
 
 # homeassistant.components.wemo
 pywemo==0.4.6